Commit 14e193b9 authored by Maxime Ripard's avatar Maxime Ripard

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.
Reviewed-by: default avatarDave Stevenson <dave.stevenson@raspberrypi.com>
Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20210819135931.895976-7-maxime@cerno.tech
parent 20b0dfa8
#ifndef _VC4_HDMI_REGS_H_ #ifndef _VC4_HDMI_REGS_H_
#define _VC4_HDMI_REGS_H_ #define _VC4_HDMI_REGS_H_
#include <linux/pm_runtime.h>
#include "vc4_hdmi.h" #include "vc4_hdmi.h"
#define VC4_HDMI_PACKET_STRIDE 0x24 #define VC4_HDMI_PACKET_STRIDE 0x24
...@@ -412,6 +414,8 @@ static inline u32 vc4_hdmi_read(struct vc4_hdmi *hdmi, ...@@ -412,6 +414,8 @@ static inline u32 vc4_hdmi_read(struct vc4_hdmi *hdmi,
const struct vc4_hdmi_variant *variant = hdmi->variant; const struct vc4_hdmi_variant *variant = hdmi->variant;
void __iomem *base; void __iomem *base;
WARN_ON(!pm_runtime_active(&hdmi->pdev->dev));
if (reg >= variant->num_registers) { if (reg >= variant->num_registers) {
dev_warn(&hdmi->pdev->dev, dev_warn(&hdmi->pdev->dev,
"Invalid register ID %u\n", reg); "Invalid register ID %u\n", reg);
...@@ -438,6 +442,8 @@ static inline void vc4_hdmi_write(struct vc4_hdmi *hdmi, ...@@ -438,6 +442,8 @@ static inline void vc4_hdmi_write(struct vc4_hdmi *hdmi,
const struct vc4_hdmi_variant *variant = hdmi->variant; const struct vc4_hdmi_variant *variant = hdmi->variant;
void __iomem *base; void __iomem *base;
WARN_ON(!pm_runtime_active(&hdmi->pdev->dev));
if (reg >= variant->num_registers) { if (reg >= variant->num_registers) {
dev_warn(&hdmi->pdev->dev, dev_warn(&hdmi->pdev->dev,
"Invalid register ID %u\n", reg); "Invalid register ID %u\n", reg);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment