On Sun, Jun 30, 2024 at 05:36:47PM GMT, Stefan Wahren wrote: > The commit 0f5251339eda ("drm/vc4: hdmi: Make sure the controller is > powered in detect") introduced the necessary power management handling > to avoid register access while controller is powered down. > Unfortunately it just print a warning if pm_runtime_resume_and_get() > fails and proceed anyway. > > This could happen during suspend to idle. So we must assume it is unsafe > to access the HDMI register. So bail out properly. > > Fixes: 0f5251339eda ("drm/vc4: hdmi: Make sure the controller is powered in detect") > Signed-off-by: Stefan Wahren <wahrenst@xxxxxxx> > --- > drivers/gpu/drm/vc4/vc4_hdmi.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c > index d57c4a5948c8..b3a42b709718 100644 > --- a/drivers/gpu/drm/vc4/vc4_hdmi.c > +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c > @@ -429,6 +429,7 @@ static int vc4_hdmi_connector_detect_ctx(struct drm_connector *connector, > { > struct vc4_hdmi *vc4_hdmi = connector_to_vc4_hdmi(connector); > enum drm_connector_status status = connector_status_disconnected; > + int ret; > > /* > * NOTE: This function should really take vc4_hdmi->mutex, but > @@ -441,7 +442,11 @@ static int vc4_hdmi_connector_detect_ctx(struct drm_connector *connector, > * the lock for now. > */ > > - WARN_ON(pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev)); > + ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev); > + if (ret) { > + DRM_ERROR("Failed to retain HDMI power domain: %d\n", ret); We need to use drm_err here Maxime
Attachment:
signature.asc
Description: PGP signature