staging: vc04_services: add vchiq_pagelist_info structure
authorMichael Zoran <mzoran@crowfest.net>
Mon, 7 Nov 2016 14:06:03 +0000 (06:06 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Nov 2016 13:04:17 +0000 (14:04 +0100)
commit4807f2c0e684e907c501cb96049809d7a957dbc2
tree64f5b13371b8fe14261f4c45bb0cccd3ee82dd6d
parent4dfc109c7118ed8e2806c5395b9e9dd8f851f992
staging: vc04_services: add vchiq_pagelist_info structure

The current dma_map_sg based implementation for bulk messages
computes many offsets into a single allocation multiple times in
both the create and free code paths.  This is inefficient,
error prone and in fact still has a few lingering issues
with arm64.

This change replaces a small portion of that inplementation with
new code that uses a new struct vchiq_pagelist_info to store the
needed information rather then complex offset calculations.

This improved implementation should be more efficient and easier
to understand and maintain.

Tests Run(Both Pass):
vchiq_test -p 1
vchiq_test -f 10

Signed-off-by: Michael Zoran <mzoran@crowfest.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c