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 1D4A0CCF2DA for ; Mon, 19 Oct 2026 08:59:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=NyN2pPC4Hh7ZjgeCYVaIxeVTEwGK+1q8bxHsqrEerMs=; b=ZERwWVs8zlheyqbE0QE2vS0fH8 uduE75HV1ZOAWUvK8VncfmpH1GJ2V5r+CAqlpXN/t6EqbMDriEZMz3rj+P28UGpzhsyHiQd+f1M1A dNxx6EZiOmZ7W4pbH95sEjTPoQjz/GVYXOq+Bn2wNHkNeuqLbWbLnHbmShlxyZNvs97sceS5eXfix WYWlUStoAUIsjjxqzHM6fTP+U5yKLY1ex4D8mJIngo5HZ347vlrYgCrewFll3oIuWCgxhCRPbaTi3 2Vm4yVfxniEUvdlV8qctw4s6SG7nAn15YNzRYu1AJU0LYMvb04mhtQXS8/EMNXHhiXCY59NFETBaP 80RVIEMQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xIjDP-00000006vaL-45sD; Mon, 19 Oct 2026 08:59:31 +0000 Received: from mail-m127162.xmail.ntesmail.com ([115.236.127.162]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xIjDA-00000006vH8-0s4z; Mon, 19 Oct 2026 08:59:17 +0000 Received: from zyb-HP-ProDesk-680-G2-MT.. (unknown [61.154.14.86]) by smtp.qiye.163.com (Hmail) with ESMTP id 5189b8614; Mon, 19 Oct 2026 16:59:11 +0800 (GMT+08:00) From: Damon Ding To: Andrzej Hajda , Neil Armstrong , Robert Foss , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Jingoo Han , Inki Dae , Seung-Woo Kim , Kyungmin Park , Krzysztof Kozlowski , Peter Griffin , Alim Akhtar , Heiko Stuebner Cc: Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Luca Ceresoli , Dmitry Baryshkov , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-rockchip@lists.infradead.org, Damon Ding Subject: [PATCH v4 09/14] drm/bridge: analogix_dp: Move IRQ enable/disable to bind/unbind Date: Mon, 19 Oct 2026 16:58:31 +0800 Message-Id: <20261019085836.3065008-10-damon.ding@rock-chips.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20261019085836.3065008-1-damon.ding@rock-chips.com> References: <20261019085836.3065008-1-damon.ding@rock-chips.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-HM-Tid: 0aa15362e16603a8kunm6ee755052eac52 X-HM-MType: 1 X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFITzdXWRgWCB1ZQUpXWS1ZQUlXWQ8JGhUIEh9ZQVkaTh9JVhoZHk9MH0xMGkpLS1YVFA kWGhdVEwETFhoSFyQUDg9ZV1kYEgtZQVlNSlVKTk9VSk9VQ01ZV1kWGg8SFR0UWUFZT0tIVUpLSU 9PT0hVSktLVUpCS0tZBg++ DKIM-Signature: a=rsa-sha256; b=XAPLvrI9xGz4CDuDdPqj2XN6U+5rU5nXMfI1I3XZQQTWw1reduvAlKa1xGMHSfHbOCWZimvvp7WJb6+CXzH5FZsJ26gvrQrRWotyZQN3XT3LPszJVvJQ+AO4ixpxesnkIb5oBU1rSiGNVgpZzhhLcb/Fit34DaqRbVzNNWmtl9s=; c=relaxed/relaxed; s=default; d=rock-chips.com; v=1; bh=NyN2pPC4Hh7ZjgeCYVaIxeVTEwGK+1q8bxHsqrEerMs=; h=date:mime-version:subject:message-id:from; X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20261019_015916_460821_F81AB89B X-CRM114-Status: GOOD ( 12.21 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Move enable_irq()/disable_irq() from bridge enable/disable handlers into analogix_dp_bind()/analogix_dp_unbind(). This keeps the IRQ active throughout the device lifecycle rather than only during display activity, which is a prerequisite for supporting HPD detection while the display pipeline is inactive. This is safe because the HPD interrupt sources are now managed explicitly: - Native HPD interrupt generation depends on the controller's power domain and clock. When runtime PM has suspended the device, the controller cannot produce interrupts, so the hardirq is never entered on an unpowered device. - For GPIO HPD mode, the native HPD interrupts are muted in analogix_dp_config_interrupt(), and the hardirq reads only the GPIO line via gpiod_get_value(), which is safe while the controller is suspended. Tested-by: Heiko Stuebner Signed-off-by: Damon Ding --- Changes in v3: - Move this patch after mute/unmute related modification and detail the commit msg. Changes in v4: - Add Tested-by tag. --- drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index b92d28546192..addd319719de 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -1018,7 +1018,6 @@ static int analogix_dp_set_bridge(struct analogix_dp_device *dp) goto out_dp_init; } - enable_irq(dp->irq); return 0; out_dp_init: @@ -1160,8 +1159,6 @@ static void analogix_dp_bridge_disable(struct drm_bridge *bridge) if (dp->dpms_mode != DRM_MODE_DPMS_ON) return; - disable_irq(dp->irq); - analogix_dp_set_analog_power_down(dp, POWER_ALL, 1); pm_runtime_put_sync(dp->dev); @@ -1574,6 +1571,8 @@ int analogix_dp_bind(struct analogix_dp_device *dp, struct drm_device *drm_dev) goto err_unregister_aux; } + enable_irq(dp->irq); + return 0; err_unregister_aux: @@ -1585,6 +1584,7 @@ EXPORT_SYMBOL_GPL(analogix_dp_bind); void analogix_dp_unbind(struct analogix_dp_device *dp) { + disable_irq(dp->irq); drm_dp_aux_unregister(&dp->aux); } EXPORT_SYMBOL_GPL(analogix_dp_unbind); -- 2.34.1