mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 06:57:57 +00:00
2e715fb4fc
Add support for BCM2712 (Raspberry Pi 5).
3bb5880ab3
Patches were generated from the diff between linux kernel branch linux-6.1.y
and rpi-6.1.y from raspberry pi kernel source:
- git format-patch linux-6.1.y...rpi-6.1.y
Build system: x86_64
Build-tested: bcm2708, bcm2709, bcm2710, bcm2711
Run-tested: bcm2710/RPi3B, bcm2711/RPi4B
Signed-off-by: Marty Jones <mj8263788@gmail.com>
[Remove applied and reverted patches, squash patches and config commits]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
39 lines
1.3 KiB
Diff
39 lines
1.3 KiB
Diff
From bfe927647253ab3a86be16320baa1579518c6786 Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
Date: Wed, 17 Jan 2024 17:00:35 +0000
|
|
Subject: [PATCH] drm/vc4: Fix atomic_async_check to call the right mode_set
|
|
function
|
|
|
|
vc4_plane_atomic_async_check was always calling vc4_plane_mode_set
|
|
to validate and generate the dlist for the check. If async_check
|
|
decided it had to fall back to a sync commit, then this GEN4/5
|
|
dlist could get used on GEN6.
|
|
|
|
Call either vc4_plane_mode_set or vc6_plane_mode_set as appropriate.
|
|
|
|
Fixes: 1ab1fbbb7e76 ("drm/vc4: hvs: Support BCM2712 HVS")
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
---
|
|
drivers/gpu/drm/vc4/vc4_plane.c | 6 +++++-
|
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/gpu/drm/vc4/vc4_plane.c
|
|
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
|
|
@@ -2194,11 +2194,15 @@ static int vc4_plane_atomic_async_check(
|
|
{
|
|
struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state,
|
|
plane);
|
|
+ struct vc4_dev *vc4 = to_vc4_dev(plane->dev);
|
|
struct vc4_plane_state *old_vc4_state, *new_vc4_state;
|
|
int ret;
|
|
u32 i;
|
|
|
|
- ret = vc4_plane_mode_set(plane, new_plane_state);
|
|
+ if (vc4->gen >= VC4_GEN_6)
|
|
+ ret = vc6_plane_mode_set(plane, new_plane_state);
|
|
+ else
|
|
+ ret = vc4_plane_mode_set(plane, new_plane_state);
|
|
if (ret)
|
|
return ret;
|
|
|