diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0671-drm-vc4-hdmi-Warn-if-we-access-the-controller-while-.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.10/950-0671-drm-vc4-hdmi-Warn-if-we-access-the-controller-while-.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0671-drm-vc4-hdmi-Warn-if-we-access-the-controller-while-.patch b/target/linux/bcm27xx/patches-5.10/950-0671-drm-vc4-hdmi-Warn-if-we-access-the-controller-while-.patch new file mode 100644 index 0000000000..c522766201 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.10/950-0671-drm-vc4-hdmi-Warn-if-we-access-the-controller-while-.patch @@ -0,0 +1,47 @@ +From f67dbf74cc7bce6d85b7c4b5b917c30f2dfc2626 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard <maxime@cerno.tech> +Date: Mon, 5 Jul 2021 10:32:30 +0200 +Subject: [PATCH] drm/vc4: hdmi: Warn if we access the controller while + disabled + +We've had many silent hangs where the kernel would look like it just +stalled due to the access to one of the HDMI registers while the +controller was disabled. + +Add a warning if we're about to do that so that it's at least not silent +anymore. + +Signed-off-by: Maxime Ripard <maxime@cerno.tech> +--- + drivers/gpu/drm/vc4/vc4_hdmi_regs.h | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/gpu/drm/vc4/vc4_hdmi_regs.h ++++ b/drivers/gpu/drm/vc4/vc4_hdmi_regs.h +@@ -1,6 +1,8 @@ + #ifndef _VC4_HDMI_REGS_H_ + #define _VC4_HDMI_REGS_H_ + ++#include <linux/pm_runtime.h> ++ + #include "vc4_hdmi.h" + + #define VC4_HDMI_PACKET_STRIDE 0x24 +@@ -412,6 +414,8 @@ static inline u32 vc4_hdmi_read(struct v + const struct vc4_hdmi_variant *variant = hdmi->variant; + void __iomem *base; + ++ WARN_ON(!pm_runtime_active(&hdmi->pdev->dev)); ++ + if (reg >= variant->num_registers) { + dev_warn(&hdmi->pdev->dev, + "Invalid register ID %u\n", reg); +@@ -438,6 +442,8 @@ static inline void vc4_hdmi_write(struct + const struct vc4_hdmi_variant *variant = hdmi->variant; + void __iomem *base; + ++ WARN_ON(!pm_runtime_active(&hdmi->pdev->dev)); ++ + if (reg >= variant->num_registers) { + dev_warn(&hdmi->pdev->dev, + "Invalid register ID %u\n", reg); |