On Mon, 25 Oct 2021 at 16:29, Maxime Ripard <maxime@xxxxxxxxxx> wrote: > > Prior to commit 6800234ceee0 ("drm/vc4: hdmi: Convert to gpiod"), in the > detect hook, if we had an HPD GPIO we would only rely on it and return > whatever state it was in. > > However, that commit changed that by mistake to only consider the case > where we have a GPIO and it returns a logical high, and would fall back > to the other methods otherwise. > > Since we can read the EDIDs when the HPD signal is low on some displays, > we changed the detection status from disconnected to connected, and we > would ignore an HPD pulse. > > Fixes: 6800234ceee0 ("drm/vc4: hdmi: Convert to gpiod") > Signed-off-by: Maxime Ripard <maxime@xxxxxxxxxx> Reviewed-by: Dave Stevenson <dave.stevenson@xxxxxxxxxxxxxxx> > --- > 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 338968275724..dde67b991ae7 100644 > --- a/drivers/gpu/drm/vc4/vc4_hdmi.c > +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c > @@ -190,9 +190,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 { > unsigned long flags; > u32 hotplug; > -- > 2.31.1 >