[PATCH v2 02/10] drm: bridge: dw_hdmi: Only notify connected status on HPD interrupt
Neil Armstrong
neil.armstrong at linaro.org
Mon Sep 9 06:16:56 PDT 2024
On 08/09/2024 15:28, Jonas Karlman wrote:
> drm_helper_hpd_irq_event() and drm_bridge_hpd_notify() may incorrectly
> be called with a connected status when HPD is high and RX sense is
> changed. This typically happen when the HDMI cable is unplugged, shortly
> before the HPD is changed to low.
>
> Fix this by only notify connected status on the HPD interrupt when HPD
> is going high, not on the RX sense interrupt when RX sense is changed.
>
> Fixes: da09daf88108 ("drm: bridge: dw_hdmi: only trigger hotplug event on link change")
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
> ---
> v2: New patch
> ---
> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> index 9e7f86a0bf5c..055fc9848df4 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> @@ -3123,7 +3123,8 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
> mutex_unlock(&hdmi->cec_notifier_mutex);
> }
>
> - if (phy_stat & HDMI_PHY_HPD)
> + if ((intr_stat & HDMI_IH_PHY_STAT0_HPD) &&
> + (phy_stat & HDMI_PHY_HPD))
> status = connector_status_connected;
>
> if (!(phy_stat & (HDMI_PHY_HPD | HDMI_PHY_RX_SENSE)))
Perhaps this should be also checked for the other lines checking HDMI_PHY_HPD ?
Neil
More information about the Linux-rockchip
mailing list