Each display list currently allocates an area of DMA memory to store register
settings for the VSP1 to process. Each of these allocations adds pressure to
the IPMMU TLB entries.

We can reduce the pressure by pre-allocating larger areas and dividing the area
across multiple bodies represented as a pool.

Patch 1 adds protection to ensure that the display list body does not overflow
and will allow us to reduce the size of the body allocations in the future (it
has already helped me catch an overflow during the development of this series,
so I thought it was a worth while addition)

Patch 2 implements the fragment pool object and provides function helpers to
interact with the pool

Patches 3 to 6 convert the existing allocations to use the new fragment pool.
These are separated for clarity, but I have no objections to squashing those
into a single commit if it is preferred.

This series has been tested and based on top of Laurent's recent ES2.0 patch
set at git://linuxtv.org/pinchartl/media.git drm/next/h3-es2/merged

Kieran Bingham (6):
  v4l: vsp1: Protect fragments against overflow
  v4l: vsp1: Provide a fragment pool
  v4l: vsp1: Convert display lists to use new fragment pool
  v4l: vsp1: Convert CLU to use a fragment pool
  v4l: vsp1: Convert LUT to use a fragment pool
  v4l: vsp1: Remove old fragment management

 drivers/media/platform/vsp1/vsp1_clu.c |  18 +-
 drivers/media/platform/vsp1/vsp1_clu.h |   1 +-
 drivers/media/platform/vsp1/vsp1_dl.c  | 294 +++++++++++++-------------
 drivers/media/platform/vsp1/vsp1_dl.h  |   8 +-
 drivers/media/platform/vsp1/vsp1_lut.c |  23 +-
 drivers/media/platform/vsp1/vsp1_lut.h |   1 +-
 6 files changed, 199 insertions(+), 146 deletions(-)

base-commit: 5fee73960b9a0ceb0ccf746dfeb06bdb07199670
-- 
git-series 0.9.1

Reply via email to