summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/v3d
diff options
context:
space:
mode:
authorSteven Price <steven.price@arm.com>2021-09-03 11:49:57 +0200
committerSteven Price <steven.price@arm.com>2021-09-17 12:47:26 +0200
commita53f2c035e9832d20775d2c66c71495f2dc27699 (patch)
treeb4c75809c4c3432f22c274d7eb2671c69c4e8b54 /drivers/gpu/drm/v3d
parentvirtio-gpu: fix possible memory allocation failure (diff)
downloadlinux-a53f2c035e9832d20775d2c66c71495f2dc27699.tar.xz
linux-a53f2c035e9832d20775d2c66c71495f2dc27699.zip
drm/panfrost: Calculate lock region size correctly
It turns out that when locking a region, the region must be a naturally aligned power of 2. The upshot of this is that if the desired region crosses a 'large boundary' the region size must be increased significantly to ensure that the locked region completely covers the desired region. Previous calculations (including in kbase for the proprietary driver) failed to take this into account. Since it's known that the lock region must be naturally aligned we can compute the required size by looking at the highest bit position which changes between the start/end of the lock region (subtracting 1 from the end because the end address is exclusive). The start address is then aligned based on the size (this is technically unnecessary as the hardware will ignore these bits, but the spec advises to do this "to avoid confusion"). Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Signed-off-by: Steven Price <steven.price@arm.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210903094957.74560-1-steven.price@arm.com
Diffstat (limited to 'drivers/gpu/drm/v3d')
0 files changed, 0 insertions, 0 deletions