From nobody Mon Jun 8 04:27:22 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 D2039248F57 for ; Sun, 7 Jun 2026 21:33:14 +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=1780867996; cv=none; b=PDOVhiG74ULMG43VypPAvdKq7kCWa0ecfIStHZLX7tKzEn2wHJJsGyjXU34qQ93lAlEZ/iFHy4j2S0i0QHAPXJo5e1zCOqnEsi4lt8EgoNQIEKw0Q5/XVEMEByWEgwhehXPPslOD+5QfCz2GavWIN6S1dBx+M8Nsfu1bvSoZ2x0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780867996; c=relaxed/simple; bh=xbTDhi2tp6aIbxxzE2FCVTK2nYgOD8sjf8SKhUk27v0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=l/tceGVNfKlgaZbIuKCUPIR7ZSK9IsSeJbUhrZTim4USmU0VNcF6UR7dw5rEXf7hnWqWlOasGFxY54Wplnj4Q/l0KQ4dfKeVY1vtNEIHZM6pld5WmUIP+edhAXV2WN1E5oJTH5qgPpULss76l5W27EopbfqO3PQmfFf9w4YcdGY= 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=WHdctld3; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=W22PYYbR; 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="WHdctld3"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="W22PYYbR" 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 657EkFXK845890 for ; Sun, 7 Jun 2026 21:33:14 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= nPk71TxUUS622Q42M+kOUQRMtPhEpU+4iMVusC4zd94=; b=WHdctld3N1fGm8EG mZ77MjfOxyfU5m6Xxu/TTYA61rf26sZ6xM8Wse22MDmtlbt4BlCk0DseZXo+ARvb AVN9QYUlNv+efr3KVnJ4tSnx0u2+19cMHTTewq+VRDVd3BDxT5ih7SD1s6agtQZZ 96tkNd/f/LCBEJrkBDDCPz9j+n6kde5hd70Zjql90Y+zBBjzGZrAjywmcgoNp6RF 8gFykOT980t+QyTtonKFzOS4G35hEK5x8QWf7jKdGWOsNKL6AtFdTvRg56NXMzpy e6J45vR5d1w/Juqmwq7KZyD8KKA2/YbyEdM8OsZrObgE9A717/2jPMCcfXcfewQP UFE/ig== 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 4em9k3n719-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 07 Jun 2026 21:33:13 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-51760f997fdso118098291cf.2 for ; Sun, 07 Jun 2026 14:33:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780867993; x=1781472793; 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=nPk71TxUUS622Q42M+kOUQRMtPhEpU+4iMVusC4zd94=; b=W22PYYbRPWmeqh096rKyuOubpMpzwlsgYfCmapeywHr8B2AVpkTTtHog7LZqs+vmOx S1uXhW8OuTZv6RY5bXNWZzvSrnytGa6MuWP4qjYKNDPmuS7Kp9YT8POZHIy9j3/tUuU1 vPHNt3/l9ySFR/88iPS+f4iCtUhODt3HgnRSHc7kq3xZ4iWHuGbmJnB30lkkqOu3rhNm LnQf+lyGccifWMyV+G94c8ua7sHFsQJe0JQSlWJcLrdDeDTgDzmasOg5hdVCeExQGuxH Z6Jol0iITDWG7v4AQgVici++z8ukgzuYd62XJ8SW82NLwo1H4NqfIo3OQONyy7Yj7zrO iNSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780867993; x=1781472793; 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=nPk71TxUUS622Q42M+kOUQRMtPhEpU+4iMVusC4zd94=; b=k2qZqecb0Bp6kfsLPte8bh19VxS7j8L6qyNFfEo4hk3Kvt9d6oRzQ/Oyt0Rmxt3OrM B14N4to5J3txn5nKGnTSnP7GGTYUdUTLkAe9ZlSAHFpjzde77wiSrAUp7RV7sNF46+CJ GtnFH8/yRhVYz3SoFLXTEKZPleIZwu8WtFkPxhNoPdvY5zJx41nxZhi3I/zN8Dq3oQpD 3+QtKUpRykd51Cuqh9pnIb51L5j42h/+HC8UOCwePa5M0LXmfPduzt8mEY61/6qy8MA6 mV/2b/1Bm29jFq7aUETz7QmvsfpaRY7UBYvH/SlGTe8kvcBXfOgpO632M/oFNfVAiMHX 5+Dg== X-Forwarded-Encrypted: i=1; AFNElJ+B8ct/IX4Nw6T9RxX6bD/c213S0cO1FpuCkZ8IVAxizmmteSZ7wFu0VBSSBSX0w6Dhb2xgyzvKkVgfBnA=@vger.kernel.org X-Gm-Message-State: AOJu0YxJQwTW1AN6O177IBqborkIn+HDKtKVFArZzhJ5eV5nLVNPWBpP nokJTVZ0RJv50eCCLRKXgzG9jJ1/EgAvYuS3u22cM84obLUZKP6aKydC6Ctkz6/EXk1wBX1Uv1i fQbtU1XScJY022/wltDA6R5W2BB5ZMsT0/G2l8Xoh+by3tZLi5oIGXAkhy8K/VkFi9Kg= X-Gm-Gg: Acq92OF0R7JOK6BoN1z5yV0b+avmWjX2jhj/2q8n4CoD8XaVldqf8ETYsoOObHvpT/K sIZOk86/CJlAz93QqirHb94ld9ZQJbvwRrInhEWvnKxmn8NjfV0N9inLO3kmHkMMnJXiCsvRgUv YFsq3vl22Odm7o8wcBPZoKBZSDrnttubMp3UlDpnrsPJiWPbOvE8tKAeGtCN3ukeLLjoE3VR9W3 ASKnUuaguQTWv+diu3/T/O5anm82n0OJLam/AUOY++bbHOU6hcsKzirnakLFREdW4H2no0W3nxl YuLqrvzSMmdo/Fi2rmZiKyGyHp500QSY+mucYKdb5zsgDqoChDjdNIlPwLbXpioNm1rqnDDE/22 hAuhXXQ/+FOJR5SKs9X7qfEdXQilBPrOVh1+IlJKSQ/eIwIUJOd2k27diPwoOseeLHvz8BEW5gX ZlccntDvTrg4JAEvYXRjy85dg5ch6VmlmqOowdxgcLmGOmPg== X-Received: by 2002:ac8:5986:0:b0:517:9f43:4732 with SMTP id d75a77b69052e-5179f434867mr149873581cf.11.1780867993210; Sun, 07 Jun 2026 14:33:13 -0700 (PDT) X-Received: by 2002:ac8:5986:0:b0:517:9f43:4732 with SMTP id d75a77b69052e-5179f434867mr149872941cf.11.1780867992778; Sun, 07 Jun 2026 14:33:12 -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-396ac2d5ea9sm40374041fa.32.2026.06.07.14.33.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 07 Jun 2026 14:33:10 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 08 Jun 2026 00:33:02 +0300 Subject: [PATCH v4 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: <20260608-hpd-irq-events-v4-1-30b62b335487@oss.qualcomm.com> References: <20260608-hpd-irq-events-v4-0-30b62b335487@oss.qualcomm.com> In-Reply-To: <20260608-hpd-irq-events-v4-0-30b62b335487@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 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=6880; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=xbTDhi2tp6aIbxxzE2FCVTK2nYgOD8sjf8SKhUk27v0=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqJeOPemWBxW+eP+MfHReYGxm2pBOMLLACcpqbh a+bnF4n5pyJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaiXjjwAKCRCLPIo+Aiko 1VzPB/0cO0/y6RIZKyhdFY9GpP8e3L7D6nujrtjidCfu3o4XzwLnmrs1tMT0xKo9Tj4+zNlLtwh kmPvx0BwUsvO+YGd24mrwjlbLOrPIWlIcU6Ecew9+pKZhpdB/lE4I3dRkJAxkvntXeBy6wfyo/n g/cr9AegIwEsVDEXzAjz+ZU8bfZ3BZA35aYuHc68wKsjvNGU1VP9fRi8dTlu+3cUXBjc3mRoWHj J9ly8vXi/+sHqkb3wwVlLoHUX4+7AR1fmQNh+oGMXiE3JP8wctqmE5kw0cVaXSGRoK0rCHkGMuG 0gvgm8tN3i823dYQp6fD8IcGt/EwdmMIPpTDIlbPNdeAl/JR X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA3MDIxNyBTYWx0ZWRfXzPoTny5X8W/G COxuN1B9RCwHfqMBVJZUS5C4/t8xYntZWyNVdN6i7b1NMOAy6pmhGGvKxiJJV8/SfuckSHi16uh 6+65bYIKbK+BST+9Pg6ny7ZEDJ/9/LUcU3JXynSNMvi9Lbl1P1UzQ9VaWP2BUKI/Wr/P7K+R1Ay YyL3tdipn3EcZr+lQFoYDMUo5vPfKZpAvy3RdD2fdCdHjWrVYCSOzKmh/zjxC1lS3WJGAvuS+Nv HlSq/HUotjmndcjcGqjCYhSXbdJ6O3GDLb903EaCo13jBwWduniDXgd1XpJ/f+kBnzUCaMEJn1E I6SYGPin3ycaQQawz9a/sG5WkwIaG3JSHLDP5x/JztjBpckHqU4YAtGMjfFfC8xFubnlPnqQ+Qy e1azyC7izFtfBzlrEuIqzxqVRl/J8yqDgMJlbO57ov5GPHzV1/TcdRM+J/zCr233gX7z78rw7Sv ooGIkGds1LOJ1Z4m5Lg== X-Proofpoint-ORIG-GUID: qI8P0LjJdeCZLmf-d-NxbIAsnOjRdPxA X-Proofpoint-GUID: qI8P0LjJdeCZLmf-d-NxbIAsnOjRdPxA X-Authority-Analysis: v=2.4 cv=TIB1jVla c=1 sm=1 tr=0 ts=6a25e399 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=m8VRbRV2F-575zZTFkcA: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.125,FMLib:17.12.100.49 definitions=2026-06-07_04,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 clxscore=1015 adultscore=0 priorityscore=1501 bulkscore=0 malwarescore=0 suspectscore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606070217 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 3fa4d2082cd7..bb128dd0263a 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -3502,20 +3502,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 + * @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 - * 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_status_extra extra_status) { struct drm_connector *connector; =20 @@ -3528,7 +3532,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 =20 /** diff --git a/drivers/usb/typec/altmodes/displayport.c b/drivers/usb/typec/a= ltmodes/displayport.c index 263a89c5f324..ff3659b8f5a2 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"); } @@ -828,8 +834,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 5ad62c207d00..105da7c94910 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 @@ -2520,8 +2536,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_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 Mon Jun 8 04:27:22 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 631C73203B6 for ; Sun, 7 Jun 2026 21:33:18 +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=1780868000; cv=none; b=dT1A9XHjY6PiWfKg0k7+J+Hd4aBbwwzyTh689lnKdOkdOXFWNHWoDtxsxMn+s9+OGLgKpia6MJes1sVJBt1cH+o+WNTCNwOpOLnlUoKBCi0/W9H7TxOxtKctB/ejkJkpMgA0vhyFUIxbwI3Aui55E+iFVihYIs6IbyFdf+16Ang= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780868000; c=relaxed/simple; bh=A2PPAf8RIZIumN5Va/to+GsP1RDHctHNlwnN5DWn79k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=b9eWUku5dzU7c1XJTmvxLz9q41QGBNi1YLgagCDxOKUNPj24+QrCu4wT0EiMDLHUgEEQMbPlboTcuWLVm2LqDt6VjBYw1hzTWLxIKCuXv7EwgBvXvA+Hmm9UtTznszdZqUZO1gsH+JCAriWa5x44fIw+QPjrcZU8kCWnZik4PKw= 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=lgf/vqiQ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=a7AM3d4n; 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="lgf/vqiQ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="a7AM3d4n" 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 657Katso1584397 for ; Sun, 7 Jun 2026 21:33:17 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= SCoT97Q5hVm4j6zlVv2MwuqAb+a0wwmxj8TjVN/oHI8=; b=lgf/vqiQvwidXX+J H3u0Hg+bm/YbqD90L3k8SZI/n3ibPQNlDNkNDvBLEr64+i6fWp/V5U5XpRMpQR2F odM24vycGfIYPw3s60L2/A+/3QKHA6fxU9wgzMQfRsitxyYxItsY2UySoJr2DnPU 03QHC9EGoT8XIVoRj+k+Pg3hPud+QIt/ZW02lwQ1AAGV1uJLosZiP6kWv2qoaeCh De5+wRgj7FIMkfONdSCG6cls9Bsftkis27VLuwXgZ4gqr8+rI2CwFz+UzeSTkLGR DHHlFLjopbK8nfjbWPgBBvJKRiGuSEkT7lePsMNWxQIuoIv7E40uRIoTHGccEJCT P/HFdA== 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 4embmrcv5e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 07 Jun 2026 21:33:17 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-5179e5ba14cso33988431cf.2 for ; Sun, 07 Jun 2026 14:33:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780867997; x=1781472797; 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=SCoT97Q5hVm4j6zlVv2MwuqAb+a0wwmxj8TjVN/oHI8=; b=a7AM3d4nXtYZkPAkydlOXQ6hAPDuh7o60IaaD4sWM+rTtzqyJJSQPMV/R+Ls2e0uLb Z3XM9WJyHmecfQyfZkwvsTEZfkasjqVS5tBwiiAjMEc0df5wCmsamV+cnknjWLPigqPN gkAfLr4HbqeqoJF5QeVAHjh1DiFxA+MGXgvAJWMRfmiesO4M/AhhtcAu4mndRo69r39a Q/+/qmfFEw+kxZRIMrQm+otXXbHitcwMxP1SblCRy5RNeEGI4PAxedy+MQiWJ3R7Pfnd 0Q2/UaEfJnYw1dMp9lKTHKLljqWwOKssy3zMtjc/1s24lkVnfSexqbmdKF8pD4VBB5zy 7iCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780867997; x=1781472797; 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=SCoT97Q5hVm4j6zlVv2MwuqAb+a0wwmxj8TjVN/oHI8=; b=lkciPbZr9rUg71lGQmt62owyM/I6tiUMHLx/sXqeetJ+5aYl0LtynqzmHS/kqJhRLl SwffNcQpdKgcx7SuKUJPKlgwaIzqx1THD1k+rJfjnZXCjMuH9PTr8GDLQykfzej+3nS+ FweKe+Nw7UHjgV+uEG4M2Ay+/OKLE8yMCmfcZv1bsPl1bXMvOK+ubp/fkyoH7gy2j/sa DzhkPf3a6xAmWuDwLtLsPqGzdBtTu7J0amyKPiqOUQ++WkehFGHCFr+1uKIoE3BJygXW n/AXNnnzcDUiH25wYvcWA8wpnA7b5wOYMSldFRLfIe+NhE+VdbUhUKgCNt1MXQEPfd2O CvbQ== X-Forwarded-Encrypted: i=1; AFNElJ8gg6yG3+qesIYoRVvDfsOaZ9OkrJaSAoEDiQmW8wKKd6OVSBYwaf7FJKBVQe98OYdeKMl10EVOHfmesNc=@vger.kernel.org X-Gm-Message-State: AOJu0YyPoZ68noOcwcA+ahXuBZhBUgqq0u6DoeoaEtmDFIUG3AZLaLKM 9WmXUVGrXm9RUa+6mqsEMs21uBNsyQNGQk4RBSyQBsTjO2u42418qBGhR276HaECceX0EYSBAFO HyvcJqenvNZ02Q0P9quvwklu+56pC7yR82tzl/DsWREdGww/+RdnrjBZwqNXTvE7h8uY= X-Gm-Gg: Acq92OFaw96KwkGRQhCHmICrzPsoEwtgw4r3OdSEMKkiPfxSDW0hb3s8u0spjJKsb3b Bo7+jW/yPNp7cgxLIB1266RzunIRjmEdSnrGVi/A1OMwz4HOjGWnf42WI+ze7J9T186VslNb3g3 hZRLK6+D/6Pbi/eSG/OSVDLq6PsqlaFXFK5VWuRQNc0Mq0YJTlJs7X9I9jW3qGKVXZgOwJ9RNDn HhXePUTC3a2fh4KE+iT05Tn3OdoWg5L5Ep/+66C0Gmc2LfOmzoW2VLvhK6okzzjyygr6GMBm8PI hmFba3Y6rmDemZSZCSB6cuCcmY63s20119TYT6Szwzfov47iJ0BIvKR7ydtEPjbdsxoTgiIVq9c YFGus2OhAjp1qrOPuZu5OiBE1XrdVXjGK6fM2esgojI52WuzGzCQZXePDDi5AGYpPtCotZE0all j5/tGsR96qINuj7Ptz4cptVYAbsxD97SRUy5xWx/5yjBlRhw== X-Received: by 2002:ac8:6109:0:b0:517:8a19:a461 with SMTP id d75a77b69052e-51795c56d21mr173338621cf.42.1780867996759; Sun, 07 Jun 2026 14:33:16 -0700 (PDT) X-Received: by 2002:ac8:6109:0:b0:517:8a19:a461 with SMTP id d75a77b69052e-51795c56d21mr173338131cf.42.1780867996264; Sun, 07 Jun 2026 14:33:16 -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-396ac2d5ea9sm40374041fa.32.2026.06.07.14.33.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 07 Jun 2026 14:33:13 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 08 Jun 2026 00:33:03 +0300 Subject: [PATCH v4 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: <20260608-hpd-irq-events-v4-2-30b62b335487@oss.qualcomm.com> References: <20260608-hpd-irq-events-v4-0-30b62b335487@oss.qualcomm.com> In-Reply-To: <20260608-hpd-irq-events-v4-0-30b62b335487@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 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=5290; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=A2PPAf8RIZIumN5Va/to+GsP1RDHctHNlwnN5DWn79k=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqJeOPllDTwWwMp1vESqk1j4UB0AHP5j7B5bL5X uq2IPLISouJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaiXjjwAKCRCLPIo+Aiko 1VlqB/sGaQ+sksjZm1e69F9eT9jxsXnLzH5/YZqYUPV74YSWdt5FApSzNf7tmIphhpE0fUE4LWH YozHAGahdOxwneinArqneGoOTQvp1aS5h+di+zQZRzeWHqayX0N7EXOGpaohwBQ4lC+hoBv/c8U YLVwGvblsq7oFWaEfoE8yeFhSDBDDkIGhIPAeyPRq5ZThVvChLMwD6AbWU6i+EtF/dr6t42Lvhz mHngSlPxsh/S1AoVsH3HstphanM+aA+WlDkXPZdW7t2CKF4cAZX7QfbWK3QPNP/frLMhRl0ND6W xAWtiViB82XxNOvQFNCDI+lH9MaGzXCY3tiEVgH4V2bJFjLa X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA3MDIxNyBTYWx0ZWRfX5DkRxzh7XB5d Tm/GLp+x25BcVnQmrPRGR3w7t3hXmgi+soB1KlMkG590f2RVYOzIggjU4uF72q6vpY1c6szmNct ybPr6Lk4/6IeN5WgPnkgceIGB48t2WjdK7qad1JdoNNgP7yIwCiw3ScUVoAA3/BIrbZkFjx3yhz Bh3x6Pc460+jOkeiWPH1uxwg2d6XJq4WTv0Fkevn1Rh7BRkll7Ln0hYPC4KQ1+rTbIcelKakl5f 1XoVCzfQjuu+D6+K1KQgrhxMXojeYm4NJ7xYyxt9D8RUfIYxXSnSAmQ56S1rvCIZcFl08MN1n3W c9F0Na2wTskYDBj+7BsO+PFrWmmJE+P0mDo7Ddm5HITz0u4wscr/ibyHDmqiHTY3ONRw3aGzhiU QFG8i47Nh0v7YQ6yzqWB+GPlZhyGVu0+FMoBL7nbJvMdGxN764Mz+XA+IEDUeP21u9M7bN0d0DI IVeE58eQJR3gd0Ob2yg== X-Authority-Analysis: v=2.4 cv=B5eJFutM c=1 sm=1 tr=0 ts=6a25e39d cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=Uld_eVi5zExU9UbbJsYA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: zFgJ0gL97cv8Is1dlRI36VgQisTirpuk X-Proofpoint-ORIG-GUID: zFgJ0gL97cv8Is1dlRI36VgQisTirpuk X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-07_04,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 spamscore=0 malwarescore=0 phishscore=0 bulkscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606070217 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. 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 649969fca141..046efd913064 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); @@ -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_status_extra extra_status) { 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, extra_status); =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_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 +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 bb128dd0263a..d99019fdea9c 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -3528,7 +3528,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, 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 85d3aa3b9894..31acb3129723 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -6990,7 +6990,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/include/drm/drm_connector.h b/include/drm/drm_connector.h index 105da7c94910..5784bb9c4021 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 Mon Jun 8 04:27:22 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 C40E528002B for ; Sun, 7 Jun 2026 21:33:22 +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=1780868005; cv=none; b=MdoLJiZGn8uT+McoNZrM1TUrRio22MT1LAoLGqlLJey8ivnAvb4zAkkIwl22mbJVTtdSnS0X8ESudEPzpbf9OhLRHvFzezRLKFORbnrQhJNxJ+kiiSMzXlbwAMaDCrNdLULW3YOKCb1ABCqzgPGkDo1LlXemsVAna9JVJjMDeAM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780868005; c=relaxed/simple; bh=rdu6Lwit2C5KKaZ0v/12eMby0f1nLoCKXdHmYUOIy4U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dVUTGt4oXr8rvkOIAHoac6Hly68oqPAjYKRcWe/cduBC65hM38nUL+SsJ9BSQ+RbSaPvox7mbnlBqFNjmZMogJe0EeNK1In0hbt370ew+AaHsFLNhtFDuiy1o3NN0lI924BA6M1FgJ6V80fJ8XCOYqH6p01Sl4CuLOAlPpdveIE= 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=ngD8UMRR; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jbHDv9bv; 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="ngD8UMRR"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jbHDv9bv" 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 657ElCOx866323 for ; Sun, 7 Jun 2026 21:33:21 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= nXKFoSv+OD8UufALvZn1QYM34hChzmAMz1kYVtXJuCs=; b=ngD8UMRRkCVGGPXg fDoNGLDne2G4UuEFKonFSx0S0RwdRzAru+C7w6MEU7k/2OAsBmYgEhJ4x+R0qQbZ L2qSTlNJ6APTR6FLdwyAJ3tv/FTIGvm8kU9rY7djgBDw15dFuemzomhxKdpWojTP NaB337ghqIJozX29QuKHVtKhQqNLyrokSGQ5vE+zhAJI7N3oE7b9CM3wh6yVU1G1 vk/OHKxhODvOt+r2AiWgd6htZAPilaoag0Ma/JH8xhNRCCIiRtvi4NqQREpKDMw9 /qMjeOKjwfGpstW6QDVPpis/XwbOOD1OhUqxD8sbTdei0Ei4COfjwVsXoYPIexRF B6tBMQ== 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 4emb4w4w0g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 07 Jun 2026 21:33:21 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-5178fc89b1bso44816471cf.1 for ; Sun, 07 Jun 2026 14:33:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780868001; x=1781472801; 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=nXKFoSv+OD8UufALvZn1QYM34hChzmAMz1kYVtXJuCs=; b=jbHDv9bvaZ3vD7nBRD5PyAIAgZJkea5hfZp1XgiC1ZS/73eaQ3KnW/8w8Bkzi0zz4I 4isIMuwAtA8aVDbEe889h0UXp0O+dZbWJVd177M0nbvVNQbHM29DO0BhFTlWpCSjTf+G RuWO41KcHdy7J8PrHLH18fTjRaVuIa7ulhW3kg2A5G2a+YRCu4ao3y4hpOXnK9j1GF/1 BoUI1PTrx7hRcUKcyoXLHoorDXxcQPLCQYZf4m8qvvetg8ipMHf3VTlrAOJDgjqKggTE 3n82cRI0t2GB7OS9zVtChz7BLKMTTa3Hfb9lbqrl+NDjjAvzZ6SLDq3PsO9/4Eovjzks 5/aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780868001; x=1781472801; 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=nXKFoSv+OD8UufALvZn1QYM34hChzmAMz1kYVtXJuCs=; b=V0/ueAlAMiQ0OAGQL4YIMl6uN+GmGkWoZfAHQ3/vz2Hfnn4oaW5RbTp0pUoPC+HncP HM/4FEwJjaZM20/6HfQCRAyYP7iBscBH4DlN6jjqIovoF/bf0I9Ee2zsNCBRANP+cO9l 5G+MWjWq89mZmmlBWMYluFVieKCeVBbuwUGhJPAonv6CxQFZOw3MUhDauYwsdM9yRdgR zfpbpEAYLHBileFT4gugTONIaLrGFbxUPjK/XdUajqJWeHE1cv/myBIKwQXT8lSqfzER fiuiqa4Q1a/TKHvypDVFMXdtUkOt9vjRaWE29uNOlRzs7o2g31qvHnvuypIoROUKyfPx 3a3Q== X-Forwarded-Encrypted: i=1; AFNElJ8tELjtegncHnlH4BFzVmBDwDspYR1gLDJFPWLbBBovkdSzudN6KzxPsY7pEfM4XcrdXpyAFs5NCH9o4f0=@vger.kernel.org X-Gm-Message-State: AOJu0YzAxf5ptQ2mHvjBVdTCmapxksQIa7GqG6vOUlEjt571rW4UL2Pq +5+jrtcN5CJ/8DJ4/uvl9Axwu3C7Q7OiN/MLAL5fSE6NBDKjU7AMMpZ7fqnuA1vkaBB6g5DeMqW x8VKjOBuUDBdB0vfuoxrX3f4C5wz79md1mgKrjvNkMM9rb30GHNxYpO9NVybVY1AxUsQ= X-Gm-Gg: Acq92OG2MuuU5PKg7RBDGCQgevtw9Fg2pejyZeEUrGRWuAVY/lqglqWPNXp2sAnIYq0 nasJQd/8sMy9kvgCAfjNtQxDi+4nrZ+WlvxSCgdCuGJxDgCdKVlFIHw15l7TTC2YzuxJcGtLSVO jRvdJSxVSdPtd0Tj6N2FKB0xeAaZ8sJ3XumNzEvevR1pLO3yWVjgIjqfZAgnfF5YRAKwYoodaw8 cDawHQiCnq3L0EN5ZEZx/1FoxiyheKRiXfY/93QmA7QNi1P9Jx6vbTTChGK0CNYALYxvLKjTzgX jN1Brtwb60ecY42ZpVN+8gp9kpUOleT8j6Xd+9yCSIoZiwbIhWWG4k3uQXpS9UQgGaP/zxAeU+X Zsc0MzloZD3rOvnZrpZVQshYERdrgg1ncsympmTceB4otApHfrDFnuF2Z7f/D5ScOYZPYBEh3YB s8BqPDvPgu4xcQZhn65P69160y0ROnpdlPI8PJ8Wx5TcAUPg== X-Received: by 2002:a05:622a:2517:b0:517:5e32:af23 with SMTP id d75a77b69052e-51795aebe02mr194976181cf.23.1780868001001; Sun, 07 Jun 2026 14:33:21 -0700 (PDT) X-Received: by 2002:a05:622a:2517:b0:517:5e32:af23 with SMTP id d75a77b69052e-51795aebe02mr194975711cf.23.1780868000589; Sun, 07 Jun 2026 14:33:20 -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-396ac2d5ea9sm40374041fa.32.2026.06.07.14.33.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 07 Jun 2026 14:33:18 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 08 Jun 2026 00:33:04 +0300 Subject: [PATCH v4 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: <20260608-hpd-irq-events-v4-3-30b62b335487@oss.qualcomm.com> References: <20260608-hpd-irq-events-v4-0-30b62b335487@oss.qualcomm.com> In-Reply-To: <20260608-hpd-irq-events-v4-0-30b62b335487@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 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=7243; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=rdu6Lwit2C5KKaZ0v/12eMby0f1nLoCKXdHmYUOIy4U=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqJeOQYUpV6AbZ+K+nm95Zl+WoXVrg+fMcXpgbX h8vS/IYrmOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaiXjkAAKCRCLPIo+Aiko 1XWjB/9dqo7HAElaDvU+mxdxI+Ru2jHiFBIziemApDHFDezmPew+WlYPwGnF4HXVVGkwnqnNYXC RdsLnO6V2yjRvaDUyB3jljvapCpKeqoAOjTWpYWuh7ruL4RvL3r7RJbVdFiRCgvjbBpkr4EIXLI LPiNpjUmR/NV96lBKA8T7VZzMAO/WA0wS20cUkD+RMtdPlURGoSblZFEOZjOC6VhgmtUv6XT1mh 2uMqBR0JZBDRXy8Exl1Wg7/eF3lvh3i2WAxvn0PsSWdr2wJKf9djD7ZnJrxViM/sOkJHaLMT12p J6fPPAx0hkYm0ysKoMyk6Lw8ZrANBEfDyScM8c5G3um5s3Jo X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: bLTgFKTfk6Fn0RTvmeH_M3cIIUCM5ts5 X-Proofpoint-GUID: bLTgFKTfk6Fn0RTvmeH_M3cIIUCM5ts5 X-Authority-Analysis: v=2.4 cv=YIWvDxGx c=1 sm=1 tr=0 ts=6a25e3a1 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=sF2-0BiPaN5ps1Od_V4A:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA3MDIxNyBTYWx0ZWRfXykvhZD98N2sY VCBuYlDlC8fZ7YHIX3U8nIriwW+0BEjwtUY4hwFozJzf3WDiG8VyAv4rIDHKv9MvuwYePjkhl9N evKaomXreySWzgx95rr06Ps6CQXM/oJOdcebzFpo8LT4VO3TMH74q+snZcGvcZfkzwvIgrpmwKz dh6E6HGyTlXWaqrLK7egmgrdZ7aYF+CcYtOJzqGa6zgb9pb3LKpZS/KwSSppR/yyqDyYF9gb9OV Icw125Lz5180upDloYyJz9qHSF3x8K15uJqP+Ej6JgdKyaeW78mMvEADxG/PMoq4PGhk+EbWCsf DSF/3dKeo7YCLqq+zbh6DJmFibFBcWb29oRZy8vP2eYSCYTPNGhL5HIcEULd7eqX6VE6PXG55hv PerMHo6igyuaD8YRxaNpHHRPiW1W/5Rm9CBOKQpyi/KKr6cASow7uFga4q+BktRy34r0EnTC1BY /1M036N5IrieWG+bDnw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-07_04,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 clxscore=1015 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606070217 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. 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 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 687b36eea0c7..84e55db5c1fe 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); 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 4ba3a5deef9a..78b0d83ef2aa 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -1581,8 +1581,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_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 Mon Jun 8 04:27:22 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 AEB1A2EEE69 for ; Sun, 7 Jun 2026 21:33:25 +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=1780868007; cv=none; b=XhNsGT12G9rTCC/qIfsJr7jXCfjmFLnEZUV04cfBCaWvt4Pxryx+ExAmohDGgqQbkhSGo9QYYXUZ9HEy/uR/xtxDkeZMzpNipxD5E8j9zbA5jd9F0H+X9bKe5egybKGVLiJDfSBcpJi9MnuYt3Ik5DfN6JPq4qKtH7AwR6YZKq8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780868007; c=relaxed/simple; bh=Xv8OK5b4aegzohrbDrEYK2LgkMwGQ21VRNuRHpj/5us=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TmtnS49UyB7/u+8g78U+KYE1i42J7cwfxpKWjVVCVTpsI6QeCz+7tsa1QT/fvwPHuw4Ysbg+g2hI3QKAgmldacWJWhL4RmUSDJNFN9zAi7fZ8jPVAVfjH4VuFAntT5fTYBpCwSX/Qw8rLmstQwJky5rGEexndNvKKnhhzL0PudI= 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=VZFyBLWN; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=A09lQJ6r; 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="VZFyBLWN"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="A09lQJ6r" 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 657El8EM866306 for ; Sun, 7 Jun 2026 21:33:24 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= aqwCeGiS55Vf9HMiIq5R7znG8Y1OhJ6NDQ7vMB6NUdU=; b=VZFyBLWNd/Q1/Gt2 R/3Q0qddH8uIz4xr/Vi2dwaYYKBDTMYdvFLyKqfGmTVm+n7b3jJH2ZVadg9w37v6 oh2t2/rZ/7+YtF+E67j3kAzm5mA+HdMmCv3vcKCY3oIFyZWYWuvQpoiDSa0h4Q5w CGj5YXzNnx3ltVgeypqCiTOMGXalehNIEhlnCzrP6Q/AOo5sHwwXvugiEY0+hbP1 yBdyPbQX3JxgQoNIecF4tfvIBjtiKMFIE0mO34kHVtmPczqZcOweNY7XCAUDMwUG 69UrqAZRwMiS9Oovk3Q+8cAfzjbDKul8OzF29C0OQPtMLOKc1QVnUATkfA/zCiYf x0rK7A== 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 4emb4w4w0n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 07 Jun 2026 21:33:24 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-5175b7946d5so30708171cf.0 for ; Sun, 07 Jun 2026 14:33:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780868004; x=1781472804; 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=aqwCeGiS55Vf9HMiIq5R7znG8Y1OhJ6NDQ7vMB6NUdU=; b=A09lQJ6rb9bGZ9zu3xTQtIPWOY9TzXLZr2m3eJ0d3HDjpFZSxepEylsZC10vJvUNjM 2K6qKej71+8X3gVxJxnF8zNImPDXEr5l8D4el5bbIwTXJm7qeImYj3EQOMqi2jRPYQ/K I0ChsUu+1yJwRZV5AptAHu8qm++obfiA89lq1BUJoDXc8P1sQ8WkPctyhliiIjran6I1 pVkJ3r92yjvRQ6rv34cdse47fsFur6CUHogMC13wO1WX6NHaNEFABAqMGXYqot6w565B +buL1l+dUtmHJgei688cooXmMDw7UTAWjhcSBqDq/w76TnYFUay2iAUrFYsSS3o7yMgo zUQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780868004; x=1781472804; 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=aqwCeGiS55Vf9HMiIq5R7znG8Y1OhJ6NDQ7vMB6NUdU=; b=EFtdvH0mYNnPhQW5D2PuPOGaPpv4CCuSCUQc6hffkloiZvoOOf3mtLQJzOQc9QJRFN WIgqKa2XKsj6YpM7uW2tw4z21aYg0XdDAHrkrT1tBR/slFqCRMB6FRxL1iYOGS6WuK+e jWSzcVeBMmCeikxT22wGUOzfMDRcX+nXOxr/iWnasLNAvVJIOri8/SWDXSK8M7WEVvXg RN3qWlshstP7znq4SUaZjRPXI2b3BHN9TA/tObDWPZ7hDzGrql5xOnDs0crFOEyHAXcj WKQs3ehOE2FQGQ555axY1/GKfzTxkV/pMget+XtZCWp50qPvOuwLNfjShG7s1n+02mnZ QdOg== X-Forwarded-Encrypted: i=1; AFNElJ8+S0B2tY7JNr4/iAOA/zOlBudVzn7RmzkdHKxQMJrVIJCXX0o0QFRHLY/cg1UNyvykcRfC7ymXBDW1XtY=@vger.kernel.org X-Gm-Message-State: AOJu0Yx1KWAklAdhdqEFGZfWWDwuUM+u3mhcU4PMFlULU64wI7sld40k gr1Yln/Asi0r4/x8YUzEEvImNju3VjLVYWKWLaVYH+65I0i0q0UEmZV23v4U9Bwkd/dFToZlRym YrTAmVhpJs7dq7U3qbalArKR3+RBgNffQozCXk2Akdb3vCyw5sYvaK5eozEHJxREWVkA= X-Gm-Gg: Acq92OGkAmsPxjVqb2fQZV830kW8cRozexdBl11XE44J5xKfDM40uBHnYKvQ0TVMHP3 dTmx5QSilKID94p5H158TdjTk9wnIyWbq9hkFPo2RSrzVIkXJtv90x2sBeGO6okv0O5SMhkiK9F sLrh4oOTt7EaL59QP5twjSmnpyky5lEt6FNLCqSAQAcIyTSES0zwOnZg9j6VfwHk6rllEe/PWbZ RWvSaM9IYAjJDhh1F4IBn6MivOiMC7zrwfRVS6NasfVfPVMHXgIfe3lDl/UOrXDZxGv6l3fD/vE yuiLQ/uEjzZu4Tm0zkIgMoFkuNg6N8XI52G3nIBy2Aaet08JsxBs67wY1CnVTbeKJQyN2sjuNBC 5I6qUjRYMXhfALgianDlpAbGBnlafl31SpGAezkMA5s5PuDOeWE1znFgDwmjrbDl/C/EkfxpftC gz/EpCKSv53JsPj8f7IwOhYdlolFl4U8qQNna6UPl71g1+iA== X-Received: by 2002:a05:622a:20e:b0:517:9157:ecf3 with SMTP id d75a77b69052e-51795be129emr193812171cf.36.1780868003992; Sun, 07 Jun 2026 14:33:23 -0700 (PDT) X-Received: by 2002:a05:622a:20e:b0:517:9157:ecf3 with SMTP id d75a77b69052e-51795be129emr193811791cf.36.1780868003426; Sun, 07 Jun 2026 14:33:23 -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-396ac2d5ea9sm40374041fa.32.2026.06.07.14.33.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 07 Jun 2026 14:33:21 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 08 Jun 2026 00:33:05 +0300 Subject: [PATCH v4 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: <20260608-hpd-irq-events-v4-4-30b62b335487@oss.qualcomm.com> References: <20260608-hpd-irq-events-v4-0-30b62b335487@oss.qualcomm.com> In-Reply-To: <20260608-hpd-irq-events-v4-0-30b62b335487@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 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=5547; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=Xv8OK5b4aegzohrbDrEYK2LgkMwGQ21VRNuRHpj/5us=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqJeOQTkKDpqt97cyPjjeSFT2syRbXebSWwlKv3 9mydw2N4yiJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaiXjkAAKCRCLPIo+Aiko 1QKhB/0bt9RHhoBHoeWzG982WH5dV54vogSpgf/IUDHcvtgk9lubK9mayJlYBeFGJ0ZIBUpzcs3 jSDS3jSHxob1NPQdfrE4CuJxL1ttAWQ2ltEvFK8DPvdxL3rlQbWb+3vJ2wBhU7qo/SpXd5LyLzX z3dy6ikv1Xe0oxmdeOoeE1pztaMX9L2npVlthrH8PJeArW3Ge2WMtvQkWZiPzykgD2tNH67fE1F Zv6WdqrGj1pz42HnAvlRjEQ55aEtrGQjtIoM3K6dDw8hDMs1LUS+1536p77CDkRB/FUNi2mmaXy YqZSic4Y4eDW+mUWyoxgu1gPNfex2LX4ve6q7jqYnwxwmFhU X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: 9rUa0qjikkoRcP4y4G5GrhVZBgzN2fY9 X-Proofpoint-GUID: 9rUa0qjikkoRcP4y4G5GrhVZBgzN2fY9 X-Authority-Analysis: v=2.4 cv=YIWvDxGx c=1 sm=1 tr=0 ts=6a25e3a4 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=x0urvBsf9yKnxdYdiaoA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA3MDIxNyBTYWx0ZWRfX405eZQbzJs8J 0VBhYe3bpirWZ84LqPPqAW8mq1C+QhXeOPhGHVnLQJxnVzmpjFAEnK657bJzdo5LJuwIsF77Ghb 7/vWX+5HhsAHzlxZ9HWefQ3eRABb4QMbqLOoIvJtcrhNCdj+nS0UXxhrjD4p7AxPSm/GXRDiB1D QnZZHV0eHBYMU9a8VEYKOX1qHvBiyKmSGnWhDj0WFyGbyNogwxIxHNU4RcJLeukl51nJiKWSfcA egi08IR3A8/mmwdCiFMKBj4Huy7NOuQ7McHb9BXzhjFhjt4vGRrez1Y2kOARVvNV4e3Nb+ym3id 4tFV9Ante9m936/9cHAApHYGg0FSPivwT1bWgpXsQTla+wEeI4wmpDBp+WATKLz4nMTaTNtPhZa Fh1q6JL7r+hE2AMszANawpfgg6KD0M0Bv/Oz2IXmcyWr1a4yD30J8RkU+Gjek7FMR0d/vdqpaGE kc6ukkuSzYFZ2dpfZjg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-07_04,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 clxscore=1015 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606070217 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. 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 a237c65ebd69..35df99b02c9c 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_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 729b12b67470..b8e643cf1d4d 100644 --- a/drivers/gpu/drm/bridge/lontium-lt8912b.c +++ b/drivers/gpu/drm/bridge/lontium-lt8912b.c @@ -505,7 +505,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/ti-tfp410.c b/drivers/gpu/drm/bridge/ti= -tfp410.c index bf4ab4eaf269..e2eedaaa3552 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_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 046efd913064..a34643d3ddef 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_status_extra extra_status) { - drm_bridge_connector_handle_hpd(cb_data, status, DRM_CONNECTOR_NO_EXTRA_S= TATUS); + drm_bridge_connector_handle_hpd(cb_data, status, extra_status); } =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 84e55db5c1fe..3fd3e7bac588 100644 --- a/drivers/gpu/drm/drm_bridge.c +++ b/drivers/gpu/drm/drm_bridge.c @@ -1445,7 +1445,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)) @@ -1513,7 +1514,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, extra_status); 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 78b0d83ef2aa..6a5edfda2ddd 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -1260,7 +1260,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. @@ -1578,7 +1579,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_extra(struct drm_bridge *bridge, --=20 2.47.3 From nobody Mon Jun 8 04:27:22 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 5CBE12EC081 for ; Sun, 7 Jun 2026 21:33:29 +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=1780868010; cv=none; b=NWCeRNTPtkk/gU9mzHy2Xn/IZYo6hVabV9opqoXm829Lku+H20XWUfeMa6M0Xi1QFqNzp5lYo1XpcyszVXaZC/S86qpWDJGaDfO1ahCTKXCCocq8v2bq8U58knst5/iztqD1XyrfX1FXp10TtuqLTdseDAElF+GKXEjtVMUs3Bo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780868010; c=relaxed/simple; bh=5ElUVbocQ0iy2D7k4OSQYGFJA4wuG0p7RdSU3WVG4AY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KwcwI0T8rX5xXd6vyVGQSQhpxeBn7mhrahSDwNy9dCf0HV1GGX1C7djM0/18GFvtnktBfY3Udkfzp8wy8i8dH8wE03GIrnCUlvzpUe22/v3f4UOdweqllv9JKW/ZoMJTzLAYEjSAwahxNIte2mmbXG7+QouQoD2bW4MGCt5jqME= 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=IfvAqeMh; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=UHf36dX2; 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="IfvAqeMh"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="UHf36dX2" 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 657KbWda1526220 for ; Sun, 7 Jun 2026 21:33:28 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= kiGy/JVajFIukktw5owJydRTv8D1sE7z5Bd4+V1lofM=; b=IfvAqeMhQA3w7gsk 5Alk4DF4N0JH0KwTuB3eXWzoXmzNinLzj0ClsiwjPc+guvwtFneMRSFBh/rc0HlJ NvtAmvIguXP4FqYMxKAH/KhnjfxbJggLaeNf/X2q8W7elFkbyNQqoiFhDiDAqlAV 555LxiXgU/VSbu4ZsUcN/MCLKMnwSd5q/NyBK2Xg/SUW5SVo0q6Z1ubwjivrJkOH r/DmXRmt3+4qzF7dtcDoSinzmEyq0TLJvKQ3AtdMjkG8IEOYmYgs37j6PG0aVNY/ O4tfdbm5fliyVoVh99RpkMAK7MOFKgT9cUbQxL+GnuI/HThJKdGh4sEYzXs7Cgx+ 4au1BQ== Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4embx6cr0e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 07 Jun 2026 21:33:28 +0000 (GMT) Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-8cce4f4634fso118057666d6.1 for ; Sun, 07 Jun 2026 14:33:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780868008; x=1781472808; 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=kiGy/JVajFIukktw5owJydRTv8D1sE7z5Bd4+V1lofM=; b=UHf36dX27jMLQ23EhOv+Zqf1wJ2sMGwxslpWkHhVThKtz8yofOt1Np5+D5dy9LrBN+ 1mOORt52oTfoeH4Ub/rhFUZ23NonM+51rKubGzBzBOgJzNsM4TINIJ5rZXfinGFaUSiH 8AXgWFKyq9R7966W24XFrxkgF1n9UT8RmuyjgE08bnSKATk4VGKnADToSPrGwUEmNJe+ PWyIFoFVt9GBiytVgXkhHCqi2wC6WUGZif/D3g84gxwQj8cPY8duzaFc3+TiCa37YPmw HeGfnB3GdVULWYWhfW6Q2afYK+cB+NRAh49GHKLmR/P1u0wWKDrFcDxT6o91KaqSA915 dCkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780868008; x=1781472808; 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=kiGy/JVajFIukktw5owJydRTv8D1sE7z5Bd4+V1lofM=; b=U6y5A1myearnOav8f+Rv7YejmPrOjiIgNsMcKUvy/o1An/PFTWuVSL8j60buDKVz2c U9S31TPImMxryDdr9rike05WzM0LHjn6qvMD9hnm0U0977BJcRUNJl66Q0ctmF78SRdF hGoyOQ2mSiuLZslrCkzrz85zKc2ik1aecDTazLeiicp02p4hD01DCdVLsukXGdbPEqAr T+DjdcJrSaM0UV2sOrzeRuyb99GIO+fB6ZwPfrC+6qjnmpb2JKLZ3VnXHKWd0zxa0qm/ YWbX4wrd4/2altP5faEGj/LEOSRE7fTuJUK8Gka5K7stL+L8PKGIyR4ZDGVuvyCogdEU gUKA== X-Forwarded-Encrypted: i=1; AFNElJ8eUDHqX9XbMii2fH7+kB3iGNbkjRWr0J7iiNuj5UT0mq889PRxMBlctBKWA0kKnWyIt/6uESDLSoAGcCk=@vger.kernel.org X-Gm-Message-State: AOJu0YzkhBW4T0m7adOh5y7yx/xvl56tsUbkYK6jDUJu8648wYkIbTGG 7hf01i8LyStO/S1Jj0QYfRKi5YTVEgUxPciY79V1cwbL0gX/Fvejnwx7OsE80Spb0tNFCo9dHlT 4gv9wB/ShROs5L53sen2Lix7cfYNRUdmGNdKMRSqcdrp1IoVQqB75GHJWNu4v99WCKHU= X-Gm-Gg: Acq92OHgCcDHw5XcUPrZy7GBZiRe7yL8olqMM9NiAi4melwcTjeWwJoPRsohUXkndqi 3MJ6iyhZcHEvG5lX4L2D7iuisE1OofsPMobrLMZSTKSDdASLk9ep6ytGXEXtWUdIHlhvd4R7G2J /XsRu0SoxKjYYdLvxdpsBN2eEsnY0eLD21cPFdvvRag5av33L5n8ukMR24ptbN6KOVcSN+4iQmQ SrHSGhoVJpluzUMls2ugFwqm5jiyPXq7v8NDDBD3JbFX6posjgZt/+O3kcSDsjaecaeutm+pNYq V7StlNWf5TJyFtJ501sw4oT7SaFROGAJuZTCiBl2WLgnIxtep5jDt+fI3keeSb9nXgUdfYn750N vubR002Rgb5Uo+KTDvuotjQB5GOCKUuHQzushYFM/3vAcIjpTKcTXVOO1qhmKwhvaC0DfHfKS60 PvPYPN3/krxxEBLX207yn5gjQEzTsdkFB50otlkXygjN5OIw== X-Received: by 2002:ad4:53c6:0:b0:8cc:f135:52af with SMTP id 6a1803df08f44-8cee6134a06mr166005816d6.24.1780868007534; Sun, 07 Jun 2026 14:33:27 -0700 (PDT) X-Received: by 2002:ad4:53c6:0:b0:8cc:f135:52af with SMTP id 6a1803df08f44-8cee6134a06mr166005386d6.24.1780868007134; Sun, 07 Jun 2026 14:33:27 -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-396ac2d5ea9sm40374041fa.32.2026.06.07.14.33.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 07 Jun 2026 14:33:25 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 08 Jun 2026 00:33:06 +0300 Subject: [PATCH v4 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: <20260608-hpd-irq-events-v4-5-30b62b335487@oss.qualcomm.com> References: <20260608-hpd-irq-events-v4-0-30b62b335487@oss.qualcomm.com> In-Reply-To: <20260608-hpd-irq-events-v4-0-30b62b335487@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 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=5210; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=5ElUVbocQ0iy2D7k4OSQYGFJA4wuG0p7RdSU3WVG4AY=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqJeOQyj+mOsk53KpLOI7BgWch0S1P0qlexQHVj QyBxAnUhaSJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaiXjkAAKCRCLPIo+Aiko 1bHPCACpzwkqWwBmlm3hEBRQEaLNtjJ4ixNpHz+KFuG2tLcPBqwnOTCnIWKTokmxQIPcwM6Yp2W FWCul8g8831IzUI986tYlkGuykff9QCUSRsIsPrCTqy+ysd2/VPkR3DdSx+f6tdj8fKuZBV4Kaf 9slQ7JyOtsR6OGKVXoUA1eDX24qdqR0dou+URi7qC3Wb9svooTtqeJzkyq7+ZJIAm2/uA2GGUZS gD7AVEXZmhxRv5AxbmsrRsafVW+M+NDNDVuU9ThbFwFnopPm+INKpB6YWtHza1daXidoGdVeEbU C0VC3M7JQ+P81XsZRBqgXmDKlXRIeW0Qoxh5bOs3chXnxWV5 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=cvmrVV4i c=1 sm=1 tr=0 ts=6a25e3a8 cx=c_pps a=oc9J++0uMp73DTRD5QyR2A==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=P5073aSicUuGdIvNCfYA:9 a=QEXdDO2ut3YA:10 a=iYH6xdkBrDN1Jqds4HTS:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA3MDIxNiBTYWx0ZWRfXzP7/bno6Xa13 C1qjW5Rg6ygHcXUo+LSdfEw8Y83GXA8JpbUYRXFPgYryWFlHyI5qEckrIOhvE3J8Y4DBSdd6feL FNXd3hYhNgKos2je5Ph4bmO9MxFJEYkO5YlB+ZdEM4DU79CgNHbNq0sT6mkODROnmyw17eToTwe 8IieUj8xBraCIGPgbR6VInymZ1gm5GfNZJJCM63zPWu8nAO4YlpUM/GT1ezI589D4zgah17prXU vlNSlj6NltaxWg4Q/eF6flwUpqlRrWpSLd35CLemosxquIdKd8a0RI/GR8bkRc3iZgXmhCi7nlv xzGHr4L/NluRALgIG48JdgUrHtQZyLR77yjbS/bUgJyuynKvqRctww/phe3xW8m7ZYc/ubF2G82 iBwa0IOsbvbvTibqRFcvYkKo4p+CxPp/pr0j4t6wKOMTELjNdrHQDlQhGcdHIVy/G6znF94lRb2 4IqTFSFMUxjzgdpvN/w== X-Proofpoint-GUID: SR1vl5569vkSF2jXiV1lSSRx3xUvmXNq X-Proofpoint-ORIG-GUID: SR1vl5569vkSF2jXiV1lSSRx3xUvmXNq X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-07_04,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 suspectscore=0 phishscore=0 clxscore=1015 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606070216 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 9427cc2358ae..8cb17bd0e238 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_status_extra extra_status) { 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 a34643d3ddef..8f7075fd2aa5 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_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 diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/m= eson/meson_encoder_hdmi.c index 55c0601df3c6..4aecf0ffcf75 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 dc6f33809ca5..c0f6a8ff9b99 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1514,7 +1514,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 041aa026ae2e..4d98e04bb511 100644 --- a/drivers/gpu/drm/msm/dp/dp_drm.h +++ b/drivers/gpu/drm/msm/dp/dp_drm.h @@ -43,6 +43,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 e306247ed8a0..d02d432abde4 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 6a5edfda2ddd..9c4c88024cc5 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: --=20 2.47.3 From nobody Mon Jun 8 04:27:22 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 63EFC3328FC for ; Sun, 7 Jun 2026 21:33:34 +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=1780868017; cv=none; b=iJFtMvcNTh6yWFjETbzWG9a2J/gkbs3HdVs9DrBlkxBIBkMCc+l6YkrnYTOKm7gimqxqo1CUTgAhNzm4TMwljx6EtN1tRnHSMgGWwUbJRG95ncGbtyqp1lZFx07tJp/GVNJh7cWhkyqlKwe2+3XHS6U32WnDxdaJQAPUC0zAngQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780868017; c=relaxed/simple; bh=QU1zz0yugX4tikhrrDvaSfvgadApD+nFc1XuyjM+i64=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rVSYiAQItCP6DQTB6si/Nphh5cA5bVxb8muR0QkyknkwuXu0Bhklc3+1/DOPQjLJ2RFnVMHstxyd0mkqoyjfgYd8qhixYMK4oVNROLYoth1qtgJN/PuJArMOO0YKZOtX+pLr+dTT3PZcbFo/VobPazjsuovz8nap5sQQn9NPOtA= 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=hn5CUgbi; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IXGTdhG1; 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="hn5CUgbi"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IXGTdhG1" 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 657EmJHl888723 for ; Sun, 7 Jun 2026 21:33:31 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= qzWM1TZRG4fIsuvgrGBJ02mMzsQCiM1GfHgBBstXKAk=; b=hn5CUgbiAJuLHwDU XtFLBR9mpaeAH1nUby7GCEGjmehu4jV6xB59t/z094qPjswb9dx48zPy/HY6rVMW 0Vml1KTght2Z/yv3jPYj97Mp2AiYhM0S1A1b5TbxkYEbvt52K/V9RlenZMZr5nQi R8l5kPczHLiQONmvQP1zKltG46qXolNQAkRCHYIacaeNO9p8//I8cHq70nlaPhqd nVGOLO/27EgaoQsTCStJQhIue2tZjfnt87dJ/LOorZg0HK69vQJdNpuUs79Ct3lf GHaadiTeIMTosYTqmCassoj+XIiTQ1+gFJliDbhm/rVhREHzCcPnDuFPk/e+XPxn 2ICmag== 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 4embmrcv69-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 07 Jun 2026 21:33:31 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-5175aa1a54bso83213131cf.1 for ; Sun, 07 Jun 2026 14:33:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780868011; x=1781472811; 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=qzWM1TZRG4fIsuvgrGBJ02mMzsQCiM1GfHgBBstXKAk=; b=IXGTdhG1732s7MNX0C9ekV5JT0fFWX4xdpLt61FPd1ma5tv+s2XrFWcJ3Jomsv1vkF DZ3Dg5Eku/FBF2FoD0Le84RKZ/a2Hlz9enMtF6MDMNk44zPRMZshMq2vXi/uUrNs6RNG RfUlBOzfWlVVGZ+1FE+XRTRnQzuPhpIednvgqebnSXAtgkNSAOwq7AgTtGyvNQXrM5HJ g75K2LQSGJrR2BO7ClusKrvvKMiNOJcPypp7ZWYr27k1u/euFDgkU6xu2f+iq8vLgkCI zPnXkmH3IXeliWqCO3Wil+s/GMsdE2s5U5z/kZ+OFUaxfglP9K6HwS7ddKYmKIa5N5MC ouyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780868011; x=1781472811; 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=qzWM1TZRG4fIsuvgrGBJ02mMzsQCiM1GfHgBBstXKAk=; b=CiluUtHCchV+Z3IOo8wAFQbe9uqrRhSYlX7n+U3DWicfEwaoid62WFQvB+OlUg+87g WMLJCklFDSBj8zkE3GGaNsUxaj67JLQbgui59vztjxLNhz4v3AI7/yhlMSZJAmGSjFfA Gr2Q8aeqfFaLwehspomZsqRNNXNHF2bBlSMdo7l/2dbcxjhdN21BYXV2vJGnGF3RPAjZ l1HSgGac9OW5d0hBlCCh1+AJrT1sCJbN+S73baJqG7jHHz6VHCnWRT28DB4ayk+KFZ08 kYzL8RExf15VHz45QS9+AyaT4iblhXJJ7D89iXHR4OvNHC8PMPXQF+lf69VOXnmjx5EH QvpQ== X-Forwarded-Encrypted: i=1; AFNElJ/Z3UevQQJXUSLkbmZoZ7mk6lDJg1XUsYBChgzfVP/zD8wiSOFioNaiqAIYzHQmogOsY4P8FNESiTTKMXk=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6lvNKPpmQqHYiIiohrFusI1UXtCm7hbH3isqPtBTNa0v/cgd4 LN5AoyB0qm/AJhqUIK8ItBOUqwQHaEeKo9ZiWLPY0FAPH3LIyf7cqpI3rXYM6iyHPoHECB9skmS Fhu9qPa6+sr9SqFUxY7w4YKKjgAkHhZ/Ytgn+4b7ZlYktpa7+w+x/CBU6yD1npbwgY+g= X-Gm-Gg: Acq92OE6ttmlZO9ipBXj/5SuG9opI6pQJaQFMUgafN2QwOD7MAx6MCmHWcRQuVELK8A bkGUbB9xR9sJT4CrCjJO6z8uep4JuNJ7tggvZ9sFBQ6x86L6aBOwcJr+JJS7sZxpGGD81Iq3kma zY9Hpl0g4NoesL+JuSn7sVlrY/vG0HFHmEYFmcThvD2A9hl25W7iQ7h8fixd3WW9tHwsNdWKyRU kHEkUbGvkO4s0ILRCyeBBm/a3gylshFVpBjJ8cxRrsuyehl9UHNsMuTdBegO2f2kwQ8V1eR9iFG b1f7DWtSkwXNEWgv50Zt/NqzT/SHByMDj2vVnYgYDwQXY/BKPadF+KBUpTAXl55C8qfd7NZ0+CJ pgH7OOxsBK/ooOUA1gZgUgnihQeLyY15TKwaoIne67ncIdGUUPDdsd0GPnU2DE1/SqXYmYRlSk+ W+aCx+Ar2Zhfok8Nx0jtNOghSWTlZeoCSmbhLaa4Scu4egTg== X-Received: by 2002:a05:622a:190e:b0:517:7b6c:4459 with SMTP id d75a77b69052e-51795b8652fmr197935821cf.24.1780868010791; Sun, 07 Jun 2026 14:33:30 -0700 (PDT) X-Received: by 2002:a05:622a:190e:b0:517:7b6c:4459 with SMTP id d75a77b69052e-51795b8652fmr197935631cf.24.1780868010370; Sun, 07 Jun 2026 14:33:30 -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-396ac2d5ea9sm40374041fa.32.2026.06.07.14.33.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 07 Jun 2026 14:33:28 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 08 Jun 2026 00:33:07 +0300 Subject: [PATCH v4 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: <20260608-hpd-irq-events-v4-6-30b62b335487@oss.qualcomm.com> References: <20260608-hpd-irq-events-v4-0-30b62b335487@oss.qualcomm.com> In-Reply-To: <20260608-hpd-irq-events-v4-0-30b62b335487@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 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=1388; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=QU1zz0yugX4tikhrrDvaSfvgadApD+nFc1XuyjM+i64=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqJeOQkeAHjmwgf4TWmB+cq7J3apXFq4vK/4Y/t 1PsK+1kRv+JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaiXjkAAKCRCLPIo+Aiko 1ViTB/9NfpVnjn43UETfojgpSwReE0dmwB3DsDHqHJqEU8ojNNa4kPpaiCJU81lltCqj5XgErdr rCaglIXukNpl6RYq2cnOGXZDBFtEgA1NT4vKlAyKuMYlmZz0pWVp+FHDFuLRJ8tRA9L8J190qw8 BO+hYy1pXLBiA/M32oxz8e8bzTDXNSD3K8dG6Y4JaoJige6+C+SFHd0d05ZNIvHff21WqKgWR8K Jhgy/Dnewo698WJFRxsEqUx6F3RzyX08UbeMeFsVfwktU0USS/tH60kTsuxsPpyB5yREqjDzwQ4 m7VCLAA3vhAoRAt4dZxK3oKdlRp2MTrv7zcL8DXzOeRsT3eX X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA3MDIxNyBTYWx0ZWRfX+AtJjp7dTuvc GUQYrL3PdVtfknZhD9ZrZUm0PISRFD3yIiZ1ol+Bn6F+uM7kOiEscyjkVBAKqfb57gc8iA72rwv DJVhQrrVPpubqH3bmJrdiOYQbxUsnnJITJOjwfSfOXmf6c8d8PM9L1hGUE7Ch1Y/BYZDq8g7HKj s1eJrHNBYmbgGIPuM6B3LlghXnl18BhIldwPrk3ND/deOjUCFky0o0op0IgYZ/1TSAGQEAuf57x 4FJ9oEAHO3fMbpPzIcZLMQ5C98yKhmMGDTEJPl075jhE5wkU3YzWEqkRkUZZHbE32x9G2gF7whl H0A3Wxo+0myjAuRQKNcP+Bxr0cM59ztTEubGQEAyFq5tPMNzSWO1O5SL272ISkw8UAqOOEzmpiI xI5iyGC+MeDk2euxd6ul1dAji8L0FMEP5YCo3C7EgJUliVQdI706XqZeybLxBd+ROIxoemNusY4 Tn1Zzt4uHnpegzKXgYg== X-Authority-Analysis: v=2.4 cv=B5eJFutM c=1 sm=1 tr=0 ts=6a25e3ab cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=kFJzCQJ8v3RGWcIHJrMA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: yIbERKHiWy0xIvgyNa_nb5VRIQNcjL21 X-Proofpoint-ORIG-GUID: yIbERKHiWy0xIvgyNa_nb5VRIQNcjL21 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-07_04,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 spamscore=0 malwarescore=0 phishscore=0 bulkscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606070217 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). 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 c0f6a8ff9b99..743d8fa40dc6 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1533,11 +1533,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 || + extra_status =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 Mon Jun 8 04:27:22 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 9566028002B for ; Sun, 7 Jun 2026 21:33:35 +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=1780868017; cv=none; b=mO8A2KBkl1XODnE44/rlLC8RsHxfCHM6wxXCIHy94ttOBsXKHPJIE+js86nQx2BUzMcdOs1yYqVLokiY84IfmNvAzvrhuE6oaxOiuB4ew27V+FXCzJuLbyV5JVUJVNz+AkumTBgL1W77V7LSEAfc4GUTHqGmf9Xkv3HygNHazV0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780868017; c=relaxed/simple; bh=RMohNnP615sOpE6ZWKg1trb/KrvgErHGs2zP2ZkYPtM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=D2rxEoVGfHErObwTa3svkSEzlq920f4d+vUuk8zn1q4qZ5jYN+5OKiUaHQdqWg2VAOtwh0Od9wf8ZvGK50mT2gAjtpF9CScYCmejUDTR06DfT9ca+ONY8CAA68LlZ7pacJusw8Dl0qQWiFWO0tJafnT4lwjlasEFv5xq7jC+t8k= 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=ed2MZhcP; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=OfpXRdol; 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="ed2MZhcP"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="OfpXRdol" 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 657ElCP2866323 for ; Sun, 7 Jun 2026 21:33:34 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= HhevlY6dk/ftxvio6CBL6QbAFSSp/a5ngu9s7xr+zgc=; b=ed2MZhcPR3ZJGhm5 +YO16MmNxuN+dCsrIyoX0dbNtKYdE+mXIeUFaI5m4tL/8sC4JDvTHIF+iI/ZKfTy 5tuPR0kjUDFAN4M/bj01EFAbZmD1vXgW33IHtqdLaKD8+Og9HFpTiEPk6p2rhC3e k2QsiU8LYLCa3Uh52T1+5W09iLZykr+H/ckInlthHNkXhnAD7TMu95/MsU7TO+2H ka6I5kIsqe4BprbPkA3vl05DmALsf5IyHe1zEyVd6pK1cyEgQY1P1P2Obs57PNDE f0NkV/UYxpwp29Ibe4Qt7TgTH/q1wyqQb7nmlqPwWrefKljAe2zwI+rDAhy4Fzcl VjPJvg== 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 4emb4w4w1g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 07 Jun 2026 21:33:34 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51776d4355cso115843531cf.0 for ; Sun, 07 Jun 2026 14:33:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780868014; x=1781472814; 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=HhevlY6dk/ftxvio6CBL6QbAFSSp/a5ngu9s7xr+zgc=; b=OfpXRdolAC9WJsUqCXaF0Lw/fTzqZQ6NnIqtI0JpMkvfeemEOCnMHwVh4msFK5N3Cg 7pcaZY4IxxYuiM0j4A6PE3uce+/ze6QPriBMb6wrxkaY+UUjAjgnbH9I8IPvWyfz6s/W olKC1u5tes6bqmTNlDEShJyVq+hzaV9k5mHT03H3OKNgzCwYbeEvTav1ImZfbgqmquCl 8r9Q5YHLIsZjqZ40wOldbIm60zrWnJ8E2vLQIU5vyAgaWM4Er2UOcwHic1UjfsfvAyxt 7krpojNC7ZbdbecU+TiX2oNFKVMO5S2UlTszvmuGvfV38uAX2FfTaOCM66FnysOhSSAX VuoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780868014; x=1781472814; 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=HhevlY6dk/ftxvio6CBL6QbAFSSp/a5ngu9s7xr+zgc=; b=Zkvw9SH3g9e51qx5Zgu7qZI1QDAioX8OJvaXbl8RPbia0OUN9ertl8K2Te932eZwbg w7FL/eiL4gfqJc/TfCzOwJt4LoFZbTvbFWycrGepkh+pkxD4eiQIUyvxjZLux0ls6M+o 0K2H2FEEV5L2mCmd/XQFLl67bkV9iVCdT79siwxhcCaemq2zxENk8Um2enIIaTeK4WD0 E06MGaU7//h6R65dLXsSAuZ7K1582HFZHbhvzogrCG44VFNAlf5jXtMuZMAwhewb4Gdm EiKQ/NI4I2jiQyddPOdGytWhTqt72SiMMQf8VKsE6dlYECszLRT+jVuhpSZu+ZEpC3qw Q3Pg== X-Forwarded-Encrypted: i=1; AFNElJ9jVlnSwKx8IWNcxFY4kf+lKCC/nzBPtK7Y41ZqyEOPR/jGvc2mAtXMvueO7MPboTor+4yxvrfaemdB0dw=@vger.kernel.org X-Gm-Message-State: AOJu0YzbYdFi8v6HVdbEomUiA2wpCFEaXdunnuF3vZu66CF7bDWZnLPc aKT4cdyGdJCPsYWIYKH7rxOeq8XiWn1/pGt4dqwcCpuSqTlrkOq1ftSYLy7S0PZDELNk3ZkI7JK /TJ+5sL1cAhznDBRG9M+ANuW2gIDfmey9eLMlngi0e42hiVD5kkqiwomYxmAb7hvuzfo= X-Gm-Gg: Acq92OGIdQrXjOVjmvtNcoHcIGuNi2J7VgmnhDq6X6q6UkjCv1zHgz/KutWkitFL5Nl 62uwE685o4lSXLzqjvVg7vLYJ7/1xRuXaCP9zogEsQhGBadZgVuqEA1P2CBKxQPK158vzoPCWW4 5AVHuOoUNZ7gaZSqM47sWK2aIWG3mywnqTTltFs1uc3WXmSveu/h8HZvw61PwYJ2WHIjm7g7/H8 ZhiJND36KXGM3t+u/cj/j9sZoAHPrp4b1ZutzWTSomU6hll2TWGtEs+dnUBIM4rzEJ5CVeCo7Tf opVClTfMtHzQ1tq7sZC7KmmZkF7KSIFcbUGy/CGTH8J4a3b6yAwyDV7TLiAd0jqht32jwyonB+T jpfBN7rxBJEVl7X41Z7uMmZyJ7meYbT+puTg2Li62F9j77sOfvV1p+0RSuqXjgr+TQ/TyPTfW5d WktCYAc/03GsFaVjpCvW3wwN34EAuOE8d/+oojJXKr4QiYKw== X-Received: by 2002:ac8:5d8d:0:b0:517:5879:1e2f with SMTP id d75a77b69052e-517987df585mr128694751cf.27.1780868014039; Sun, 07 Jun 2026 14:33:34 -0700 (PDT) X-Received: by 2002:ac8:5d8d:0:b0:517:5879:1e2f with SMTP id d75a77b69052e-517987df585mr128694481cf.27.1780868013602; Sun, 07 Jun 2026 14:33:33 -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-396ac2d5ea9sm40374041fa.32.2026.06.07.14.33.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 07 Jun 2026 14:33:32 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 08 Jun 2026 00:33:08 +0300 Subject: [PATCH v4 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: <20260608-hpd-irq-events-v4-7-30b62b335487@oss.qualcomm.com> References: <20260608-hpd-irq-events-v4-0-30b62b335487@oss.qualcomm.com> In-Reply-To: <20260608-hpd-irq-events-v4-0-30b62b335487@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 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=1367; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=RMohNnP615sOpE6ZWKg1trb/KrvgErHGs2zP2ZkYPtM=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqJeOQI5tl/0XcA3tgWGBDfparpRR7p6oX7Tvus qwjrqzb+oOJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaiXjkAAKCRCLPIo+Aiko 1XWXCACmNj3CHr4O+YRbKUG+T11qRjlO3v5XH4k0gj9GScSSKB/i++PNRfIVaB3JOvEoD/AYHrm YFUwGw2fBFT2Jv2Fhyilg176SDLOp8RsHVt0LQrKTd3iVzD84bkfPw5YQRsnoC0q2NNOeteuu4P oNZgIAB39IsrY1AUoXDu87QaI9/TPgg/T4uL/reYnY2d84fLwma0S1+Jh2/lbnZ1SDxBsBxpeSE e6BfBudjneZilPPKvQDNmThuUz1M8q6khvqmx+48G+tdedZN45pveTW7QE0GhFJ4QlRiFxRstqG Gz/WYDvc1HTnwPXv2iuBiwsSXHMYqAaiEHZoR0/q/qODETsN X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: kPxD-uE0iQF03u0eKDe41akt7cB1Y5Hv X-Proofpoint-GUID: kPxD-uE0iQF03u0eKDe41akt7cB1Y5Hv X-Authority-Analysis: v=2.4 cv=YIWvDxGx c=1 sm=1 tr=0 ts=6a25e3ae cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=Wdvqb4HS36tEXOME5F0A:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA3MDIxNyBTYWx0ZWRfX7SLFHx2b9qio vKt2z90riFsqkdY+gB0ZXx7MeegKaOIzXCEwoSZCrswXcPrUk92K62Q2bHxRqFzwycwdQwuwln4 OOI6DjVB3PXfpTeHgU3fbxpOR885rn3rIHpDGuPSxjVwz/sWzsacUym1xbUDL9Uho0dfSCzAeKy BPJs6BKx+ry5l38lwXv5l1EuZZQLM/BUFz+MARpwVdGAULzJZv61Zm8CTRLYQjVlzhSEQb/LDPe vjuLcWK15Ko0vSX/TeGHzSRSwLkOetRSG7EnrNAlKXG+n0lXA+yDE/6649ck74bPMswk1SkfaRF URgiRApyiElrlpxkfvu+Y8p6mHGkU03uuQRGMmwzIKBCNyQnENVVkGJJPOszJ5G1tehyhVEBk// lpUKIc3LiUj+X+lNCw89tIvkjJcerGbAvpCOUhr3MEXPTrmw5E4+fG1BSwhzWWOj3S4zETOZdt7 TzEATti2jrf3B0auYTA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-07_04,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 clxscore=1015 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606070217 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 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 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 Mon Jun 8 04:27:22 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 29E5232ED55 for ; Sun, 7 Jun 2026 21:33:40 +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=1780868021; cv=none; b=OTYTKo5nfn5gDYvtCfvE8XeQ4JvR2dF5zVxReRsa1K4/lk5FzRsZRfhnvtMhT3d/37eXISySRu3BInL06Pg7RDPDPa8l5eF0NRFm5SN7vOFuXGPNgS9S3VfDJ3nggqCZ0Ayj5Za81FpBO8jBaIPrf+NYnitGqltuHgjGmgTnBcU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780868021; c=relaxed/simple; bh=3SjZ31inNFNocQI2RmpCu4Tw/qg0rtSCt0SZ5oE3dI8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XU6wRebOAm6vhDp2WJvdOBvjwXp40D6irNA4QCObZ8I6OltZtSHJDUu1nfrF4Fvvtrf3qepjjLXXUazT9V6eGcw5AMjHK9GOduzdOA0p33kU1DD9j1p+tmkt2KK8zF2Cu/xXwf1dGzMYMeRNd2SZI3KfS54zN63Z08nbX6E/3aA= 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=EiVvTbWM; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=VARDB3x8; 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="EiVvTbWM"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="VARDB3x8" 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 657ElMj8866578 for ; Sun, 7 Jun 2026 21:33: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= 3FB7VsGWBD03rpwArJX/noldaF7TiU950Nm2TSbfvyU=; b=EiVvTbWMNddLSWaX m3G9rugq0EFbtLfwWqsRQ3hFgDPCVYJysVU7USetWURk2Wuq306mU05XNloSioDW jcsrziM9VNVsqT8zM4nuiL99YeswMiGt/cBhD/5Ose//4pxfRa7cPiBA+2a1SyDN +q3U49r1JRYSaK875YDBzAylCpDWi+xrsj1jXbNdJS1i8JWKIUaNzNki86Ky4ahB BWtjMrua70BmHtF4shrL32VKmvGOviGHCrb+UuPkdZvshfA5ml2l0oCTfwBwuzgl Q+GZbCfbRiPXyolSgympyGUcISNKDocU+ul3Bdmzao2loCOm/mFaVhfiWhgxhjCF 34NSUQ== 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 4emb4w4w1u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 07 Jun 2026 21:33:39 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-5178bcab15bso79089851cf.0 for ; Sun, 07 Jun 2026 14:33:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780868018; x=1781472818; 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=3FB7VsGWBD03rpwArJX/noldaF7TiU950Nm2TSbfvyU=; b=VARDB3x8ncwmkdUUpD644KB5cFc/oM46O7u75/lZ/c36Bgq52246NcB8uijk89fbbC BIs1yj73NMcd9DIYB5qUmIpu2yPuZzD/DpRUgRmB5lApdd2GnSO2MoDW3zOOoc94AEMQ 0LzDoOTmUzAPoQVo/iAZiMZzY2i18GcWWTJEyjFAVKSon5UYmSLES81cCWo6j9QayDaj f73CTZ7e8xhowwVHuNsxVRtV/0zhta3CQ+sXNoRlfllu0Yw82jkRQSBiRjCwtDeCSM4r 2lUf9z1ETyDIUdGbp0hcKGeTEaUaXUk6EOnuNO+YZSwoUntB0GS48dwKZkMW4OankZLf 1u3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780868018; x=1781472818; 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=3FB7VsGWBD03rpwArJX/noldaF7TiU950Nm2TSbfvyU=; b=hkC9l06hwC6akFP4IhubLHO1Bs10NSOaHlUsCb55Til+KEH0VRU4lCTq85EoN6KMMw rg29xKLf2NmhHQ88Y4xCPphRCHhT+9iTmJSAb/FL0j8mxAlHRAMZWBIC7GRpaAwTZbNw WhCB4t+K6+VGDGoJ2mXdA2d/vp0yEsarXyTjKKziZFP98yITcsHSAQzRsh6uRNZQ/A+P VyZrH2k34wU/Vs8RkEP2DNlmG5LM0LmdfX2k+eywbaauE26WKyXQI5rVzDmsPiK7uiEk 9vanuXomtW1DM3BzIKS49LVLWyc4w/sJDuQry5WcIX8AeeHFovXM748gbg6rEK84P+Y6 TT1g== X-Forwarded-Encrypted: i=1; AFNElJ/NCrIj5K2xsljhDUBkiRXvfpVewF3+HsNvodArI6RLnBNbeEi3WUsq9M2lkyX5nqZ0ZYQNCHtl+oMa+MA=@vger.kernel.org X-Gm-Message-State: AOJu0YxB5q1v53WxIZekBxuy76BNA/LkMPMUvXbblp9WsXzXW3iJ2WvH bcS2ke6WtoKvSefIMj0M0HJk5/yyL7JWIZqyiRKIeDYtpzl+l3tFUY/QnPLGLPpNWcw+DTqtY9f QGr6r9gY4sy7/470j0EVN7T4P8MJj13veTByOpHTSaY+BzkDmSkb0OHRYevNiRXofMkU= X-Gm-Gg: Acq92OFFLV/n4xwLCTnxJ7hgkpyTQkp+IyoRHwXEQ+SLE/QXbxaGBTYHw0KdxycsaRF pQUwXfDSxXf5BpTuqzO+90en7lw6K9w6KITuIwiX4/VoPUT/ggCwg7MfLyOg97HmJn5mnKXSgRm 1xm/LKrJfEN/pmr9Trd4qWLwfE3bPqNqZyilLhfD7VNNtF6bPtW83enNpFT1XW1Qha3L2wc3w6m TniVKJBd3dsiJf+/q+QQEaE+WToaDkQsXO6STnkQSy27tVS6yJkJWK3cjixBXFmOgap6KGPMe2U V+P7otJxjHPdr2cJMBj8A3EIPg0f+3W6LQOJvGZpRgpeIfgyB1DrtGY5sbFpFGrulpCAUCknVUU WJZLMToqZ1HOzwS9pF7cLwI5l2oNTOP9tGVvROb36FfnE80Nc+M/azQXWpW7n/jimiKEEZRtO4f A7KP2kvE/ebP/eUm/UgTillHx0lPg3TbFNco8PqAsvQpyagg== X-Received: by 2002:a05:622a:7d92:b0:517:b68a:8d8f with SMTP id d75a77b69052e-517b699d7d4mr24581241cf.19.1780868018462; Sun, 07 Jun 2026 14:33:38 -0700 (PDT) X-Received: by 2002:a05:622a:7d92:b0:517:b68a:8d8f with SMTP id d75a77b69052e-517b699d7d4mr24580671cf.19.1780868017994; Sun, 07 Jun 2026 14:33: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-396ac2d5ea9sm40374041fa.32.2026.06.07.14.33.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 07 Jun 2026 14:33:35 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 08 Jun 2026 00:33:09 +0300 Subject: [PATCH v4 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: <20260608-hpd-irq-events-v4-8-30b62b335487@oss.qualcomm.com> References: <20260608-hpd-irq-events-v4-0-30b62b335487@oss.qualcomm.com> In-Reply-To: <20260608-hpd-irq-events-v4-0-30b62b335487@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 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=1481; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=3SjZ31inNFNocQI2RmpCu4Tw/qg0rtSCt0SZ5oE3dI8=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqJeOQ0bhQoOsJj857BdAUiqH5pox278y0oAyGy RFMbu1dyjqJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaiXjkAAKCRCLPIo+Aiko 1adXB/9gLuR7QGRjAk+HXqf2b8R0PyE0WvdRPYlehmbvDdwTKUxzBuDzzuiV0kTay/bmwkqLoYP eSEgECp1mqSpjvxIbCTbpUNLT81GFFEDtjKOgp0EizyaOAmRWZF431B/LHJEqBNRywGDAMR6g28 XBko5Ih990ex9CIhpqFhfLNy8a/OK0J8+WGQPmWoxwIt9PsO976mFy3iFyD5v4yPJ19GDBS9g1L mBGAh4TQw1r6fDBZ0z7VjlgWvcKT0EJs+3W6Mwh/6R/5YhL3raA9bpt8HLs1yUxKd/64FRiW39e 4xRBwvcrgMfsxCVs47NwyImiptqBmFZy7rW5+/2YVxJAwuCc X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: Xfp5slHrgBvHqGLSi6EiJLUcYR3viPWN X-Proofpoint-GUID: Xfp5slHrgBvHqGLSi6EiJLUcYR3viPWN X-Authority-Analysis: v=2.4 cv=YIWvDxGx c=1 sm=1 tr=0 ts=6a25e3b3 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=pGLkceISAAAA:8 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=HJ0TMOZLSqZlwYNULgAA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjA3MDIxNyBTYWx0ZWRfX9MqKMC0Up0QS SSZ1A5TDtU/L9IgWVqQHIe8MJ1XR8M8n5EwZP/qhDmfolLFxJ+zAc1kKyIx3Sp/AiExoE618Ifx hXZCg/yb+K06Gl45WhhToqrwZqnH1OK4XfFL70TVH/a1Y4HcG+qMOln2t+KXzTL+lZ3oVII0kmX +A/PbCwINQSeQwaPKA6lq4pY5u4stc8UeeiEY1ZfNUOhLP7QvbSiaWsSR5mprnVvkOdPqreViIe pPXTIdC4+jiCKY0p9TXOV4nBuS4TWSy3Y/2lB+fnkQVWUDGjFEZ0uuWmXD9CPg+7fXeEC+Ep7pw no5pSqk90gQbxKchYzRkm2LeEpUHZ/a4bPxN8ir4A4fdOKA2sMl5MdAr11j/cc3MMvfdBkXTK0X 326mKZ+0dAB3QCcI2itg6A8rRrjR9UgqHUG9pdZcSvKcJu6UQlPU5Emq+cmlDJmmGys/qllN6d6 zAeICspIeZa6DCd10TA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-07_04,2026-06-05_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 phishscore=0 clxscore=1015 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606070217 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 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