From nobody Thu Sep 24 21:19:58 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3B9733AAF5B for ; Sun, 20 Sep 2026 15:01:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916500; cv=none; b=ZVvqTBMelWiFBi4880wr/k3YiOOZOKVR8ydjIPUtNuXu9EFWDTMAED8m5Hl7fZA2ebX82JPwv2y34jLuy/JsQ38vPiHaxe2oXnawqcM2IVj1934Q7rf8Q1OZtJALcEyzUfDiv5rbZN0Yu/tGZLoBFeM2Rc3JpnoKi1HeleKezJA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916500; c=relaxed/simple; bh=WQsv8QazF+E5QQ9hUw9l40V69yXFmn0I2Nu5uJ04hXo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qJxQbkoTZ0u2F01U9CKkKGV2wQzBdchpbrYYGzWHXGuZEry6ByYwHydLgT8P8WqSdjwq4xwrBqPx6oObwSSr1ihxHGp1qCJ6NSjv7WmBmumWdz+k4E+Z0+1MMMv0d+0JqtiWvxYOBbVKbE89BwWJd2vHJHkPMnftXs5llhDY5NY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=VRBBz23x; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=DTynG6BI; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="VRBBz23x"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="DTynG6BI" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68KBnmsY2568986 for ; Sun, 20 Sep 2026 15:01:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= SknP0ek61nWxcALGWerlRGpQ+hsm6XCBNnS1Dt62yI8=; b=VRBBz23x/lhTLFHq vbgWnynOvIuNGZfKl60nmBA/CnhuqEgT1wDLlE/pqvtl1N5tyZwRdSw1YmxX2UOC VrlnWiiVFbnfLfbji0ASw2xVlZlB60g1ZjUCbdrWfUdf+MbR+mSO171p57OQv0cP 5VL4aZSAMNaIH93DLVFl6Th6V6XyNJgztZYWHEECcZUM/ZxFs/48KsWYp6Bcy1Tl qB0ysSK1O1QIin1qYKSA1u95cBe7RjXBRoh1FajDvkvTIyOyHvxp3/ngoa3kqhpH wgGIUF7WtadnN6vdCDRXxwxm2/Ju5YAV3j6+5xg86otCMPEhi9FmG7hl8zcqaRrX 41EkPg== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gsjfuk707-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 20 Sep 2026 15:01:36 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-530256c61b4so50990351cf.3 for ; Sun, 20 Sep 2026 08:01:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789916496; x=1790521296; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=SknP0ek61nWxcALGWerlRGpQ+hsm6XCBNnS1Dt62yI8=; b=DTynG6BIz/T2Z5NrzCnQXU24X9w1w5+V7WEq73Ex0pWbBrX110AS2J1Al8TkeVRz7M 0Vw/cHR8N8Nu1Rhik3l9Cc/2tZu6zVsCQVLpCC93h+UCdQwOR+fXWtLT58lLsb8CrBIm g3NfEQndtaq642Pg2MvdyC2AvZO92FNOkl89scCOw+5cbLriYfO9tr1/FB5jasOAh1h1 bL1TX+zQTh/oVJZJfNsKs04x1dxv16AWbUsbgTur2j7rSpR2A5x94IsaTOEoqP7SB8Cw V3JJ3EeoUkBRP2ZHpz6Rh8souRm59TtdHaw64C1pkaOFiRI8c10YrnByII5R5nt3JmUU yJmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789916496; x=1790521296; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=SknP0ek61nWxcALGWerlRGpQ+hsm6XCBNnS1Dt62yI8=; b=mfghCGYP1p7U2tbcPmf9ZkGMpHZRQPaK3Cltmyy0dKFhZAKQJm9stKzmC0mOdW9aXN o5+I49wgPyQKtlRh/XZ/HKGoYAPh6uwRDbOugGJBP1FOpWEatUNRFDQSSVBBjkQ1IVw3 250Fu0SypMKHW3xEjDHwRS4zU+NSazItgraRtQVPzaCSyi6lo+sm6WwFrVBf7RSfpE96 2BP9PxSiB+k3w1XSEgP15UMRsX0F3t9tZjRVwIgYTtfvrxyxGpZojszgLndd9XHMpwci ig6hGx0E92PbktuY0+GZd3uUkTRrD7ALYmSpy07Ebh38jbQbMlVL+y0C+nBXqHr3y0T+ peVg== X-Forwarded-Encrypted: i=1; AKwUvBx5QqIjA3DTe/mEleNJSwZ2rZvAvlk+eZHLY+ncTf5xznS0BRjHYZSbBrLaDN2KEuW1AcN2zwYAOkC+0IA=@vger.kernel.org X-Gm-Message-State: AFuF++n7pYElwwffYhK9raSlT0qGzmwJXMlO/64zJhV4OY75x0I3Bcn5 DEzfoVb8b+R4HajKFuWSFWlinMzHY3/eP7LT4VGKOMjJzBfa74jXs9XPKoWY9V1CEriAxy2y+xG uO53Cq0cpi1YaSD6VqN01FRTraV9mqf2XUz1Tw/qhGY6yG8hwWL8DgChUzOrV8vLzCFs= X-Gm-Gg: AYBFou1twiap8ZaU3aUarj6HeK9lixt33gQ33ZfOFEeXnZkVuOOl0OfAX0dynZ70STh dKjkl1pOys8V4jkeax7uZoIkG/FvDHmR4X/TucwJGSMstiYYr3/ihelm2geiOeZ9dlXoeuI8aOL HvFx/squI0gl3pbCoWtikRJU0seTNZAWiwY+TuSguqI9Ds7xuG2rQCO98EPZjqPBuJsS7BeBfyN BpxzyNoGC0ieHl0GYmZctWzhZZ9nu8+Yt3ItRee0Yp2KY2X95AiVbnIObyRJKkKdgLkmoGpxGT/ MNjPW+4fotWmGvN6VbsWHUGttn17LQd2zxeDEBV7HUOAejmhlSxcMtS5uVjD5j2jt2wDELxMI65 CGTli4NMhSO6JreI0COvlue7hWPzZRCXyxm2nDEUtWZHxxjqmGD9Rp5kFN2HX8VbCr348jklzwS e0GYl75zX2twy3 X-Received: by 2002:a05:622a:4d4d:b0:532:9f22:3072 with SMTP id d75a77b69052e-532b732a721mr69391691cf.48.1789916496015; Sun, 20 Sep 2026 08:01:36 -0700 (PDT) X-Received: by 2002:a05:622a:4d4d:b0:532:9f22:3072 with SMTP id d75a77b69052e-532b732a721mr69390801cf.48.1789916495488; Sun, 20 Sep 2026 08:01:35 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-3a6163d7119sm4090061fa.30.2026.09.20.08.01.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Sep 2026 08:01:34 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 20 Sep 2026 18:01:26 +0300 Subject: [PATCH v5 1/8] drm/connector: report out-of-band IRQ_HPD events Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-hpd-irq-events-v5-1-ff1de0090c72@oss.qualcomm.com> References: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> In-Reply-To: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou , Luca Ceresoli , Francesco Dolcini , Abel Vesa Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6882; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=WQsv8QazF+E5QQ9hUw9l40V69yXFmn0I2Nu5uJ04hXo=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqr/VH7SDFu/E9XO4Ljq+GFlzDqUHCr1Atofft3 XNL0tySY9CJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaq/1RwAKCRCLPIo+Aiko 1WqsCACd+ETHhlHes6LYxN908aTCxnlg8YPDwcAKEl6ccZM/R905V27dwX3LkSnwi67C8bbG7yo 6Sz7dGScskcTUID4khs3iJVPJclCXA3GP+P+f27/HhozuwQqbrSXhI7oFP147QdJkrW9314X3oh qHB2c3dQ51Lrcop2wOnPS7CthWnRqjR7xh0bJNP/golUD+FZ+zOxyPkMApKfehCTNn/6l3kaT6G RK04ujgV9DXHYgfhNXajrWrhFopVdRQDqiucqCGGNR4NgzjVQCay+H1Ok0jqJ05MpyCj36wIEcS pnjwTo+kxGzrCrgMZ9G3mrP+FF+AhQ+7pS4JAuhkR6+dgHjh X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfXwSnPxbH2DTsY mnWajcjfEzURSgtlp/M1F6lrnrKyWLLRw4VdL0x7km0RzQTnPEiD2CE24HGUXDGPtsFIOtlP9UF m+uRnz6rjrWxbeQldE9W9Aj1wZ8GaeU= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfXz1LVQE+paq6z 6cbXZfygw9IsCyplOxP4jWuysLLSjoXeyvjy6EBZ+RJQTN/o6uRTmPN87759FTGV76IDBHeApzt kPpLTn5+Db3C0rm3X8mQDeXsINU+f46e08EryerI74bP+vo+jj/76LQB5v0jMRpXmkgL4k9Bmwt uA2QIyClkuZt9rRC/Id+A2BRZMayUaD2n6BDSw6mwwk35zbctz+PywTKLQ8uwW7aIK6heBbNLdV +7x11xNptd4vZ/zUdw+FeJwlmnGCdrd6DdQfp+B0f3xBlY2fYT8htH839bGl4RFnhRnecc3l7P+ RsDd/bhYqtF/IoFNqNGid8AZT+ehsxgVCMGE4TdnyDIQ/WNVW3wE7WpASe8Tta3VraTGJMUsFli 5PifPzVOvGkE40OiuQqYr713UO1Kz7zWG4JMjaEusVTe8h3YwBGZjaP7FKsA01AhV9F7IWDWaQp FXfRPxaJE2E7FzZcGow== X-Proofpoint-ORIG-GUID: ytkFT0dqRtIJPN37rlkETQjwbg_E-htT X-Proofpoint-GUID: ytkFT0dqRtIJPN37rlkETQjwbg_E-htT X-Authority-Analysis: v=2.4 cv=QKv91QLL c=1 sm=1 tr=0 ts=6aaff550 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=m8VRbRV2F-575zZTFkcA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-20_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 malwarescore=0 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609200219 The DisplayPort standard defines a special kind of events called IRQ. These events are used to notify DP Source about the events on the Sink side. It is extremely important for DP MST handling, where the MST events are reported through this IRQ. In case of the USB-C DP AltMode there is no actual HPD pulse, but the events are reported through the bits in the AltMode VDOs. Rename drm_connector_oob_hotplug_event() to drm_connector_dp_oob_status() and extend its interface to report IRQ events to the DisplayPort Sink drivers. Acked-by: Heikki Krogerus Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/drm_connector.c | 20 ++++++++++++-------- drivers/usb/typec/altmodes/displayport.c | 23 +++++++++++++++-------- include/drm/drm_connector.h | 21 +++++++++++++++++++-- 3 files changed, 46 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connecto= r.c index 8b4baed060f3..5d4945ea1e95 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -3672,20 +3672,24 @@ struct drm_connector *drm_connector_find_by_fwnode(= struct fwnode_handle *fwnode) } =20 /** - * drm_connector_oob_hotplug_event - Report out-of-band hotplug event to c= onnector + * drm_connector_dp_oob_status - Report out-of-band hotplug event to Displ= ayPort connector * @connector_fwnode: fwnode_handle to report the event on * @status: hot plug detect logical state + * @event: additional event reported by the sink without changing the HPD = state + * (or in addition to such a change). * - * On some hardware a hotplug event notification may come from outside the= display - * driver / device. An example of this is some USB Type-C setups where the= hardware - * muxes the DisplayPort data and aux-lines but does not pass the altmode = HPD - * status bit to the GPU's DP HPD pin. + * In some cases when DisplayPort signals are being routed through the USB + * Type-C port the hotplug event notifications come from outside of the di= splay + * driver / device. In this case hardware muxes the DisplayPort data and + * AUX-lines but does not pass the altmode HPD status bit to the GPU's DP = HPD + * pin. * * This function can be used to report these out-of-band events after obta= ining * a drm_connector reference through calling drm_connector_find_by_fwnode(= ). */ -void drm_connector_oob_hotplug_event(struct fwnode_handle *connector_fwnod= e, - enum drm_connector_status status) +void drm_connector_dp_oob_status(struct fwnode_handle *connector_fwnode, + enum drm_connector_status status, + enum drm_connector_dp_event event) { struct drm_connector *connector; =20 @@ -3698,7 +3702,7 @@ void drm_connector_oob_hotplug_event(struct fwnode_ha= ndle *connector_fwnode, =20 drm_connector_put(connector); } -EXPORT_SYMBOL(drm_connector_oob_hotplug_event); +EXPORT_SYMBOL(drm_connector_dp_oob_status); =20 /** * drm_connector_get_color_format - Return connector color format of @conn= _state diff --git a/drivers/usb/typec/altmodes/displayport.c b/drivers/usb/typec/a= ltmodes/displayport.c index 51c92dd887ab..344a13c2a296 100644 --- a/drivers/usb/typec/altmodes/displayport.c +++ b/drivers/usb/typec/altmodes/displayport.c @@ -187,9 +187,11 @@ static int dp_altmode_status_update(struct dp_altmode = *dp) dp->pending_irq_hpd =3D true; } } else { - drm_connector_oob_hotplug_event(dp->connector_fwnode, + drm_connector_dp_oob_status(dp->connector_fwnode, hpd ? connector_status_connected : - connector_status_disconnected); + connector_status_disconnected, + (hpd && irq_hpd) ? DRM_CONNECTOR_DP_IRQ_HPD : + DRM_CONNECTOR_NO_EXTRA_STATUS); dp->hpd =3D hpd; sysfs_notify(&dp->alt->dev.kobj, "displayport", "hpd"); if (hpd && irq_hpd) { @@ -211,8 +213,11 @@ static int dp_altmode_configured(struct dp_altmode *dp) * configuration is complete to signal HPD. */ if (dp->pending_hpd) { - drm_connector_oob_hotplug_event(dp->connector_fwnode, - connector_status_connected); + drm_connector_dp_oob_status(dp->connector_fwnode, + connector_status_connected, + dp->pending_irq_hpd ? + DRM_CONNECTOR_DP_IRQ_HPD : + DRM_CONNECTOR_NO_EXTRA_STATUS); sysfs_notify(&dp->alt->dev.kobj, "displayport", "hpd"); dp->pending_hpd =3D false; if (dp->pending_irq_hpd) { @@ -396,8 +401,9 @@ static int dp_altmode_vdm(struct typec_altmode *alt, dp->data.status =3D 0; dp->data.conf =3D 0; if (dp->hpd) { - drm_connector_oob_hotplug_event(dp->connector_fwnode, - connector_status_disconnected); + drm_connector_dp_oob_status(dp->connector_fwnode, + connector_status_disconnected, + DRM_CONNECTOR_NO_EXTRA_STATUS); dp->hpd =3D false; sysfs_notify(&dp->alt->dev.kobj, "displayport", "hpd"); } @@ -844,8 +850,9 @@ void dp_altmode_remove(struct typec_altmode *alt) typec_altmode_put_plug(dp->plug_prime); =20 if (dp->connector_fwnode) { - drm_connector_oob_hotplug_event(dp->connector_fwnode, - connector_status_disconnected); + drm_connector_dp_oob_status(dp->connector_fwnode, + connector_status_disconnected, + DRM_CONNECTOR_NO_EXTRA_STATUS); =20 fwnode_handle_put(dp->connector_fwnode); } diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index c61345e6fb08..906aaefca7e1 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -91,6 +91,22 @@ enum drm_connector_status { connector_status_unknown =3D 3, }; =20 +/** + * enum drm_connector_dp_event - additional events sent by the sink / + * display together or in replacement of the HPD status changes. + */ +enum drm_connector_dp_event { + /** + * @DRM_CONNECTOR_NO_EXTRA_STATUS: No additional status reported. + */ + DRM_CONNECTOR_NO_EXTRA_STATUS, + /** + * @DRM_CONNECTOR_DP_IRQ_HPD: DisplayPort Sink has sent the + * IRQ_HPD (either by the HPD short pulse or via the AltMode event). + */ + DRM_CONNECTOR_DP_IRQ_HPD, +}; + /** * enum drm_connector_registration_state - userspace registration status f= or * a &drm_connector @@ -2703,8 +2719,9 @@ drm_connector_is_unregistered(struct drm_connector *c= onnector) DRM_CONNECTOR_UNREGISTERED; } =20 -void drm_connector_oob_hotplug_event(struct fwnode_handle *connector_fwnod= e, - enum drm_connector_status status); +void drm_connector_dp_oob_status(struct fwnode_handle *connector_fwnode, + enum drm_connector_status status, + enum drm_connector_dp_event event); enum drm_connector_color_format drm_connector_get_color_format(const struct drm_connector_state *conn_stat= e); const char *drm_get_connector_type_name(unsigned int connector_type); --=20 2.47.3 From nobody Thu Sep 24 21:19:58 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CFAA83AFCF0 for ; Sun, 20 Sep 2026 15:01:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916502; cv=none; b=u3nuZMGH3rT8BFiZJrjQ5j5lpqxIodFUd2kMgAvqgf15T4Y78g4uN7bZZdpZvpSJMxR9HpR31tPo0XqPaW86VRE+dSgz4cT/EqmJIgh69M8Smkxq7RJGaV6ohs01QqSNEHus03jWZuhLqVGy7CA+AhteAp3+m8tM/UU/sJ8YhK8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916502; c=relaxed/simple; bh=97+qg8LHxoBgWChDxeF1jYc+0/ONjYDkNYGaAee/3lk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KB9xpgCpViuFtgEh6oAialeGVo1thqyKTDtvU3LIBqTkJnL9+8GZkc9EW7RxcDkriApccRR64tsQ0I1w+rugTFObu8En580Q2+w6NYX+G/GOcQAdlVRrMWozEwPeGJSX0R6j5hpBFuAfcJEiyGYvWZ3E0oFtvANw+5m05ZaoLX0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=gWyQcel5; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Csv4lm7r; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="gWyQcel5"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Csv4lm7r" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68KBo5R13271649 for ; Sun, 20 Sep 2026 15:01:39 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= R/VCzt/+en45nD4RiQsh8P89hnWT5xVva5XvHvRUZ+c=; b=gWyQcel5PQlGIvaF 89v0J16W2kHow0eXcQk1Ikpk1UPb6+b0NyHDf73otBPE+HUejqvOV+/3rwcR+rSH U5tTdN0hyaMHO/toVhiJrQEwBx+XVWbhEdSdMFnrj2S7rZvfUiV3K34pTvOPkrVG 5nBkaHu1g/PB7Psd/W5cXRb4uyvhcGZpEga5gmyBYNx5Sed3VcBk6L8s++B6t5Cd 85Slr/CIGVr8XBZFhia0Aloy0DIF4rnnb+VN/6v70Ew/vV8ZvvP0ac/wL9F3pxTp Erf/PklqnDeZRWMiIPbxMQklb19aIVIxaiYql6XDrTCx4B6axyeKlqse+lhaYhR9 DJO26g== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gshbsbc6u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 20 Sep 2026 15:01:38 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-5328dae1305so72605541cf.0 for ; Sun, 20 Sep 2026 08:01:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789916498; x=1790521298; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=R/VCzt/+en45nD4RiQsh8P89hnWT5xVva5XvHvRUZ+c=; b=Csv4lm7rqvhw3ubxRT7bNPeqHClUbXZ4AwoaZ67EJ/4alnpkerdDsyENL5BHqGw+cV NMiVxvyRiz8o0u6jy2/PREL+e9UXSaBSQa7ptscGmtnc7UYrouDuzVmmPmPM+GYGY2oa Fkqmm1g6hjYQlYRUuFSiR8s+AUB7U3E1K3If0EYD8vXw0QVWZGAOVo/08+FE+Ft71WwA 5G7a8c1rg/QblwZ0C4HNwRZHYUjTo0olwbqHYZEY8C9Jl9hM4FuU2YBBwxINot3OH5Zh 64uhtTzKwwhm6A9KlSkR14FTzaTlYH73Boh5vASuTRFqkNrdcF42n21/U05R0ifQKNEE aPrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789916498; x=1790521298; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=R/VCzt/+en45nD4RiQsh8P89hnWT5xVva5XvHvRUZ+c=; b=zJsi3ZQccMoFT/+i8KMVt/GeiOWcR9b1r7z3SjP1zVdTOl2DzqtarSmf/s9Pb5Gu0a PpkBRqBLRg+TkoXLBIRpox+kh0mcCHF/RIL9aFWqk/LFk0nRH5U+nLrZFMZM8SzdIeCj fUGK/w2TKonSSMZ3OUGfrPMV6EMJSaxLj3rdQfcehWTNwitrVR5nvCqYbngfu5abbuu5 o9ahxtkdGrkw6ZBvNZtM1vNk0mJY+XT0bwgs9z6cNch7AFbj9hpNwL5QtEtDyfXRo7Hg yo/zk/m+/CIIfHOCCiysXB967JxRNsMr0KIGiDzr+9eKdvTdeAGpJ8oNBrAUEDQbLH2i HoYg== X-Forwarded-Encrypted: i=1; AKwUvBwn/Q9mb02VW9fWdHttafqwof+g2/cL+xDTOjGTv9i9qQGj8GyfPSxX/ToFiXRqmjS79bIQKfIwg5bN5Qo=@vger.kernel.org X-Gm-Message-State: AFuF++n6GNQz8HdSfc+1IdYt2EPgsXO7u4ifKrvEcV6gNLszV1w9Swqe 6fXyZGSJ+y3cvhkZGEjWvgchQawQYUQFMo0A1ZLB0JeH3D2iQ716n2QhIN+u8nIrF+y2hD/03Yn tZKaskYeik3Xu9/Wp9EV0GBODtPg9I6sINSPNVb9s9KjR5gEhbygPJVGvVUp8EITJFJk= X-Gm-Gg: AYBFou17cEXz5dsW59CxmQlc1wpWzshiAVJeD3E+xePloOZ+BXf6+ezcKRz7eznb9ce hu1vu9cVRYc8+4oEnV301PoXxMeAjzvHVFaLFhXskmf34ZvBgHFG9+DPiKHvqWDfHuYEKh4ZxoY KDFVsWW2PDzkocRjpXMfefJVcQ6FsyMQJTK5ZuwKsw4zIrid82P/lWD4tgrHxKS36imQhNWlbyu Ep3fucpmxywh9MyMZjYQvbNfGYByaH3utuEdXXP+iPCkrb5UwNr2ddEXgH/oAKxLIbA6k16MODs qaewk1kjMbo/IYRC7SVlsWnfML+J2Vs8dsd+jJcoKGpT6KhfDgx6OP5iDpj68S9A/21ws3GiTHB Kq3jpbZ79WFO8xEpji15vqUDhb3DsZEijpbeJgVOuN09xaSV0Hg2jU0qtgqq9MJe4+LlIF7Tspr cVDEnVESb5JvTd X-Received: by 2002:a05:622a:cc:b0:530:d1d6:792d with SMTP id d75a77b69052e-532b71fbcbamr62544761cf.15.1789916497772; Sun, 20 Sep 2026 08:01:37 -0700 (PDT) X-Received: by 2002:a05:622a:cc:b0:530:d1d6:792d with SMTP id d75a77b69052e-532b71fbcbamr62544181cf.15.1789916497205; Sun, 20 Sep 2026 08:01:37 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-3a6163d7119sm4090061fa.30.2026.09.20.08.01.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Sep 2026 08:01:36 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 20 Sep 2026 18:01:27 +0300 Subject: [PATCH v5 2/8] drm/connector: pass down IRQ_HPD to the drivers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-hpd-irq-events-v5-2-ff1de0090c72@oss.qualcomm.com> References: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> In-Reply-To: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou , Luca Ceresoli , Francesco Dolcini , Abel Vesa Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5324; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=97+qg8LHxoBgWChDxeF1jYc+0/ONjYDkNYGaAee/3lk=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqr/VHQAEbomyPgJF1i4+z0xHxN/ABd0NoA/dTW k3gDKnMyFWJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaq/1RwAKCRCLPIo+Aiko 1fO3CACx3dvdjG5tUF5UKYmmZ3WVKr4NAbrSZvIxkHvDE9/UakP/s3iNZdimLdvdIJmyErbvKAc S1zzrVX1hO69AUkpbXVIMN3d/sEEz5VB2QrnashFbT+beRo23VpkXG5VqybBKszC8RLy3gqDW6I CEvj5tEOZoICbtxS2dkMl3QqN1BcQbFmflrOwuxr8iygJH+izfFEgK6YmP/X4ZwfCAP3ElB8brx l8DTFq8cR0O0ZoQ6f7ZvfJpWTvHQmyh3DPIBjN2QBDGJRLKebNuT0Tu5qO2D75RK9Xtr2aYHXV4 zQ/+vgcDu31BgxRbPGWxvuc4+l+OUlusdfRuL7TSjKIyn1Qs X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: cquEm11piGyYIEaNleLMliyJj4PiCUqH X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfX/1cz6l5ENiSu 6UzSRrkbSWCkEMw9WlqAp33UsO2aVRem5iE8Ee+D/EQp0Y8+atRC8YGU+0L9pJTnWrKgPuO1pjo kF8x3eSDSsHTdBIoQ7HHwv7JSw5SCSF6NvpRZzaD7+U5mGrL9D3lB1LTwnyhbrGX9ntjbE2gZjo AiqhwsxsruojF3SS/OA9rZ06OSDl59kZO0BNvwAV0mnQzDn182/bE48WTjXHS7K392Dj/Hacszm s7gIPCU88D8Wiq1LGDziP/zaZnRTQOLDoKD12IumXIG9O168sqNYpcS4Ihtuy4GRlMo1H6T2MQK x22UcLip4BRmlEFK8Jzyx/9jUYUd9GjWt6BBjecojZ1WlUZzEXHR/xx6kAwD94m6O37cfe4N7wa T/2jjK2kKoyN6rgBcCwQLybsd1Y5YeSrCJ32Ih8NFpee9u2DThpdA6PUtPZ7JNALDY1Rc1y6FPH B8mqgqMB8Bb4S3oPs9g== X-Proofpoint-ORIG-GUID: cquEm11piGyYIEaNleLMliyJj4PiCUqH X-Authority-Analysis: v=2.4 cv=bPqDs/+Z c=1 sm=1 tr=0 ts=6aaff553 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=pGLkceISAAAA:8 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=Uld_eVi5zExU9UbbJsYA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfX8D25n+FwGsp+ agJkST8sbuUH/ry+MP6ejUQ97PHVPkfAWKEnacGCtr3aADnbolSzG9jIL1DQqIVTJvNW9JCthLk cKdxI6oUqVxS57XWs4RJcRXYQ/Qt9OQ= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-20_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 impostorscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609200219 The DisplayPort standard defines a special kind of HPD events called IRQ_HPD. These events are used to notify DP Source about the events on the Sink side. Extend drm_connector_funcs::oob_hotplug_event() to pass the notifications about the IRQ_HPD events down to the individual drivers, letting them handle those as required. Reviewed-by: Pengyu Luo Acked-by: Heikki Krogerus Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/display/drm_bridge_connector.c | 17 ++++++++++------- drivers/gpu/drm/drm_connector.c | 2 +- drivers/gpu/drm/i915/display/intel_dp.c | 3 ++- include/drm/drm_connector.h | 3 ++- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c b/drivers/gpu/d= rm/display/drm_bridge_connector.c index 00feb73e63d7..a51567d19550 100644 --- a/drivers/gpu/drm/display/drm_bridge_connector.c +++ b/drivers/gpu/drm/display/drm_bridge_connector.c @@ -141,7 +141,8 @@ struct drm_bridge_connector { */ =20 static void drm_bridge_connector_hpd_notify(struct drm_connector *connecto= r, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_dp_event event) { struct drm_bridge_connector *bridge_connector =3D to_drm_bridge_connector(connector); @@ -154,7 +155,8 @@ static void drm_bridge_connector_hpd_notify(struct drm_= connector *connector, } =20 static void drm_bridge_connector_handle_hpd(struct drm_bridge_connector *d= rm_bridge_connector, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_dp_event event) { struct drm_connector *connector =3D &drm_bridge_connector->base; struct drm_device *dev =3D connector->dev; @@ -163,7 +165,7 @@ static void drm_bridge_connector_handle_hpd(struct drm_= bridge_connector *drm_bri connector->status =3D status; mutex_unlock(&dev->mode_config.mutex); =20 - drm_bridge_connector_hpd_notify(connector, status); + drm_bridge_connector_hpd_notify(connector, status, event); =20 drm_kms_helper_connector_hotplug_event(connector); } @@ -171,16 +173,17 @@ static void drm_bridge_connector_handle_hpd(struct dr= m_bridge_connector *drm_bri static void drm_bridge_connector_hpd_cb(void *cb_data, enum drm_connector_status status) { - drm_bridge_connector_handle_hpd(cb_data, status); + drm_bridge_connector_handle_hpd(cb_data, status, DRM_CONNECTOR_NO_EXTRA_S= TATUS); } =20 static void drm_bridge_connector_oob_hotplug_event(struct drm_connector *c= onnector, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_dp_event event) { struct drm_bridge_connector *bridge_connector =3D to_drm_bridge_connector(connector); =20 - drm_bridge_connector_handle_hpd(bridge_connector, status); + drm_bridge_connector_handle_hpd(bridge_connector, status, event); } =20 static void drm_bridge_connector_enable_hpd(struct drm_connector *connecto= r) @@ -223,7 +226,7 @@ drm_bridge_connector_detect(struct drm_connector *conne= ctor, bool force) if (hdmi) drm_atomic_helper_connector_hdmi_hotplug(connector, status); =20 - drm_bridge_connector_hpd_notify(connector, status); + drm_bridge_connector_hpd_notify(connector, status, DRM_CONNECTOR_NO_EXTR= A_STATUS); } else { switch (connector->connector_type) { case DRM_MODE_CONNECTOR_DPI: diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connecto= r.c index 5d4945ea1e95..f0facccb7859 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -3698,7 +3698,7 @@ void drm_connector_dp_oob_status(struct fwnode_handle= *connector_fwnode, return; =20 if (connector->funcs->oob_hotplug_event) - connector->funcs->oob_hotplug_event(connector, status); + connector->funcs->oob_hotplug_event(connector, status, event); =20 drm_connector_put(connector); } diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915= /display/intel_dp.c index 50ed615cf0f6..a2acff240b45 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -6800,7 +6800,8 @@ static int intel_dp_connector_atomic_check(struct drm= _connector *_connector, } =20 static void intel_dp_oob_hotplug_event(struct drm_connector *_connector, - enum drm_connector_status hpd_state) + enum drm_connector_status hpd_state, + enum drm_connector_dp_event event) { struct intel_connector *connector =3D to_intel_connector(_connector); struct intel_display *display =3D to_intel_display(connector); diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index 906aaefca7e1..c3374cd2598e 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -1884,7 +1884,8 @@ struct drm_connector_funcs { * has been received from a source outside the display driver / device. */ void (*oob_hotplug_event)(struct drm_connector *connector, - enum drm_connector_status status); + enum drm_connector_status status, + enum drm_connector_dp_event event); =20 /** * @debugfs_init: --=20 2.47.3 From nobody Thu Sep 24 21:19:58 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EEEFD3C3BF1 for ; Sun, 20 Sep 2026 15:01:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916504; cv=none; b=WujqAGaGHp9LnGWZzamGjTeLw+iX4aV4gv1YFVGzswmfDx6ttfsa68/0bdlthv7O6SwYP/+ak2gmQLax1yiIqnV5I9K5aYvM7KJoaO4zjn6lzcCyjvOE2yoeK0Au1BbfSmto5CaPx+qGo0ZEkVDTiTcVcY1HXJJLNGhIK5d9YxM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916504; c=relaxed/simple; bh=EVgrHj1tZBs51ETDgVLuzBSX1Fd5Ddi56a5fYfUb7ro=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MgG6Jr56JQy6u48w1xclcSbpwJprZwU/+cNNBL06owMui7+31OxqvGSvUaHjGV5Yejs7/Iis0BQWyxgh3Us/LMn1qdxOJXVmeOkycDufNhThMzfkZQyWvzS/Tz0EsoCITuOBIPx4WSXLhpnDg4/hwrIsfKvOdEDNoW4f3ldAzdA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=D7CittKQ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eoTsMVYf; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="D7CittKQ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eoTsMVYf" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68KBoEnK2761642 for ; Sun, 20 Sep 2026 15:01:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= XXWAWnwnkyxJNop1YmIHyAiC0W2g9ZZFzjEZKgzs1qI=; b=D7CittKQZRPVq5UC NzezV2mRx7HM5unMGn4yWg0e9QyT7guxtZ2apeq28m24DXT5UVEUSSLkto3AZaoX RR6aTlY0GH1tuA9eBSBw49k783rdUKHLw2x9fhmdHVwfvPuaYkS/gcRs6S50dme1 jd4Ue4hnc4uvbP4KiBFqn2EsF/7eMpG87+y9f7zUiJoEcByyQSzcu59i1nNfh/TO THdX2yS3N4edXwkhE7gYvpS2NuPU7zzwi9G6LEPPI1zVWTp0mXf7hi/cAFnMX6wr X37003zGJy0bCbxvWcIkiqQVzxhsS/fI3GomsRvVQu5lASoN1ykXMI/H35arImx/ EA2SRQ== Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gshd63b35-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 20 Sep 2026 15:01:40 +0000 (GMT) Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-78a5a291af3so2149909137.0 for ; Sun, 20 Sep 2026 08:01:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789916500; x=1790521300; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=XXWAWnwnkyxJNop1YmIHyAiC0W2g9ZZFzjEZKgzs1qI=; b=eoTsMVYf/rwLTu4YukIH1gFAMELZZFF9ovmnE/T+vJg5K5KkMCX4VV9YnoGyWsPEgd ph387LUm+BAXYIN9Ny5izQexy6QxaA9iohHnNGLHDtoEj5opPX0g5xqI+5bIE9QvapTh aY2kFTUbw0VsVqH53xfmybf8475maAvTIxntH91g1TlJ8/dsvcXpvYqlDaOJdJ9NvYee eLOPSxdekp1uvkhD18u3YOyCG9/F8KQxmrJz597gSy2isPD833gPq1vjNOnusWSc/TrV 6LMQ+ehYEOvzh3hw4nqkaLf1ZGNJ4Y/a/4QQw0mxcL/bjsJ4pc6K2o1KmYzN3VYJyMyo n2Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789916500; x=1790521300; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=XXWAWnwnkyxJNop1YmIHyAiC0W2g9ZZFzjEZKgzs1qI=; b=OYZlPEd5Kjh7G4q9a8M/Oy745OsjtYjrX6eDPCsGNV8IGO+ZfXUxQIKTLgLhVeWfXr kvh2TARcZvDENqfwfr4gdb8kgX7sqeLDP3OGg+xeOBHf8zC27rFizZO11mlq//7On/PW +mDx9rKZJONAT11mMmLTYKWfT5Tv74IKro7p3L7DB59YtFAfk7kHesw1vjQjdkjLWeOv MEIBPqA/JiNoA3yN3tfoB+keB+tXwKABKPCeCFLzx0jeTM4vNvCE37+VgoTD4QtflI8W ZTCXd8l0ST8/lwaBCEWK0hDoZ13yiuhJEVaptXr5bxw8dJ7/Uldn7l1l+eY6V1q0Hqj0 SFcQ== X-Forwarded-Encrypted: i=1; AKwUvBx2MIpPtCa0qLnugLAvHjP/IY5W6h6/oPs78jubmXiyolWiEnfQj9aeg2B6ecZLgkR3Z2aAn1jRtC/+tgc=@vger.kernel.org X-Gm-Message-State: AFuF++lWzwrEGUB0b1tq2+j2P6C2eidAEKKse8oHp4OMQ8lplFqXb4HX kTfTimIKmDLGjiaZ3nZGj7ciUmIN+Dd/zCbFynbvP2nrS4QyRQLGRvOkzMUsBRrb0VQdlFRTvFU AgiTG6HBN8gcEt4zLyEDr7VRcAErcRJszejmHcT/j4kAcnt1noErtg3a/acQUJekniYM= X-Gm-Gg: AYBFou2ApHyCrasp+xt5Dh6PL/qEjkjySalpW2dnvHibefybVObSIbRaJ7Hi0B0Lqy/ BCB1e/LChR8CyJt8IOBsmGfcpsjwV1uO4gnYKjux0QINBPpMQ9EStdChAnGQoTVikhAENxpnerY 6T1MUwCaM5IDwMGBqn8bS+KYwA/H5+TvdYCF/xszywoAStyAgUpcsEa5J2vs7hw45uuqpjpMpog KXGxnOrPEvCl4HoUlFnnHfAXyOh9xFA6LgNxFftrxEsT9DEztUXbGWTO91U/0yGZsVTfgvZgMjA SHbOuHM+D7j7jzsvIU4fRHA/iRehfVZMAM+Ds5vl6fDBRAKnSUOMON/p9lElnSSPSF9mXs6gzeV yeA4+mBkzGUlkwfBVhtZ6z7J6qKDfuiDBWvnnzS1+EzjlgwPyEuZbWVj4Lx3t/5Notfapt6aBYp vD1VcJTlp8Daua X-Received: by 2002:a05:6102:689a:b0:7a7:3485:33e4 with SMTP id ada2fe7eead31-7a7348549b8mr1492102137.33.1789916499548; Sun, 20 Sep 2026 08:01:39 -0700 (PDT) X-Received: by 2002:a05:6102:689a:b0:7a7:3485:33e4 with SMTP id ada2fe7eead31-7a7348549b8mr1492036137.33.1789916499090; Sun, 20 Sep 2026 08:01:39 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-3a6163d7119sm4090061fa.30.2026.09.20.08.01.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Sep 2026 08:01:37 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 20 Sep 2026 18:01:28 +0300 Subject: [PATCH v5 3/8] drm/bridge: aux-hpd: let drivers pass IRQ_HPD events Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-hpd-irq-events-v5-3-ff1de0090c72@oss.qualcomm.com> References: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> In-Reply-To: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou , Luca Ceresoli , Francesco Dolcini , Abel Vesa Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7277; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=EVgrHj1tZBs51ETDgVLuzBSX1Fd5Ddi56a5fYfUb7ro=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqr/VHviHGAAVv1soXfol+wXO8U14A018aUgzNM 6gy+9RNhzWJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaq/1RwAKCRCLPIo+Aiko 1VhPCACAVzX19JL6817I0MNCd9lLSKxJ0lJ09Zepji5qaM+gFtbZqkuEDfCk9lzBBeE1X6ktlRS t51CPFACafuD37D5RZzVdDqLyEYtYcK4HJdPVflqA3dVEKSCohuSN+uNHVvii1pjZML2RPYSONb VlbGrUki/IQDwoEwHkWg4fymUWBCWxDy2y+AHxLgOdNKQPm9hVhvIzGFt7poSRLbd/KzEjDBAJX AN45X6Ux5Syo5KWeuqXn5sNIyKi5cT0Jgwgj4vfGR4Z+pAcLdFp/TvTOnnVb2GKZiJB0xiM2OBS IiE4j2cUIW1hJsyQTkWakDw77VpN9/agr7urnRFJFnUhD9Hf X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfX4rlSBL/aSyEo 5S49FZfO2GsfB/eQw0ju03KU9kdE16lmG0dadORnp5wevMtQErTQr52Bd4U+ZWg876EZne2bKNj QzAlgVUBbwfOaHfGWUhLsyel+sSPBiml0yDHaeSsR8a47i7XKE0YZBQdyOk+tvegha84kWuI9VH 2nWwTtS26HFsVk1MCr+fQJFYvPVIfVd9ylMrGgdOqExpeUAXB/f+M0NcNUj1X8eVq0H3MBPCmWV 0PvE4LVv2EGrF5ylBr6zmgdNaE4RPrrRWp9xdIQvPd/ey1kfNZj6cxKEMmfeLAvdANgmR+BB61H wqW84j5iTlertW+0tcRwBv22Bd4hcQYbzI8kDfF3sbLXWQfo5/5stDdPi/MgGA157dgf6yiZVRb JTrRZ8dRtt4ad9rRkeRwaZp1vFUCpJumHn/UEhxGyT6ajw49EecKK1ecgeqqP47ZCTeBFCAWfYn kz0x2GuwIflDJMnyEhw== X-Authority-Analysis: v=2.4 cv=RMQmjIi+ c=1 sm=1 tr=0 ts=6aaff554 cx=c_pps a=P2rfLEam3zuxRRdjJWA2cw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=pGLkceISAAAA:8 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=sF2-0BiPaN5ps1Od_V4A:9 a=QEXdDO2ut3YA:10 a=ODZdjJIeia2B_SHc_B0f:22 X-Proofpoint-ORIG-GUID: tGOumJ38YHyfsxpFLOMecWtTC9Tc9TCw X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfX/c3i8oFaMb+7 Nj09ZLF8+pTsloLU5RVmADOGF+zPXE5/cPTPYLXK8qMOHhr66enXrZjIAiUjWSRbf8M+ZgXyFDE y95r8vYKwyRFq2REa5kjgkZnywt6B+I= X-Proofpoint-GUID: tGOumJ38YHyfsxpFLOMecWtTC9Tc9TCw X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-20_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 phishscore=0 priorityscore=1501 adultscore=0 clxscore=1015 spamscore=0 lowpriorityscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609200219 The DisplayPort standard defines a special kind of HPD events called IRQ_HPD. These events are used to notify DP Source about the events on the Sink side. Let users of aux-hpd, the UCSI and PMIC GLINK drivers pass the IRQ_HPD events to the DisplayPort drivers. The drm_aux_hpd_bridge_notify() is kept to ease merging of the series, preventing extra cross-tree merges. It will be removed once all drivers are converted. The drm_bridge_hpd_notify() function is kept for the drivers which only care about the connector status and will always pass DRM_CONNECTOR_NO_EXTRA_STATUS as the extra status. Reviewed-by: Pengyu Luo Acked-by: Heikki Krogerus Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/bridge/aux-hpd-bridge.c | 11 +++++++---- drivers/gpu/drm/drm_bridge.c | 15 +++++++++------ include/drm/bridge/aux-bridge.h | 13 +++++++++++-- include/drm/drm_bridge.h | 22 ++++++++++++++++++++-- 4 files changed, 47 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/bridge/aux-hpd-bridge.c b/drivers/gpu/drm/brid= ge/aux-hpd-bridge.c index a2e525aa5788..930a03496ac5 100644 --- a/drivers/gpu/drm/bridge/aux-hpd-bridge.c +++ b/drivers/gpu/drm/bridge/aux-hpd-bridge.c @@ -137,16 +137,19 @@ struct device *drm_dp_hpd_bridge_register(struct devi= ce *parent, struct device_n EXPORT_SYMBOL_GPL(drm_dp_hpd_bridge_register); =20 /** - * drm_aux_hpd_bridge_notify - notify hot plug detection events + * drm_aux_hpd_bridge_notify_extra - notify hot plug detection events * @dev: device created for the HPD bridge * @status: output connection status + * @event: extra status bits like DRM_CONNECTOR_DP_IRQ_HPD * * A wrapper around drm_bridge_hpd_notify() that is used to report hot plug * detection events for bridges created via drm_dp_hpd_bridge_register(). * * This function shall be called in a context that can sleep. */ -void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_connector_stat= us status) +void drm_aux_hpd_bridge_notify_extra(struct device *dev, + enum drm_connector_status status, + enum drm_connector_dp_event event) { struct auxiliary_device *adev =3D to_auxiliary_dev(dev); struct drm_aux_hpd_bridge_data *data =3D auxiliary_get_drvdata(adev); @@ -154,9 +157,9 @@ void drm_aux_hpd_bridge_notify(struct device *dev, enum= drm_connector_status sta if (!data) return; =20 - drm_bridge_hpd_notify(&data->bridge, status); + drm_bridge_hpd_notify_extra(&data->bridge, status, event); } -EXPORT_SYMBOL_GPL(drm_aux_hpd_bridge_notify); +EXPORT_SYMBOL_GPL(drm_aux_hpd_bridge_notify_extra); =20 static int drm_aux_hpd_bridge_attach(struct drm_bridge *bridge, struct drm_encoder *encoder, diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c index 649f6b6ab5c8..58927e0d0191 100644 --- a/drivers/gpu/drm/drm_bridge.c +++ b/drivers/gpu/drm/drm_bridge.c @@ -1607,25 +1607,28 @@ void drm_bridge_hpd_disable(struct drm_bridge *brid= ge) EXPORT_SYMBOL_GPL(drm_bridge_hpd_disable); =20 /** - * drm_bridge_hpd_notify - notify hot plug detection events + * drm_bridge_hpd_notify_extra - notify hot plug detection and sink IRQ ev= ents * @bridge: bridge control structure * @status: output connection status + * @event: additional status recorded by the sink * * Bridge drivers shall call this function to report hot plug events when = they - * detect a change in the output status, when hot plug detection has been - * enabled by drm_bridge_hpd_enable(). + * detect a change in the output status or when the sink has reported extr= a HPD + * status events (like the IRQ_HPD in case of the DisplayPort), when hot p= lug + * detection has been enabled by drm_bridge_hpd_enable(). * * This function shall be called in a context that can sleep. */ -void drm_bridge_hpd_notify(struct drm_bridge *bridge, - enum drm_connector_status status) +void drm_bridge_hpd_notify_extra(struct drm_bridge *bridge, + enum drm_connector_status status, + enum drm_connector_dp_event event) { mutex_lock(&bridge->hpd_mutex); if (bridge->hpd_cb) bridge->hpd_cb(bridge->hpd_data, status); mutex_unlock(&bridge->hpd_mutex); } -EXPORT_SYMBOL_GPL(drm_bridge_hpd_notify); +EXPORT_SYMBOL_GPL(drm_bridge_hpd_notify_extra); =20 #ifdef CONFIG_OF /** diff --git a/include/drm/bridge/aux-bridge.h b/include/drm/bridge/aux-bridg= e.h index c2f5a855512f..233ca885736f 100644 --- a/include/drm/bridge/aux-bridge.h +++ b/include/drm/bridge/aux-bridge.h @@ -25,7 +25,9 @@ struct auxiliary_device *devm_drm_dp_hpd_bridge_alloc(str= uct device *parent, str int devm_drm_dp_hpd_bridge_add(struct device *dev, struct auxiliary_device= *adev); struct device *drm_dp_hpd_bridge_register(struct device *parent, struct device_node *np); -void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_connector_stat= us status); +void drm_aux_hpd_bridge_notify_extra(struct device *dev, + enum drm_connector_status status, + enum drm_connector_dp_event event); #else static inline struct auxiliary_device *devm_drm_dp_hpd_bridge_alloc(struct= device *parent, struct device_node *np) @@ -44,9 +46,16 @@ static inline struct device *drm_dp_hpd_bridge_register(= struct device *parent, return NULL; } =20 -static inline void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_= connector_status status) +static inline void drm_aux_hpd_bridge_notify_extra(struct device *dev, + enum drm_connector_status status, + enum drm_connector_dp_event event) { } #endif =20 +static inline void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_= connector_status status) +{ + drm_aux_hpd_bridge_notify_extra(dev, status, DRM_CONNECTOR_NO_EXTRA_STATU= S); +} + #endif diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h index 58fff047f43b..d64a0ab02c90 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -1470,8 +1470,26 @@ void drm_bridge_hpd_enable(struct drm_bridge *bridge, enum drm_connector_status status), void *data); void drm_bridge_hpd_disable(struct drm_bridge *bridge); -void drm_bridge_hpd_notify(struct drm_bridge *bridge, - enum drm_connector_status status); +void drm_bridge_hpd_notify_extra(struct drm_bridge *bridge, + enum drm_connector_status status, + enum drm_connector_dp_event event); + +/** + * drm_bridge_hpd_notify - notify hot plug detection events + * @bridge: bridge control structure + * @status: output connection status + * + * Bridge drivers shall call this function to report hot plug events when = they + * detect a change in the output status, when hot plug detection has been + * enabled by drm_bridge_hpd_enable(). + * + * This function shall be called in a context that can sleep. + */ +static inline void drm_bridge_hpd_notify(struct drm_bridge *bridge, + enum drm_connector_status status) +{ + drm_bridge_hpd_notify_extra(bridge, status, DRM_CONNECTOR_NO_EXTRA_STATUS= ); +} =20 #ifdef CONFIG_DRM_PANEL_BRIDGE bool drm_bridge_is_panel(const struct drm_bridge *bridge); --=20 2.47.3 From nobody Thu Sep 24 21:19:58 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F75F3C4176 for ; Sun, 20 Sep 2026 15:01:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916506; cv=none; b=COSp+aUkbWqHEixs2za9k/PnQenpQVkr1ItxoWmaeI8Hb+Hqo0HWNOFTO2fu+u/LlmYHs+KYyIPvfJLrjjwCXd8kbOi9RE+oi8VZ4U3abgSmg+zjn5uFCiGXYoPbbXql+q/8cvcR5SqmYhbVoEO02zD4X2050UxmI1MrCmTXh4M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916506; c=relaxed/simple; bh=W8+dSW1VgSZF8q215iEdhBX5ykoFxgbgfDkuRRpiXGs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HoKJBo/e9V9LVVj/KnPobmgWAkIliq3s11J6sXHVUAOTR2PrPLVt5fm1RkKiDWNOagXoZIk3WwaOPK+BRJ5Tz1f3F/hKbfdahz4wK5TmA4R+Xfju2MiLnzgxQ8JHDuDnnaKY19Jn3DWkH71sE5w/z18GYWxlRgwcCJ2Ejh6HPzs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=i1mNjvbu; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=EMyGazA6; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="i1mNjvbu"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="EMyGazA6" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68KBo1WC2910056 for ; Sun, 20 Sep 2026 15:01:42 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= zStCBOCZUCMVPqW0oCjGuFnFZLx+MrPRud3qOX6ra0Y=; b=i1mNjvbuWlpROKjp tl2Av4keFL0peAw2HFTxnLXUiLxn8mKQvgtfq0/h+3+3d4Vk7pFERuCXG/uQ5BaR A7zU0GdXT3bwjEWGr1pcGqXLKYpRZ+GcdkH2MPABg+Rx0ZY7J4Wg1q0PDEcyC8EG JK1kh8QGfXlaJsP4r4grrDyDDt5iqDUKm5ocneMQEcB/aEZyHpkG9SIWRs0X0BrH jAIi7ZuegxB9XjW6DheaqyiS1zT2Hev2RCKzur0xNLPd5FimQ8vZMRhPvh3DpB7n DXuoQYT7n1P67fAEfwlpe/j53r763hxQ3wr0MOm28pLM3mTDCrg8qVf2qaCnDjmM m6IGpg== Received: from mail-vs1-f72.google.com (mail-vs1-f72.google.com [209.85.217.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gshyxu8ux-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 20 Sep 2026 15:01:42 +0000 (GMT) Received: by mail-vs1-f72.google.com with SMTP id ada2fe7eead31-79014f0b44cso2029413137.3 for ; Sun, 20 Sep 2026 08:01:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789916501; x=1790521301; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=zStCBOCZUCMVPqW0oCjGuFnFZLx+MrPRud3qOX6ra0Y=; b=EMyGazA6PHmSIRUjSY0TstEMEUj+lIk3nAjok22GZtMPEm6m5GpVYMcPiWu6X3wbAj IWFhMyETMF+oizEYIRZGLv41/aAW+INM87y5tA6lbfQGBdRHQNwhdB6+6YGLFJZt/H9s U23FfRdXCNy8knkHJ+wN6SRYJ6Hz3UOI2qYo9z/1i3xjD3H+XvaBvSjSReM6y3zqhqER uNUJeylpq5dk2tBExIbmyX4STKTT7Q4GmF+vsDv+AQYJhyxpiCTHA93Sr0SFGCN/NHqi T6gznZmfXqa96MWYxiTXhi4CqB/HWla2TwwF8MoaVZpQVZ/oclsuDgmY9zY9+vPomDWx w3xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789916501; x=1790521301; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=zStCBOCZUCMVPqW0oCjGuFnFZLx+MrPRud3qOX6ra0Y=; b=FBwYUhDuG4BpcQmpPhAniDIRnVd3twv8HvM3VeMC2OIf6z68oz4Fxp3+DGQaPAOzjD 4DE6mYWGkwCdk+5yaJw1ZuKf1nQI+tum/37YvMIB0g7LoQVQfpenWEc4c9ivcCs2CMck YzoOUiHzzleTgq2hVR4D1rJACBHwoY0UDHVnoyrSoVex+XSTm3KCLBEqdK18fXd0O5Vo 2ogVDTS34iA6CMARfNkePyQyVraMfQ+SYGabNKdBK53dOZ5wCuoTq4r7ExQnr/S7+6Ho MAqr1bbv7rDOxMxv+99iHI1gcQVgtKceoD61Wh5pXiTC1zRERhXGP8EITPcr3a9EJTyh oqkw== X-Forwarded-Encrypted: i=1; AKwUvBzBoTTwgtefcNcd4kQtyE5ymMABG5xFvKgCtm2GQWqauRSuEyAyXnxANB5nnvbaGP9gjzzJuOqf9uoe7X0=@vger.kernel.org X-Gm-Message-State: AFuF++m+Rfg08XGJMaorJ/3h6kzow8uXuFR2LnlgtI5HmfYMxRFVkg4C lOKyBGCyxoHcx2A2e5SnWo8PQ64B9sAEJhEifFaluXNQ3pDPk0BOI0FDKkGmXwIYj0tlFNTwKYn fyG0T6tEIiYV6CmdQpvKRU2A0p9Ip2NjL1FXI2P4VwVnlKhVIHrWOwVInDozZh8kJ3Iw= X-Gm-Gg: AYBFou0vrhHJWcNBMm9dsgs7z73l9COsRWVv/Y+8Nf1Kai912PTDVOOVc02VSBpbqcJ C3bUT7W6A2/4y9WyffXg8EnNLFP30+MhDi0LbTQE/0r5R5KNogPFSENdkPTN7rHvexgGmlUXU9M s15ls8OH+qdwsR+xUWNnApvjJ8+kFrHbYlo7h+TMa6X+COAvGJTJTElcKOKMMS3wWlvI4SlBLgu Kn9984d2Z9DBoiTBUMIrXwUAI7VpQHDXteOYSO1LW0cctyfhzfA6xqRu+e1dtL4K4l/3LrjooAD mDfO0o4NmdLU3qaAP1ExZ9gyLbnVyVyal0RU0nRmSKqToY4OdWCHBqDkjeTcRhlmnphGwecZCvE MUHfNmlGOn8n20VNwklo3//WLCjIdG1j/QrNXqRh93aCyTEUVGEbuI5hGoRX4QKGucccwksZRCb DiqCgiyZpzg6dt X-Received: by 2002:a05:6102:8027:b0:7a2:2068:6e37 with SMTP id ada2fe7eead31-7a55c28ccbemr3816298137.15.1789916501318; Sun, 20 Sep 2026 08:01:41 -0700 (PDT) X-Received: by 2002:a05:6102:8027:b0:7a2:2068:6e37 with SMTP id ada2fe7eead31-7a55c28ccbemr3816245137.15.1789916500850; Sun, 20 Sep 2026 08:01:40 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-3a6163d7119sm4090061fa.30.2026.09.20.08.01.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Sep 2026 08:01:39 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 20 Sep 2026 18:01:29 +0300 Subject: [PATCH v5 4/8] drm/bridge: pass extra events to the HPD callback Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-hpd-irq-events-v5-4-ff1de0090c72@oss.qualcomm.com> References: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> In-Reply-To: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou , Luca Ceresoli , Francesco Dolcini , Abel Vesa Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Francesco Dolcini X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5637; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=W8+dSW1VgSZF8q215iEdhBX5ykoFxgbgfDkuRRpiXGs=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqr/VHeWln0CRT8ndJl7DO8mpwH8QQf9pokn6b4 h6oSogFWHuJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaq/1RwAKCRCLPIo+Aiko 1QdFB/0dCly5ef1TT2JBJq7MbiOMvtgxWTs7fwcZmOHeIrtXQCDrDLrdsdkK9cUFFX8uIU/kxxe PFQMDQFdm4FVA3BGIf2LVEWspNgrvGSJaYE9cWglW7QkdD9YjP2Bogl/6qY53ZUQ9B0lsvyH3Tx c4A75hrKrpk2+hRKKqziW8w3HwY2lJwSJDDf7C9FTfrZ3oSUw+HZPI7HXBB3qrTS87hbdJA+/e+ eOCHYDy8ju9wCEgcMI174ZpLPOr0wDE3aV2qONKItsWfZvG3LxkV92cledQd8HWrN5vwke/Cjn/ 5SNKSrKGv4g1wOJWZzq8p51qwhA3fFhQ7fiKRb67FwKIq8f8 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=PaRqFShd c=1 sm=1 tr=0 ts=6aaff556 cx=c_pps a=DUEm7b3gzWu7BqY5nP7+9g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=m8ToADvmAAAA:8 a=pGLkceISAAAA:8 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=x0urvBsf9yKnxdYdiaoA:9 a=QEXdDO2ut3YA:10 a=-aSRE8QhW-JAV6biHavz:22 a=kCrBFHLFDAq2jDEeoMj9:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfXymANeJkF//Pq FXiy67nfd2QuUoG3opkrpOFtj9qK80ocpa21rq0VUJl0QnPqjE2geI5GdzZ+IPosf/yKsnVkQYv u/yCmHXez5VW/2PMHgsTgvF1Tm+zqpA= X-Proofpoint-GUID: 6cuciPMtPskGhQ8yn8_yhIUn3pRjuwfD X-Proofpoint-ORIG-GUID: 6cuciPMtPskGhQ8yn8_yhIUn3pRjuwfD X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfX5HFkwmVqOuu9 BWBuNKLeFif2Oh7iiKXZPmK3NhVjUh0thoxaHxQkBlOfWtPrpxEMoQSCQPyMA/J7/gMbxAjkuTL mb6dTTfjy8/dj6rNZZExNsHyDkGqUu81DKWcsau55Kx3Qy/EefJNw1R1XztRZ9rtsBPnaHX/kCi qtJA0UjG0A4j/80CQsWmWP9jnDjcrA33/ovUhM3/7EvRlNKR/STWWEe+7Y0+G5IwgjfAEf+q79S M/9WU8I+tiI1ykSG7YaDgBGUmMGj1Zf8Ul3jPSxgE4u0oVBwiVVzY/kl6SB9O4+h5sBJn4Rdb0W lf6DGorosrXbmNY7Ht4cfD+ZAcdaxBTkZ8KV/69gWrXd94/BR5QzECWTp2gjyK8nVVuHWwWUwrb 5BISukCBNNbETiMAIh6uvbVVfppANswH0Lz1b5uvKD84ZK0z9WMT1xnwjp4/4MNkPOh38u2z4+g loJ/z6wqlYgEsEzl60g== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-20_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 clxscore=1015 spamscore=0 bulkscore=0 malwarescore=0 adultscore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609200219 The DisplayPort standard defines a special kind of HPD events called IRQ_HPD. These events are used to notify DP Source about the events on the Sink side. Bridge drivers report these events through the drm_bridge_hpd_notify_extra(). Pass down the extra status to the HPD callback, specified during the drm_bridge_hpd_enable(), letting underlying drivers (e.g. drm_bridge_connector) to receive these events. Acked-by: Francesco Dolcini # lt8912b Reviewed-by: Pengyu Luo Acked-by: Heikki Krogerus Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/bridge/chrontel-ch7033.c | 3 ++- drivers/gpu/drm/bridge/lontium-lt8912b.c | 3 ++- drivers/gpu/drm/bridge/ti-tfp410.c | 3 ++- drivers/gpu/drm/display/drm_bridge_connector.c | 5 +++-- drivers/gpu/drm/drm_bridge.c | 5 +++-- include/drm/drm_bridge.h | 6 ++++-- 6 files changed, 16 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/bridge/chrontel-ch7033.c b/drivers/gpu/drm/bri= dge/chrontel-ch7033.c index 4bc64b2885f7..deb5d510a616 100644 --- a/drivers/gpu/drm/bridge/chrontel-ch7033.c +++ b/drivers/gpu/drm/bridge/chrontel-ch7033.c @@ -258,7 +258,8 @@ static const struct drm_connector_helper_funcs ch7033_c= onnector_helper_funcs =3D { .best_encoder =3D ch7033_connector_best_encoder, }; =20 -static void ch7033_hpd_event(void *arg, enum drm_connector_status status) +static void ch7033_hpd_event(void *arg, enum drm_connector_status status, + enum drm_connector_dp_event event) { struct ch7033_priv *priv =3D arg; =20 diff --git a/drivers/gpu/drm/bridge/lontium-lt8912b.c b/drivers/gpu/drm/bri= dge/lontium-lt8912b.c index e347d04b7b2d..82f5232b4205 100644 --- a/drivers/gpu/drm/bridge/lontium-lt8912b.c +++ b/drivers/gpu/drm/bridge/lontium-lt8912b.c @@ -506,7 +506,8 @@ static int lt8912_attach_dsi(struct lt8912 *lt) return 0; } =20 -static void lt8912_bridge_hpd_cb(void *data, enum drm_connector_status sta= tus) +static void lt8912_bridge_hpd_cb(void *data, enum drm_connector_status sta= tus, + enum drm_connector_dp_event event) { struct lt8912 *lt =3D data; =20 diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti= -tfp410.c index 629ff7095e87..03dbb449e0a7 100644 --- a/drivers/gpu/drm/bridge/ti-tfp410.c +++ b/drivers/gpu/drm/bridge/ti-tfp410.c @@ -110,7 +110,8 @@ static void tfp410_hpd_work_func(struct work_struct *wo= rk) drm_helper_hpd_irq_event(dvi->bridge.dev); } =20 -static void tfp410_hpd_callback(void *arg, enum drm_connector_status statu= s) +static void tfp410_hpd_callback(void *arg, enum drm_connector_status statu= s, + enum drm_connector_dp_event event) { struct tfp410 *dvi =3D arg; =20 diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c b/drivers/gpu/d= rm/display/drm_bridge_connector.c index a51567d19550..f8aa2dd1cde7 100644 --- a/drivers/gpu/drm/display/drm_bridge_connector.c +++ b/drivers/gpu/drm/display/drm_bridge_connector.c @@ -171,9 +171,10 @@ static void drm_bridge_connector_handle_hpd(struct drm= _bridge_connector *drm_bri } =20 static void drm_bridge_connector_hpd_cb(void *cb_data, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_dp_event event) { - drm_bridge_connector_handle_hpd(cb_data, status, DRM_CONNECTOR_NO_EXTRA_S= TATUS); + drm_bridge_connector_handle_hpd(cb_data, status, event); } =20 static void drm_bridge_connector_oob_hotplug_event(struct drm_connector *c= onnector, diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c index 58927e0d0191..34871e5b0328 100644 --- a/drivers/gpu/drm/drm_bridge.c +++ b/drivers/gpu/drm/drm_bridge.c @@ -1549,7 +1549,8 @@ EXPORT_SYMBOL_GPL(drm_bridge_edid_read); */ void drm_bridge_hpd_enable(struct drm_bridge *bridge, void (*cb)(void *data, - enum drm_connector_status status), + enum drm_connector_status status, + enum drm_connector_dp_event event), void *data) { if (!(bridge->ops & DRM_BRIDGE_OP_HPD)) @@ -1625,7 +1626,7 @@ void drm_bridge_hpd_notify_extra(struct drm_bridge *b= ridge, { mutex_lock(&bridge->hpd_mutex); if (bridge->hpd_cb) - bridge->hpd_cb(bridge->hpd_data, status); + bridge->hpd_cb(bridge->hpd_data, status, event); mutex_unlock(&bridge->hpd_mutex); } EXPORT_SYMBOL_GPL(drm_bridge_hpd_notify_extra); diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h index d64a0ab02c90..ed9f77a2597a 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -1158,7 +1158,8 @@ struct drm_bridge { * @hpd_cb: Hot plug detection callback, registered with * drm_bridge_hpd_enable(). */ - void (*hpd_cb)(void *data, enum drm_connector_status status); + void (*hpd_cb)(void *data, enum drm_connector_status status, + enum drm_connector_dp_event event); /** * @hpd_data: Private data passed to the Hot plug detection callback * @hpd_cb. @@ -1467,7 +1468,8 @@ const struct drm_edid *drm_bridge_edid_read(struct dr= m_bridge *bridge, struct drm_connector *connector); void drm_bridge_hpd_enable(struct drm_bridge *bridge, void (*cb)(void *data, - enum drm_connector_status status), + enum drm_connector_status status, + enum drm_connector_dp_event event), void *data); void drm_bridge_hpd_disable(struct drm_bridge *bridge); void drm_bridge_hpd_notify_extra(struct drm_bridge *bridge, --=20 2.47.3 From nobody Thu Sep 24 21:19:58 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AD1973CB56D for ; Sun, 20 Sep 2026 15:01:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916509; cv=none; b=FfN56tjaQIxwo59we6OFcPG2cqTDVsVn+mtPtEaFMSmFn4Y7shQT/72yOkj3q0tD1tm/bawEK7+IoRLYo5y9xQIpxdm84v5hJ2sWo6Vphnh5jIZsOq3xfHmZjXKIluGMJCDsccGrmIbLOS+Gyaw9a4HsP/eIW4vPEUeElK6grPc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916509; c=relaxed/simple; bh=LqgxKNIayCd11yT2swAvULzdCTzONMVvVLs923p01rQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=obIXBKd4yjtF7L9g00AZ2f6qjuvfCZAvtR5gaMisAXAJ+BcQflegb5+wm1TSn0Iq0575kdzx8tiZriEzyNc+3aFFgp3JY0LuDL4NDqGdvdmLuD6Q4zm72gRNCbrrHC3VOgRxplAfeuWq3QuSCnps1QBLP9QhXuorOuSlWMz5vHg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=fDwitiGU; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=V/6mgvXQ; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="fDwitiGU"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="V/6mgvXQ" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68KBo29O2287716 for ; Sun, 20 Sep 2026 15:01:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= zILDMV5aJdTVWYsuq5jrS2SETL41wPGqdO9GUGkM2FE=; b=fDwitiGUAlmn+T3A wgOVHrwULnPTDg9jDbWTok799UNFv16tdbaqlNDnLjhMmTZ4b/rU7ICOL2q5n0ZH AEDkUcQGXBbvDcKLQBGELs3KXEfYcQzEHcH2eUYXfIpa5OTilkznskHsMWSSBgTV A+h/z9K45JMRA616ToMAoA6PfP3WOh1qYXSYGEZQztA+1MFiVP14eezAXuRPcUt5 ZqlmlL03hNR6ZQgBZgua1syuym1OVKxvGp2EGHog1lVZ7YoxlL2UOtG8Qs4BT/G6 JMqimxdRVwbv938mTFpEAiGczcn+pNEXuvnZE3zw8fAVJRae1FL+UYbzbs4NOc0/ lkRxrQ== Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gsfrnujhk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 20 Sep 2026 15:01:45 +0000 (GMT) Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-79129463bb2so644924137.0 for ; Sun, 20 Sep 2026 08:01:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789916504; x=1790521304; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=zILDMV5aJdTVWYsuq5jrS2SETL41wPGqdO9GUGkM2FE=; b=V/6mgvXQ1QZxS5W0XGvp+ODJ/PpEOySc/AHQSBGgcuIMsauVrBlcf52j9Cg4YCsY7H GBA/rMMgrPSPSkvv0TDWrUSd5QnCezn0S3NAs3AemdL76zuT0hkjT61rU14AzytYS1aH BNArtOKiMrSeOkZwWJ+NrxNQqF2myx7g6Wrvqc4pYivs8J3UiOVefMhkqRXRJ//6zi6F MOkBXpS9jSVtHSTfYeBBtnHk/tDymdeRrS9GmhL5FWAK7Or3TqTG9kJWY4DTB/OI7gPS DH0lkVPWx0zuAgd0eELk5PeZXjyIEZyFcZDKhWggr9QT7R8IsYRvcvvqroxzl3GegtYT 9wAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789916504; x=1790521304; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=zILDMV5aJdTVWYsuq5jrS2SETL41wPGqdO9GUGkM2FE=; b=zsXKLKFbJGo+v0KsirXQoiaC2VCSSEO3dhOiso06YAboaFXv4iJGxe49tQAVBtHLJc ohXxfc5DHgcndP36YgWHykNJaCpjlMXxRWLeNp2dwpxQc2T1B7CdMqZmU04vpyJqVYWX //Wjn62uhiiP+4+lD2rdTn/adhZTzO1n5VNsDx6wiX5grLxTP6RP++DmvSaaWvxsXjwz NkC9cj+c4ngVorezTwsz7R2a7vxpT52zTAvhri2smK4yc47p73VTK4qxwJrFtw27rBdQ 9ryewuMZWucyZgcpp0QVkiaWaWa6MX5mkoKHYXSRsihMPW79fVXUcTaKYwv5diKQ/owz I97A== X-Forwarded-Encrypted: i=1; AKwUvBwpYnn9aWG6GDhwRFJgLjvfXbiqKha8fh9MdMdIV72n9iZnwzOWFA+y7sEpwjvvk7d6grUAV2rrioKN6yg=@vger.kernel.org X-Gm-Message-State: AFuF++k/skHbW8iZp5osti0KzO/VlPrcRykkUfadrTdAwKFY3l9AreFQ sy6f+KbbmV84JKl1oJalJD9EaCpvBZjH7dJ17bQyUJ/vZHR0dwbWjVOApyfPKlZuc7k/P4fUL5n MLvdxESsp2KFeQUXCAqGEeMUE93P+oQIuQIaDJzd2nB6XNuWzrJCkeZN8Z+86Fim+D0s= X-Gm-Gg: AYBFou0OMpCjpsIaxf54AkbAQe1Q4K2lljaKNwRjLzalkg5TZv21AIWBnPDp5jtXUx4 RIQHynh2LIrLAjLjB+g9JzzGPl5wyKQXnpTq4M1kFUTkSmGhdF3sFAZ1pXR4rfqFaMPdQu7Y3b0 RsnLxnEmhiknoQ71/MfdaVaLS0XEX7l3DeHIvpRlPYaMvs0sEruJGH1ImyQhR9Dnd3wgkTP5ooy TDmSQI1NNoGQN9aHWZp3YhZdO6KPD8CrfsymVQcLtcCJGduogSKS/KRfm8cCg9xp5Gz2zQijQ0k epsHxmS7Zn1L7Mfzed1wnIUZHpYU+48woX8EUxUtTX6nNkj5xyS+8E2CwG10MmetD+ZZ9eslDgF 6RuSnWmmaclc0iiE0lXyHjdWRD1SD8yp4Rg4H17j19N8FaTALRgYYfaxp76kVOZZEfYnfEL2aby UEpgE1si+cUGME X-Received: by 2002:a05:6102:148e:b0:7a7:196a:84e6 with SMTP id ada2fe7eead31-7a7196a9b84mr1109481137.30.1789916504260; Sun, 20 Sep 2026 08:01:44 -0700 (PDT) X-Received: by 2002:a05:6102:148e:b0:7a7:196a:84e6 with SMTP id ada2fe7eead31-7a7196a9b84mr1109380137.30.1789916503710; Sun, 20 Sep 2026 08:01:43 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-3a6163d7119sm4090061fa.30.2026.09.20.08.01.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Sep 2026 08:01:41 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 20 Sep 2026 18:01:30 +0300 Subject: [PATCH v5 5/8] drm/bridge: pass down IRQ_HPD to the drivers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-hpd-irq-events-v5-5-ff1de0090c72@oss.qualcomm.com> References: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> In-Reply-To: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou , Luca Ceresoli , Francesco Dolcini , Abel Vesa Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5130; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=LqgxKNIayCd11yT2swAvULzdCTzONMVvVLs923p01rQ=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqr/VH0X+ZgDiNdgzP7ztTorDWrfF/sYFMWjIJ+ AFYEh8ij4KJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaq/1RwAKCRCLPIo+Aiko 1dpmB/92Rev8krCBc9OkmzcO4nICFFJMqs1wwor+LYDE1FIuzYroa9qKYU+ewIsPOeIt8K8t7Hp Gxp6nAMJTPtAjZdxhgkdecOWQfp4RIJhtTsa3ahM4r8zY5uuXzrEaGYJ+ZGNb6j8FtRUK8EgEiP hOpLZguncW4ZDHTzc3E02aMh1s5I/f7f2CCqHzJRxB+H5rYG4EXSBWER3OuELSZ2vqKLTcEqQeg y1KaNlpG72U/h2VtMdheehS2cDOllI4OKq/e3bBGrsryLHSF2rSVptWk/gJ9j+M8heIaZdyT4oT 9ardZe07B+qSesrCWyyiQcefaFdPO9NmF0V/cmMAPR2I2+bi X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=W9mtxhWk c=1 sm=1 tr=0 ts=6aaff559 cx=c_pps a=P2rfLEam3zuxRRdjJWA2cw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=P5073aSicUuGdIvNCfYA:9 a=QEXdDO2ut3YA:10 a=ODZdjJIeia2B_SHc_B0f:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfX/RUbalrtHn86 U+AxWKel2uPuCmvnf2UvszKWqHh8JL5g/v+AVv+QbSeJ4Pg7CXrpp6X+avu11W6mxBq2DcAXF8N O2pMVvL6Z9Wdu4MQLCP4bW2U3SEs0qo= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfX+iZSTm2paEIl +oMS6OqGRp8/s250mIYUfqSXL9wYiFBC9b8CdknDL5xYSLyDEfayFMyKsTcBnWs56d26ShDwToi w+eYvxzfgcJgpfmQSOBGncnurd6WcXGW8eZ9XUJbDHOJ2Jlr2kWm2qOcvFWOa6Y0WVMyP0HDQkz geJrPZI8MiT4O/fqu0xZU29v3PtN/8BVghnIsZEbCmjyJMpfkGptyPmkN5KrpbpMNbGRv0SdUC2 M/vo8b84Y8WoJELLZbzX9gezVca6WbOGjZk+L3w5e/fZgbQtpu0wluWoOd2AVE9nMlWHlpivmn7 DJB0SCTR0PcRpuqjzEqimreKVBIl421HWqja85clWRy1nw0B3Gh2a5alYuQjDp1AB3A6+edXWSS 9kdyd3ngeRo9zczStwZtboiKSA5lJsJlVKU6FfoYIve9yrjGvYxgJK7lj/bzJV6Hwt5zD9sxhd9 VU9s0+IYqAXPo0nZd+Q== X-Proofpoint-ORIG-GUID: t0J8ulNpvqvy8nzQii3jjkTxZ-GiRZ4M X-Proofpoint-GUID: t0J8ulNpvqvy8nzQii3jjkTxZ-GiRZ4M X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-20_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 priorityscore=1501 spamscore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609200219 The DisplayPort standard defines a special kind of HPD events called IRQ_HPD. These events are used to notify DP Source about the events on the Sink side. Pass down the extra status to the bridge drivers via the hpd_notify() callback, letting DP bridges to act accordingly. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 3 ++- drivers/gpu/drm/display/drm_bridge_connector.c | 2 +- drivers/gpu/drm/meson/meson_encoder_hdmi.c | 3 ++- drivers/gpu/drm/msm/dp/dp_display.c | 3 ++- drivers/gpu/drm/msm/dp/dp_drm.h | 3 ++- drivers/gpu/drm/omapdrm/dss/hdmi4.c | 3 ++- include/drm/drm_bridge.h | 3 ++- 7 files changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/b= ridge/lontium-lt9611uxc.c index b3bb7f2cebb3..b1ffbab89a16 100644 --- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c +++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c @@ -429,7 +429,8 @@ static const struct drm_edid *lt9611uxc_bridge_edid_rea= d(struct drm_bridge *brid =20 static void lt9611uxc_bridge_hpd_notify(struct drm_bridge *bridge, struct drm_connector *connector, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_dp_event event) { const struct drm_edid *drm_edid; =20 diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c b/drivers/gpu/d= rm/display/drm_bridge_connector.c index f8aa2dd1cde7..083d70017f02 100644 --- a/drivers/gpu/drm/display/drm_bridge_connector.c +++ b/drivers/gpu/drm/display/drm_bridge_connector.c @@ -150,7 +150,7 @@ static void drm_bridge_connector_hpd_notify(struct drm_= connector *connector, /* Notify all bridges in the pipeline of hotplug events. */ drm_for_each_bridge_in_chain(bridge_connector->encoder, bridge) { if (bridge->funcs->hpd_notify) - bridge->funcs->hpd_notify(bridge, connector, status); + bridge->funcs->hpd_notify(bridge, connector, status, event); } } =20 diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/m= eson/meson_encoder_hdmi.c index c4355c5cc340..a637613ae2e1 100644 --- a/drivers/gpu/drm/meson/meson_encoder_hdmi.c +++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.c @@ -323,7 +323,8 @@ static int meson_encoder_hdmi_atomic_check(struct drm_b= ridge *bridge, =20 static void meson_encoder_hdmi_hpd_notify(struct drm_bridge *bridge, struct drm_connector *connector, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_dp_event event) { struct meson_encoder_hdmi *encoder_hdmi =3D bridge_to_meson_encoder_hdmi(= bridge); =20 diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/d= p_display.c index 4dcbd9b99d06..9308e373447c 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1540,7 +1540,8 @@ void msm_dp_bridge_hpd_disable(struct drm_bridge *bri= dge) =20 void msm_dp_bridge_hpd_notify(struct drm_bridge *bridge, struct drm_connector *connector, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_dp_event event) { struct msm_dp_bridge *msm_dp_bridge =3D to_dp_bridge(bridge); struct msm_dp *msm_dp_display =3D msm_dp_bridge->msm_dp_display; diff --git a/drivers/gpu/drm/msm/dp/dp_drm.h b/drivers/gpu/drm/msm/dp/dp_dr= m.h index da412c788503..8f2f4201da60 100644 --- a/drivers/gpu/drm/msm/dp/dp_drm.h +++ b/drivers/gpu/drm/msm/dp/dp_drm.h @@ -31,6 +31,7 @@ void msm_dp_bridge_hpd_enable(struct drm_bridge *bridge); void msm_dp_bridge_hpd_disable(struct drm_bridge *bridge); void msm_dp_bridge_hpd_notify(struct drm_bridge *bridge, struct drm_connector *connector, - enum drm_connector_status status); + enum drm_connector_status status, + enum drm_connector_dp_event event); =20 #endif /* _DP_DRM_H_ */ diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c b/drivers/gpu/drm/omapdrm/= dss/hdmi4.c index ea0d749265d1..47fb10628125 100644 --- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c +++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c @@ -430,7 +430,8 @@ static void hdmi4_bridge_disable(struct drm_bridge *bri= dge, =20 static void hdmi4_bridge_hpd_notify(struct drm_bridge *bridge, struct drm_connector *connector, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_dp_event event) { struct omap_hdmi *hdmi =3D drm_bridge_to_hdmi(bridge); =20 diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h index ed9f77a2597a..2b3cad4bedde 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -509,7 +509,8 @@ struct drm_bridge_funcs { */ void (*hpd_notify)(struct drm_bridge *bridge, struct drm_connector *connector, - enum drm_connector_status status); + enum drm_connector_status status, + enum drm_connector_dp_event event); =20 /** * @hpd_enable: --=20 2.47.3 From nobody Thu Sep 24 21:19:58 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C92FB3AAF6E for ; Sun, 20 Sep 2026 15:01:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916511; cv=none; b=KDfbzDrhl4gL9oR1X8fhLWhGK6bWytb2W5zXD5/HejTlfPlQ/S0O7G5JbANTeQwfCF6MJeC9prAwXnJZaxXUxjTQnEOAyYFpiL3ncIX/rW6n6yVbiPNrEnD9+LAJ5G3aH0z4xqjZdAu58FAiCor7nxNNe2lAye73SLf38WDhJeo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916511; c=relaxed/simple; bh=IHP/CEHKbEjbTAclh8cTAdfCEyItA+qP7FeirdUUoOg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=g/grn0WaXACSKCA0iWvRan2h3ZVEld0Lt2LV34mbyn/xhPlCY5pn8UlZEETupSkMDKy45eI93WNuYZjYobULiDoYtxBLEer8yNUFikQxYeZyzp/hIlTQia2X3NO+4m26PhmT+D93433+HH5BZbyKyI7wp2YjV3TpHgDI0zRrDM4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=DXC/ueKz; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=RDFiqNkt; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="DXC/ueKz"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="RDFiqNkt" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68KBoKCg2288607 for ; Sun, 20 Sep 2026 15:01:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= aOWTHqgvLuy0XmuZ/1jpl1RxxCGjcsKJP2g9nf1p8m8=; b=DXC/ueKzIq/kzAF9 rFYqtVTFD/hrOYA2YzaXtLkcnUoXM2sFtzvQtwmd/9/ZSZ6Y/3CFQ8sg9RUnOeiZ RFVYdj9zMPsAnhI8p9o0mGPf/Wjr70Pl3ScG0L/EVdMNh78/beTatZcT9xf7ZxHd yD4hZW/OZLFu8g4dTZs5GmNjUuiDIqK+mWMecon6ao0P+rvaBAPtwiXz0wzLzBsU EthYaBSLNRtrODbJ8MFm/30Yo8KRbDC+8YVsY6Yr1m8vDa1DCBDIAx+ZhiYd9mwY rN3XRbVxjKOVnk8EYpA0uXNwGP3mMuf+mfD9AGoK5uhIrsAwuuf5AHCBxIbAp0Hv R5evsg== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gsfrnujhu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 20 Sep 2026 15:01:47 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-52dcf1bb6e9so68173301cf.1 for ; Sun, 20 Sep 2026 08:01:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789916507; x=1790521307; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=aOWTHqgvLuy0XmuZ/1jpl1RxxCGjcsKJP2g9nf1p8m8=; b=RDFiqNkta/zTYZtlwTJwe1lhPgFCE9QGprC+fFiEPrgD7wgmBTpAVaMTaOAXf7Z4SP 3evIQD7PvBNynOQmBOTR974I3UCwlQ96MYM9Z2btO9M5TA7Kcf3fPCIFGp7h/G1FPGwy H2VMgJxKzmM9CBeeH5qcbRt2URh27BpJ8uVWeoVLTh+9VKeeaXffPWMzQ7Vg3Fk13i/W ZvqGTfIznijfL79odua2xOjBSU44BulKKN8zxnwoovjcc1oSofV/HpC/CYXhwkPAhOg0 dbJuGd3hthU/Es8D2izX5EDv419EcNE0Iyr59VQuZcO+SCfS87xF1J04VFv9xco2p928 p8wQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789916507; x=1790521307; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=aOWTHqgvLuy0XmuZ/1jpl1RxxCGjcsKJP2g9nf1p8m8=; b=xuevjcsgIExB3HURqCMDYtDJXUzIh0D4UsnWmKL9WpqJw0OaW2s532WCrkG34H03jP iAGmliRjtZjCWbs4iQ0oJFVs8Dn+Ioe/mTrufDHy594tKyEv5l4u/HTe2l6CaNYgtP5g ESqxHKRu2QvGsxndvvzOjjVp72QH10Vyj+xx07GeoEMNykPptyARBV2GlkhczDxXFZDU XiojFfEVLzRLz6TOH8Kr0BH3H/Mr58RHRqE0VPN8jrWALASwdT3+wUt0T6hCxJsHJpwg 8aAWixYxr/9ou8LkuCzmo0B4IrdYp/J0z+zIr8LJTvSoMeIgQ1ozbGbiHmkub5PwRAQj pBnQ== X-Forwarded-Encrypted: i=1; AKwUvBxcoCWYAWDlWia4xB3MxyrxM904ukV9b/0vLqgdmDMer90eNzKR9wSma9MeaGAAIgD4uNitavxuYiLuLl4=@vger.kernel.org X-Gm-Message-State: AFuF++k4S1N3EHFUgDpXZqJ9gTPdvPzbjmvxox6BYkQSJOQcwBMh2vtJ 07+Ak7JBXy4EBmnwRxb0E8RMmpO888MbH0DT/RR4fqltDbjLvaMSdEamV2UnaMyZviXUh0wl4vk kAovZgep8fP1gReMoOUAaRcWgrD593TtglMUbv8rBv9uekLJp8lbvOtuOfO7OAeNzDtA= X-Gm-Gg: AYBFou3llRy92gC/r6wVp/E0kjaBaPFET5W5V9L5LzUqJoW+7CledDwaFvBMNvCLi6t JtiKh65XrkmOIX3qtM116WmPls5UXRKBAsuBJoBu103fJZ8NvbJQ5p1/UJ+43b+rPs3Tfvi6S3j 6EaPkAGdgoJH2XanhypwdVTK33+n7DGvKJn0p6sWl9VBTG90pMypPnh2jm8NHO6lKJqVft7n02a VVmS1fn081xBQH/YgYIV1vFC3SWmmmPeFzLcIaQR4ZwQx0z/Pq+yw/eiAHsXu7kdmNmc53Ev3Ry 2V9tc1Oa1Tui8g3alO6OTHrwc8Xzeh/vM2V4Awix5G4cFxJz0PoGskJymGdV3YC/dVxZwqZbxFU AkLcL02YvzPrqGVC7ZACvA9sH5Zeqki1weH5l+04xYxR9WhI9x2I4lg7PH447IH3NUnthgNhs+P M75O5XDyYL/zh7 X-Received: by 2002:ac8:5756:0:b0:531:10c:a525 with SMTP id d75a77b69052e-532b6f9c339mr59088201cf.0.1789916507131; Sun, 20 Sep 2026 08:01:47 -0700 (PDT) X-Received: by 2002:ac8:5756:0:b0:531:10c:a525 with SMTP id d75a77b69052e-532b6f9c339mr59087721cf.0.1789916506618; Sun, 20 Sep 2026 08:01:46 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-3a6163d7119sm4090061fa.30.2026.09.20.08.01.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Sep 2026 08:01:45 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 20 Sep 2026 18:01:31 +0300 Subject: [PATCH v5 6/8] drm/msm: dp: handle the IRQ_HPD events reported by USB-C Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-hpd-irq-events-v5-6-ff1de0090c72@oss.qualcomm.com> References: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> In-Reply-To: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou , Luca Ceresoli , Francesco Dolcini , Abel Vesa Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1491; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=IHP/CEHKbEjbTAclh8cTAdfCEyItA+qP7FeirdUUoOg=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqr/VITghi4UzzRoE/FzgfbEnUTmORHJmboGa52 XVMK6F5wo+JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaq/1SAAKCRCLPIo+Aiko 1Sv7B/0YL5DFJ/q87OBtIjQCInHBNjJWVturTDYh0TaYHFvNJxrU6AlpJU7OUMxKsZfCeqyUQTp CLdTznZPfsk0pHv4sgAH3ivr8voWJgY0gF9WW1EDhy+P4p+MTBHcM6fSGNNsIxaGRc7ZDzEWqYJ ZrusLtSE1bZYR78wlMziU9RHUX5W7lZPN+sZ/zgMF3FdhkI5Rg4LVp8wHKA3aQLQ4QWGBQ9y2yu PfH+vAfW7MsNUXcAVZ0L3QCDqaZCQ5D86IfEyPSfSumHYKRgKikqjEy9a27zrbpMhb99EoIaIMA 533IC393BTUb0jdbU8nuR0DF7Xsw2gXSG4kvX3t3JpEU/nx/ X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=W9mtxhWk c=1 sm=1 tr=0 ts=6aaff55b cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=pGLkceISAAAA:8 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=kFJzCQJ8v3RGWcIHJrMA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfX4+KzMWmida3F TGu5u0lfSt+4PPMLnTrvbzbwnEWBoRkRD6mNMEl2py5nIAhklbMmykacv+f1JpWmsPEuo60P2wl 4mBoHD4gTcQ7LzkJ7veJo1Ci2TuCOf4= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfX89xwymHqzBuW 1MZkgNBFsCuoOY4D/bP7IdpB/dPV0uBYKlWtfUC4Q1QPPRwEx1B3VzCYpjSlpw3hv/64JIGNbuA p9eloSts/XlGdzHI4qc9QgdIFKroPN3oPRFDcAVyXLzXZmu3Jws9Ro9Fm92PplszytH6n9ZzgYY CeI0XLGrHRVI/9GI4ryEbkqRJP9H4YaGScFFL8/Ol59gE43ApuibT9Z/4stCJ90mm+555omlkRe vKdHD6oOZ5kTOwIrC367A50VfBNy8i2pCfgGm91MoNiwPIJdNbpSgvXGK0+1Yi8LTyaIXnhaopB 7A6oEauQ7RnspTH1VlHEJSP67+ompVNtdWrluZc1cuOj2ml1WZwjvB+ocNFrR2VbsOgsdt3bUYZ Qf4r9QseG8wIW3gXZe2b5ooPIXUBpKugOzIR7XUsprZc+uyW4UcX15A9vi/s0j/4E/GYvZ4hMV8 IR5hYt8JpZW6eH5EIAQ== X-Proofpoint-ORIG-GUID: BCMNQeoWj_vBiBrOYJc7uRhZojS0WRRe X-Proofpoint-GUID: BCMNQeoWj_vBiBrOYJc7uRhZojS0WRRe X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-20_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 priorityscore=1501 spamscore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609200219 The DisplayPort standard defines a special kind of HPD events called IRQ_HPD. These events are used to notify DP Source about the events on the Sink side, for example DP MST events. Let the MSM DisplayPort driver properly track and handle IRQ_HPD delivered over the OOB events (e.g. from the USB-C AltMode handler). Reviewed-by: Pengyu Luo Acked-by: Heikki Krogerus Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/dp/dp_display.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/d= p_display.c index 9308e373447c..a420e3d49928 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1559,11 +1559,12 @@ void msm_dp_bridge_hpd_notify(struct drm_bridge *br= idge, msm_dp_display->connector_type, hpd_link_status, status); =20 if (status =3D=3D connector_status_connected) { - if (hpd_link_status =3D=3D ISR_HPD_REPLUG_COUNT) { + if (hpd_link_status =3D=3D ISR_IRQ_HPD_PULSE_COUNT || + event =3D=3D DRM_CONNECTOR_DP_IRQ_HPD) { + msm_dp_irq_hpd_handle(dp); + } else if (hpd_link_status =3D=3D ISR_HPD_REPLUG_COUNT) { msm_dp_hpd_unplug_handle(dp); msm_dp_hpd_plug_handle(dp); - } else if (hpd_link_status =3D=3D ISR_IRQ_HPD_PULSE_COUNT) { - msm_dp_irq_hpd_handle(dp); } else { msm_dp_hpd_plug_handle(dp); } --=20 2.47.3 From nobody Thu Sep 24 21:19:58 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B210D3AAF6E for ; Sun, 20 Sep 2026 15:03:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916592; cv=none; b=qLDk1x8AIEv+r7e4entARoiWdBCEyURA5BvMWZUC7J1mj8/tiGLByZtIh+qBSOx0/VU9cVgCJqNDoAHw0k5Cf2OnjqykiOuesKoyYYjvoD06+y85Vy3roHifxVrONyQLlL2XqiO6AEYGQSmg6iVWUv2j11fstW6YjdXqSirK1fc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916592; c=relaxed/simple; bh=Y5prep+uK+TtAox//5HU+Am3tOMfG+jy1KYlpaBl7WM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BNRbXCPwfNT31yb2x77se0lqje2itF4YoZFJKVgh7Ij7DZyc361Dy0OSi+ufPyYOs/kOnXx9wpZPRBg41oGVg7CCAQNq8WOEOlOp4OwE/hc8pbnNNdDIEaYNUeMXGdGcSxPsRARYhUi345jWvNm3O5JSFI0FaFsRjZ3G99bav5E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Tc3H3Mhj; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=M/mLj8ql; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Tc3H3Mhj"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="M/mLj8ql" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68KBnqJk1572111 for ; Sun, 20 Sep 2026 15:03:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= riY9eG3dz9cv+aMf8SNtiXHDGuMJEVW0ccQBcCjvHek=; b=Tc3H3MhjFhnblgJD SPNW+KTDOflRPaWcL2vLPAG7WqseeqmVAEBRj58+94rfWA1icLbM5/eDLWwI3vcX 9swNh5fsoZC+3zlx5WDw7cIxzYqz8qoqpwAT6n0+1g1Ko3n0m+oYsJqEFnQTlUjY /Pd837l494hM/8LQecJxSwFZcVZWwz6Yg8YPdH6EWctRA+GQmpOM6TKm1iXSjokv lCvKpwfqTZfD3PtBhFWsNS6ANlRWxvrZZWwNB24DNR2SlEiVkKc9+HcbZs2XLznb ltoNsbnsIFVRysLBL9+qxrMR9s2vqkH6HbxOzxQYUA0x5QJof8KLgJ3x9crfOigq sXGFEQ== Received: from mail-vs1-f70.google.com (mail-vs1-f70.google.com [209.85.217.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gskp9u2hr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 20 Sep 2026 15:03:09 +0000 (GMT) Received: by mail-vs1-f70.google.com with SMTP id ada2fe7eead31-7930cb5cd3aso1710229137.3 for ; Sun, 20 Sep 2026 08:03:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789916589; x=1790521389; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=riY9eG3dz9cv+aMf8SNtiXHDGuMJEVW0ccQBcCjvHek=; b=M/mLj8qlbbvTa9hi/vkjqYMmxgv3bKQvE757Yryod60TpTOrwDffu2aUzq8hVQvD9V SzXFIVnDxoqd3aaUFpYRDB7aC/6UHAxJjZfD48KXWouXCzn3pOlgpcvZIxuanu6x7A4k 8xU4eUGODsf/cozd2oE/jSWvo3mxYvYXY2G8idUgdsP0bxO6l96Mms8BtQWovS0ZaX0O DcMCgLr+T0XOJpDDGqscSakh3C/K84ngjrvu8EJYkCFxCEy8SWM2nLaxYjWMv/1Fst9E wE+32q80Kp6ZhiypasrwVgz35XX+Rwl88093u51RzFpVPfcVbxvW4BB6fsKdzC7P/wMn C4Jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789916589; x=1790521389; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=riY9eG3dz9cv+aMf8SNtiXHDGuMJEVW0ccQBcCjvHek=; b=NJBaLB1+2a/EsSXUqly8MHZRxgvkauhNvn32O5MYNlo8U3fKS9u+PNQBfK+2U/oQAz D7Mj5gIM7tufoN+mjV6rXn7m8b1Cf1mYazeyWbm1plo8+xGwIQvfYzNotQP4GzaO8jsc iPxvK0CP0X0CJYRZG4oC8q1LNAM/wbuG80tOGQH2v0cU1sYq0WeeTaaDNVFwHvNwQBPy 1WyD9+wHzazAMC6iFZcGxyqm7AQxZ362rlCcpk7I8vYNssLsc0R4Lh0DLbqS2cWHH9A4 qihcbLukUyTVBzDwwQW54PfNKTDxG2Ti8KnxD+4rbetlyQu8ukoFQUO2lRm+3SbRelxz bcIA== X-Forwarded-Encrypted: i=1; AKwUvBwVStM4Vvd4tCCfXnW9NCvRuY2KuMgYvncE6T0DggIemLSnZe+K6cLOy2+gCo4yOYhRSp7gVcIChQ4tibc=@vger.kernel.org X-Gm-Message-State: AFuF++maxEXS2y63wdbAgfLDsaTtgeddDMG5pTNKoOB4uI2po10ONldu LKN5R534yBhl5mIIqgAZbi8uAxwryUPCWv648cDYWTaJAiCTlxUCEy9Q2NuQ0/fFIaFgRA8wdSW JJJrm+T2pEYz/iPxedTLQme0aneUS6UC/G2V+U3JxZBfPLou9BvIas3L64UiXIoBBtIg= X-Gm-Gg: AYBFou2QJeIVL2txPxq4ZosN4kcoa2xdMJJkkEZaN7M33W41xu9BvNQ95yMeonRmqH1 2Jo9oHE9SNgm/dYi/uCzt24RiAU9cCRsr3TQTWaiUX8lEPjZZlIxk2aX28dQaIM95/d4O57hgJ6 niCT+2iY4xHQK5icK3uPhGuvwSJKmle146V+g4k226QCVmHWRcbjSBQVk2j80sdMuNgE5V7V1AX QyirP1ljaDF6wq0pKrTBaZ4xE0X5CJl5bcBpVIg8fKZmFRRAucf70JBpjVAa4K85QcwIZFYdroP ISUsSh0VlHvC9Z523P/IJ+qXVkl4MgdsmCgmlUdRIEiw+/6fuyWvz3zKZmz0m8D7fC/FZcdJbtW AUCxJA1MH6pKEdu3QmSX4XV5l0s2j2a+wG4WdUt1gIUYnx0ei0d7Lfr7Cv+I/ae+0wdK/zRObMg 5vMJMV4eJBRZf8 X-Received: by 2002:a05:6102:5714:b0:7a1:f7d2:e823 with SMTP id ada2fe7eead31-7a55daa4aefmr3065708137.28.1789916534310; Sun, 20 Sep 2026 08:02:14 -0700 (PDT) X-Received: by 2002:a05:6102:5714:b0:7a1:f7d2:e823 with SMTP id ada2fe7eead31-7a55daa4aefmr3061758137.28.1789916509473; Sun, 20 Sep 2026 08:01:49 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-3a6163d7119sm4090061fa.30.2026.09.20.08.01.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Sep 2026 08:01:48 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 20 Sep 2026 18:01:32 +0300 Subject: [PATCH v5 7/8] soc: qcom: pmic-glink-altmode: pass down HPD_IRQ events Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-hpd-irq-events-v5-7-ff1de0090c72@oss.qualcomm.com> References: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> In-Reply-To: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou , Luca Ceresoli , Francesco Dolcini , Abel Vesa Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Konrad Dybcio X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1477; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=Y5prep+uK+TtAox//5HU+Am3tOMfG+jy1KYlpaBl7WM=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ9b6rx73FSI8L3M2/xHQ/9vYsClqvtqFDunnUQJ/PTexr Vv7aI1qJ6MxCwMjF4OsmCKLT0HL1JhNyWEfdkythxnEygQyhYGLUwAmElTKwbD89sa9B+8KP2p6 9qOlQ9erc85v7vgP/5qXta3VXDshTN3/Up7LDJtlL8+XKNV/nFwR31K7W5/D58kd6e+bZ24U8Jb /G8gmHewiJqL8jL2WrcxMS/Ti58O9Fx9eOvZPplTDuPleqNjUa5/TZJQEZBavPv7u8rZFan835h /JcWlYGCxxZsPZZd7B0s+tc1h1k7K3GWgw2Jy0vdfuc1v1WU2GiVlsj8TeLyc+1zUcza34H/tRP WV1X0m30rY5/Km1j/JT8r9yXFfKeHJNsP/illuvGRza3lV79FUZpr5cIl+oXZAv5rmqW7SdcWPD RKdOZ8X4PTNsYi4yZ3DdC+JJfxHRKpHnwxL5cnLz+sm7AA== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: VtHlhIv4h9FFLaEsDf0sWtuQCMJKXBcu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfX/NTCQ5FuKZEz QV0DiGBrnZNunLckm5vovst2ZDxyFkCfZ1VLTZeV+KWmwVZJ7STx52tED5qIAIFZbjkH0nmbjcC demdz/NVuSh73HcwSQPGsaNnTnYULUHODbsJZfdN4pGkfAappnPBTpR4hBpexCRGKnWTNM4GbVE lIjQow5zxjnUVMTOndRCGBHYxW4Wxfn8T4/qqLWsSq4A7im9cwxyWjaxmQHLUCd+r7u9XOC52k6 +HzniB8tAJPhcAlVbsC784RRlw4lVfCetwBjM7Je32d/6zhpwNLBymTLue8rbZNnNQa6inEL58x 29rxuBWSRLbB1q8Gu/n+/2e0aMRdrmQvAD3WXs5HEB4TrulXwq0e+N/Z6bvS+U3xJwO5aot6qF/ +hFBolE8mpTFbXqIFD1Ji6SecUczxl4HAFjQXREbXvKikvMPoYytJvucx/95x8V+AwQiVDRJyLb 1/NZM0ll6kFHTSb6SNA== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfX+7f447nAq6xC ZNUEMMyxKflnyCIQrnxDAIY2uzuBkesJJOENrFtdaYkNO7pEHyg69pJ1XZyZhfM0JKGjIq66mfG Z9Jc+vfxDT7qZWT6Mk0V/PCIoJ+p7uY= X-Authority-Analysis: v=2.4 cv=BKAmP1QG c=1 sm=1 tr=0 ts=6aaff5ad cx=c_pps a=N1BjEkVkxJi3uNfLdpvX3g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=QyXUC8HyAAAA:8 a=Wdvqb4HS36tEXOME5F0A:9 a=QEXdDO2ut3YA:10 a=crWF4MFLhNY0qMRaF8an:22 X-Proofpoint-GUID: VtHlhIv4h9FFLaEsDf0sWtuQCMJKXBcu X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-20_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 suspectscore=0 impostorscore=0 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609200219 The DisplayPort standard defines a special kind of HPD events called IRQ_HPD. These events are used to notify DP Source about the events on the Sink side. Pass IRQ_HPD events from the firmware to the HPD bridge, letting those to be delivered to the DisplayPort driver. Reviewed-by: Konrad Dybcio Acked-by: Bjorn Andersson Reviewed-by: Pengyu Luo Acked-by: Heikki Krogerus Signed-off-by: Dmitry Baryshkov --- drivers/soc/qcom/pmic_glink_altmode.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/soc/qcom/pmic_glink_altmode.c b/drivers/soc/qcom/pmic_= glink_altmode.c index 465e5d2316a0..e903d4910e9c 100644 --- a/drivers/soc/qcom/pmic_glink_altmode.c +++ b/drivers/soc/qcom/pmic_glink_altmode.c @@ -374,7 +374,11 @@ static void pmic_glink_altmode_worker(struct work_stru= ct *work) else conn_status =3D connector_status_disconnected; =20 - drm_aux_hpd_bridge_notify(&alt_port->bridge->dev, conn_status); + drm_aux_hpd_bridge_notify_extra(&alt_port->bridge->dev, + conn_status, + alt_port->hpd_irq ? + DRM_CONNECTOR_DP_IRQ_HPD : + DRM_CONNECTOR_NO_EXTRA_STATUS); } else if (alt_port->mux_ctrl =3D=3D MUX_CTRL_STATE_TUNNELING) { if (alt_port->svid =3D=3D USB_TYPEC_TBT_SID) pmic_glink_altmode_enable_tbt(altmode, alt_port); --=20 2.47.3 From nobody Thu Sep 24 21:19:58 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ABAEE3AAF40 for ; Sun, 20 Sep 2026 15:02:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916564; cv=none; b=qm1d08WE6uMiQX5MqLGSMgw6mepEe7oe5GczBEeXQlugpMFyYKmrWmYNaNibe7g9SlFO4EnAsuI2SCYgK6sY+yMYeflU0Srs9pTIWH0epESKc9JxfkP1nNzbCG3J6o9w7ceB9h81cSMN1jGDfhCXbKO3fT9b2YeKqrF4krxOtp8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789916564; c=relaxed/simple; bh=bY5FhyMu3eZPaJc1ltLzH3W13KWzM9lAhGrC22j7pKg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eQ61qDoaHYP1/ZUbzK+Tvk5EjYDoWWwu3N9EfOBThYEs1p1tcH6NirO4uFx+cYjd/Jz/I7JJKcF02NvLDY35+Tq1rUKwML30+p7GKjYvOUuZ9fH15G7gAY+WhZIuzkMAGGbppkl5sOVgSihRsxY9BrZ58zL6dmwBw1ce3PFL8Rk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=LyhU/NIf; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=UF11s+UV; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="LyhU/NIf"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="UF11s+UV" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68KBnugQ974583 for ; Sun, 20 Sep 2026 15:02:42 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ZeC773TKEYubASujmMTo4cYzyXvzJFRJKmRo+UPd0C4=; b=LyhU/NIf6khqaz3X f2oMgJDFkUIx2VNz5QCZqmwTUJMGy1g2VGuy+Wa7qDxFAGlsE9RXPhiwx5BReQQj J8IcQf1B6LrThNm6c1DYOZCJZDP+hh5/P62LijFAbhdFvjHu27egGlxk/nf2Kyb6 7NC0pAG1EDnjKuuY9+GxG+jDsCehoXoRSk4GGTDvCVjpMeJWckVMgxSHL0ZNj9nJ zmsoWAl3OS4X7vNRxGLbkmYVC5JcA4rpMJmhe0sdCQxhppVjQifaeLr78HIjAHXY y6zfaK08WIFaGiWEK8VCCsLoJzvHn0fOu2jsFZ22Qg+icvuZkh63AH5r5DvNlYhs AdYkuQ== Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gskjk33tj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 20 Sep 2026 15:02:41 +0000 (GMT) Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-78a58df134aso563556137.2 for ; Sun, 20 Sep 2026 08:02:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789916561; x=1790521361; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=ZeC773TKEYubASujmMTo4cYzyXvzJFRJKmRo+UPd0C4=; b=UF11s+UVtfJELg9HLpeQDaqrOUEnBu3KXvmrgO9n0NxptYu5km7rRnK1iuOhrvNvGJ /UMBS9jYYI3ib9I8jrSJEGj577c4uRocYWrfRGxbgDJ0b05tzkkXdFm7DuzvhkmvKNYn 7x5T4js88J9y56fgYX0dbTGxf4wG/7NiUW87pr1JGtjVGQwFGRn8d4fMKPFst5P3QUEO Vp7J+zR7IUFUfPFSbd4uR9sXD5j6/vaxP5GcTU7QGY3dDIXQ4A0HQTxJ1b9VKRMk+9Pr 9G0t8Lsl9d0LV9ls74PJjC7zWy8FWc9OC+EjBY3usEaBgOY8UxGt5ScrY9GUiegHkY0s g1AQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789916561; x=1790521361; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=ZeC773TKEYubASujmMTo4cYzyXvzJFRJKmRo+UPd0C4=; b=on9s6a7CjRXK8DMnp9kSPph3zp2WkMHmVk6XTuEY718oP8imD0Vr4h0w2PFGdlFZ7O MohLHlYMnkecN+eOfXsHWqC+61ZbQ5nTSEZea5ebIVePv0GAxDtv2Ir8K2pXL1NGe1sp epFufWi82kv5a2QFLcqbV8Pi09gE3wysMpvBQucEvXlS7LrmB0yHZoLZFfowOX4uGoKc SsVt2oTHhpNi7kFI6/TSW7CZF5ALn/7VDl6nW0M7h+hzYE0Ki4or3q6/vetO+oo9IHrt iKpOQ2/GqyNXxxrcQClktb5JdVOMKXR/tJ8TrPeaGukhDtCkKmaEPAErvtCO5wnWa3fX ++Nw== X-Forwarded-Encrypted: i=1; AKwUvByogQnMBNRIbwKyTvTvks79dz3b8hNoOXpXclKHyhS62HSB+5frqe3v/avhqgtdKRkLI37Sz7yFfwMRCG4=@vger.kernel.org X-Gm-Message-State: AFuF++lgYz0EPuf2fYrS9gJbuTzwdjwN8gR1Rf42tjQ7lQmSpH6HqA71 osa0HHdBzOvyWeL9dJwcS7QHz44fAL5+JLqkk85hv8uHCAFqw0FXGAsPkDG/fMUlw5ndI5LiJu5 HwcmU5z18p/assUKSvtkHIzVHdfhMFZqQ+4rdsMVci8CjUIkwASPmhtWhLDuVAfvDL7s= X-Gm-Gg: AYBFou3AHE/YCQ7mvhWqh39pF2qqQ4ME816FT9DVw5B7KPw9UkoHrKavshDs5ynhSYA DQtXWMsqEm1PvDLJWn4xXP3SqOQeHv1TmxNCXIie/vsqX/sL4V0uTC9ohaH33OnVd9ixQk83ZgV giG4Vgq6SVhPDFW5c6fQP3x0deaJoKlA7QE4OQF5ENtosBYnkaBcMMuK+APYzbEa7x4GDZ1q81P HW6dvEDH5Shf+PSRs6uBIvdFh4fad9WxOOb3BbTcQhnGqvYtZ/e7YPUPPYinQOVVyPUiM16vnaH K6KuwMdP1Q8ypO4Dtolms8fSR58G4FNUBVth4wI8le8sBbc8PtM5f279Zju8sJf1Rxq3SjFMgWe fIpSMN7Ac1hQi20N1n4jumLcr/X06w6I2hi32V9wAfll98GKojCDBUxqpSMLYGw5i+1DVdh15bD othPBCVIp9bAlq X-Received: by 2002:a05:6102:370c:b0:7a1:f7d2:e80c with SMTP id ada2fe7eead31-7a55ca8a2ffmr2385233137.20.1789916540975; Sun, 20 Sep 2026 08:02:20 -0700 (PDT) X-Received: by 2002:a05:6102:370c:b0:7a1:f7d2:e80c with SMTP id ada2fe7eead31-7a55ca8a2ffmr2383773137.20.1789916512407; Sun, 20 Sep 2026 08:01:52 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-3a6163d7119sm4090061fa.30.2026.09.20.08.01.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Sep 2026 08:01:51 -0700 (PDT) From: Dmitry Baryshkov Date: Sun, 20 Sep 2026 18:01:33 +0300 Subject: [PATCH v5 8/8] usb: typec: ucsi: huawei-gaokun: pass down HPD_IRQ events Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260920-hpd-irq-events-v5-8-ff1de0090c72@oss.qualcomm.com> References: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> In-Reply-To: <20260920-hpd-irq-events-v5-0-ff1de0090c72@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou , Luca Ceresoli , Francesco Dolcini , Abel Vesa Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1516; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=bY5FhyMu3eZPaJc1ltLzH3W13KWzM9lAhGrC22j7pKg=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqr/VInUmy8zA1nzNuEwUoOY5JpzmI+vHj6DFGd p2t16GjXiyJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaq/1SAAKCRCLPIo+Aiko 1cByB/9kaXaz9ejico38hBPR/nrKnSJ2+GBGrC2HgOUCqVJYVBl+wD1iTcC0lJ1lI1rVVoFb7hl On3AdOhJDRB7INjnKzoO/CrkukNQF5hbG/cma2VXE4Wvc3IvWqmYsU2XXYzqzvF/P+iJeVE0Jf0 EQp/vND7wTm9P84MwrqonVtf5jamrmZc3eVaT3GaV1v2rAkWRDCqWJlnB+G8FmTWc+B+ZxGGfhI v3WNe1aScNk+JZC43arleaguKrx55HU4VILKhUhERhcbTnG5cu20D9ZweEcwC/CL1hIBHoF3LdK iFd6uyPvdlFK5oHvM8QmmRcWseuO/xY+v5QAxeh6NfTfCBtw X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=H6JOUOYi c=1 sm=1 tr=0 ts=6aaff592 cx=c_pps a=P2rfLEam3zuxRRdjJWA2cw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=pGLkceISAAAA:8 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=HJ0TMOZLSqZlwYNULgAA:9 a=QEXdDO2ut3YA:10 a=ODZdjJIeia2B_SHc_B0f:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfX9bvHTCR27P10 fWcGwifoSuruGBwD+WDvoJGkOtJWgwdkqS6GM56ilWbu64R+v9K7EG4c6CueJuq8sPK9cJja+lH t41hdLvZZvmSVLgz322sS4eDVO3rbqQp4MsRt5iX4sohMMbjA6LbxLqpTgJbkqT8br6D/ZnQTGv a1yahsMGYIgszaZPODUrdQmDaG5m+glzqDqiWDT5lZJQbXOyKWmhWBP8E/5cHq99eN+xF2t7Tfk fatu5dYyVR5MA6wk9Es1f2dnpnrgZP0b5nwPR1w8mRL7/N5vIOfHS0r1/nvPLX9lyZHpalFWNCg d2nVwIJmo55n2DXXUR/lydawDXd+6CfapLapQp7hOiKFy3i+pr764WBgD56YBvO9Nhlh8XOisRD 3Z3K/m1bRp4CfofBWcjj+cInwN36QdgYliTvwy+bl0gE9Pv9y2xlacdLrjC+0tG0jMaRG+6E4qS F4MndPKTfQKweV117Nw== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIwMDIxOSBTYWx0ZWRfX36hT3IEqRl/j 3UgLR8O1b8zV4PZD/qKQcSg0NwKXeqmfjr/YBtcV8RV16PsszEalYB3ASB1TGBPt+ERS8Zs6YEa 2gOhqoNGsZuZAZ9BP8mSlghtjTsQvaM= X-Proofpoint-ORIG-GUID: OjLgIcT_WYMlfAxNb_ztjnBIhVHRpvCu X-Proofpoint-GUID: OjLgIcT_WYMlfAxNb_ztjnBIhVHRpvCu X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-20_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 adultscore=0 spamscore=0 malwarescore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609200219 The DisplayPort standard defines a special kind of HPD events called IRQ_HPD. These events are used to notify DP Source about the events on the Sink side. Pass IRQ_HPD events from the EC to the HPD bridge, letting those to be delivered to the DisplayPort driver. Reviewed-by: Pengyu Luo Acked-by: Heikki Krogerus Signed-off-by: Dmitry Baryshkov --- drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c b/drivers/usb/type= c/ucsi/ucsi_huawei_gaokun.c index 57b37fca150c..cb0312e2b8dc 100644 --- a/drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c +++ b/drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c @@ -316,10 +316,13 @@ static void gaokun_ucsi_handle_usb_mode(struct gaokun= _ucsi_port *port) =20 /* UCSI callback .connector_status() have set orientation */ if (port->bridge && port->svid =3D=3D USB_TYPEC_DP_SID) - drm_aux_hpd_bridge_notify(&port->bridge->dev, - port->hpd_state ? - connector_status_connected : - connector_status_disconnected); + drm_aux_hpd_bridge_notify_extra(&port->bridge->dev, + port->hpd_state ? + connector_status_connected : + connector_status_disconnected, + port->hpd_irq ? + DRM_CONNECTOR_DP_IRQ_HPD : + DRM_CONNECTOR_NO_EXTRA_STATUS); =20 gaokun_ec_ucsi_pan_ack(uec->ec, port->idx); } --=20 2.47.3