aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.15/950-0908-drm-vc4-crtc-Don-t-call-into-BO-Handling-on-Async-Pa.patch
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2022-05-16 23:40:32 +0200
committerÁlvaro Fernández Rojas <noltari@gmail.com>2022-05-17 15:11:22 +0200
commit20ea6adbf199097c4f5f591ffee088340630dae4 (patch)
treed6719d95e136611a1c25bbf7789652d6d402779d /target/linux/bcm27xx/patches-5.15/950-0908-drm-vc4-crtc-Don-t-call-into-BO-Handling-on-Async-Pa.patch
parentbca05bd072180dc38ef740b37ded9572a6db1981 (diff)
downloadupstream-20ea6adbf199097c4f5f591ffee088340630dae4.tar.gz
upstream-20ea6adbf199097c4f5f591ffee088340630dae4.tar.bz2
upstream-20ea6adbf199097c4f5f591ffee088340630dae4.zip
bcm27xx: add support for linux v5.15
Build system: x86_64 Build-tested: bcm2708, bcm2709, bcm2710, bcm2711 Run-tested: bcm2708/RPiB+, bcm2709/RPi3B, bcm2710/RPi3B, bcm2711/RPi4B Signed-off-by: Marty Jones <mj8263788@gmail.com> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bcm27xx/patches-5.15/950-0908-drm-vc4-crtc-Don-t-call-into-BO-Handling-on-Async-Pa.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.15/950-0908-drm-vc4-crtc-Don-t-call-into-BO-Handling-on-Async-Pa.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.15/950-0908-drm-vc4-crtc-Don-t-call-into-BO-Handling-on-Async-Pa.patch b/target/linux/bcm27xx/patches-5.15/950-0908-drm-vc4-crtc-Don-t-call-into-BO-Handling-on-Async-Pa.patch
new file mode 100644
index 0000000000..96941cb20f
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.15/950-0908-drm-vc4-crtc-Don-t-call-into-BO-Handling-on-Async-Pa.patch
@@ -0,0 +1,52 @@
+From 7aa9189e401ddee705d851fe30b59d81cc71ebac Mon Sep 17 00:00:00 2001
+From: Maxime Ripard <maxime@cerno.tech>
+Date: Mon, 2 May 2022 15:28:05 +0200
+Subject: [PATCH] drm/vc4: crtc: Don't call into BO Handling on Async
+ Page-Flips on BCM2711
+
+The BCM2711 doesn't have a v3d GPU so we don't want to call into its BO
+management code. Let's create an asynchronous page-flip handler for the
+BCM2711 that just calls into the common code.
+
+Signed-off-by: Maxime Ripard <maxime@cerno.tech>
+---
+ drivers/gpu/drm/vc4/vc4_crtc.c | 21 ++++++++++++++++++---
+ 1 file changed, 18 insertions(+), 3 deletions(-)
+
+--- a/drivers/gpu/drm/vc4/vc4_crtc.c
++++ b/drivers/gpu/drm/vc4/vc4_crtc.c
+@@ -999,16 +999,31 @@ static int vc4_async_page_flip(struct dr
+ return 0;
+ }
+
++static int vc5_async_page_flip(struct drm_crtc *crtc,
++ struct drm_framebuffer *fb,
++ struct drm_pending_vblank_event *event,
++ uint32_t flags)
++{
++ return vc4_async_page_flip_common(crtc, fb, event, flags);
++}
++
+ int vc4_page_flip(struct drm_crtc *crtc,
+ struct drm_framebuffer *fb,
+ struct drm_pending_vblank_event *event,
+ uint32_t flags,
+ struct drm_modeset_acquire_ctx *ctx)
+ {
+- if (flags & DRM_MODE_PAGE_FLIP_ASYNC)
+- return vc4_async_page_flip(crtc, fb, event, flags);
+- else
++ if (flags & DRM_MODE_PAGE_FLIP_ASYNC) {
++ struct drm_device *dev = crtc->dev;
++ struct vc4_dev *vc4 = to_vc4_dev(dev);
++
++ if (vc4->is_vc5)
++ return vc5_async_page_flip(crtc, fb, event, flags);
++ else
++ return vc4_async_page_flip(crtc, fb, event, flags);
++ } else {
+ return drm_atomic_helper_page_flip(crtc, fb, event, flags, ctx);
++ }
+ }
+
+ struct drm_crtc_state *vc4_crtc_duplicate_state(struct drm_crtc *crtc)