Commit "drm/vc4: hdmi: Convert to gpiod" changes the behavior of
vc4_hdmi_connector_detect() which results into CPU hangs in case there
is no HDMI connected. Let's restore the old behavior.

Reported-by: Nathan Chancellor <nat...@kernel.org>
Reported-by: Ojaswin Mujoo <ojaswi...@gmail.com>
Fixes: 6800234ceee0 ("drm/vc4: hdmi: Convert to gpiod")
Signed-off-by: Stefan Wahren <stefan.wah...@i2se.com>
---
 drivers/gpu/drm/vc4/vc4_hdmi.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index aab1b36..cf8339c 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -168,9 +168,9 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, 
bool force)
 
        WARN_ON(pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev));
 
-       if (vc4_hdmi->hpd_gpio &&
-           gpiod_get_value_cansleep(vc4_hdmi->hpd_gpio)) {
-               connected = true;
+       if (vc4_hdmi->hpd_gpio) {
+               if (gpiod_get_value_cansleep(vc4_hdmi->hpd_gpio))
+                       connected = true;
        } else if (drm_probe_ddc(vc4_hdmi->ddc)) {
                connected = true;
        } else if (HDMI_READ(HDMI_HOTPLUG) & VC4_HDMI_HOTPLUG_CONNECTED) {
-- 
2.7.4

Reply via email to