Initial commit
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
From ec3556d9297746b663b628fa9794d742359397c8 Mon Sep 17 00:00:00 2001
|
||||
From: Maxime Ripard <maxime@cerno.tech>
|
||||
Date: Thu, 13 Apr 2023 10:12:19 +0200
|
||||
Subject: [PATCH 0594/1085] drm/vc4: hvs: Rework LBM alignment
|
||||
|
||||
With the introduction of the support for BCM2712, the check of whether
|
||||
we're running on vc5 or not to compute the LBM alignment requirement
|
||||
doesn't work anymore.
|
||||
|
||||
Moreover, the LBM size will need to be computed in words for the
|
||||
BCM2712, while we've had sizes in bytes so far.
|
||||
|
||||
Aligning on either 64 or 32 words is thus fairly harmful on BCM2712, so
|
||||
let's just explicitly align the size when needed, and then call
|
||||
drm_mm_insert_node_generic() with an alignment of 1.
|
||||
|
||||
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
---
|
||||
drivers/gpu/drm/vc4/vc4_plane.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
|
||||
@@ -744,6 +744,11 @@ static int vc4_plane_allocate_lbm(struct
|
||||
if (!lbm_size)
|
||||
return 0;
|
||||
|
||||
+ if (vc4->gen == VC4_GEN_5)
|
||||
+ lbm_size = ALIGN(lbm_size, 64);
|
||||
+ else if (vc4->gen == VC4_GEN_4)
|
||||
+ lbm_size = ALIGN(lbm_size, 32);
|
||||
+
|
||||
drm_dbg_driver(drm, "[PLANE:%d:%s] LBM Allocation Size: %u\n",
|
||||
plane->base.id, plane->name, lbm_size);
|
||||
|
||||
@@ -759,8 +764,7 @@ static int vc4_plane_allocate_lbm(struct
|
||||
spin_lock_irqsave(&vc4->hvs->mm_lock, irqflags);
|
||||
ret = drm_mm_insert_node_generic(&vc4->hvs->lbm_mm,
|
||||
&vc4_state->lbm,
|
||||
- lbm_size,
|
||||
- vc4->gen == VC4_GEN_5 ? 64 : 32,
|
||||
+ lbm_size, 1,
|
||||
0, 0);
|
||||
spin_unlock_irqrestore(&vc4->hvs->mm_lock, irqflags);
|
||||
|
||||
Reference in New Issue
Block a user