From nobody Tue Jun 16 20:38:41 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 830C33845A2 for ; Mon, 20 Apr 2026 23:33:43 +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=1776728025; cv=none; b=MLDY2NkDv8ZpS9AbA2bMfVxBZqEO5VkyLx8KQPy7cqsQtiv4Itpt9pBTZXdbIGcFMoDvX33bYD+/guonuJEmulUrhnIjPbWBIkMEskYuaSP76ixPFe2F4N+D5DjZdp4Wa+LR68Kp5DTtYJI2WfOicruG3ykz9wW+CR9CNzP6xTA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776728025; c=relaxed/simple; bh=lnVODOLTo2WpHrvqFht5FXa9gKD0IeWSjwE7+hKxwmM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PHqFzPPvzT0hGJ3w7dkcocnbQipdOL6BEQreQgl6cmahm46MELAdpo4lNHrbk1KKAFmWwucXFp/dADMjzx3gJAPGXKuR4AvhCBya6WZAhq1frKnSZ+1AItqFW1/AAhm4O3vfwv649rdEf1zUxlCNk5s1h2nJlhyi+Je71ptm6Z8= 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=dzQXAuQd; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZeRIRVa+; 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="dzQXAuQd"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZeRIRVa+" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63KJArgW1532092 for ; Mon, 20 Apr 2026 23:33: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= lUxjcmVB1mry2JFOZUVE65+ZJk/cVp6zUgik6yCWYSo=; b=dzQXAuQdlW4iR2ry TsRnz38gOK2mtMk6dIx5AT1dACjOU2lDQez6DPEiozt9Gn/gNZG02jTIjV7nI7be 4pwYs2jhKOX3WDX2gqYOD5OpLVtqwoLEv9X6eXs8YvnsQWFaU5BYH6tMU6Hijngm 9V7yU1tKDtnxZvdxxcxRmxNnYKEzlVwQcI21op+XmRfwka+KUllAJR4TN+yFmprl P9ArwTDdJcD7wHcha9M/4AKPegHBcq2AeKhLwqjsLvSFOp+QGxwxsbN0MMBGo/30 W2PARFyHCho4KV9vIJ2RahcfYEC99h6Kte0oyOwKf7QtKl7QlOc/OTIWeJ07B1Bx +HsMvw== 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 4dnfus3j8w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 23:33:42 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-50faf575af4so19735771cf.0 for ; Mon, 20 Apr 2026 16:33:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776728022; x=1777332822; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=lUxjcmVB1mry2JFOZUVE65+ZJk/cVp6zUgik6yCWYSo=; b=ZeRIRVa+NDtENT1r7cg6kWVvvjAwksGKa6Deh1DhczKHN4LoEUIVmGuGYamOFNqYYQ uaFv8Cz5+aV5gqN4X8VQg8k9yngE3gSziDItuJBUtxpRzmgmkcDoDvg8nf9/jJBP9hes /psbdSk/NOaGzCUU4zjhVIVFhFUwwShGhUuwdymLEXnf0+cg1wzCbjxROGXhn+wFUfRo qY5A2KImCJe1vKUQhvYjaM1SzLPcP90utgURSezrNwbc6Se86kVZODGBzEtc2jqBd8/W LXCHt5Cw724t/GCOoxN3Sb2TqWlal1FS1Yi5+xTrodpZTKMvUVptCwm7EIifyhQEMhsT d1gQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776728022; x=1777332822; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=lUxjcmVB1mry2JFOZUVE65+ZJk/cVp6zUgik6yCWYSo=; b=rqS/aUwvD39V4pAvmCkt+n5YxgrC42qJ/90+vPahwqwywnWFSQkMoWYU+pARY7YczZ qtRTRUi2rPahKBMNFEy0tIpDJ9ZlZN6wdbo+4eEPXOd6j6xvkJFwrq3rwr8aIhHYZpxJ q2U/ZvCvxxBTG23OovNK7Xv1RO6rffgDs/oWZlbtnb9cbPqQKNcstJB7rzmZ2nYVhLVl HtXzePTrMrBbi7dGopLafvHE/Vv44jOSIuLsCtzjuo6aRzBwdSRnT/pFK0F9hy7alRcn MqBDJ5RU7McU28epKR3h+k9zQrcXWis2i464Sp93CwefKs+F1N14L5j3x0riPmhka6/K feLw== X-Forwarded-Encrypted: i=1; AFNElJ/SRwp144F/a1Z3a72mlQlXHXiDtwH1UQN4U0O24Yc0PmBr9OeUk1dcNYD5DOgzm63h0u+jMp9LnaxT8+U=@vger.kernel.org X-Gm-Message-State: AOJu0YzD9gS00Io3V4uON+/ZIwT+vAzcJ2ngwuzBqNdfba7f4jvKvat2 0OEemkOM5ND7vbm/MvRW9S/p4lt/tSEWEAYpYg/tkmUARzSGLLBhcTyf6v99j3aCicn0fmgWBDV clZHiFbDtrkLnp5w/lRTs5M6/fyMcdhM8s6SUOIg3fNNDACDzVPuvUYbi8527fabjVZg= X-Gm-Gg: AeBDiet+bU+tInTvukPPsHi59AiG49rq721bEO4KxjEw1ZeGaLqwc8S9wFiqGRoZHl8 wtYxfoaIzSK1mZYe2vGaupfsKqOeAjhf2Jj0eujPV07EXfNB7LiOkYDYTGeCNAnRbgqRwaIYCBQ Ln8+Lf4ifgggvqvAuGFjb0kQbrM+D805/Y90DC4zV6LfmvekRAdZO63wHePjmZqPxY7JdjQHPoG ztcGRtlEGY09lHKx9w8o8VYaouzrToYMwoGU5sDs79IrFqkjx6JeZDpz+ejRM7wizpSL5FRL3nV QEPokI4GjEw0WHSwhG7pK7Pl5fjDNZ/Hl0vUhKBDGGHR/uMYUAq+2uw0FVIzzfiW8ldxQblWElZ rpvr4eLxIlwbvf8pe5IbmsVqdow/ClDi50VCY/5KADhzui1JxCdvCcDFOhMZMB5bjItCETSGhRl o6MP+vcVMAXNLot/po01GhRZArJGpCYks3L6D9SMHy5jzG4g== X-Received: by 2002:a05:622a:11ca:b0:50d:41fa:80fe with SMTP id d75a77b69052e-50e36c74d5amr235549971cf.53.1776728021571; Mon, 20 Apr 2026 16:33:41 -0700 (PDT) X-Received: by 2002:a05:622a:11ca:b0:50d:41fa:80fe with SMTP id d75a77b69052e-50e36c74d5amr235549691cf.53.1776728021109; Mon, 20 Apr 2026 16:33:41 -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 2adb3069b0e04-5a4185bc627sm3320714e87.29.2026.04.20.16.33.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2026 16:33:38 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 21 Apr 2026 02:33:31 +0300 Subject: [PATCH v3 1/6] drm/connector: report IRQ_HPD events to drm_connector_oob_hotplug_event() 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: <20260421-hpd-irq-events-v3-1-44d2bf40dfc2@oss.qualcomm.com> References: <20260421-hpd-irq-events-v3-0-44d2bf40dfc2@oss.qualcomm.com> In-Reply-To: <20260421-hpd-irq-events-v3-0-44d2bf40dfc2@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 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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=5422; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=lnVODOLTo2WpHrvqFht5FXa9gKD0IeWSjwE7+hKxwmM=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp5rfN9qVkcYl9KlTfgDparsbRrCWpcXopk8vuW GUdzBXPSXiJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaea3zQAKCRCLPIo+Aiko 1d1zCACrM1rSnOWM/ansjd2L0dlEIFNtiy0HcCmU29ncv+aHHP/gwemRhujKNggpqM10Xv/vUQG Ye+SQyG369jmy5xs4UViG3QvpUxYP5IyWXEu8/j9E/YXe1UjYr4QnPO7M1bWNqxYcw7cQ7jvOuQ IVrlZf74JvyhWDOXkFAhZf5wtAKeLWc7+43FJlgw3qQWu8s9HHnNRvZuSSd2BtrnmAvUIjtjwZ7 Jc7cF38VU8CFgmmWGghTzspdneM6lUl1VI0roh/CbwH+TdS1SrF3HdPe5GczhNCuZsqMRIh15FK 5IfGYE51m6R2SPeO8rvSUf02COXnmuxI8QsXfNwmzGtedb0X X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDIzMCBTYWx0ZWRfX6Y/YoShnUCZf mmktBWxyHLvNBsWJaHnJ8aP8Pmxqv17tlIs6gVxKSIMXNh3lNo17hHU+hIJPFKEveTntuW82Q8W l0wOgKkXrNsp0+ybX2C0bKjfrVq7843dYyLxnpc+Xh1vlt+i0O22FI8OeUpuGic41BWOaABSH7V Ihh98xo2uWed3Lf6Wh6gElgSUYpc89rY1TlsW50xXslZruTxqB9XP6X89UPorR/G28AZchhX9iO paeTEkpvgDmU98wf5dmkYxKS1zuEQaR50DzqkJStISW4JqMB7qHXL+XoA+cifkOq9/7u34lnNgh VlPPDK/WJtQy0qQkpAe5oNZgkotRiAjN4J5AJBbM0UYZGBxUMc9F33Noe5EsIJO331aK6C5JUVv 5PqvjTJLRoe4lMfSEAUawJs0IvyFnrfRbO93jn0BQjPQIQ+HPj96gwyAf3XyAgvISEdrhilxFEG WSLiiVPmMsfdziPTIlg== X-Proofpoint-GUID: Al37SaSeCT_AfKesAB4w1x4YzjvtDwWa X-Authority-Analysis: v=2.4 cv=PMQ/P/qC c=1 sm=1 tr=0 ts=69e6b7d6 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=-JEBqWJC5KD3P7x9m9UA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-ORIG-GUID: Al37SaSeCT_AfKesAB4w1x4YzjvtDwWa X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-20_04,2026-04-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 spamscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 clxscore=1015 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200230 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 ported through the bits in the AltMode VDOs. Extend the drm_connector_oob_hotplug_event() interface and report IRQ events to the DisplayPort Sink drivers. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/drm_connector.c | 5 ++++- drivers/usb/typec/altmodes/displayport.c | 15 +++++++++++---- include/drm/drm_connector.h | 19 ++++++++++++++++++- 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connecto= r.c index 47dc53c4a738..edee9daccd51 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -3510,6 +3510,8 @@ struct drm_connector *drm_connector_find_by_fwnode(st= ruct fwnode_handle *fwnode) * drm_connector_oob_hotplug_event - Report out-of-band hotplug event to c= onnector * @connector_fwnode: fwnode_handle to report the event on * @status: hot plug detect logical state + * @extra_status: additional information provided by the sink without chan= ging + * 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 @@ -3520,7 +3522,8 @@ struct drm_connector *drm_connector_find_by_fwnode(st= ruct fwnode_handle *fwnode) * 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) + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { struct drm_connector *connector; =20 diff --git a/drivers/usb/typec/altmodes/displayport.c b/drivers/usb/typec/a= ltmodes/displayport.c index 35d9c3086990..7182a8e2e710 100644 --- a/drivers/usb/typec/altmodes/displayport.c +++ b/drivers/usb/typec/altmodes/displayport.c @@ -189,7 +189,9 @@ static int dp_altmode_status_update(struct dp_altmode *= dp) } else { drm_connector_oob_hotplug_event(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) { @@ -212,7 +214,10 @@ static int dp_altmode_configured(struct dp_altmode *dp) */ if (dp->pending_hpd) { drm_connector_oob_hotplug_event(dp->connector_fwnode, - connector_status_connected); + 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) { @@ -397,7 +402,8 @@ static int dp_altmode_vdm(struct typec_altmode *alt, dp->data.conf =3D 0; if (dp->hpd) { drm_connector_oob_hotplug_event(dp->connector_fwnode, - connector_status_disconnected); + connector_status_disconnected, + DRM_CONNECTOR_NO_EXTRA_STATUS); dp->hpd =3D false; sysfs_notify(&dp->alt->dev.kobj, "displayport", "hpd"); } @@ -827,7 +833,8 @@ void dp_altmode_remove(struct typec_altmode *alt) =20 if (dp->connector_fwnode) { drm_connector_oob_hotplug_event(dp->connector_fwnode, - connector_status_disconnected); + 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 f83f28cae207..e05197e970d3 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_status_extra - additional events sent by the sink / + * display together or in replacement of the HPD status changes. + */ +enum drm_connector_status_extra { + /** + * @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 @@ -2521,7 +2537,8 @@ drm_connector_is_unregistered(struct drm_connector *c= onnector) } =20 void drm_connector_oob_hotplug_event(struct fwnode_handle *connector_fwnod= e, - enum drm_connector_status status); + enum drm_connector_status status, + enum drm_connector_status_extra extra_status); const char *drm_get_connector_type_name(unsigned int connector_type); const char *drm_get_connector_status_name(enum drm_connector_status status= ); const char *drm_get_subpixel_order_name(enum subpixel_order order); --=20 2.47.3 From nobody Tue Jun 16 20:38:41 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 EAC993939CE for ; Mon, 20 Apr 2026 23:33:47 +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=1776728030; cv=none; b=HibKPKQwczEI9lxoYTtya50MU69KMKvFFwIVUQKvopM9LGSVFQmKbvAQ4ifnE29J9NjSfPh9/o4vdYCpRVrsJQFhZf70/anIV7HxZ4bRrncuym0bUW7Qw/bHnT7F6eedBHaUVcyZ6FnOQcPOhBvMFkw37vwn22A8USVvoqZlH9g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776728030; c=relaxed/simple; bh=EFjBNNXY4LL2a3Oa83bwPsPhmfsi3WM3QfAbe0woSwI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=koJ6A2osTOE5MzXBhE3whw3amBuYyL2yYHbIQz1aQY3kFAQTWzrA/AaBznjL+G/Yy0Xv60NmcBYy9RTO0JNDi9Ngg40O7+7Ro+lYbNCygEPCGq4rQ4H9XMMUUHNj5abtwly5ztLTYGVYv9i/sVm7hoSOgESS13lUCIqvVl9N/RI= 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=RB4BV8q3; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Jxlg8thP; 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="RB4BV8q3"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Jxlg8thP" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63KHQb7s3015211 for ; Mon, 20 Apr 2026 23:33: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= 5tD1CybSiFSGx/tKPVz/twlIrgCEvULY+FLI3aHZuz4=; b=RB4BV8q3O/AK8c/I wqbOi+dm0jNKjPJp5nzPOaZvtHZ5ZmvUPq9DLpLI8nJUP8jMSptb3YwSuIttTvfA /IZbGJvawSSi2eJcUpTV4vLHFnAYthW0y+0Qv5SFi3080tz8thXMidNciWvV/TiE XpXWyqcQjrUD8pNgf8iYkfxe9A128v7HD5rbsE8GggRPulmaANH4lGWzKXbDQhgg ZqC+zR8rUJk0TrkkZnKiMfUzfJorKM6I+esRqK+cT6W3JF4nModNu8pea+CzS9gM XqXGwgmpAub4Uqrge1lAnegotOf4xQ5serTJwb6TTicaVQZ0kCSb2hN2Y4qfShs7 CyTHNw== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dnjuktgh6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 23:33:46 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50fb3403e99so6917281cf.2 for ; Mon, 20 Apr 2026 16:33:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776728026; x=1777332826; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=5tD1CybSiFSGx/tKPVz/twlIrgCEvULY+FLI3aHZuz4=; b=Jxlg8thPnfYFRvmXEOYfTwI9bWqJAChO1+NesUADIVbLSIIqALrLtetFMr2Dim5rk8 C1gI+vnXcQaaxIdYArOkbCm801fYhj/xvjL6ADBak34ViV0sosTs4k9JH/eXnmSwalAC F9SCghNe5MGRfbJdPlYc16Uxy1X5KexBSaxCJzXuuWmrT3VtMU5gC1P0TA9YZjm+iFnH 6gHKRrDOsgB6xQ0dayWwbcNPx0zqL0CGmMOFHL1jjypwsgBTZUD83ZAUm0vfZyr+ccxk R0/IerdJyp7/yp8RIwms81NH48KoXodc6E4gMMO7/zlElrF6dNyUEPeP4P7IDy+baQOs si7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776728026; x=1777332826; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=5tD1CybSiFSGx/tKPVz/twlIrgCEvULY+FLI3aHZuz4=; b=Mkek2fNE4R5IrvLeG9uXOoPbe6CXxvr5g7P0x1HJ/KX9Oni6dY4vSHb2r9b1W2OpYe BW7U3LG5G2TZNUMx1K7yPn42TRD+BmPAvrFdfAhiL+e0zg/ei/AWylCprIONXJ8023MV 3VDWsb8+9qZP+0JURooQNOySaJbwYjzvX0EGM9zID1C3X4T2JW476ybO5syHrPBd2tvA 2lXfwRP/AoImcKfX8MGDjPUMOmun3c9NTyyQTarvMfpWJO+cuIZy2BtcFmzWazDRwV7U VBwoxflXus1VZq8sWx3+UVX07JkpQQKTcvqdddKrYJ6S1eruX26q3N6FdSnxVV6yZvZS n69w== X-Forwarded-Encrypted: i=1; AFNElJ/sWCpThGkk/kKla61RBEPXwH6q1n+m4VCaqYkNROyfQwjaBjG7hk5b8YIjgu8knwirv9cfA1Erb6OIZ/0=@vger.kernel.org X-Gm-Message-State: AOJu0YyQ/PO5xymAYm5FuYNfS/96zDIV11YFNQ+IfxFt2Endv4wMBdAR MkU0jyrH7tP0rM86uToQKw71lbf4LfSAp/sws52BNEg6w1+1sx389beX0ZouW5Q9e6CBDtpJgII 95ntF3SQEczUgbgEwG8ttw6mjGDj2CXafh+azMR4QDq2VvWs9xkk9tTCywRacH/rHoQU= X-Gm-Gg: AeBDietmjZojVXHrUXlRQ/GBLHjYOhq5aLqoddD3gRrY5T6mYE2DcYSCT4Er3x/BjX1 VavhQSeIvMejIA61Zz6TW7edCCDln8WGACxGfqYQHk3s8bz2mNWsHmVt1DDPg2g5j3gbMLXBXz0 Ry3UPd0ktZlmwlupbY9k5gXA8E7drNGyCwBzh7H8gyktSuSSBf55iNDklpv5/xvcfX2zLG6ksPR LdFRnI5oJ6FYF7dC4qbyw8rQSDLM22Com0jufc1FLg0EU5zNq/XJAFETMLdjGLy1c6PjiwUhje3 vEHU/5gpPyRVu7cvm+IaYpDXa/HUKtSDi3F5g3kDOx8Q3i7+AfLv0MAtfQS73EtHkNMo42j/cId 2BevHuECEzROS29kQ4OFS8jHBVuqPoMzJw2xun6eJNP1NXsM422PMqSvzmGQ1SymNiH3d0jT4Xd 5l9asKxBFipj/L8xE3ygxcxOfeYmFkNKsah3XIgBkedZqNXA== X-Received: by 2002:a05:622a:4189:b0:50d:8b60:ff13 with SMTP id d75a77b69052e-50e3694038amr241879291cf.14.1776728025585; Mon, 20 Apr 2026 16:33:45 -0700 (PDT) X-Received: by 2002:a05:622a:4189:b0:50d:8b60:ff13 with SMTP id d75a77b69052e-50e3694038amr241878721cf.14.1776728025097; Mon, 20 Apr 2026 16:33:45 -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 2adb3069b0e04-5a4185bc627sm3320714e87.29.2026.04.20.16.33.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2026 16:33:42 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 21 Apr 2026 02:33:32 +0300 Subject: [PATCH v3 2/6] 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: <20260421-hpd-irq-events-v3-2-44d2bf40dfc2@oss.qualcomm.com> References: <20260421-hpd-irq-events-v3-0-44d2bf40dfc2@oss.qualcomm.com> In-Reply-To: <20260421-hpd-irq-events-v3-0-44d2bf40dfc2@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 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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=13571; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=EFjBNNXY4LL2a3Oa83bwPsPhmfsi3WM3QfAbe0woSwI=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp5rfNDQikV8lwyKF2AVpt7ypLGhQsI/b/8noNy qSMN9n8X7eJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaea3zQAKCRCLPIo+Aiko 1e7qB/kBn8DXRA/esEmQEGxZP/jHGsTszPNBp8UY1lrlw0xGE+yw8EDRn6/ojHARDWBZrUJzM5d lZYrNKy75rArqlLOHsqbMJ5zVW1OjSF4zO6tRzHyI23GBes4UOHy0zLHxJc4FX0VyqfCp+J7pK0 PjVfvM0emPhE9uIfidyQXc26qXIuWX14YpdGgDIQMLm3OqJZ7Tg6tijjaHGmBsLaP+TeVJ/F6NH 94B/LLi/IWKJs1YIl9d4uyV/eTrHSUPImcGdu7kygoOlV7Vw8heG/vmwZIYvqbSaXxbAq7H1uJW DSe7GsqcIJhEF2PmZelv3aKo7Trz9RHNlvCt47okrwh9qUdC X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: DZc_CVchPxykmkKl_5VblD2qE-oxb2mS X-Proofpoint-ORIG-GUID: DZc_CVchPxykmkKl_5VblD2qE-oxb2mS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDIzMCBTYWx0ZWRfX1w1NcinkF6sS vJjcxfVq05YVgOi73BU1jMT0HKPFq+KvV9qZ7bGfwZxurWSnqOTSaB4CFXe23WwiQZVCmVRX9xe kZbBKS+Gr2ii6y2o4csIHNsp+qfJ9UO9mvCR0UHAPrsxj9u/6TuK/vUMBckFFncLFOma/78pno1 dG9KipxTXPDhgYwQiy5+OtkmJ+HhEOoH9bSDPFyz5ht3YO0WZTPbfjwWp+v5PZUemPSCikfcr8r 2lLS5fFqDU+FEw0Ui4QIYS4LOdLnoCFdLjK3sapV4UwB4MX33/AMtB6Ox3Vzd7gVZyBgTHpztZZ XLtjNJakhnZyLSwNHnWiLCOVqv1ZYZn7A8FrTRVJkCqinGRm1FZE8ptpHghtb6/q/MhTo49ZdNO phwar5AvOTgSMBFCcja7knn5xY9ekwcyrd3gStG7oFw2xVXBkXJKjYpK2eDmdNVVulObW/+Y7bM Tle7BmZwSVpIIqkoKIQ== X-Authority-Analysis: v=2.4 cv=WuUb99fv c=1 sm=1 tr=0 ts=69e6b7da cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=-CExsNOmisbVDtTgQd4A:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-20_04,2026-04-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200230 Pass down the notifications about the IRQ_HPD events down to the individual drivers, letting them handle those as required. 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/lontium-lt9611uxc.c | 3 ++- drivers/gpu/drm/bridge/ti-tfp410.c | 4 ++-- drivers/gpu/drm/display/drm_bridge_connector.c | 22 +++++++++++++--------- drivers/gpu/drm/drm_bridge.c | 5 +++-- drivers/gpu/drm/drm_connector.c | 2 +- drivers/gpu/drm/i915/display/intel_dp.c | 3 ++- 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 | 9 ++++++--- include/drm/drm_connector.h | 3 ++- 14 files changed, 43 insertions(+), 26 deletions(-) diff --git a/drivers/gpu/drm/bridge/chrontel-ch7033.c b/drivers/gpu/drm/bri= dge/chrontel-ch7033.c index 54d49d4882c8..04e6b4c00a28 100644 --- a/drivers/gpu/drm/bridge/chrontel-ch7033.c +++ b/drivers/gpu/drm/bridge/chrontel-ch7033.c @@ -259,7 +259,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_status_extra extra_status) { 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 8a0b48efca58..b404f0cbf60d 100644 --- a/drivers/gpu/drm/bridge/lontium-lt8912b.c +++ b/drivers/gpu/drm/bridge/lontium-lt8912b.c @@ -504,7 +504,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_status_extra extra_status) { struct lt8912 *lt =3D data; =20 diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/b= ridge/lontium-lt9611uxc.c index 11aab07d88df..ca41ebe9f26f 100644 --- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c +++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c @@ -430,7 +430,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_status_extra extra_status) { const struct drm_edid *drm_edid; =20 diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti= -tfp410.c index 3b6b0e92cf89..199916662895 100644 --- a/drivers/gpu/drm/bridge/ti-tfp410.c +++ b/drivers/gpu/drm/bridge/ti-tfp410.c @@ -39,7 +39,6 @@ drm_bridge_to_tfp410(struct drm_bridge *bridge) { return container_of(bridge, struct tfp410, bridge); } - static inline struct tfp410 * drm_connector_to_tfp410(struct drm_connector *connector) { @@ -110,7 +109,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_status_extra extra_status) { 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 39cc18f78eda..5fdb1a231cec 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_status_extra extra_status) { struct drm_bridge_connector *bridge_connector =3D to_drm_bridge_connector(connector); @@ -149,12 +150,13 @@ static void drm_bridge_connector_hpd_notify(struct dr= m_connector *connector, /* Notify all bridges in the pipeline of hotplug events. */ drm_for_each_bridge_in_chain_scoped(bridge_connector->encoder, bridge) { if (bridge->funcs->hpd_notify) - bridge->funcs->hpd_notify(bridge, connector, status); + bridge->funcs->hpd_notify(bridge, connector, status, extra_status); } } =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_status_extra extra_status) { struct drm_connector *connector =3D &drm_bridge_connector->base; struct drm_device *dev =3D connector->dev; @@ -163,24 +165,26 @@ static void drm_bridge_connector_handle_hpd(struct dr= m_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, extra_status); =20 drm_kms_helper_connector_hotplug_event(connector); } =20 static void drm_bridge_connector_hpd_cb(void *cb_data, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { - drm_bridge_connector_handle_hpd(cb_data, status); + drm_bridge_connector_handle_hpd(cb_data, status, extra_status); } =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_status_extra extra_status) { 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, extra_status); } =20 static void drm_bridge_connector_enable_hpd(struct drm_connector *connecto= r) @@ -223,7 +227,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_bridge.c b/drivers/gpu/drm/drm_bridge.c index d6f512b73389..c8c3301cd936 100644 --- a/drivers/gpu/drm/drm_bridge.c +++ b/drivers/gpu/drm/drm_bridge.c @@ -1444,7 +1444,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_status_extra extra_status), void *data) { if (!(bridge->ops & DRM_BRIDGE_OP_HPD)) @@ -1509,7 +1510,7 @@ void drm_bridge_hpd_notify(struct drm_bridge *bridge, { mutex_lock(&bridge->hpd_mutex); if (bridge->hpd_cb) - bridge->hpd_cb(bridge->hpd_data, status); + bridge->hpd_cb(bridge->hpd_data, status, DRM_CONNECTOR_NO_EXTRA_STATUS); mutex_unlock(&bridge->hpd_mutex); } EXPORT_SYMBOL_GPL(drm_bridge_hpd_notify); diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connecto= r.c index edee9daccd51..415eb834808c 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -3532,7 +3532,7 @@ void drm_connector_oob_hotplug_event(struct fwnode_ha= ndle *connector_fwnode, return; =20 if (connector->funcs->oob_hotplug_event) - connector->funcs->oob_hotplug_event(connector, status); + connector->funcs->oob_hotplug_event(connector, status, extra_status); =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 4955bd8b11d7..98bbcab2067b 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -6779,7 +6779,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_status_extra extra_status) { struct intel_connector *connector =3D to_intel_connector(_connector); struct intel_display *display =3D to_intel_display(connector); diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/m= eson/meson_encoder_hdmi.c index 1abb0572bb5f..691b9996c8a4 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_status_extra extra_status) { 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 d2124d625485..7a0623fdbd8e 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1785,7 +1785,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_status_extra extra_status) { 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 9eb3431dd93a..74da3ef6b625 100644 --- a/drivers/gpu/drm/msm/dp/dp_drm.h +++ b/drivers/gpu/drm/msm/dp/dp_drm.h @@ -41,6 +41,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_status_extra extra_status); =20 #endif /* _DP_DRM_H_ */ diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c b/drivers/gpu/drm/omapdrm/= dss/hdmi4.c index 29b2dfb90b5f..a7288791b2a5 100644 --- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c +++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c @@ -429,7 +429,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_status_extra extra_status) { 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 a8d67bd9ee50..3e4672fbd7a8 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -615,7 +615,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_status_extra extra_status); =20 /** * @hpd_enable: @@ -1260,7 +1261,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_status_extra extra_status); /** * @hpd_data: Private data passed to the Hot plug detection callback * @hpd_cb. @@ -1550,7 +1552,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_status_extra extra_status), void *data); void drm_bridge_hpd_disable(struct drm_bridge *bridge); void drm_bridge_hpd_notify(struct drm_bridge *bridge, diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index e05197e970d3..5ac5a64f83d9 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -1720,7 +1720,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_status_extra extra_status); =20 /** * @debugfs_init: --=20 2.47.3 From nobody Tue Jun 16 20:38:41 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 6B832393DE6 for ; Mon, 20 Apr 2026 23:33:51 +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=1776728033; cv=none; b=SCzoxuKSlV/7qlvnHXX1c6MYDbIULjfyy2Ff5KHW/DvqfK+4xh0kIdXhl6BS55zGOBJoX71KFvE3FlatDzbSOgoqU4S+COjIDoZzsIOTuE/NDAl0QTdGdEeDfMIk9Xan7mhoQf0oIRBkfqiM6QaDDUl2XfW5AVwWK99L2wHa/2o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776728033; c=relaxed/simple; bh=2ND7iJgLsvG3cprXNomvoKMU6TvVGvnMNqba7Eqodcs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cFOeh82+GIew5O59Bf4ppBxd75M7Cr0C0o2H98Ec9BfLMotjSilerj2leKvjQr1JN9hgn/9vssXJSkYISAH4goXi77N58DwKQeVO4abV9b953khWvOOm4FpbhDLdm/mrAYEUCOlMpgAVYlLWTvkPoa9gCvW1n1aeVl/2v43aC2Y= 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=FTUN+HLG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=SGT6AHnN; 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="FTUN+HLG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="SGT6AHnN" 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 63KFLsTf2281735 for ; Mon, 20 Apr 2026 23:33:50 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= u03qL5j/ar0CqHZjl/YYwUnYIpVEFmw6U1ix4HLrmMQ=; b=FTUN+HLGt0KoyYp2 rP/fFnWVIVoXmSIesJiUhpNyWdC5tbUpLdxRY+pd0Tq95/s4RicBWZk7dw5PFbWX RtlATGhVWv9ppexR6q20wp3YF2RNTNgYxyEJC5M1jiAYOij5nZTCIFzLDmrQWhTu lD1OonyoLeEoblZVbt3AKW7gvDLbKfXhLWdDZibJx9qDItmE/ZHh+OOHrlSLF4eE ex+NAFNgvRbxXlsbWuBLq2FdWvuXda6CQJVEeIO1kxuVbpmwc6Bq2KDl6rAox/Oe Zl73z1gxPYFvzGeXRfLjNVuADmcKj7z9PyuzcGICHGvmoHKykbJhFPeYME1mKDei uKbZkA== 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 4dnh59axcb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 23:33:50 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-50f817c3240so11199231cf.1 for ; Mon, 20 Apr 2026 16:33:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776728030; x=1777332830; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=u03qL5j/ar0CqHZjl/YYwUnYIpVEFmw6U1ix4HLrmMQ=; b=SGT6AHnN6T7+Of8VR2kenmQB+VxGBbmPh8jJ1WUMS5p2mRBsm9Ar5WItQG9f19kO6A +vasu0IsACVs3BPN1cvkABYaJeth4d6xuCaYYnVPZ/MVPU0unxnOSuwp8MEoS3AHV7wj 2yVzgCHF2YWxGh6tKhmA58xgJd5c2ScPD8WW2SheuS5RF33nAcgrQr0+C3GMSprG2zCV 6Mo2CndiwUy8Nc9dvf3fuXRFeuVjLLice2v6zS4qjm8WJ4SC/dPi6Y/wIaZUa7C6JPxa 93Dbud24Vva1/HqTm5KjFYuO/d8S75zpF0kE2MyahNU1jkDas9uy3vUOfrSPO/oPamAa jHiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776728030; x=1777332830; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=u03qL5j/ar0CqHZjl/YYwUnYIpVEFmw6U1ix4HLrmMQ=; b=snOHqebiQ3y6ZcMTVrCG+bXWIk/2lubYVunkWkSI3ZGziDkWUrTkE9q7dJQzmIQXd0 B8AHKxM0Weyshb4WH51lvfYr5cbeo3jUMP3ur7DOQi7WbetCtffMMUL/5m4sNt84NRb5 iyhaFO2zgl04tn3oDRsMcuRVF2N0hz6NkH6sm0ncuLzjla9kYsfWY8Vpvx2fe8HIB5Is Xn6y4izhoaTOLC6JsRDsalwuoA7ExT8xY5I+CwLEnqbA2eJiORxlYmrCRpHGR0lYu181 sX90Vl9b6JCdFpSRU7Jb3QjsHWdbMT0cQtextGp66J6KBa3qitcbTzXAndecXAIwPSUe EimA== X-Forwarded-Encrypted: i=1; AFNElJ91+W6rjIEgVeT4Unel+BnJKdkE/gR0O3wL4uQAE88vpONI8JCxwG72Z9fg3lS30g4mM/jHyqFoOTuP6Ek=@vger.kernel.org X-Gm-Message-State: AOJu0YwOoIkvvFvoUYI3pRV9m3xqhPttUFwNFpmGP3/Y2G4K590+mImD FrI3gIxbZ3oWnFMN4Fgaw0CCqBoqS9Z1KQC7Dq6m1xNWboKPLdpwYjxUUuw+aN+Mf7f39uVuIDS pjYGwkUbEtZaZ66GpWZY5IvQVlv9aC61LjtJy7+/gAhyA5n8bErtnITvta9J07rOyDCk= X-Gm-Gg: AeBDiesTwpK8ki39AqANsPYFs7OBzy4MuHvXrkWKV1LnfQiFb1kt6j5TnCLH8sJJPvi bmQ00l37gmWMH+gL7ESmXXeHN+lpUBo2+fFjB6PaRKLdJvC6hq7jYxHiTV+ifvHGu3xSnRTv3ZO ZoSzm4TN0owQmwnmsITsBNa1Kwew1A0FmNHoJMCZ1YPeSEpAV51xJRAwmYgGy3j06lw/QhI/7wV Rf2q1IaOdieB5MOrpogEn8SMCKFYJbyjowe0tZcQtnInYIrvoT/LJy1x9F4qkk29vpmo9KMcQUV UBtKWf3wtFCKg3/z7MhK8gMGnuHF+MSOMJXhi7NzxF74Pism6bkdpNRRcaMEDYG5QV6igSNBsnB BYiy0Iafq0Oi1TAN4VoF/SOIlu4XiP6AWhvz7D/86BKP55o5DKig50mH7UfH9MZOFoD4IoJf4s6 Bl+Ib1aH4qY8tsbpDuK4uRGESaRgpHPjVqKPAN5TwG4vXX5Q== X-Received: by 2002:a05:622a:394:b0:50d:863d:b50e with SMTP id d75a77b69052e-50e367ff503mr244884091cf.3.1776728029500; Mon, 20 Apr 2026 16:33:49 -0700 (PDT) X-Received: by 2002:a05:622a:394:b0:50d:863d:b50e with SMTP id d75a77b69052e-50e367ff503mr244883731cf.3.1776728028992; Mon, 20 Apr 2026 16:33:48 -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 2adb3069b0e04-5a4185bc627sm3320714e87.29.2026.04.20.16.33.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2026 16:33:46 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 21 Apr 2026 02:33:33 +0300 Subject: [PATCH v3 3/6] 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: <20260421-hpd-irq-events-v3-3-44d2bf40dfc2@oss.qualcomm.com> References: <20260421-hpd-irq-events-v3-0-44d2bf40dfc2@oss.qualcomm.com> In-Reply-To: <20260421-hpd-irq-events-v3-0-44d2bf40dfc2@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 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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=7164; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=2ND7iJgLsvG3cprXNomvoKMU6TvVGvnMNqba7Eqodcs=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp5rfNFfiDI/oAjaEPT7KXRvUNtjKmblgNuU/VC RcrXoPSZnOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaea3zQAKCRCLPIo+Aiko 1bxkCACWKX5M78zNcjPdthzzqBCQACFaYi9I7XaBJHz9vGOGMYjyghgnA1q5XxDVV7BXuJZmhd3 20S6aNDERGrfmYWNpL1MQWraUEPDkseJMpCb/ROzY3pzMXazV6pQvmw2gvakyuOIOB6LJo0HHuB JR0ZlOUoZO3/go41L/QfJI07EsfkO+oiYcYpFZO/BpV6xWwVHf8lUa2XMaIS6FdCeHyWyfy4cwf SePs79NGlazQjPzjfAWnw1bnnxKk1uVNUkylo+38TgEtBoOS5HVV0WzmNIqI1QM7XKdyQwS4exH wxxbeD16R5xCcddl866D9KYU+bg9SAyBXCUs+2WQqm2iPmfs X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: aRRLp-hf3aymaPPMUOQYYRO37BC23-q9 X-Proofpoint-GUID: aRRLp-hf3aymaPPMUOQYYRO37BC23-q9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDIzMCBTYWx0ZWRfX+Iwt0qHb+yBI Q946be1QHR1rT8besz9vhIlsxU+IuIGt50HnaKiBdpf9G/vwl18To9cvocbSdqF9smwWM2TzaiL apUm/Txzfarak77tytincnQf4+gVlzutEzZ5TI+VrePbC6E1uBmYixPH6uFIJ/zQJMlpnkXQF+Q 0G6Xcf3Ck4Y7cWLW2n7Zd5TStC9jUv30OO/fIEq9qR0y6+S9ObmxAy7JK67dTuENoaGRdgcFmkd KkwDyZy6CrzrJklczQv8A4QcoKXYPZrnzG+Lgn/EcnJ4kl3sjpKQdK9zB1ZcdejIMkW365ixc3E Jknrb5enHNSiJK0H0mYxRVmsTH38oh78QwcW5IeBIQxR9tnaFIJ2doswx61tHQs51Dx2nS1mbHJ +1niD4VEcCPtzn/4BM2QkLj08pY3U7NoC1rcRiJ0d0GQmwINHu2ZFaQceve0+T5SYDZmiTc7cTw WFN/dFWmdV9YL2JczWQ== X-Authority-Analysis: v=2.4 cv=HNrz0Itv c=1 sm=1 tr=0 ts=69e6b7de cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=zEMOeRQCFk_hQCPR_I0A:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-20_04,2026-04-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 adultscore=0 spamscore=0 phishscore=0 impostorscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200230 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 keps 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 driver which only care about the connector status and will always pass false as the irq_hpd event. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/bridge/aux-hpd-bridge.c | 11 +++++++---- drivers/gpu/drm/drm_bridge.c | 17 ++++++++++------- include/drm/bridge/aux-bridge.h | 13 +++++++++++-- include/drm/drm_bridge.h | 22 ++++++++++++++++++++-- 4 files changed, 48 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/bridge/aux-hpd-bridge.c b/drivers/gpu/drm/brid= ge/aux-hpd-bridge.c index f02a38a2638a..0e2f0b046121 100644 --- a/drivers/gpu/drm/bridge/aux-hpd-bridge.c +++ b/drivers/gpu/drm/bridge/aux-hpd-bridge.c @@ -136,16 +136,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 + * @extra_status: 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_status_extra extra_status) { struct auxiliary_device *adev =3D to_auxiliary_dev(dev); struct drm_aux_hpd_bridge_data *data =3D auxiliary_get_drvdata(adev); @@ -153,9 +156,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, extra_status); } -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 c8c3301cd936..09c3f5954ade 100644 --- a/drivers/gpu/drm/drm_bridge.c +++ b/drivers/gpu/drm/drm_bridge.c @@ -1495,25 +1495,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 + * @extra_status: 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_status_extra extra_status) { mutex_lock(&bridge->hpd_mutex); if (bridge->hpd_cb) - bridge->hpd_cb(bridge->hpd_data, status, DRM_CONNECTOR_NO_EXTRA_STATUS); + bridge->hpd_cb(bridge->hpd_data, status, extra_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..f9a86886b0df 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_status_extra extra_status); #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_status_extra extra_status) { } #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 3e4672fbd7a8..2cf604cf02db 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -1556,8 +1556,26 @@ void drm_bridge_hpd_enable(struct drm_bridge *bridge, enum drm_connector_status_extra extra_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_status_extra extra_status); + +/** + * 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 Tue Jun 16 20:38:41 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 41383386550 for ; Mon, 20 Apr 2026 23:33:55 +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=1776728037; cv=none; b=RcRNKj4mjMcZ74vBvN2aWj70jpO8wQxMqLzah2G4ClRH++J2rFUDV99mzNmomIy+Dh0QuZaeFTsGSUZDz7MHaiNFXpFx63bWNDUjHRfHEvUFsQvej3MPtclHoMjKNWhF7eDTQvfs32sV7BGRjPxVL/mEJeUR9cY5jnEm7BiaUB0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776728037; c=relaxed/simple; bh=+/ILvBuGhqekKhSlkO02babbVbDbrJeHq8l4XOhAwlU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nG8z/7mKiormctXi95iJ7UTRVn1At0clWj/+Lbef1DuMpLElN3i6OuJ+WUWhcysvVsIKbcBTcDJ+BYZPBZQ10OQVDgtKZDRuHJ3dusuawaNfUUUkoLsdMhlw4F+fGzVJ+8CsO4wyVXtiyW4OXBkULhFqOR0spgofXEbWUxyQzNw= 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=nwrsUnmI; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=iWeB5kQw; 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="nwrsUnmI"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="iWeB5kQw" 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 63KFbhDh785485 for ; Mon, 20 Apr 2026 23:33:54 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= sZrnMsT7jt/4L++ru9IvAvxyFjbRkLz2gfqjnGiw80s=; b=nwrsUnmIe2W0tHvx qv+K2ykbluRxeMpFT2z5cR47aB+Ai4q84jOYOhzLWiEQvlTwZ/Ylxc+oJFZDHF2P XG9H9qtHUt5eWPtgbsahyI1rREj+jUJxMhKrdGcGQ3gNJXQzyVL8kqJsjZ8V6oO5 GeFWtC6x5dEAU1JgG5Wkc2S3YgFC1THHWx0rpt6rGyYLPXlWC5MF882vlxVzwyKf +bZkCAz+JmswKLySVaHyin6V3uyZvMUz2dNSl2j6oXN68cfxLKkGqjgMox6wwGRd ES6mjX9b8rflNFCMSazlxbI5Q4os86OmKU2IQR9C17ryB7+2Uaga4/iYzo/s3fuA kK5Jcw== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dnhdhjucw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 23:33:54 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50d58bed44aso53397321cf.3 for ; Mon, 20 Apr 2026 16:33:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776728033; x=1777332833; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=sZrnMsT7jt/4L++ru9IvAvxyFjbRkLz2gfqjnGiw80s=; b=iWeB5kQw1CWbVOs8nT9GB7HJab1a5kJfz2Tcj5YWjtcp/W2ubT/VMuPpSy4WbIEHzj xdp2qYNaenSuWr9wARSTFDdlD26JQZA/h/pvaSMbZ20IJCBSWfhbszpO93l34QG0d0ub +EAmIoDpKviNSs3Beuj+h4ZbVGC2ivnE6XLwzBOwF5WZIA4mHWH0+G3m1t7bkxzwfrs1 PS8tK1p67kusSs/Nsqu3hgl1en/KRuYwS9Nsui2VCgk+3pJ2xucp7zvrhV4DAjxX7MrH 5521MLTmLPfVzF8bQSq5AzziryrxGXa+PfOsbY1hf3CbJE9k4XMQGlWG0UCUcrXVzMCm mBhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776728033; x=1777332833; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=sZrnMsT7jt/4L++ru9IvAvxyFjbRkLz2gfqjnGiw80s=; b=XImj/rfCbE/m3zVoccgkcow1ns3Q/yg5Mt8nGV50o6SWEQSjPeXByYCDexV9oiFkJ6 OeUvDpABbhpluZg4x9+oU9xn4Us/vLbMdAIoAZ5ntfIb7pa5aHslem20eag7g15yJFeH 7ZWciDQBdoEFgTezOZpz/NZabgo2iP5F6wHX5SsQjzmy4nufE69Ersd4iu3Cp2fPf4uF ZOeqnbLIwa/944KN77ApYekPz4p2/Dkch54H4h6SR66Jl37P7ccvz+0EahgASUwxx8fv fYjnA2x/zE2T05Z4rwfMsuYJKQVTRByzKJRZlc8Xw/VGUoaP/ShvhQwxx34zzDtfYah1 6TrQ== X-Forwarded-Encrypted: i=1; AFNElJ/RojiKqfadosynO4EBBiZSSSekUuWBHBR+YThLCK5d5ZwS88w3rGCN1OwvwmUNc6dXICoDM1bXdBhNCrQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yzkx731KL7N1s4hgz5uRYiDmRm5PBWH88zTlXRUJJaqTV4X0elI r9ykFDm2sO8b/pGr8D24J5bfMYTu8bX6TMPCz1UXaM+v81p7njj1mJDR2hZp07ua5MqoEMJSI7W MKcfNOEdfG7i/tkFFyBE0ymCoO8LHUG9b0zTE1Zx5fSrMx68hoTS8rlX+D//QG6NPg49K9U4CV5 U= X-Gm-Gg: AeBDieuO+BLL8lGxIIElvObrgVFby4N13hewQAcIPIx+yehMTTDhlEk6ZbEWGN1Es6D LSR3tLRsD14BOMhUjsQgocATlSJkxsR3h9A3UtisnzLO41CIFsLfagwn5wMIhBKFHmJwq2jlxLR sCW/UcV34ez5v2dHkz/W8kKk06QgpTjFPShl0yDZh908l+NkDJWX0Y3FX2jcdbkbzIqZjkvW1DJ Zv+Q34m3m86W+RzjYzmlOSZnO7ugS4DfPqHgcF0K0cOjipsgBOE2UQiZPsN26JdIyw9cj5WafyL GE2mD8NVh1GLCstUNg4aGOb6TjHzmWXRUiqa9JMj8U/icQOJN2Wnz14VYTXgIYAUNsMCecf3XcR sQEc7HNHBT2qjHB8o+A97HEy8EMhJM1JakGFwGLlVutZcAG2DW6ZRg3baZVOP/7XGK4BHqfvns4 YpY/AjYMz7OOyIgYM12yhjy8PHWZXmhYYPGJUKOpWFFSuoNQ== X-Received: by 2002:a05:622a:84:b0:50d:912c:c2cb with SMTP id d75a77b69052e-50e36c4d835mr229844771cf.42.1776728033463; Mon, 20 Apr 2026 16:33:53 -0700 (PDT) X-Received: by 2002:a05:622a:84:b0:50d:912c:c2cb with SMTP id d75a77b69052e-50e36c4d835mr229844161cf.42.1776728033013; Mon, 20 Apr 2026 16:33:53 -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 2adb3069b0e04-5a4185bc627sm3320714e87.29.2026.04.20.16.33.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2026 16:33:50 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 21 Apr 2026 02:33:34 +0300 Subject: [PATCH v3 4/6] 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: <20260421-hpd-irq-events-v3-4-44d2bf40dfc2@oss.qualcomm.com> References: <20260421-hpd-irq-events-v3-0-44d2bf40dfc2@oss.qualcomm.com> In-Reply-To: <20260421-hpd-irq-events-v3-0-44d2bf40dfc2@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 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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=891; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=+/ILvBuGhqekKhSlkO02babbVbDbrJeHq8l4XOhAwlU=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp5rfNyjFzL4b8IkwF/PF49lz1EuPnWyS8Qxlcr U5qoTUzCLWJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaea3zQAKCRCLPIo+Aiko 1ScGCACJMMnjpi9t0iULUWpszlSsI4q7iJwWHegcsGM/iwQvHCyLVAcm8trSNMycKBpkdlIpjgi qutScdnn74VcxSgGoQBusOE4JTtC3EwpKjWOu6D9oiMf+ATGfMVtVxG+hErUzl8iWh9g3t9V/j1 PwQwbR9Iftr5kNio91MsoXuBkTudXywYpgVCcJ37u1V/th8NcezRjcQE1ww78mBhhXwEc6hpKj1 SgtTJImlf0dgsumqITASw/7XwPheCid49bfS54ITNHRvaeGrnWr/ls0GnSNCyIoD5HBWS5/eeif nkxyVQkoGqHHpBIjjlXqa0CLa+2io1+jotp1uhof45783PSW X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: dzSzTgY-lEYnaKnxw8n7yiY_XZ4lzESn X-Authority-Analysis: v=2.4 cv=IMgyzAvG c=1 sm=1 tr=0 ts=69e6b7e2 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=3ML_fINe3tzxlWvVV4AA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-GUID: dzSzTgY-lEYnaKnxw8n7yiY_XZ4lzESn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDIzMCBTYWx0ZWRfXwGIpKg3/4Jgu P74TfXfhaUzyqtGthzfNJAl3DvvHP++IKa2gJhJVJOYuLfnTBEqAHf2fc/tLHlzrLu4/lMOsPOA CXpeI+itd+O5ZT5+jn4Bqsuf3q8OXwqGhaoJMl6Q9rxodJ+dF5HgINaAyYbgZgxxWY4EZHdMd+Z SggqIgB9dDUSl9O1fmn9zNA3UbQqiwL+L4DZGSB+qBRC4DMyndMPNAXZcJmICMyw162Y4Bo2M38 9UTN9SCAKxvUB4I5c7c1bjhCJxK81ZUdvTxjl5M/5JEOKUxWsgExsIFumtwh2IkdL5g9Hh4ogy2 D+47MrqZN9WmzXR0KTVtn201YDXBNd7xmdOzRvWf9lK4Kf1DiybSK00AMIvvDStAiFpR9turnmA W9rJGo9Vtnn2HrtourWKHfRgk3pyHg563Mwk0NoCypUf/rPBbpPbDT+cWrstoldWcnNjM5tQXif pj8wI5eDiAUDhds9w4w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-20_04,2026-04-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 clxscore=1015 bulkscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200230 Let the MSM DisplayPort driver properly track and handle IRQ_HPD delivered over the OOB events (e.g. from the USB-C AltMode handler). Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/dp/dp_display.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/d= p_display.c index 7a0623fdbd8e..8df579bb320a 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1800,4 +1800,7 @@ void msm_dp_bridge_hpd_notify(struct drm_bridge *brid= ge, msm_dp_add_event(dp, EV_HPD_PLUG_INT, 0, 0); else if (msm_dp_display->link_ready && status =3D=3D connector_status_dis= connected) msm_dp_add_event(dp, EV_HPD_UNPLUG_INT, 0, 0); + + if (extra_status =3D=3D DRM_CONNECTOR_DP_IRQ_HPD) + msm_dp_add_event(dp, EV_IRQ_HPD_INT, 0, 0); } --=20 2.47.3 From nobody Tue Jun 16 20:38:41 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 2D86E393DE6 for ; Mon, 20 Apr 2026 23:33:59 +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=1776728040; cv=none; b=do1obo1+HgD0GOCLA56rkfhla44xaRRr4ncksw+ncXlZL5tnlxcSfhE5XrFqtDiIMnSqrfvrO4au8h3lLj+AS539JeMp056VZEP0DEHiKczW9NWJ4eYioYEgAOOngR7KmIGLmca6Jv4+UOPqMNKqkgc+SlUh/ziE7wmI5lpJu9w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776728040; c=relaxed/simple; bh=g2eHBnhqeprT5L86a/SxcLn20kIiQiAhlBDTRdUq0LE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bZpwsq+YP9VOoQ7PaJ6I624qroLMZce2WOk8BRbMYqf7MF0ZwVFssEuQFLRQPOsX0bunAr5wU1d/JTWuKMCMMzBjK8QVlne9PI2/nPcTUcsiV/0ftBhuyuolyeZuBOsXs7/Qbq1fnfx7+J8bdSSV2RGuSwZRhJapEvhPEyHlu7w= 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=Y69pm4Sr; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=FvnVU3V+; 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="Y69pm4Sr"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="FvnVU3V+" 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 63KFtee62755689 for ; Mon, 20 Apr 2026 23:33:58 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= MbKgvVuxEIwEzMcmEacPjVXRL9Yz3CCmKCNgvBxdDkI=; b=Y69pm4Srn2LCPBjb 025nTlDFvxjYJhnQGKyOlfHgAiNYtlC/gI/4rGoJzuqRCqMfXlyKM9aTTIFzQ8W5 sL93/7AMjo4ui/4+2xuW4VoPUYnyo5PjDQyNBUicPT4OoDdgwwgSVWz6xz68Dqe+ uj9bmjCXEoOI0ldAscc6TGdPSPkjCAnQwmVMtrX5cCyhwXLTEWi5HR24+pZbj5Ez OBpAy1+412XNQ/NyPfZek05H29kw+9ojgzeaMvAIfJdzVJjXIoPbpYfiBSxpzbwH jqvKl2JGQvPpqMaANSus+/ll75z1TRGYCDHJggWZFK1K8wHFsE29pfVx2PSWDwII 8S7TcQ== 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 4dnh7xjvre-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 23:33:58 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-50e592e833aso5212361cf.2 for ; Mon, 20 Apr 2026 16:33:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776728037; x=1777332837; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=MbKgvVuxEIwEzMcmEacPjVXRL9Yz3CCmKCNgvBxdDkI=; b=FvnVU3V+obu/jmW263UTMxVau2h5vra7v+/fSu6PBxtnyRFpfVIDRrgj5k9Wvq6Z7r ggi6+uI2C8/TBxLKsBSWgOcXc46PDplOyVyFAQQyUDJ4mWzaoHwBShUTQs8LbqRtRno8 L0eJ8lE1npHwdmos262bOKQKhzHaNyAHaNJJqWY4bdVbgy0PdNEBweQXVOkwUsQGpWag XXGDjtPOb3R+X+DMn1pXqpAtgyNB7h/RrXMCWOHzzgFvEXiTgKk1UBt3VEG4QkDIXq8U /2NcZ9rhskW7P0XV03zFugOcklz50rbECjab0AzNDBhdwYWoU78nvxBo1WF3cPowKK+e 1gWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776728037; x=1777332837; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=MbKgvVuxEIwEzMcmEacPjVXRL9Yz3CCmKCNgvBxdDkI=; b=m8ABdttytR2vPgP7n3gHCal7wwADhI3IJ7yI2GCq+jhAPDZLOgjJHh0SgBfe3mKj8s m2DFBFyDXK1vOOdqbb7Uv9wZegK5otqySW8Suifi3zzBSBP9iu9aOaIsP1wXln6I0jR3 iTQncvMSctaJbAsbPzDwoMzPq0PDsxJy6NTa6ZOrMmOGoNQf9/SZpdTGBawqltMK4bLe Uww6CIcvCGi1SdZCTYhBKSmJ5Xp2sOGCz6tDqFm+evboBuneTVZOi06SpOGWRHXXugrH fYfPxT/8POcDRLySuONQ9S04tAohHOaFCP7e0/tmBQbHrbc79072F3O5CmoAPNJQxfJ1 HD2g== X-Forwarded-Encrypted: i=1; AFNElJ+BTZYKtYHElsK0v0q7Nhf3w2sBRBfJjzbhcNKz+XMgLw8PHFvjrkTaGuPNpiAmepWfgQORayoxV1SODpg=@vger.kernel.org X-Gm-Message-State: AOJu0YyGDPy98wUPqPus3St8TAlQszsewH2KzDu0Co77GfIvAwEZzuGs GpUxth/UMRLlXU2E8wcQczb9+ycLwxxKlv5vaw9JK6QL8on7aL6D/FhOZNuLSO2sidT+sHF34+b fiTw1KMKuCiO0B5GolyFkwvUwPSc6aN96lffEs0oYkQmskSYXi5sRoauRHxz0JCsHPMg= X-Gm-Gg: AeBDies9jB80CnEbOUcyfcHwqNCzahubx+h08/ES87A1yahicOGM0mYGcfLHyw2ge0i wbJXvTyYCRZXqLwxobQKmUr9+Yuk8U3aLV0oNQD/fC5MWwXwoXquEPg55XB1QfS6w12rC+9+RYF TbhXgU4BGlm0dX1dGWzBLkZV2l+A7qxQ68c+ksFMAf6OWzCBenwxT2NUuLkX/U0mAoOMs/1H8eS 7WOwLPQ2VMW2ydYyyxzyPV7A+Qw6f7pTE6veQe+FSYhCHW5SWqLrEOxih/tVw10aFV+A+AQqFb7 x23PKemq5PKaQLZH5iJAFuEDjYxTXgPaVWZHfN34FYfMZTxSjgDDfnEypV/TTd3vYQhu3zjOzK2 fMWD7AUaY6DYyvrWkQ4Qwtyl+ByP3MPiDNSMHGZCfsMZTHiBcXzGptRab/PgWPaz3rpF1FJhq6V DXzJAE9ZOfz9SWLOuYe5Bhh1CzzsZE61BsYb9YRiQk+yM8nQ== X-Received: by 2002:ac8:7f0f:0:b0:50d:6557:5c83 with SMTP id d75a77b69052e-50e36c1165emr201698731cf.25.1776728037478; Mon, 20 Apr 2026 16:33:57 -0700 (PDT) X-Received: by 2002:ac8:7f0f:0:b0:50d:6557:5c83 with SMTP id d75a77b69052e-50e36c1165emr201698051cf.25.1776728036949; Mon, 20 Apr 2026 16:33:56 -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 2adb3069b0e04-5a4185bc627sm3320714e87.29.2026.04.20.16.33.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2026 16:33:54 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 21 Apr 2026 02:33:35 +0300 Subject: [PATCH v3 5/6] 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: <20260421-hpd-irq-events-v3-5-44d2bf40dfc2@oss.qualcomm.com> References: <20260421-hpd-irq-events-v3-0-44d2bf40dfc2@oss.qualcomm.com> In-Reply-To: <20260421-hpd-irq-events-v3-0-44d2bf40dfc2@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 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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1078; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=g2eHBnhqeprT5L86a/SxcLn20kIiQiAhlBDTRdUq0LE=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp5rfNYm08F+v71xJY6cvWWJprHmt/2yaesAWq3 fglBTG+jpeJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaea3zQAKCRCLPIo+Aiko 1XkBB/0WgdqQ1mhHWgsx/7ld0lJj3i66+rbrFpJxidzADlKQPAxm48ED3/gjv79sb4e5wUwCCXA /gz6xF/8U0cGItse/+TQFlWdhxMszRjOOrDo8nOwrVTlmspph9v61iJ9K0Xf8OeIOcC7VsdrVVO OEJloUwiJIFWdfUu2QyAunkDTkyXzO3iDTVXVcHGiezrOQ5QhoBxoVdYWSRommd9qAfZifIZNfP zGytUeE3Nn3tPlgtHIYsjG51CCx1FtdhO4CDkFl6XbOCBym2qudhC9uSPOYMJRJ9fC9dH7pkgyB ex0y3TB3oJTq5/Kwh0Q3aj02bHOTscIcHIECopeUpmsZOzeS X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDIzMCBTYWx0ZWRfXzSywHVe5U+fC QUq3PbY9iZ361x9sXEJFp1d90iT5RhQqeWwhhnaohZ1xCIRQzTSwSufIkjS2tMiRI+O0BrClN4w puO3UkvmtSMB/gotG8sXijF83MWCk7xDK9/TEI3Rbcd53C/zahO9p5IY2A4F5a024uxMeU4zyoc armS502aJciGB3xobjuL1sLDwJcQdvCc0LgTt0q5dONVqdkcXH9by/zrycuW3R0bARTK/Y360hl tL9+zBlQw6DKUNUuaMICB3tmsCXaaGxfQY7RyNmiEZYXILvAlArLi0OEtY64VhxF/r7dOPkwAGf xMOdPhEImy9sWgYnxlVWqoNSpSoqCNAmWjYvE5+1gMAtxgjUESAgzo/8x9p7n741ssAW+eArUWQ K9RMnO1F8UiiwBK5VAtYgDfot1f+WeT6DldKHy5BWg6F6H5c+x66zHMZXUpAwHTJeK5FF/EtkTj oUTFV0Oi9cIDRoPMVGQ== X-Authority-Analysis: v=2.4 cv=BPmDalQG c=1 sm=1 tr=0 ts=69e6b7e6 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=QzDdqdBtNhq9Kz3vvWgA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-ORIG-GUID: dlIFJVMnDLMgD47ucHu7PMf_fNZxYMyg X-Proofpoint-GUID: dlIFJVMnDLMgD47ucHu7PMf_fNZxYMyg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-20_04,2026-04-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 adultscore=0 malwarescore=0 spamscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200230 Pass IRQ_HPD events to the HPD bridge, letting those to be delivered to the DisplayPort driver. Signed-off-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio --- 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 619bad2c27ee..946eb20b8f83 100644 --- a/drivers/soc/qcom/pmic_glink_altmode.c +++ b/drivers/soc/qcom/pmic_glink_altmode.c @@ -373,7 +373,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 Tue Jun 16 20:38:41 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 E8DB919D074 for ; Mon, 20 Apr 2026 23:34:01 +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=1776728043; cv=none; b=EWGINkp8BfLx/lLfoEtFYWwEIRGsLBOgV8lsoCqr3AczP1vSO8QuvMGnNlVCF418FZ3NyAspP+OfV06bBcWbZ49J5rWNL+l08xu2mvB1yiqQKaiYfphggSPqAeSUTlgY9c5MmQ0NSQWxGQEXlEN6hEur6DmqcZ475VcgGJVprwc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776728043; c=relaxed/simple; bh=mxGolAt7ROQ681cKNciUMVefMdiRDsSwC5zox5THv9w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IN7p5CEoKEPEwKqenkJfOCHwh7h4q65qrlB0aECNsD2bflW0zrLfhFGuSpcnoT40l+910GduzTKv/FvNo/AbgpJbFNgPlATKUtMbJrrnWpbGhG5RUu0YtzYvz/eLoIVeBxPSW8a6DI/x7rWvwlcvOynebr7JL0ECHeoJIppk+Ks= 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=HpvBvE1Q; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cLxn6V8o; 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="HpvBvE1Q"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cLxn6V8o" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63KJHQUl1532100 for ; Mon, 20 Apr 2026 23:34:01 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= li1QTXDLKUg9Sb2Wzb5S3vgbZrLxrrKq59N8rWxZa0g=; b=HpvBvE1QLHNxgFMc QoUecGt/rJg9vNlE4G4+5je7Lv52Wc44BKL4NREup+GtkJlzefSb9vMblGPkSi07 ssTeEQHMaSu89LcWDOxAHa/PJL+Yf8BE0ke+O2jJfO0FpawHKOcX1KLkIqHvcn1E gBG+0dRkFjFCmb1LR8re7MIJVF4MmVbox0mXkUWK8uWMxtq09/mu9qzVtW9uZkZA xv+A/lnE9lVAnDglO/OJuphfp2iKqnhgqrn6HY4ejWe8pYxvZxopCN2STQcdgeP8 I2cyMh/ZdSD8PqhlianfkMpq4FGHhh37vXF/fTe9/kimWd6Q1USMiJ9QOyLukYDL czPPFw== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dnfus3ja9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 23:34:01 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50da529ff48so87837311cf.3 for ; Mon, 20 Apr 2026 16:34:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776728040; x=1777332840; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=li1QTXDLKUg9Sb2Wzb5S3vgbZrLxrrKq59N8rWxZa0g=; b=cLxn6V8orZuinT8B3D9DZyz3wfumGzTN5OrYuG47hpkOCs5g5U7V9kV5QXGQBmGEcM qQJ4dkODmbavBzVAhUi26jgTGCZ4ATZ8BHOy5047Bg3hq1yiOvebuO1pdWseABVnO1Wb v24iwQt25hZ/Rm089H2N4fC+hJ6R8QBzTBzR36Hw/D3ahKVSwTyl2IRi/dKbcIAAQBFp JI4I+y3x+NmLOYBNOkQkymMMtN/Ex47RuFISWbqtg1wiOsIaBPuUWVJwpRHBa91Nufeq j1I4T+vYPp0wYCqAYQjYmRlEgftP2ekJq6keDE9N7KGbUTFBAVdWdg6OjuYbAo3Iwbvj KDfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776728040; x=1777332840; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=li1QTXDLKUg9Sb2Wzb5S3vgbZrLxrrKq59N8rWxZa0g=; b=YLCSqeoytkDo7IeqdWdy8pDCXMFLU+OW3JvvqFVfrECv8RgEi48X+sJprt2euq4jFz VBdZJffLgURR3I8iLyFjR8ThWmXDe1pqM0KHDvcukviJNok7H3KW7WtZgCWFsnUtejUq vIXJe6bpbcnQ57rQDnnsOo549feeWvSRA7USFN/2URh0XCBN2oiGIhXwk3B2FRDEu217 BTIq8GlU8L1c+0x3KJT3P4NAzpwGWjrzs/eCR5cX0NgFDntGGDZL9P8GswP8zjLPViSy p33sTChyYGUWBYk44+w4zPEeYrqp7dxurEriRXg4gckx9DBVv/+QIpCPAN/oX5jWa823 DLFw== X-Forwarded-Encrypted: i=1; AFNElJ+0LWo+FQMbDyMbYuxbPPJFbBrjQltDMXYWnMh5z88e64IEwEokO6Ug0foVU8Sw1316GhDw583jR7BRo9A=@vger.kernel.org X-Gm-Message-State: AOJu0YwTdgB9Y23MrgUgDwCNZR3HLa7lg/W+ZA3TUOm689FKiMsqNYJR JMnQl0/9r7uTLgTNyrjAHvXmW4GNs+wsyJpzQy61qgWcITCl1YonhzDY9CRwTIS5Au4hPgS3ZlZ ES16yX8TOyzSqu2hOy/C+l1uNBtJpT+cKxTZQ1/ffNXgA3WO/GGt25kreo4BetMe4koA= X-Gm-Gg: AeBDieuVNTKGTDz8QefdIzro2nPYA9oFEps1NZ+V2vmp1zJgtscBfblHuYVelauRD0F PL1tN2T2YjlwXDuUW8FDwHxAEChnP/XR3GYiaoIWIGcdFInSi/yw09T2VEWJ+dy171thUIa8ug0 RtgFzENDy2/QDdLE/WNj0HvY8KnLxfVjMrGTTXlQICnhyeKZ/dIeV5WMdX/0BHUw05mdboZF6Fi kgApbQD2xeAOHx4zjrx/GsiYskYufXrjITXgSpUeCZaVmcFT7SkFbrzhb7q+l4eEJWWzjKCZlhu G+qxSm43/ZVq7IJ52sg0lSjBiIetjD48a7pTyV/2Z3FwypW3eJHFG6RTuickBg4isLXOeVXWIm0 o8LhSXd7uXQJVL4T2y7G6wfn32A7FQbzXGZt7eUET5aXRca/jwSHhxm6ZwnolDKy6SWQdhTuQuk LHeS7jVMzSm1gx7VkkIu6pvwJxCs4Yjoi4G2Hwkv6PLR1COA== X-Received: by 2002:a05:622a:4245:b0:50d:8056:da41 with SMTP id d75a77b69052e-50e36836149mr208589651cf.2.1776728040268; Mon, 20 Apr 2026 16:34:00 -0700 (PDT) X-Received: by 2002:a05:622a:4245:b0:50d:8056:da41 with SMTP id d75a77b69052e-50e36836149mr208589331cf.2.1776728039743; Mon, 20 Apr 2026 16:33:59 -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 2adb3069b0e04-5a4185bc627sm3320714e87.29.2026.04.20.16.33.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2026 16:33:57 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 21 Apr 2026 02:33:36 +0300 Subject: [PATCH v3 6/6] 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: <20260421-hpd-irq-events-v3-6-44d2bf40dfc2@oss.qualcomm.com> References: <20260421-hpd-irq-events-v3-0-44d2bf40dfc2@oss.qualcomm.com> In-Reply-To: <20260421-hpd-irq-events-v3-0-44d2bf40dfc2@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 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.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1309; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=mxGolAt7ROQ681cKNciUMVefMdiRDsSwC5zox5THv9w=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp5rfNcYA6Kn6vJQasDmoVbhaWkp9oc1LDRkXYb fBIXvmCUy2JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaea3zQAKCRCLPIo+Aiko 1R4BB/9GohI0ZFgi+xqrkYGMe/3Udg5Nue1jmSANu/Otqvi7uD155XM2P9LxdiNxtumuSBIOZV0 ZM2YwJ0094hTPQVf33GGO2TTcvusZV5uQYJ6XLsZYcjreXdNaU7hK/gy3K8J4CDrGah5ai3YG9m YPp1Ywnej+ym0q/P04Fko3yj+I+nVVhCJX0grp75+IBHoxlXcN3UQoN52HycYjjeL4oagQReQym NR8P+cZwdhtT8RR8dl13lWVTAt92Z7A+IJLUpzga0kyQWAuxOxI4W8RLlO1AGkhOTjPYzfNV+2S 1iHdUU4TuohfcHIGhYbTI1erKqCzoEvMrcoEnptsZKObh68L X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDIzMCBTYWx0ZWRfX7vTbynQmGtwc Ky/peQxk9XwF30qLSsoL1MF1y3EuqJb/i0LPkW7GOzJVsJdYci/W4M8A9Arl2wqC31IqKDCXh6T fM707hbHcWF+7s8Zxi16w9UFBACHtWECdMyfgI5+QZzVR2J7bjBzQ3MAgCMWL53QVsqHmOPDM2n ssouvVbK06nrLTUi/kJfme+b4lhNlri+B87H1MSxb+utDkHA/XVJYuSySVpdTZvb1pHTSzTb7hq eMdXJS0jQ8Oxmq76EK3ugKTeS53Fz9mYeHh+Q50zTWei/vrXGmCjvCRdwV0sQmoAly5RLGj+dFw KmUQEBDkSpPzt+j8eEWaMLe3CZ0TFHNu9PEoGmR+QwygAX3D973NQg+570BoKV+KLPj/kXiL+4q 1DPmVk485a3Knpd16DAg7p1HjuFk0FV4A5DzHm4WXXHJVgD7lMP6NnHq2rB0CEOwnsBbXM5TQ6F 3dRL0YT+Qi/7iF6uVcQ== X-Proofpoint-GUID: K6QtbuN_K_z3n5WKmNgNnntdR28NeZHX X-Authority-Analysis: v=2.4 cv=PMQ/P/qC c=1 sm=1 tr=0 ts=69e6b7e9 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=pGLkceISAAAA:8 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=xNxaoOyMFJLcTYWjjPMA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-ORIG-GUID: K6QtbuN_K_z3n5WKmNgNnntdR28NeZHX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-20_04,2026-04-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 spamscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 clxscore=1015 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200230 Pass IRQ_HPD events 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 ca749fde49bd..5e3f887ecbd8 100644 --- a/drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c +++ b/drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c @@ -299,10 +299,13 @@ static void gaokun_ucsi_handle_altmode(struct gaokun_= ucsi_port *port) =20 /* UCSI callback .connector_status() have set orientation */ if (port->bridge) - 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