From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2F930D730B2 for ; Fri, 3 Apr 2026 18:53:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+s1mKJgkAyXHWWRIQ73WXtPfNRH5bR/tHXn3Lhh760w=; b=sro1vfoEJW26oF JMPaopXM3r5BaU/BFLuz3uquJlSH9I7byhZudhFge23eF8qmUBitgMCbDeASkFiy1p4YIzmr1ZA/l /afvAlD2PhwqhWNjqIVRevwot45yJCJIRTqNOSeLIGaPClp1ew4JRkD5xQlPMfXBQ3FSyfknd+j5o iJCb8HtVPXaoO/Leu0T8NFGr1CnT4TIGNIqdtpszE14W9hhsABECwnIgJM61nFpXMapGbFUI6lmfq BRSIJjsYOht4EvD6T7BFVtiVKQMB1LF+1Cy9ArwQVZaiqGyyT5UouILr4Bl3gdXpdtC+ApA37HChV WRfy6TyMrsgJUwKxmcOQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1w8jeI-00000002Rzx-1Jg0; Fri, 03 Apr 2026 18:53:42 +0000 Received: from smtp.forwardemail.net ([121.127.44.66]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1w8jeF-00000002Rz4-3rXA for linux-rockchip@lists.infradead.org; Fri, 03 Apr 2026 18:53:41 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1775242419; bh=pe3WybZNeUJIO2QUCIejSIVOx5pW2u0sllJqY71fyGQ=; b=xo7mydbQkhpGEVQccIgtagtL38y6qdzPeT9FZ/ky6LY9hL/Zvnq3+2vphHpTsWBn3gjij8LPq OiYYw255QGkGJ2sBujFP5qemHukvrXZlZF+B9TGYCl00m8YKiWcrv+oSUvECCIntyAzQBGRePBC dju82T/T72uj4EFcRS8ESSebywbyT7aM4IictD103xZnFDaoX2fyfq5vSTc/j1Sm16ymm6zFhyn zVxyonffYykqDdRuAEKBvbtEez/ngriAjdZy4tJAAm/zb/gnZsxfF3XoxG/5gm/k8k+m0IcMFUO EVywxligqaqaMnXr2+ILFkrwUAWgEcpkW1egkITeTFAQ== X-Forward-Email-ID: 69d00cafdc98192b40b89324 X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 121.127.44.66 X-Forward-Email-Version: 2.6.68 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Lucas Stach Cc: Christian Hewitt , Diederik de Haas , dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 02/13] drm: bridge: dw_hdmi: Only notify connected status on HPD interrupt Date: Fri, 3 Apr 2026 18:52:48 +0000 Message-ID: <20260403185303.80748-3-jonas@kwiboo.se> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260403185303.80748-1-jonas@kwiboo.se> References: <20260403185303.80748-1-jonas@kwiboo.se> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260403_115340_079096_DF53865F X-CRM114-Status: GOOD ( 13.76 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org 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 happens when the HDMI cable is unplugged, shortly before the HPD is changed to low. The original intent of commit da09daf88108 ("drm: bridge: dw_hdmi: only trigger hotplug event on link change") was to signal hotplug event at correct interrupt states. Based on the commit message the intent was to trigger hotplug event: - when HPD goes high (plugin) - when both HPD and RX sense has gone low (plugout) However, following interrupt state changes can typically be observed when the HDMI cable is unplugged: - RX interrupt: HPD=high RX=low -> triggers a connected event - HPD interrupt: HPD=low RX=low -> triggers a disconnected event 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. After this a connected event should be triggered when HPD=high at HPD interrupt, and a disconnected event should be triggered when both HPD=low and RX=low at either HPD or RX interrupt. Fixes: da09daf88108 ("drm: bridge: dw_hdmi: only trigger hotplug event on link change") Signed-off-by: Jonas Karlman --- v3: Update commit message 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 9febcb58a1df..3b851f12adfe 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -3140,7 +3140,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))) -- 2.53.0 _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip