Skip to content

Commit

Permalink
drm/vc4: hdmi: Warn if we access the controller while disabled
Browse files Browse the repository at this point in the history
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: Dave Stevenson <dave.stevenson@raspberrypi.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20210819135931.895976-7-maxime@cerno.tech
  • Loading branch information
Maxime Ripard committed Oct 25, 2021
1 parent 20b0dfa commit 14e193b
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/gpu/drm/vc4/vc4_hdmi_regs.h
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -412,6 +414,8 @@ static inline u32 vc4_hdmi_read(struct vc4_hdmi *hdmi,
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);
Expand All @@ -438,6 +442,8 @@ static inline void vc4_hdmi_write(struct vc4_hdmi *hdmi,
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);
Expand Down

0 comments on commit 14e193b

Please sign in to comment.