bcm27xx: update patches from RPi foundation
[openwrt/staging/luka.git] / target / linux / bcm27xx / patches-5.4 / 950-0617-drm-vc4-Fixup-for-firmware-KMS.patch
diff --git a/target/linux/bcm27xx/patches-5.4/950-0617-drm-vc4-Fixup-for-firmware-KMS.patch b/target/linux/bcm27xx/patches-5.4/950-0617-drm-vc4-Fixup-for-firmware-KMS.patch
new file mode 100644 (file)
index 0000000..62080bf
--- /dev/null
@@ -0,0 +1,36 @@
+From 3c10a82ae5ce60ee8b4dbd1d1f8436efaa4593c3 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dave.stevenson@raspberrypi.com>
+Date: Mon, 30 Mar 2020 12:52:26 +0100
+Subject: [PATCH] drm/vc4: Fixup for firmware KMS
+
+Fix up "drm/vc4: Kick the core clock up during a mode change" for
+firmware KMS mode where we don't have the HVS or core clock
+configured.
+
+Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
+---
+ drivers/gpu/drm/vc4/vc4_kms.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/vc4/vc4_kms.c
++++ b/drivers/gpu/drm/vc4/vc4_kms.c
+@@ -239,7 +239,8 @@ vc4_atomic_complete_commit(struct drm_at
+               vc4_hvs_mask_underrun(dev, vc4_crtc_state->assigned_channel);
+       }
+-      clk_set_rate(hvs->core_clk, 500000000);
++      if (!vc4->firmware_kms)
++              clk_set_rate(hvs->core_clk, 500000000);
+       drm_atomic_helper_wait_for_fences(dev, state, false);
+@@ -266,7 +267,8 @@ vc4_atomic_complete_commit(struct drm_at
+       drm_atomic_helper_commit_cleanup_done(state);
+-      clk_set_rate(hvs->core_clk, 200000000);
++      if (!vc4->firmware_kms)
++              clk_set_rate(hvs->core_clk, 200000000);
+       drm_atomic_state_put(state);