drm/vc4: Allow using more than 256MB of CMA memory.
authorEric Anholt <eric@anholt.net>
Tue, 7 Mar 2017 22:51:03 +0000 (14:51 -0800)
committerRaspbian kernel package updater <root@raspbian.org>
Sat, 31 Mar 2018 14:53:26 +0000 (15:53 +0100)
commit064aeadd96f27a7932f60dc1f35aaa2e567348dc
tree831208337ed01319be207fd178f0b8e088c3e31c
parent7db9e4534a51e473da990fbfb22cbfc29d420be8
drm/vc4: Allow using more than 256MB of CMA memory.

Until now, we've had to limit Raspberry Pi to 256MB of CMA memory to
keep from triggering the hardware addressing bug between of the tile
binner of the tile alloc memory (where the top 4 bits come from the
tile state data array's address).

To work around that and allow more memory to be reserved for graphics,
allocate a single BO to store tile state data arrays and tile
alloc/overflow memory while the GPU is active, and make sure that that
one BO doesn't happen to cross a 256MB boundary.  With that in place,
we can allocate textures and shaders anywhere in system memory (still
contiguous, of course).

Signed-off-by: Eric Anholt <eric@anholt.net>
drivers/gpu/drm/vc4/vc4_drv.h
drivers/gpu/drm/vc4/vc4_gem.c
drivers/gpu/drm/vc4/vc4_irq.c
drivers/gpu/drm/vc4/vc4_render_cl.c
drivers/gpu/drm/vc4/vc4_v3d.c
drivers/gpu/drm/vc4/vc4_validate.c