mirror of
https://github.com/torvalds/linux.git
synced 2026-05-29 17:43:52 +02:00
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 <mripard@kernel.org> Reviewed-by: Maxime Ripard <mripard@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/20240621152055.4180873-28-dave.stevenson@raspberrypi.com Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
This commit is contained in:
parent
efbc7b9c21
commit
74c3b7c63b
|
|
@ -756,6 +756,11 @@ static int vc4_plane_allocate_lbm(struct drm_plane_state *state)
|
|||
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);
|
||||
|
||||
|
|
@ -771,8 +776,7 @@ static int vc4_plane_allocate_lbm(struct drm_plane_state *state)
|
|||
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);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user