From nobody Tue Jun 16 19:36:08 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 17996329C54 for ; Mon, 20 Apr 2026 15:31:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776699108; cv=none; b=VlZaJRxt8tmqqoS6mPG4JVdFcR4yDRXXyfEvNWoK5IDcV3LtyT6TvHcjqxV1yF3TqxLVP0ROJx85UrE/XmCD88qzBEJPpk0r1NT+0btdPo+M8U3zKDneUs8heDqQF42xoHmF0HW65zaVQb0fAEYR1tOik4ECC2OCDIC7qRXm92s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776699108; c=relaxed/simple; bh=lnVODOLTo2WpHrvqFht5FXa9gKD0IeWSjwE7+hKxwmM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pjskYqCsbo1rlN3cOb7YhaYYMMhHbuzKG/1XYx6Zckke35M25JjBrQMz2qN7TgLpKT/ONGCDejDHkk6J3cDAjvGuxQITG2ya/OW9ubuWnCQnmo3HEjDovqV0aFKaqcAnkRLmHwnDeFUTHzmvvWKOjxS1EfpCSeuGhrLePA+x1uc= 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=lUIbGvQZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=DjAnNSTV; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="lUIbGvQZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="DjAnNSTV" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63K97Bil2755689 for ; Mon, 20 Apr 2026 15:31:46 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= lUxjcmVB1mry2JFOZUVE65+ZJk/cVp6zUgik6yCWYSo=; b=lUIbGvQZ5qpNp4Gr QY6vrMBwk+A6tYOPjjoOHnbdSdN3EyYfSEgfbOzFlvu/aTF87y02bKmkxi3fhzyp ZLqsTfOcH7bUoEfoDkeQdsfcrL/2WeOKCs5wzHFizkFr1jcHuW/DkpzDvgs8D8TL m2KsoVMlz7UD+hSPF9Sjown2QTRx03z8jYu7KvlbH5Rqm6hn6lViKzI4O1Pl8sDG o1MP1usTGTfAD5l5lQuVBoCYh8k2z37Wbhvz6YbAXZy6BsuSJ6EDfL7lQ5RZP1Nr yu0VyVqqrDy56UkKqn36L/WUrK0SoUC0KJzEM78z0PIC2Y+hZ+8s4m24sKJIanIh Wnoe6w== Received: from mail-oi1-f197.google.com (mail-oi1-f197.google.com [209.85.167.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dnh7xhcmw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 15:31:46 +0000 (GMT) Received: by mail-oi1-f197.google.com with SMTP id 5614622812f47-479d602f323so941422b6e.1 for ; Mon, 20 Apr 2026 08:31:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776699105; x=1777303905; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=lUxjcmVB1mry2JFOZUVE65+ZJk/cVp6zUgik6yCWYSo=; b=DjAnNSTVs4JBhMhbhH9CbKyhCFMIwvpKNSf8aGRwiNyQDWA1JavWwrLbVTZslp2rEJ ZZiXByw/PnRtxLPdL3mkGnKxnzbR+UQe6gfyYfyEVV6KVOdpNC0+0Opj+vc+ufPmsmlJ htve+E7KSDLfj7Un2avM+gLXoNsua2MN34ihWYqEwykKqUUncGCOA1HfqZeQ3Kv0Cpq4 u1ABaobhEaHgqJTUPx9Rc+HW2sVCZLwzu+0nqSnNaS9rALKHnn5aJG+WAbw483RvSQL/ J11Y0HZowiI96KiZDS/HFb61QlW7kLrnBwf9YpHUITOO5en89GBcPY0NhISZ1rRcQrUw yPZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776699105; x=1777303905; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=lUxjcmVB1mry2JFOZUVE65+ZJk/cVp6zUgik6yCWYSo=; b=jGv+G9DcZ7C2pWYBBusuatlwFt6HkirXshDTYfIT8a2DxPzI8D3YVpW4d8wrf1KMIJ MiJIQkrhIHlfdflY03+ZWL7WdVDu0Szi5mKtbh4dLx2SFfqs7jRiTV3dTbnR8/r9o5e0 udxocJqfpU8Cx5XXQ6yDGFLJnNP3SiZ7209xcmG73Sf03zp1DnKczblglNCyzKvLpuag 2wChkiCY6eNziuFziRFocAQUl+zUsQ2P9rustwKv//1fNv1PIjeCHh5GEa4sPl61acBN xmEAT/hve8W+tLKrMFjMd/941VGI/2iTbdBtYw8wvd3UyKoynalXugXu7b2sqr/1ibpU uUug== X-Forwarded-Encrypted: i=1; AFNElJ8Ys1khZ/LjtIoceptIq0+EC9H0VzZRImyEZ+/IZVyHGOwL9sFn7ipmOJUACu0e4VLr9PP1u8s7jK/aeQU=@vger.kernel.org X-Gm-Message-State: AOJu0YySurE6qlqNVFFSHVUVtBE3qwDZLRHpVFuPx9A2CgYSH6uiuEC7 i33wywHufKcJdajr5ZU/+lo1ZXxYx70Yib75lbFDV4GVkTgKNNjljEOYJxnvBWTaWrlvGC8purn EymHkbCmIxjfeTbFBXAraaI1JeLUhGo1tPuFssPVl41Eqlb87jWmwY8xMEhHSGfvQy5Q= X-Gm-Gg: AeBDievlyMcFhqWDjavWIPlmpg+CVn0V0BWdhE/nnhYdKlovNtU6UsOuk+QyhHnN+97 kogeP03ILoECuOTfpGtX2Ccgv+CYas7R2ZrULnAPvnI3x5uPz0d06HaMJsrdjA0Q/zSW1JyY8tU t5LyPsBJIAcNPSnqW2KaFSI40KOYLk98FEGcYz+pEurgrkstFw9FpaZLywTtYfLpbkehIlrYSSZ RgLZNc2w09GxrzlzBgAux3yQqGSMZJCeXvsuZSH8NJ6EgJNZZySPpXlMcEl1wxc3zcxeGYxCMP4 M+ppxKzugQM/7Jn66LvGdgyPShWEyMSIVhkUvVz9TAb6B5VpbVNge6DcCQO1nl+y9ixa4fit5O/ +oGjKe4NT5kjaEFyzszrCLWlPepmlxH+JHMSBj4VPeaXlo4bgctE+WlaQbLI6vQVXb/Av/c8uD5 acU6jEDmxFQIgWwsAn/XP12ypAn7LtnZf1EnYkydZYGhPjDA== X-Received: by 2002:a05:6808:2448:b0:467:db23:25c with SMTP id 5614622812f47-4799ca83a59mr7243596b6e.46.1776699105197; Mon, 20 Apr 2026 08:31:45 -0700 (PDT) X-Received: by 2002:a05:6808:2448:b0:467:db23:25c with SMTP id 5614622812f47-4799ca83a59mr7243507b6e.46.1776699104557; Mon, 20 Apr 2026 08:31:44 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a4185bc31dsm3071171e87.22.2026.04.20.08.31.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2026 08:31:43 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 20 Apr 2026 18:31:39 +0300 Subject: [PATCH v2 1/6] drm/connector: report IRQ_HPD events to drm_connector_oob_hotplug_event() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260420-hpd-irq-events-v2-1-402ffe27e9e9@oss.qualcomm.com> References: <20260420-hpd-irq-events-v2-0-402ffe27e9e9@oss.qualcomm.com> In-Reply-To: <20260420-hpd-irq-events-v2-0-402ffe27e9e9@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=5422; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=lnVODOLTo2WpHrvqFht5FXa9gKD0IeWSjwE7+hKxwmM=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp5kbc/UNMXpIQgQu+RMvj2dYIBCbr7675k+ZbB 1bJy3KI4xuJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaeZG3AAKCRCLPIo+Aiko 1ZEhB/40fMwfOsuT8UnELg06dXKJmgx9BwjiERV+6ig4vkQlD1N3pMzFrTpR7ZV19GcfER4uBAb mhH1u4t1lQPCH/rYzpC8djiuPi598d6eQCICO45jiYBrWW2m/5hWcc1ACFO6LwpEJNAMZS9AJTE j+Zl4yyKkFLCFRwPOIKR88dQp2S5TYCbs9dHrEQPeNXrhvp3LouEZ6NXq0xRvDGczDb4zKk4GNc a4TA9/WzbbmISLLs1bNG76+FGXHvATVLYt+Q/LC+/CBuA1b4WSZzkymfPFtaT3QUMDhR2DHmk9D 4iKNimC7DYMtYIj+iG+/H2jJk00Ad7W3ys+v2IZuw5LMMjFa X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDE1MSBTYWx0ZWRfX7zujnWD3Cho7 dLg1981iSBwFPhcp887mLSSf9zknu/rlm3k1XYoqzKQzr/ATMUw+0tL0rUEHw4Er1+qZGosZBEv g6PTd+JT5tttEA6f7F2Us+cx3Oj3L3xId7yxdb0aiOyvq0s8roSe3eclLHqvH7jt0yWKAN1vzVM l1RkniO0jpzndRzLpzAaVSM1kUEdGL4EGEFw2yOdeGclAlxvUYJgwpEoNRkDfMR8eLmxvcsJf6u 8m4ItoUKxV9m6cCJkdGOQ1bneS2sFkwjVHHP/yRHb1x56HoJFKWD0sgEFFo6wsx0Jo8IiPVMhHw zG4iDOXyuonjhDH2KTB4JSwyjgSKEahNacjsPNr5bk8QR4pBaaUG+AEr/PSX0CsJNo1wkb9Zh0J wukwvqz2J44k7RzlXsDZyuS50hJ4TocKIzvIwU1fVACbszMcZotZimjeVrTyTTHs5uKAjR/ecrw wQzshuRvo9yu3gG1acA== X-Authority-Analysis: v=2.4 cv=BPmDalQG c=1 sm=1 tr=0 ts=69e646e2 cx=c_pps a=WJcna6AvsNCxL/DJwPP1KA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=-JEBqWJC5KD3P7x9m9UA:9 a=QEXdDO2ut3YA:10 a=_Y9Zt4tPzoBS9L09Snn2:22 X-Proofpoint-ORIG-GUID: PhC2T3uFp-NceA2IdsNSTNMUR7HoxXor X-Proofpoint-GUID: PhC2T3uFp-NceA2IdsNSTNMUR7HoxXor X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-20_03,2026-04-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 adultscore=0 malwarescore=0 spamscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200151 The DisplayPort standard defines a special kind of events called IRQ. These events are used to notify DP Source about the events on the Sink side. It is extremely important for DP MST handling, where the MST events are reported through this IRQ. In case of the USB-C DP AltMode there is no actual HPD pulse, but the events are ported through the bits in the AltMode VDOs. Extend the drm_connector_oob_hotplug_event() interface and report IRQ events to the DisplayPort Sink drivers. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/drm_connector.c | 5 ++++- drivers/usb/typec/altmodes/displayport.c | 15 +++++++++++---- include/drm/drm_connector.h | 19 ++++++++++++++++++- 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connecto= r.c index 47dc53c4a738..edee9daccd51 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -3510,6 +3510,8 @@ struct drm_connector *drm_connector_find_by_fwnode(st= ruct fwnode_handle *fwnode) * drm_connector_oob_hotplug_event - Report out-of-band hotplug event to c= onnector * @connector_fwnode: fwnode_handle to report the event on * @status: hot plug detect logical state + * @extra_status: additional information provided by the sink without chan= ging + * the HPD state (or in addition to such a change). * * On some hardware a hotplug event notification may come from outside the= display * driver / device. An example of this is some USB Type-C setups where the= hardware @@ -3520,7 +3522,8 @@ struct drm_connector *drm_connector_find_by_fwnode(st= ruct fwnode_handle *fwnode) * a drm_connector reference through calling drm_connector_find_by_fwnode(= ). */ void drm_connector_oob_hotplug_event(struct fwnode_handle *connector_fwnod= e, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { struct drm_connector *connector; =20 diff --git a/drivers/usb/typec/altmodes/displayport.c b/drivers/usb/typec/a= ltmodes/displayport.c index 35d9c3086990..7182a8e2e710 100644 --- a/drivers/usb/typec/altmodes/displayport.c +++ b/drivers/usb/typec/altmodes/displayport.c @@ -189,7 +189,9 @@ static int dp_altmode_status_update(struct dp_altmode *= dp) } else { drm_connector_oob_hotplug_event(dp->connector_fwnode, hpd ? connector_status_connected : - connector_status_disconnected); + connector_status_disconnected, + (hpd && irq_hpd) ? DRM_CONNECTOR_DP_IRQ_HPD : + DRM_CONNECTOR_NO_EXTRA_STATUS); dp->hpd =3D hpd; sysfs_notify(&dp->alt->dev.kobj, "displayport", "hpd"); if (hpd && irq_hpd) { @@ -212,7 +214,10 @@ static int dp_altmode_configured(struct dp_altmode *dp) */ if (dp->pending_hpd) { drm_connector_oob_hotplug_event(dp->connector_fwnode, - connector_status_connected); + connector_status_connected, + dp->pending_irq_hpd ? + DRM_CONNECTOR_DP_IRQ_HPD : + DRM_CONNECTOR_NO_EXTRA_STATUS); sysfs_notify(&dp->alt->dev.kobj, "displayport", "hpd"); dp->pending_hpd =3D false; if (dp->pending_irq_hpd) { @@ -397,7 +402,8 @@ static int dp_altmode_vdm(struct typec_altmode *alt, dp->data.conf =3D 0; if (dp->hpd) { drm_connector_oob_hotplug_event(dp->connector_fwnode, - connector_status_disconnected); + connector_status_disconnected, + DRM_CONNECTOR_NO_EXTRA_STATUS); dp->hpd =3D false; sysfs_notify(&dp->alt->dev.kobj, "displayport", "hpd"); } @@ -827,7 +833,8 @@ void dp_altmode_remove(struct typec_altmode *alt) =20 if (dp->connector_fwnode) { drm_connector_oob_hotplug_event(dp->connector_fwnode, - connector_status_disconnected); + connector_status_disconnected, + DRM_CONNECTOR_NO_EXTRA_STATUS); =20 fwnode_handle_put(dp->connector_fwnode); } diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index f83f28cae207..e05197e970d3 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -91,6 +91,22 @@ enum drm_connector_status { connector_status_unknown =3D 3, }; =20 +/** + * enum drm_connector_status_extra - additional events sent by the sink / + * display together or in replacement of the HPD status changes. + */ +enum drm_connector_status_extra { + /** + * @DRM_CONNECTOR_NO_EXTRA_STATUS: No additional status reported. + */ + DRM_CONNECTOR_NO_EXTRA_STATUS, + /** + * @DRM_CONNECTOR_DP_IRQ_HPD: DisplayPort Sink has sent the + * IRQ_HPD (either by the HPD short pulse or via the AltMode event). + */ + DRM_CONNECTOR_DP_IRQ_HPD, +}; + /** * enum drm_connector_registration_state - userspace registration status f= or * a &drm_connector @@ -2521,7 +2537,8 @@ drm_connector_is_unregistered(struct drm_connector *c= onnector) } =20 void drm_connector_oob_hotplug_event(struct fwnode_handle *connector_fwnod= e, - enum drm_connector_status status); + enum drm_connector_status status, + enum drm_connector_status_extra extra_status); const char *drm_get_connector_type_name(unsigned int connector_type); const char *drm_get_connector_status_name(enum drm_connector_status status= ); const char *drm_get_subpixel_order_name(enum subpixel_order order); --=20 2.47.3 From nobody Tue Jun 16 19:36:08 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DACA8329E5D for ; Mon, 20 Apr 2026 15:31:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776699111; cv=none; b=NPBd2yYKtCTsNV9QWUaDOJxwzZCuyDyJtLEKnMao2mECsn/J1F3bgva6dnu+YVaA1E/5Lsdj35h1VoAZzxstHQymrfAFO8pcTCwzFwDhkMSqz9WJ9HtHtj+Hh3gUzWXtWiInU9+oufqVYWaR/+FLW5JuA8Ru5w8QmJc1L6u2DhM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776699111; c=relaxed/simple; bh=EFjBNNXY4LL2a3Oa83bwPsPhmfsi3WM3QfAbe0woSwI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=G25miSBdWahQ9eUMABfrwT+sYVugSagvvTRdXnuNUYBM00ALqEIHFfULrbfWXH39YPcYFiGcjBNbCvHexkTfsjuBlFnj9s5LtNXXApXuM6n/w3dq1rz36RNxNxs052ktXUELbGgQP7pbOj1/hp8ZfdXUmK5fawrNF4BZfA+Yo6U= 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=Qch2XX5l; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=J4LKCzXw; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Qch2XX5l"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="J4LKCzXw" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63K9mQQj3925591 for ; Mon, 20 Apr 2026 15:31:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 5tD1CybSiFSGx/tKPVz/twlIrgCEvULY+FLI3aHZuz4=; b=Qch2XX5lHbDJopHX FER+JMFnN26Z8UGksM7GgmFOw7FhY/P4biWVNcKTPvEcSoeSEQ5OWMcpwaqzRJQe 6vjUTRYqVv56oBzzNjwG63/IqOzciCdNjOFrcCV7vLUPLU6CTpU8hFEZtXatqLfR T8gNh2sz82RhuCGkYVpl45+dCL3TYbKGFFYJeNcAzO+p7KmmkDhfLMwAxRA3Qr5y xOiTuevQunjCF/GFNbLwgk4vfxXQ6+vJKEghJTgpsztGeCLFSMH8v5xbChOmObA5 /7JTReWqTCy6hW/n+/zq2QTLXafbPIh4fgnAGamDShIYLo1VeWVwcqeX+8eFgLtH Rd1SUQ== Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dnhu9s6ue-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 15:31:48 +0000 (GMT) Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7dbe0e914adso4238712a34.2 for ; Mon, 20 Apr 2026 08:31:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776699108; x=1777303908; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=5tD1CybSiFSGx/tKPVz/twlIrgCEvULY+FLI3aHZuz4=; b=J4LKCzXwRWd/B29Ckj/S7PAtdnGAi9swY5L2vFE4CgdegF3ottKp/Z7SiKEpn9TPI2 3X6lvuMxKS/i2k+dZCBXEI8ib7SWCqmiOdTzHnQLFaz2hjV6wPGs3eLvLfp/bAXVZoUv aKPvavwyw3I7fTlFTZ/GZD9jF+9osmIIOchnyVsgRu/w9Z+p+Vhk688noF3XnkY75aPA Uks9kK3VCK2XUKuDSz6+1xYlP/9QCpvcMTNtMrIcu4Rt7meJlNByQrU5louMlaHwO0XM b3GEdQQWQTXQHWbBrlwKa9f0MyDWOrn2+S958ptC5HJ5tpeeRCZzk7W/ajHneUZkSip8 8ekg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776699108; x=1777303908; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=5tD1CybSiFSGx/tKPVz/twlIrgCEvULY+FLI3aHZuz4=; b=l8pPEnc7q6wfw8lz8wRkZW+3prXeL8r9EzOP17EFt8CFn71iC+/1HTfQhuq+GVzmon obKioW8a79PjMHK2uL7YJmt2Rz1p3+smKiZ/WztitBoWKx+/A5R9bnI9UUKP1qZBevwS w1/9ewsdszw5OrnCL0vZmMXawu8WPG49JOG5nemstUdUmno/dnQ6849q0GvZAWcZBoou 97B1lQyRMsZJkGLFgu4t0nOgVdfgtwH5/4VSWMdf8Fg6wnLie5uxGXpKFPIfODLaQsYi LvDnGU3KBHgbzI13dsOBmmeAWgb3qz6YrCqqQmKMaLdHnXPmzXPF65DltVrwg08MNULH kEfg== X-Forwarded-Encrypted: i=1; AFNElJ+2TrzZ5o8+CdaOGBS6pRFBHDCitKE46lLutt9/NU77+ah/6Bl5WLLJEbPufd/ROrgb+N3T92qkL8Yyz8U=@vger.kernel.org X-Gm-Message-State: AOJu0YzA9mk9pNOxZgvoy0sI1UeJSuxtPFcrwrysvjdJvft1g+nfL1xH Z+UwC2PcfZe/EbjQsx6/Ig2embzPiIFtQ9V2FG1aMJNMhag4+GXE+YoOrAjLUQLgW/JKjQBNzh0 HeCTu9nWiLyr0aC1405zVJyp0evsh5e3RLhmUANGpJTR0oNIIViPjeepsWYmhDDdt0WY= X-Gm-Gg: AeBDievTlwepMIpuCusXsWdKxKguQhjzrlGCSYmgAYhGQanmllt0/B7zNEyn4cQUN4c 07KEIEm2C1UvPg4L5l1jf4G1bHAjNzk2qJ+Obmz9XJPvzn7sXnxwIPT5wko0O993n+NEd3KkkPz TyIKUi+DKxGTkawP74MiZqmCdrGCRYzYysVqsABz6pRmFEbLorgMf4kjlU7PzUIWpuFzP/ILJn/ b47vzK2SKZzkRlcSSQxvRGO6IfDEcOP08G293bv/J8kYfM1+8ZIoN6+dBXbIbZqX2ZvdRsHQtea 7txnxoi0uhl1IMzqo6UJpoT5Cn8V6TWub6dToOBreXhLpUbAcuhkaN1uKqWvIjImz6xn0gjiShn jpzXXwnPQstGYz0oFEoTrdX8aTW6ty76txzaSORiHOEqfY4kbpTXvReE1CA0WrNFyUF3rhV5R8V dboRHdcGYohCMZNlsv3f7vfxgAeTzbkku2DlMFlldY36Qe5A== X-Received: by 2002:a05:6808:6909:b0:467:1458:2a8f with SMTP id 5614622812f47-4799c9ce85fmr7103933b6e.37.1776699107047; Mon, 20 Apr 2026 08:31:47 -0700 (PDT) X-Received: by 2002:a05:6808:6909:b0:467:1458:2a8f with SMTP id 5614622812f47-4799c9ce85fmr7103844b6e.37.1776699106255; Mon, 20 Apr 2026 08:31:46 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a4185bc31dsm3071171e87.22.2026.04.20.08.31.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2026 08:31:45 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 20 Apr 2026 18:31:40 +0300 Subject: [PATCH v2 2/6] drm/bridge: pass down IRQ_HPD to the drivers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260420-hpd-irq-events-v2-2-402ffe27e9e9@oss.qualcomm.com> References: <20260420-hpd-irq-events-v2-0-402ffe27e9e9@oss.qualcomm.com> In-Reply-To: <20260420-hpd-irq-events-v2-0-402ffe27e9e9@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=13571; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=EFjBNNXY4LL2a3Oa83bwPsPhmfsi3WM3QfAbe0woSwI=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp5kbc9y90hc3bZBLRD/l6RCJNT/A/r4j+7aMEj BKsINhoyaGJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaeZG3AAKCRCLPIo+Aiko 1WrCB/9C7pPLaBEk9iWknX2Mvp7+pj64aC8fCmGbhIXIexTdj++8gyvBXvP57/CFKmtQVh0jdO9 inAzoxlKPEMreITGtz+9xl+4Y2LYcUnzpwEt3dIS7LKS+19C/Ecf8mM1vST29jHRTk18DInx/MM 7v2pliSEwynm3lYDG0ZFP/F3iTcJICfilzJ9aXHZiJ//DbRoPT3j/9sF+iLJvIPd1X6TnvHKyfp TTvofv6mVc/ouynN3Z0vvm4ghfKqhHk7Rz2zfrurC4Xnbcdq9lMJe2VJBu1xOzq5HQBl5li6RmO ny4KiioTRe5JiRLmNgW94XkdB2PMdNfttRdul6rAhQsyQSZR X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDE1MSBTYWx0ZWRfX8E1TS8+gFoej tI8UHyh0gQv29li4mnYajZPFhs+wErs9XpXBNrLmmIpDK7t0yEiqq/9plkNv/P0rJpmxDe5/MnI 8Bl5hIq8agFBaOE60JTe1esPUCBuURru1DF7tb/kBfR4Ue5emVQboWPQY5mp3/2fWjKjPQSS40g Jb683xYS9mBvBUn+z7/37WeLf+BGXtZgVAH7yG6ys3oPsW+N0kW5Hvtk3nLXWALyxjSsSAToEgI ODQrJ5MvH/HkdiUwbAvdzIbT0GnoFcpVJH+7eAdK8CZoTUBBpgl8seRV5nMBzknZ4aurdyYbngi Tl89v5JOjS4UNz12EOlgsfZd3HyMDqeNqQFnacosNHBLDvaF1d2ngeWNrf34Kn7RcferCm3y4O5 aUgtqKK9nA16PKFj2BNFWkRJXhyEAgXpMsG+7XVusgbIWRp6lEXCFmyR0jo+8hGI0V+vSjyl5Kh C/oz7K4n1ASCVb9W+ww== X-Authority-Analysis: v=2.4 cv=IIoyzAvG c=1 sm=1 tr=0 ts=69e646e4 cx=c_pps a=z9lCQkyTxNhZyzAvolXo/A==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=-CExsNOmisbVDtTgQd4A:9 a=QEXdDO2ut3YA:10 a=EyFUmsFV_t8cxB2kMr4A:22 X-Proofpoint-GUID: GqPsWqC1ZJKOD7uxh9fMzWrbSGlpg7Nr X-Proofpoint-ORIG-GUID: GqPsWqC1ZJKOD7uxh9fMzWrbSGlpg7Nr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-20_03,2026-04-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 bulkscore=0 phishscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200151 Pass down the notifications about the IRQ_HPD events down to the individual drivers, letting them handle those as required. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/bridge/chrontel-ch7033.c | 3 ++- drivers/gpu/drm/bridge/lontium-lt8912b.c | 3 ++- drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 3 ++- drivers/gpu/drm/bridge/ti-tfp410.c | 4 ++-- drivers/gpu/drm/display/drm_bridge_connector.c | 22 +++++++++++++--------- drivers/gpu/drm/drm_bridge.c | 5 +++-- drivers/gpu/drm/drm_connector.c | 2 +- drivers/gpu/drm/i915/display/intel_dp.c | 3 ++- drivers/gpu/drm/meson/meson_encoder_hdmi.c | 3 ++- drivers/gpu/drm/msm/dp/dp_display.c | 3 ++- drivers/gpu/drm/msm/dp/dp_drm.h | 3 ++- drivers/gpu/drm/omapdrm/dss/hdmi4.c | 3 ++- include/drm/drm_bridge.h | 9 ++++++--- include/drm/drm_connector.h | 3 ++- 14 files changed, 43 insertions(+), 26 deletions(-) diff --git a/drivers/gpu/drm/bridge/chrontel-ch7033.c b/drivers/gpu/drm/bri= dge/chrontel-ch7033.c index 54d49d4882c8..04e6b4c00a28 100644 --- a/drivers/gpu/drm/bridge/chrontel-ch7033.c +++ b/drivers/gpu/drm/bridge/chrontel-ch7033.c @@ -259,7 +259,8 @@ static const struct drm_connector_helper_funcs ch7033_c= onnector_helper_funcs =3D { .best_encoder =3D ch7033_connector_best_encoder, }; =20 -static void ch7033_hpd_event(void *arg, enum drm_connector_status status) +static void ch7033_hpd_event(void *arg, enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { struct ch7033_priv *priv =3D arg; =20 diff --git a/drivers/gpu/drm/bridge/lontium-lt8912b.c b/drivers/gpu/drm/bri= dge/lontium-lt8912b.c index 8a0b48efca58..b404f0cbf60d 100644 --- a/drivers/gpu/drm/bridge/lontium-lt8912b.c +++ b/drivers/gpu/drm/bridge/lontium-lt8912b.c @@ -504,7 +504,8 @@ static int lt8912_attach_dsi(struct lt8912 *lt) return 0; } =20 -static void lt8912_bridge_hpd_cb(void *data, enum drm_connector_status sta= tus) +static void lt8912_bridge_hpd_cb(void *data, enum drm_connector_status sta= tus, + enum drm_connector_status_extra extra_status) { struct lt8912 *lt =3D data; =20 diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/b= ridge/lontium-lt9611uxc.c index 11aab07d88df..ca41ebe9f26f 100644 --- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c +++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c @@ -430,7 +430,8 @@ static const struct drm_edid *lt9611uxc_bridge_edid_rea= d(struct drm_bridge *brid =20 static void lt9611uxc_bridge_hpd_notify(struct drm_bridge *bridge, struct drm_connector *connector, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { const struct drm_edid *drm_edid; =20 diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti= -tfp410.c index 3b6b0e92cf89..199916662895 100644 --- a/drivers/gpu/drm/bridge/ti-tfp410.c +++ b/drivers/gpu/drm/bridge/ti-tfp410.c @@ -39,7 +39,6 @@ drm_bridge_to_tfp410(struct drm_bridge *bridge) { return container_of(bridge, struct tfp410, bridge); } - static inline struct tfp410 * drm_connector_to_tfp410(struct drm_connector *connector) { @@ -110,7 +109,8 @@ static void tfp410_hpd_work_func(struct work_struct *wo= rk) drm_helper_hpd_irq_event(dvi->bridge.dev); } =20 -static void tfp410_hpd_callback(void *arg, enum drm_connector_status statu= s) +static void tfp410_hpd_callback(void *arg, enum drm_connector_status statu= s, + enum drm_connector_status_extra extra_status) { struct tfp410 *dvi =3D arg; =20 diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c b/drivers/gpu/d= rm/display/drm_bridge_connector.c index 39cc18f78eda..5fdb1a231cec 100644 --- a/drivers/gpu/drm/display/drm_bridge_connector.c +++ b/drivers/gpu/drm/display/drm_bridge_connector.c @@ -141,7 +141,8 @@ struct drm_bridge_connector { */ =20 static void drm_bridge_connector_hpd_notify(struct drm_connector *connecto= r, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { struct drm_bridge_connector *bridge_connector =3D to_drm_bridge_connector(connector); @@ -149,12 +150,13 @@ static void drm_bridge_connector_hpd_notify(struct dr= m_connector *connector, /* Notify all bridges in the pipeline of hotplug events. */ drm_for_each_bridge_in_chain_scoped(bridge_connector->encoder, bridge) { if (bridge->funcs->hpd_notify) - bridge->funcs->hpd_notify(bridge, connector, status); + bridge->funcs->hpd_notify(bridge, connector, status, extra_status); } } =20 static void drm_bridge_connector_handle_hpd(struct drm_bridge_connector *d= rm_bridge_connector, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { struct drm_connector *connector =3D &drm_bridge_connector->base; struct drm_device *dev =3D connector->dev; @@ -163,24 +165,26 @@ static void drm_bridge_connector_handle_hpd(struct dr= m_bridge_connector *drm_bri connector->status =3D status; mutex_unlock(&dev->mode_config.mutex); =20 - drm_bridge_connector_hpd_notify(connector, status); + drm_bridge_connector_hpd_notify(connector, status, extra_status); =20 drm_kms_helper_connector_hotplug_event(connector); } =20 static void drm_bridge_connector_hpd_cb(void *cb_data, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { - drm_bridge_connector_handle_hpd(cb_data, status); + drm_bridge_connector_handle_hpd(cb_data, status, extra_status); } =20 static void drm_bridge_connector_oob_hotplug_event(struct drm_connector *c= onnector, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { struct drm_bridge_connector *bridge_connector =3D to_drm_bridge_connector(connector); =20 - drm_bridge_connector_handle_hpd(bridge_connector, status); + drm_bridge_connector_handle_hpd(bridge_connector, status, extra_status); } =20 static void drm_bridge_connector_enable_hpd(struct drm_connector *connecto= r) @@ -223,7 +227,7 @@ drm_bridge_connector_detect(struct drm_connector *conne= ctor, bool force) if (hdmi) drm_atomic_helper_connector_hdmi_hotplug(connector, status); =20 - drm_bridge_connector_hpd_notify(connector, status); + drm_bridge_connector_hpd_notify(connector, status, DRM_CONNECTOR_NO_EXTR= A_STATUS); } else { switch (connector->connector_type) { case DRM_MODE_CONNECTOR_DPI: diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c index d6f512b73389..c8c3301cd936 100644 --- a/drivers/gpu/drm/drm_bridge.c +++ b/drivers/gpu/drm/drm_bridge.c @@ -1444,7 +1444,8 @@ EXPORT_SYMBOL_GPL(drm_bridge_edid_read); */ void drm_bridge_hpd_enable(struct drm_bridge *bridge, void (*cb)(void *data, - enum drm_connector_status status), + enum drm_connector_status status, + enum drm_connector_status_extra extra_status), void *data) { if (!(bridge->ops & DRM_BRIDGE_OP_HPD)) @@ -1509,7 +1510,7 @@ void drm_bridge_hpd_notify(struct drm_bridge *bridge, { mutex_lock(&bridge->hpd_mutex); if (bridge->hpd_cb) - bridge->hpd_cb(bridge->hpd_data, status); + bridge->hpd_cb(bridge->hpd_data, status, DRM_CONNECTOR_NO_EXTRA_STATUS); mutex_unlock(&bridge->hpd_mutex); } EXPORT_SYMBOL_GPL(drm_bridge_hpd_notify); diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connecto= r.c index edee9daccd51..415eb834808c 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -3532,7 +3532,7 @@ void drm_connector_oob_hotplug_event(struct fwnode_ha= ndle *connector_fwnode, return; =20 if (connector->funcs->oob_hotplug_event) - connector->funcs->oob_hotplug_event(connector, status); + connector->funcs->oob_hotplug_event(connector, status, extra_status); =20 drm_connector_put(connector); } diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915= /display/intel_dp.c index 4955bd8b11d7..98bbcab2067b 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -6779,7 +6779,8 @@ static int intel_dp_connector_atomic_check(struct drm= _connector *_connector, } =20 static void intel_dp_oob_hotplug_event(struct drm_connector *_connector, - enum drm_connector_status hpd_state) + enum drm_connector_status hpd_state, + enum drm_connector_status_extra extra_status) { struct intel_connector *connector =3D to_intel_connector(_connector); struct intel_display *display =3D to_intel_display(connector); diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/m= eson/meson_encoder_hdmi.c index 1abb0572bb5f..691b9996c8a4 100644 --- a/drivers/gpu/drm/meson/meson_encoder_hdmi.c +++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.c @@ -323,7 +323,8 @@ static int meson_encoder_hdmi_atomic_check(struct drm_b= ridge *bridge, =20 static void meson_encoder_hdmi_hpd_notify(struct drm_bridge *bridge, struct drm_connector *connector, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { struct meson_encoder_hdmi *encoder_hdmi =3D bridge_to_meson_encoder_hdmi(= bridge); =20 diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/d= p_display.c index d2124d625485..7a0623fdbd8e 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1785,7 +1785,8 @@ void msm_dp_bridge_hpd_disable(struct drm_bridge *bri= dge) =20 void msm_dp_bridge_hpd_notify(struct drm_bridge *bridge, struct drm_connector *connector, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { struct msm_dp_bridge *msm_dp_bridge =3D to_dp_bridge(bridge); struct msm_dp *msm_dp_display =3D msm_dp_bridge->msm_dp_display; diff --git a/drivers/gpu/drm/msm/dp/dp_drm.h b/drivers/gpu/drm/msm/dp/dp_dr= m.h index 9eb3431dd93a..74da3ef6b625 100644 --- a/drivers/gpu/drm/msm/dp/dp_drm.h +++ b/drivers/gpu/drm/msm/dp/dp_drm.h @@ -41,6 +41,7 @@ void msm_dp_bridge_hpd_enable(struct drm_bridge *bridge); void msm_dp_bridge_hpd_disable(struct drm_bridge *bridge); void msm_dp_bridge_hpd_notify(struct drm_bridge *bridge, struct drm_connector *connector, - enum drm_connector_status status); + enum drm_connector_status status, + enum drm_connector_status_extra extra_status); =20 #endif /* _DP_DRM_H_ */ diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c b/drivers/gpu/drm/omapdrm/= dss/hdmi4.c index 29b2dfb90b5f..a7288791b2a5 100644 --- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c +++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c @@ -429,7 +429,8 @@ static void hdmi4_bridge_disable(struct drm_bridge *bri= dge, =20 static void hdmi4_bridge_hpd_notify(struct drm_bridge *bridge, struct drm_connector *connector, - enum drm_connector_status status) + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { struct omap_hdmi *hdmi =3D drm_bridge_to_hdmi(bridge); =20 diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h index a8d67bd9ee50..3e4672fbd7a8 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -615,7 +615,8 @@ struct drm_bridge_funcs { */ void (*hpd_notify)(struct drm_bridge *bridge, struct drm_connector *connector, - enum drm_connector_status status); + enum drm_connector_status status, + enum drm_connector_status_extra extra_status); =20 /** * @hpd_enable: @@ -1260,7 +1261,8 @@ struct drm_bridge { * @hpd_cb: Hot plug detection callback, registered with * drm_bridge_hpd_enable(). */ - void (*hpd_cb)(void *data, enum drm_connector_status status); + void (*hpd_cb)(void *data, enum drm_connector_status status, + enum drm_connector_status_extra extra_status); /** * @hpd_data: Private data passed to the Hot plug detection callback * @hpd_cb. @@ -1550,7 +1552,8 @@ const struct drm_edid *drm_bridge_edid_read(struct dr= m_bridge *bridge, struct drm_connector *connector); void drm_bridge_hpd_enable(struct drm_bridge *bridge, void (*cb)(void *data, - enum drm_connector_status status), + enum drm_connector_status status, + enum drm_connector_status_extra extra_status), void *data); void drm_bridge_hpd_disable(struct drm_bridge *bridge); void drm_bridge_hpd_notify(struct drm_bridge *bridge, diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index e05197e970d3..5ac5a64f83d9 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -1720,7 +1720,8 @@ struct drm_connector_funcs { * has been received from a source outside the display driver / device. */ void (*oob_hotplug_event)(struct drm_connector *connector, - enum drm_connector_status status); + enum drm_connector_status status, + enum drm_connector_status_extra extra_status); =20 /** * @debugfs_init: --=20 2.47.3 From nobody Tue Jun 16 19:36:08 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4B5063290D2 for ; Mon, 20 Apr 2026 15:31:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776699113; cv=none; b=fep7w4AFrF/F80QtIj4Un3CuXmflVgTe+I5N/if5FYUDcBNCcAMjvGe1t2TzbBG93xyfkYaxpDwpQV2hHgjD7E9fURmwbUrW4RQNobqX2sDk4j+fDj+byxzgWBDNYZ24WDZXn1yssaPvxx7MqnvUeyHVrNSZCu3w+3LPtCy8iws= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776699113; c=relaxed/simple; bh=k6AWZfyGwiIVOlZPNJJzk3hTEvXIgqogLu61ZvsyYxE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uibSMeLfSwg6cu0purm4s4cUEYVk1G3aXJZtbOYbjDcJGNk20UHjocNBdVe1jxAQAMYHj00RuC5PXHASguIQXLRNNtSYDRbJ8ZyY0GeR/JfV3ZGFsYIVezzAAH6YmXO4xSafQMlH5FQb03VstPICbSJw1Ymo0Mud4F6erOwWEvQ= 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=HzNtXH2b; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Y7cPakGM; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="HzNtXH2b"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Y7cPakGM" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63K97A7L2755646 for ; Mon, 20 Apr 2026 15:31:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= AmYXQGfZQ3O+GgA0tO4TttSZ2SWimLy/iubKy0FAa3c=; b=HzNtXH2bvzTox7o2 vnkPd4sgI/sS/DKOfRf6aX53mydCGVWVJlA4CK/Ed53DieRqMAFPl59F3iZtAPvP xRZm50UiMSsamOVwmEbOGL74IkUpoYbuJf54e9C6+3KOTQyzfqZDqM7RAUNfzL/A fR+b0R/crLZGrmqg90XO8eJG+ggQa3Ly/SID9r/nwgpha4viJgun5m+QMxRGqXE/ pv6wdVpbMZIBmCowX7vjYZQVVjZCBSJjVxJfBw1kHc4P9zlkQemuwlAdOv9X+cE3 xGNCuSJaERFq7jS7xr/oNVn9KfLMuR0Fg90XbpPyWQ+nvXKk5KH/QsJgIM/yBGjX OE4YRA== Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dnh7xhcna-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 15:31:49 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7dccbd50e3fso1389671a34.2 for ; Mon, 20 Apr 2026 08:31:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776699109; x=1777303909; 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=AmYXQGfZQ3O+GgA0tO4TttSZ2SWimLy/iubKy0FAa3c=; b=Y7cPakGMV4grBN8U6hdzoTEfE5t1ENsv006RNIRi1OvdEZ3ahbG8SCtqpIzBepzztk MxwRA4IIlBIofExmJ0Eb+MqYHBTtA/S9J5vlj1cPQWmAs9hkBAIYy9yXA7k9wqeNSSFO 8xqoGAyoZHJm7AubHO2SbfZX4eZjtMHfq1hXlOt56rztD//3w/6X4axlkI3NpBs8b+KX XdYrmjTVmXaZFW7VxDN3cVwfRfoie2OMNjq3E23agGNAobiI3J+8LATWtan4AyLoFCcT Kp+6OzE8GUfF+nyzSIZVFVZygZEsP6SHGyDmIqGNEyMsADE7q2u5XQzWOKezQVZ2h4q7 lfaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776699109; x=1777303909; 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=AmYXQGfZQ3O+GgA0tO4TttSZ2SWimLy/iubKy0FAa3c=; b=V2v1NbbN9GEzyG8OYAAO/dc7CL/LVsoePuTNQ43CpzjHEYhBCct7ugGe8YPbxmdh7O 463G7/v4NOytXmMqw9dZzD29Kbtg49sPzV7V2FFO/hFGTB+yU/tu4zLRINskFEX55C+C v15cTz0B58Hh/IOsAsfEceJhxhxus0J45z6W4pYSSKhZxDuJQKJ5IKLDnLlkk5ff6ZBT 27iLpkM1GXMJbuDuGl627RfIyQ8+vkkhk8IzizhQ14F5NFCiO0SxbN3hcwmUwbZ7uZ5l 1lBYXpFS3fC70inaxbaTPX1hSJ9x1QwchQi+UI6e4u7xmi3yMsfob8gPGqigxoW1azQM BIhw== X-Forwarded-Encrypted: i=1; AFNElJ9ZBanUeQ/sBlAFlKQdLvt+joRwsuL3cZ0GIedyynoeKNEniW1J/TkM2k8ID1l/PR/eO2+P6L+RIzfOTh4=@vger.kernel.org X-Gm-Message-State: AOJu0Yxpm6/kGoOh8DMD6OQNhZnPXxqAE7grv91PugdG4fMZNgy2i6Ws t7t8CL5VI3hdnVeRlV4CxRQBEQQws71hKvN40ghdYe4dvknOZbJmmMN3VQHJgR+UYtZpR+qxNc6 +U6uhUAFnBtgP46PERfptOVT+BjueJq5+htqE+1RHyheNVhj+9aw39E2LdteGcj9nBbs= X-Gm-Gg: AeBDieuvfRa3lUYpMWFO+Yg7L/rdfFGnoAumR1cFGDvZk3V5YZUOHv3cpk/y1v7ZxOg hJzPt4MQ+WqDWgK2tJOmr8H/Vay9FrOqsC5dp6Es1nq+U4lJ/4svdbZo7zyvd2YXxCrb+BtEHb8 guY0FeBdykgu2zHc6Bs9DG5k+ao6cIuLs51qG1D9CnGib+UjD/+Sk0I4KSK0hX03p6o5XUSNU7C 3ltL2he8Acw5JquDNBINnxxD0LcBPm9Wn4K1RjPdPWv7+f/SqEa+E9MdceeeLL4u8BYN+5uhwSe 8KzCMLCs9r7vC11JZ5eiR/XpY3NGwie+zDINQUie/RycR0+RzVZH81Pzh9J1g/PhppIkU+PD6be XgYI3iZ8sD4ZYn7/MiosCAw5mrqFTDJgX7p/hiPIShlz5VS/9F3La1L4h1NBUUyX9TUEa4KhSL9 nHklBu47zot4oD5lecbY8kjJneLmF5XNFyLtd4xEEvyAVr5g== X-Received: by 2002:a05:6808:220f:b0:46a:5558:59a6 with SMTP id 5614622812f47-4799c917c15mr7094937b6e.6.1776699108602; Mon, 20 Apr 2026 08:31:48 -0700 (PDT) X-Received: by 2002:a05:6808:220f:b0:46a:5558:59a6 with SMTP id 5614622812f47-4799c917c15mr7094834b6e.6.1776699107907; Mon, 20 Apr 2026 08:31:47 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a4185bc31dsm3071171e87.22.2026.04.20.08.31.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2026 08:31:46 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 20 Apr 2026 18:31:41 +0300 Subject: [PATCH v2 3/6] drm/bridge: aux-hpd: let drivers pass IRQ_HPD events Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260420-hpd-irq-events-v2-3-402ffe27e9e9@oss.qualcomm.com> References: <20260420-hpd-irq-events-v2-0-402ffe27e9e9@oss.qualcomm.com> In-Reply-To: <20260420-hpd-irq-events-v2-0-402ffe27e9e9@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=7165; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=k6AWZfyGwiIVOlZPNJJzk3hTEvXIgqogLu61ZvsyYxE=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp5kbcgJtT3lfdmdIakF6z34HZ3ktHXV3p5BfOq 8z0zUrUpH+JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaeZG3AAKCRCLPIo+Aiko 1emiB/9qqgqonWDO5IRxMutPkvsP/O4ZS025ejyoyaHHApifkD4C9iGzmoGgjhWTkfpnRhKgQ2r isp0o3w5u5p1qilZ4V6XFgsyRjfLzICk7d4DvrH5EvOUEmvAa2mS+K7jYE7qKFvKudyGvkv2DoI tt38bW6J7tDM6lKdvnf76uqsppAMrrt3IxrUjPImUdq4j/2qMAqOPdm0Qn/UrrDUS1JpAVFe//a 4rMM3d0LOFW8D4FY7E1lGZI74H65rwyepCg9WZRJ63ZP6ZiSwTmDkUNbVABy1OydVVQyTEtIrcL tyGhgYg2tvFXBSx1rzfsvkhA5hiunDOHNOAVyeg4gsu4okr0 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDE1MSBTYWx0ZWRfXyYAwoqMCTOPi EDIH3YvP/3IZW7rL0PAeAjfB+diqS/d2DZ3g6H81yAh4hpFUI5lWYi153Z8xn7sSUv1NbAwCwnk hKm4aVZGjItiQ7y1cBJn0fxbNNyPvQVIOa/neGaG3z5c4nhVjO7nlF6tB4jEuJvwJkNrmUessDI vf/3cGTICn+yKfJbEJl30SKVr9taZvro2gIXpCLfcHhW2AYn5J7Lg1jmjecAK5xD3qequkllDch jlWbbpbQ20U9UMfYFxKdCqELRdzu329AvHhz4xszzFGVD2uyJHIpVyjRr7DdOHNU1yeP7DrZJrk uCRCPXHGGOw5De/4cD1zEinOB5RPccDlimpZQx6tVUVpNgqt2sVq+EZC16OGKNzfVOXeJjp6JSe WihEx+ZhJyjPHWc3baZb9booDtk1eFOd71H5ME1kZdgXA/PNMsXJ5mGjEHWRfVE7s19C1f8ql/a YXrUbSUBZrWwFdhdpjQ== X-Authority-Analysis: v=2.4 cv=BPmDalQG c=1 sm=1 tr=0 ts=69e646e5 cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=sF2-0BiPaN5ps1Od_V4A:9 a=QEXdDO2ut3YA:10 a=eYe2g0i6gJ5uXG_o6N4q:22 X-Proofpoint-ORIG-GUID: P67bLFhfFiYB-Hp7nPO5d177a4zVtpP3 X-Proofpoint-GUID: P67bLFhfFiYB-Hp7nPO5d177a4zVtpP3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-20_03,2026-04-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 adultscore=0 malwarescore=0 spamscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200151 Let users of aux-hpd, the UCSI and PMIC GLINK drivers pass the IRQ_HPD events to the DisplayPort drivers. The drm_aux_hpd_bridge_notify() is keps to ease merging of the series, preventing extra cross-tree merges. It will be removed once all drivers are converted. The drm_bridge_hpd_notify() function is kept for the driver which only care about the connector status and will always pass false as the irq_hpd event. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/bridge/aux-hpd-bridge.c | 11 +++++++---- drivers/gpu/drm/drm_bridge.c | 17 ++++++++++------- include/drm/bridge/aux-bridge.h | 13 +++++++++++-- include/drm/drm_bridge.h | 22 ++++++++++++++++++++-- 4 files changed, 48 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/bridge/aux-hpd-bridge.c b/drivers/gpu/drm/brid= ge/aux-hpd-bridge.c index f02a38a2638a..0e2f0b046121 100644 --- a/drivers/gpu/drm/bridge/aux-hpd-bridge.c +++ b/drivers/gpu/drm/bridge/aux-hpd-bridge.c @@ -136,16 +136,19 @@ struct device *drm_dp_hpd_bridge_register(struct devi= ce *parent, struct device_n EXPORT_SYMBOL_GPL(drm_dp_hpd_bridge_register); =20 /** - * drm_aux_hpd_bridge_notify - notify hot plug detection events + * drm_aux_hpd_bridge_notify_extra - notify hot plug detection events * @dev: device created for the HPD bridge * @status: output connection status + * @extra_status: extra status bits like DRM_CONNECTOR_DP_IRQ_HPD * * A wrapper around drm_bridge_hpd_notify() that is used to report hot plug * detection events for bridges created via drm_dp_hpd_bridge_register(). * * This function shall be called in a context that can sleep. */ -void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_connector_stat= us status) +void drm_aux_hpd_bridge_notify_extra(struct device *dev, + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { struct auxiliary_device *adev =3D to_auxiliary_dev(dev); struct drm_aux_hpd_bridge_data *data =3D auxiliary_get_drvdata(adev); @@ -153,9 +156,9 @@ void drm_aux_hpd_bridge_notify(struct device *dev, enum= drm_connector_status sta if (!data) return; =20 - drm_bridge_hpd_notify(&data->bridge, status); + drm_bridge_hpd_notify_extra(&data->bridge, status, extra_status); } -EXPORT_SYMBOL_GPL(drm_aux_hpd_bridge_notify); +EXPORT_SYMBOL_GPL(drm_aux_hpd_bridge_notify_extra); =20 static int drm_aux_hpd_bridge_attach(struct drm_bridge *bridge, struct drm_encoder *encoder, diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c index c8c3301cd936..09c3f5954ade 100644 --- a/drivers/gpu/drm/drm_bridge.c +++ b/drivers/gpu/drm/drm_bridge.c @@ -1495,25 +1495,28 @@ void drm_bridge_hpd_disable(struct drm_bridge *brid= ge) EXPORT_SYMBOL_GPL(drm_bridge_hpd_disable); =20 /** - * drm_bridge_hpd_notify - notify hot plug detection events + * drm_bridge_hpd_notify_extra - notify hot plug detection and sink IRQ ev= ents * @bridge: bridge control structure * @status: output connection status + * @extra_status: additional status recorded by the sink * * Bridge drivers shall call this function to report hot plug events when = they - * detect a change in the output status, when hot plug detection has been - * enabled by drm_bridge_hpd_enable(). + * detect a change in the output status or when the sink has reported extr= a HPD + * status events (like the IRQ_HPD in case of the DisplayPort), when hot p= lug + * detection has been enabled by drm_bridge_hpd_enable(). * * This function shall be called in a context that can sleep. */ -void drm_bridge_hpd_notify(struct drm_bridge *bridge, - enum drm_connector_status status) +void drm_bridge_hpd_notify_extra(struct drm_bridge *bridge, + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { mutex_lock(&bridge->hpd_mutex); if (bridge->hpd_cb) - bridge->hpd_cb(bridge->hpd_data, status, DRM_CONNECTOR_NO_EXTRA_STATUS); + bridge->hpd_cb(bridge->hpd_data, status, extra_status); mutex_unlock(&bridge->hpd_mutex); } -EXPORT_SYMBOL_GPL(drm_bridge_hpd_notify); +EXPORT_SYMBOL_GPL(drm_bridge_hpd_notify_extra); =20 #ifdef CONFIG_OF /** diff --git a/include/drm/bridge/aux-bridge.h b/include/drm/bridge/aux-bridg= e.h index c2f5a855512f..7b258485acbd 100644 --- a/include/drm/bridge/aux-bridge.h +++ b/include/drm/bridge/aux-bridge.h @@ -25,7 +25,9 @@ struct auxiliary_device *devm_drm_dp_hpd_bridge_alloc(str= uct device *parent, str int devm_drm_dp_hpd_bridge_add(struct device *dev, struct auxiliary_device= *adev); struct device *drm_dp_hpd_bridge_register(struct device *parent, struct device_node *np); -void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_connector_stat= us status); +void drm_aux_hpd_bridge_notify_extra(struct device *dev, + enum drm_connector_status status, + enum drm_connector_status_extra extra_status); #else static inline struct auxiliary_device *devm_drm_dp_hpd_bridge_alloc(struct= device *parent, struct device_node *np) @@ -44,9 +46,16 @@ static inline struct device *drm_dp_hpd_bridge_register(= struct device *parent, return NULL; } =20 -static inline void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_= connector_status status) +static inline void drm_aux_hpd_bridge_notify_extra(struct device *dev, + enum drm_connector_status status, + enum drm_connector_status_extra extra_status); { } #endif =20 +static inline void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_= connector_status status) +{ + drm_aux_hpd_bridge_notify_extra(dev, status, DRM_CONNECTOR_NO_EXTRA_STATU= S); +} + #endif diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h index 3e4672fbd7a8..2cf604cf02db 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -1556,8 +1556,26 @@ void drm_bridge_hpd_enable(struct drm_bridge *bridge, enum drm_connector_status_extra extra_status), void *data); void drm_bridge_hpd_disable(struct drm_bridge *bridge); -void drm_bridge_hpd_notify(struct drm_bridge *bridge, - enum drm_connector_status status); +void drm_bridge_hpd_notify_extra(struct drm_bridge *bridge, + enum drm_connector_status status, + enum drm_connector_status_extra extra_status); + +/** + * drm_bridge_hpd_notify - notify hot plug detection events + * @bridge: bridge control structure + * @status: output connection status + * + * Bridge drivers shall call this function to report hot plug events when = they + * detect a change in the output status, when hot plug detection has been + * enabled by drm_bridge_hpd_enable(). + * + * This function shall be called in a context that can sleep. + */ +static inline void drm_bridge_hpd_notify(struct drm_bridge *bridge, + enum drm_connector_status status) +{ + drm_bridge_hpd_notify_extra(bridge, status, DRM_CONNECTOR_NO_EXTRA_STATUS= ); +} =20 #ifdef CONFIG_DRM_PANEL_BRIDGE bool drm_bridge_is_panel(const struct drm_bridge *bridge); --=20 2.47.3 From nobody Tue Jun 16 19:36:08 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9B45732ABCD for ; Mon, 20 Apr 2026 15:31:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776699114; cv=none; b=QIdtiBMzy4UfbjrOh0nHs4BmeuTsmnDGCn2CdCrg7yPoI9NNB4culvW3jpDLdMky+6/EeY3PDvFFRAfb0FZNxCDzOEgFFCAW3zl594P50gJ09r4AX9JerhBD4IY3bu4We8srs/R/MHe9v4AuF8podQKx43r5ZEkguj73LhusmEE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776699114; c=relaxed/simple; bh=+/ILvBuGhqekKhSlkO02babbVbDbrJeHq8l4XOhAwlU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QQ2io351f9i+UCRTh8Dh24SSWSOqOuVTC5rvZvWrzt/NUF5bbKD84JEseptZi4bMPRJuvwJVC3Oas68YP8tQ0hHH4xvykTd5J+uDDlZnolHA/iimOVDk1GAxIzQ5+SV5zS0FQvZ9/LprSaDev/o7ZEFP58d+pRQXZJ72I1FkJP0= 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=dc56aiY0; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KQ4WrYdz; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="dc56aiY0"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KQ4WrYdz" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63KCCff71532095 for ; Mon, 20 Apr 2026 15:31:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= sZrnMsT7jt/4L++ru9IvAvxyFjbRkLz2gfqjnGiw80s=; b=dc56aiY0njf5+Kcz oFQPOQ91h2MpZ8CmCMDVtHY8m9nILsnRIaA/Vx977nx91Wmc8Sdbby+vw1yXj+ZQ wHQWbax935GdSPuPHBXrU7rOGk5pDGViPAHaLifUl8/AjILEK4gEhxvQJmOE4LIX QClHAFk3ltJ169TzNbTg/NDqkcItxlv0F8BcrghValOaZ7evTLLUVERglK60GuEI zCiFsyLirNRvOpbp/ho78zveMutmMh0tUrft3roSURDYxz0vLR7pi8YwA1qDJmG+ h1Nxyq08VVabWRbbumHVDd2G//ZFhDUBpkbFqfsZLNZx9PBNyqVqE5TfE8GMnPvk a9aecA== Received: from mail-oa1-f71.google.com (mail-oa1-f71.google.com [209.85.160.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dnfus21ju-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 15:31:51 +0000 (GMT) Received: by mail-oa1-f71.google.com with SMTP id 586e51a60fabf-40f09403c56so7513464fac.1 for ; Mon, 20 Apr 2026 08:31:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776699111; x=1777303911; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=sZrnMsT7jt/4L++ru9IvAvxyFjbRkLz2gfqjnGiw80s=; b=KQ4WrYdz9XgXG0BX+UVJs38eUVyQs2/yqV1fQ0nOn02o553Z2z0no4lFx/JIAWcdrW bHtGAsr/1ID8i/v7xOPsot+ortlfWALzW82m44nlThuQYa5I8vK7lwPrFOruwgb8yfEp mvQHW3eYzHXiFTfG52qBgxOTuFF+bFdS4x4KF4R4lZOfiWUltqPUNa11lZdg5/Vt9X05 o3MU6zpf6F2Deiv66ue5viqe3qItzK03DXciI1QAG9nqYYmRz3Izdg/EwvCVYdPD+PdS OY5QXaCsAwSYkz8bHJ4V4fpi9YW4jH+faxjDnQFg9CbQQeXcsscw4tBIq0LLZ7E8mMOp SmDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776699111; x=1777303911; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=sZrnMsT7jt/4L++ru9IvAvxyFjbRkLz2gfqjnGiw80s=; b=NsrmM8XqEumv6oGT1t0K3H88YzEjZILwHcHkRKtvMZxIGgWQ5wWH75jz8XVvIwC7Nj 9Ga5iRO341a72S23aQ/d9lRDR/cpPN99bLPpRj60B347xVzr9jhGy/UePm5AjFoc7ogn MroktUBquqU6eYWvdgxJ8fm5Z49jQqBj9xAgBkzoL+tWOvtvKDsCt/QDzgOhnmEyEI4H 1uw9UO5RNQk8J2US+MAyLEFKIr4j1pCoB+UtAuJGxx03t8Gl04njnKmgeaSzHqwqsj27 GxHrwxa3F7Ao//yH+IbihJ7ann3Kx0qec/MgSFgTmSOOa5XLQI9zUiYLctV7VgAX0fQX fIFw== X-Forwarded-Encrypted: i=1; AFNElJ8/sT2Dm+6FH+u/rBIdjwLauVQUKRtevKZOy2jJdmul8h474QBPogW3a3VAt8vNWIPWwX0M5fNt2xESHLY=@vger.kernel.org X-Gm-Message-State: AOJu0YzMfsYGsadyyy5RscqHwFxLPfb2F3gg7Pi78dx/fqy9T6wJ7H/U UFFmvBNRnagMqNrOOSMzI5Tl8dFqdQN830LLgU7JyHu8wwLH3rbPK2Svm1fOhBMJ8GjphNWcRe2 PR9M9Cxy8/jd15iKinufh0rLbmuOgQVBkZ6zlOwcMM0Hlxizwu09iGn3wX5JZTI3bHrk= X-Gm-Gg: AeBDiev3MIMoLqDS4K59c4C+0M8+WflU0clCcF7RG1CnXbVc2QaR/be2krZfr4scJ5D S0AxxWV3KeCRUqUrA4x+7nRqhFqZq4j7KUd7z6RJmEVnpfW9f+jkZfuVbz65DD64M7oZuW9CPBn 6XEjVArp0ZlqDOZa5S3xk5J/0tWpSmpF8V/yC6WEzoFxw9i3LoSMeQ9qfjbIvJfN0QvBWp8BOWw gz8K9aepZGxRUHZsoCs2rqbVt/rKu6QpNcspmzM0lI9NXkSEyFQo9gAcp7vFNWCDX4c2q2KtZcQ y5BFDFS1j9UXSmzblGh2hOadGapJdRqxaUeBt/4f99e3uRCnIl7fXcfWrUO2dUpYQcpbvKG4OhK i7RhxvxGGBFdGpwCMnoiLJ4iA3gCcRRXxuPXXaFwSRNIiU47DIhBu3Bp0VdZDC0GOmzN+1h7Nl0 8/6RmBBHk/fsPt5BPoNUuha9As4DemTM5rpTvP6jsL30dXKw== X-Received: by 2002:a05:6808:1a19:b0:475:be2f:c56b with SMTP id 5614622812f47-4799bc82da9mr6189588b6e.3.1776699110499; Mon, 20 Apr 2026 08:31:50 -0700 (PDT) X-Received: by 2002:a05:6808:1a19:b0:475:be2f:c56b with SMTP id 5614622812f47-4799bc82da9mr6189564b6e.3.1776699109639; Mon, 20 Apr 2026 08:31:49 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a4185bc31dsm3071171e87.22.2026.04.20.08.31.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2026 08:31:48 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 20 Apr 2026 18:31:42 +0300 Subject: [PATCH v2 4/6] drm/msm: dp: handle the IRQ_HPD events reported by USB-C Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260420-hpd-irq-events-v2-4-402ffe27e9e9@oss.qualcomm.com> References: <20260420-hpd-irq-events-v2-0-402ffe27e9e9@oss.qualcomm.com> In-Reply-To: <20260420-hpd-irq-events-v2-0-402ffe27e9e9@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=891; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=+/ILvBuGhqekKhSlkO02babbVbDbrJeHq8l4XOhAwlU=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ+Yztzu7z9UUln2K6NOXnBhWfvkJW3tKzoWyB3ecY64yK JZ9Obmtk9GYhYGRi0FWTJHFp6Blasym5LAPO6bWwwxiZQKZwsDFKQAT+aHLwdApKn4j4vk80fWZ Xe+zpj3i6mhbFtPpIdHZ5N7Y3qwa9r9B6Frgrrvy7z8e6hBpLvy1VO76FYfvd069TuoIK+W8Mi1 C7imLUXYezym3QgPjmdMmCdrf2+1brvbBtF9aaosZ26HHZgkXriZoVZ3IFd4umhkVfU95gt3C/4 X55x7+2t63sdfz2bQvyuvO1yRnOAV/W9bnzzAvxDgr+7Xuh7Jknnbh2lPb7tk8K83VDZrozMHGU vSmev/TY8u2ful4dbbeWppBOU63bDq3c/Lul4ndC6qLG1ammn3a/sPVYufDX/yWdl+/SvaV6R2b 7tG0MJs3eMqbuEjW/yvDTjz41seRtS3t8yFdM+7VJosYAA== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDE1MSBTYWx0ZWRfX6xq3EjAUT7Dq PDM45nzALBSrdxNZYdQl7DCBL+a3u3QFihWrUFxCsNvSw7qtMPTCWB5P9jqDPJ3R8UqxF9hQ0SN n6XFLGFbV01MkAo+2CHPwKtmtgl5qPWtqpnZMToo9Xm2G5rRw5Cc8xHREWAYMTdd7auWdh3zUgf AJwuVGZSxc03RSjMnvEX8foFWs/5gjOTWSHgyskklzimlBZroGA2ZygZhfQ3Dzfgez+N0utot8i KL/V9KRetkbBAph8jYcAX9nXfTrWcw+Rmkd+9do6U7RC8ULMqzMoZHdopllGvPm51QaPcIrdYhx 8wL5bgojj8PKPgwOG6S1bL/NBaJdOalAOnCSj+6bxvF9SwXmrxZt/Mqpjn/57uY7WtZrg2lNiD8 x9u6drUct7C4gAOc5swBdydEZy6Wa1MPzZNQ55aNh6abaLzbzAMziPDOP8/ogp933uEeATVuud2 ijap0uAVLX/ySnVx1MA== X-Proofpoint-GUID: MW9pKNc85unqbtXlUI3bZr_FCSxZsoor X-Authority-Analysis: v=2.4 cv=PMQ/P/qC c=1 sm=1 tr=0 ts=69e646e7 cx=c_pps a=CWtnpBpaoqyeOyNyJ5EW7Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=3ML_fINe3tzxlWvVV4AA:9 a=QEXdDO2ut3YA:10 a=vh23qwtRXIYOdz9xvnmn:22 X-Proofpoint-ORIG-GUID: MW9pKNc85unqbtXlUI3bZr_FCSxZsoor X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-20_03,2026-04-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 spamscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 clxscore=1015 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200151 Let the MSM DisplayPort driver properly track and handle IRQ_HPD delivered over the OOB events (e.g. from the USB-C AltMode handler). Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/dp/dp_display.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/d= p_display.c index 7a0623fdbd8e..8df579bb320a 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1800,4 +1800,7 @@ void msm_dp_bridge_hpd_notify(struct drm_bridge *brid= ge, msm_dp_add_event(dp, EV_HPD_PLUG_INT, 0, 0); else if (msm_dp_display->link_ready && status =3D=3D connector_status_dis= connected) msm_dp_add_event(dp, EV_HPD_UNPLUG_INT, 0, 0); + + if (extra_status =3D=3D DRM_CONNECTOR_DP_IRQ_HPD) + msm_dp_add_event(dp, EV_IRQ_HPD_INT, 0, 0); } --=20 2.47.3 From nobody Tue Jun 16 19:36:08 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 938063321DE for ; Mon, 20 Apr 2026 15:31:54 +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=1776699116; cv=none; b=e5gdtwb8H3LTtWowlJ0ZAgr41fH5+JEwPfDB7Js1TdK9QLfd2zQikbIsvowf0kmISOU+xmuyScYVYCgPpkPWpQhkaJOQvuyIpIEHrEj14ppCvShYdjK7ZNo2nFHNXs6087x8Ko1Deg10hhNtUEJFjNQZaB1yJTnFcK6rT9rjTRw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776699116; c=relaxed/simple; bh=g2eHBnhqeprT5L86a/SxcLn20kIiQiAhlBDTRdUq0LE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=P3wepIZ1i986dWSd04AuWiuGH7N3jMhyJEh3weqZZhbRAiAaOnO4xsil8SBcoHgSow4PP27IL1I1O35qUWl5kh9UOID5ZjvcaDCSRNmkzzrBfon58guz86kp3MWoJ8FrjN89IkQjWpxfg5KRov9JM2w+OCpHjo/r/iW39gGA6v0= 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=FtpjgyQZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=di2ZGOvw; 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="FtpjgyQZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="di2ZGOvw" 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 63KCxJZD3455879 for ; Mon, 20 Apr 2026 15:31:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= MbKgvVuxEIwEzMcmEacPjVXRL9Yz3CCmKCNgvBxdDkI=; b=FtpjgyQZHS7PWmHX SuFii37KrFCQGP1LI4OU4yqebryV5Sdp6N0joKTBHIOOB8hPymm+uyqRdH+Tm97r +EBhBi1g1DCY6m8agqOGgBCv/Qa7DME6E4+WpcWLasxMExe//m6f1R6+R3lkGCg5 voui14+vXjyZQwGiTCfOXeX92zt6jC9TdC6bhjcKwkWNSLDdBPCSbRPKO3grnW61 R3IWg//h+uFyX9BrgTFnNiTrs/ANd6XGcbhtb61siLp8IgbkBKxNqs86qDk6RhUW XaPVVErtMPx5PZpqCXWqAoIpuco5vY6w7caepoLq9Ivz37pNr02hqoEy1yzdef97 yvJd7g== Received: from mail-oi1-f197.google.com (mail-oi1-f197.google.com [209.85.167.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dnfvjsy8b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 15:31:53 +0000 (GMT) Received: by mail-oi1-f197.google.com with SMTP id 5614622812f47-467e8aaa943so1792271b6e.0 for ; Mon, 20 Apr 2026 08:31:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776699112; x=1777303912; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=MbKgvVuxEIwEzMcmEacPjVXRL9Yz3CCmKCNgvBxdDkI=; b=di2ZGOvw/U8Rnvn3ChIAoJEfeqm2hBDrMtxrjb8vWkDtqi0YMZXnaXWcHueWUFPVXc ekfz1ULgha58o2u8Eg/F0fLbArvGnsgEhMaTQlBgke8d56h68UCs4P2YqSvOOSOrheE3 bASUEp0g+OmMIkUdU/46VHm/cQxwAcpgZr/gsdV6UyNV1ZmKuskwe8g8NxbCZdjg/NE6 WmH9tpEzTZeMiStZto8EnXUyIg6tNop/zvzSbEBM0ahKn7InjdaqoNiGe7eZmISFek2W Btp9Kp3uVjU422Pe6pyqNOPbg6hykiDO3wlwLsBWs/73/TlDMva0f/4mFDY/uasXgRkN /PyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776699112; x=1777303912; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=MbKgvVuxEIwEzMcmEacPjVXRL9Yz3CCmKCNgvBxdDkI=; b=sDKPRdH15Y5Woq19I7mDbOGOMEpdkVVsKSWTaxL4YiH4WfdOgFvRQFiDLP0GGyoz+W 6jvg9DInM9D72HEf7OByOC4W3jcrsg85xOcd+6+9jqyemlJ447okbDIpsoqswvhUMOZX WQujH3SMCO3DUbpz7HymZ/ZTW7HAGxliWZnRNv0S/5Sgid6SLC1WeKK5DQ0fv6XTursa 1AHtaVEicE/KQlenYShBswJEyDae381yuHJ+o72wOK00SnNklANjnEIvSeQ+9O4ECbzo LLXLMgRMu3bF6P7HXGC73qP1/sXmu3eUfc9ag2CCXKwHH78y+sDiJ5gmjT1+T/ULGJHm 3d4w== X-Forwarded-Encrypted: i=1; AFNElJ90oyZ9lNIJH4eAdb5sP+nSB86D4ew8MrkouUjvqdVEFOs7kl15qirK4JZDXqhtf9LI6/XyPt6DpD0Heqc=@vger.kernel.org X-Gm-Message-State: AOJu0YzB+9oU3BGB/ipt60GNo0axzEr5F/t/J8lZIhQo2PkgUtNtuwCI acnZrSVRpgjP5YdE88+wphv5JZF07oXz2KkrZNALqDWvQMQYwppclPbKLTF8Pz6v7iyIH0yZKF1 ZU8YDp10tR9hMTnG9QicwFADZysLrlWH9U9YdRBYWclWmDaWmDUdVM++14KoQa9a5CUk= X-Gm-Gg: AeBDietiyMHU/OHPLgpPrg5AsI85L2/CZ+sgv3uV0EqosmRmavbvU/1V+8CVbgXJdox SQi8YUTCauuuHCRNmF1FbEee5Qkv6nwbhlyAYKVbUkCcRYnLrmUvUqdD8B5KBkcp5HHB9HOvWL0 q/a/vKqlhMJcnRJ0oQfEH5oTZH4s+RsbPpyOrhUsmkNtXVf2kvy5+zazXDyhOaYEeGw9IkmNTcw J0reOfyClTegiiM0ND5Fn2zyUOCYc8J05Sk2MhaPMrVvyQ1t5AfgA0SqlX6a8DYA9tsuyFjSzln isAjja9GbHFswdgji+N1JVN/Vzsaij8DeFUll7ckfsExYdK25y8rCRzeWtbyVPqccO0STiZkQ66 +5Rpi5CR4Y8ePErw1cn34sYyrMKNuA1awuyGnCNF/P+3+WR1xJWBpL3hXgt3Gw3x4uq58Y+o4kG xXPmAQTb9k+hQDimLuGJrrTlJJbanOf4mWJ+8ah6h0Z2HBZw== X-Received: by 2002:a05:6808:2223:b0:467:16e4:d276 with SMTP id 5614622812f47-4799c818433mr7486822b6e.3.1776699112116; Mon, 20 Apr 2026 08:31:52 -0700 (PDT) X-Received: by 2002:a05:6808:2223:b0:467:16e4:d276 with SMTP id 5614622812f47-4799c818433mr7486766b6e.3.1776699111336; Mon, 20 Apr 2026 08:31:51 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a4185bc31dsm3071171e87.22.2026.04.20.08.31.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2026 08:31:50 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 20 Apr 2026 18:31:43 +0300 Subject: [PATCH v2 5/6] soc: qcom: pmic-glink-altmode: pass down HPD_IRQ events Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260420-hpd-irq-events-v2-5-402ffe27e9e9@oss.qualcomm.com> References: <20260420-hpd-irq-events-v2-0-402ffe27e9e9@oss.qualcomm.com> In-Reply-To: <20260420-hpd-irq-events-v2-0-402ffe27e9e9@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1078; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=g2eHBnhqeprT5L86a/SxcLn20kIiQiAhlBDTRdUq0LE=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp5kbc08iYjB4Uag0ka8zVax5tTnA3IFY+usHE2 EDoi9ciSAyJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaeZG3AAKCRCLPIo+Aiko 1Vt4B/wNiW+YWqmfm+8Rmhnz7THsToqY8cu5mLfFy7IsLit6vS2wLSP/yBCekylhcTV6irXUM8P 42VEGhqz/Ymuv4uS+YoIB5ejPO9MLGk0vVkfMOIy2Hni+pR7i8owtJvna+wF3TP9/BgaM6gzw5r 9VgXLqpTSqAWk6UDwvnI4WVZx69ueHd9x+giIKzmS2XWlnronU3X4nEw1nj6M8ixGQARP/0lGiH U2cXh7bRCqlzc3NP4rjYbyWpEnFGUWNk2KQ1MwH8MFIqVQjkH0ydOc585da12iuEC7ikpiCOx1D 3or91Wxi6twREDMlpKWS8i9MNs8T8zzR635ByxjwU5RWoNn7 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: umFWN6Ni0a_ujbVHyL0nCk6oX9lIy_I4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDE1MSBTYWx0ZWRfX1cIDqnHLKQ75 NHPxbciltCRoGVGMY7OAUwgYdM9kmRMkxOEyoQ7/vw3u1ZxwxtARdurPvkw3mNZRvWl2uJQ9GBO eDH2Zxj0JjXBG4r67bNW2nvt1kGqueTrlAP9RXklAwbXIAi+92Brfn1gqSMoLQo6OFar/Kn7dGM o/JBkKW1B5AsgqYS6L8oCHhmcJkWL2Ks/fEidolmmP2jZSntavChuwHjNI2vqJ6IaztM985QanU zKV1nFGMneQtzNhc3KneNBZGwc4J41joPJJLjMtANZmc9IKyDr8YhcKv+asB0FUhuRXnR7dpfuF QDuo404N84AxOkWIIc35QAwNlMMDZgDEfwPRZ3OP3U9YiwE8kdPjwOSJMlmy7Dk6q6vp5UkIoai VEqNqDK3hsojsYJmltLv9PVryvSOs7DwpIyupR2RHesmWRf/5p5OZVZHez2x7VdmPTVRYBwrqnh EPQIEN7FkIDfWFxqDZw== X-Authority-Analysis: v=2.4 cv=XNMAjwhE c=1 sm=1 tr=0 ts=69e646e9 cx=c_pps a=WJcna6AvsNCxL/DJwPP1KA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=QzDdqdBtNhq9Kz3vvWgA:9 a=QEXdDO2ut3YA:10 a=_Y9Zt4tPzoBS9L09Snn2:22 X-Proofpoint-GUID: umFWN6Ni0a_ujbVHyL0nCk6oX9lIy_I4 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-20_03,2026-04-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 impostorscore=0 suspectscore=0 clxscore=1015 phishscore=0 malwarescore=0 lowpriorityscore=0 priorityscore=1501 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200151 Pass IRQ_HPD events to the HPD bridge, letting those to be delivered to the DisplayPort driver. 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 Tue Jun 16 19:36:08 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 A407C32F751 for ; Mon, 20 Apr 2026 15:31:55 +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=1776699117; cv=none; b=X9w+C0TguEq6R9GXxLaApBs8fqHALjaMT191sgoxJYQopODJHBZ+9VHofmesHdhSVpA6y3jT24x7+z7B2R1jmh0cQngJeYpQde+VTPe29g08ZVOIm5K9delfm0Ugzx+yFiLpaKACbSEBdwXfXAYHFRBHbB9ejVKMGXYHO4jOk0Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776699117; c=relaxed/simple; bh=mxGolAt7ROQ681cKNciUMVefMdiRDsSwC5zox5THv9w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=I5zJIRxY5CBQkSrNtD1iy9Nl/OyeO1dJhQsyqkNrotlxpqJfeCYSTgSSnBT3jjA3ASFXI1LIGYb2ly9sX6eP7kN71qMdn5qmeBiwXd/GAnpUMJJEPTcLFlHYLflGeeyHaj5eMFAu1ZuPlaBZx1m1qXf6GSRylvsLT7iX4of5UhU= 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=RmkyS6fn; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=T/cLgjB9; 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="RmkyS6fn"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="T/cLgjB9" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63KBnvdB3212117 for ; Mon, 20 Apr 2026 15:31:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= li1QTXDLKUg9Sb2Wzb5S3vgbZrLxrrKq59N8rWxZa0g=; b=RmkyS6fnhb+Kw7Cz CHA3bm4xEZvLa67Sc7VaByoq1777MMO32UoiFTCX9OWYl84bQUYSUt5oiuxal4+t Y5EjaMT5Dl60Zqc9cnFtdpSqrrXt/Hq1Q1gJ2ZTj5efhBlyqCoDmo6GXDGMI7Ly1 wF+BUTYzGoj2FvjH6kNVWk2Zwuf0aIRQjO4vHjmTZjJjwQsYHQCJIkwWUgK64xhY AAaJIEKog00iwU+sBfnxn0QYK9FacFb+525cT8XdaTQ2UxU7Gze2/JgUjJaxX/EO nzWgfUvOT7pye2NzxlbQvMiL6wc0h/titHO5Dy0JcW+JIEu5tAw3o/AyaFwaJJxs gK0rlw== Received: from mail-oi1-f198.google.com (mail-oi1-f198.google.com [209.85.167.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dnfcfj3we-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 15:31:54 +0000 (GMT) Received: by mail-oi1-f198.google.com with SMTP id 5614622812f47-46f083f82c7so6076535b6e.1 for ; Mon, 20 Apr 2026 08:31:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776699114; x=1777303914; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=li1QTXDLKUg9Sb2Wzb5S3vgbZrLxrrKq59N8rWxZa0g=; b=T/cLgjB9g89XLQ7mRc7VrvKDimoraL4B9BGzqyWzaNRpBi+j6vdxw4Z0Qk0pgVpLw6 x/OfQrX9TzT1zZjqYV/IaDYwAmevyJgQL/7LDi/vDa6wSpIeDGHbI1r53WSdSTqiMpXy 0frAJ/8HunfM7BvsWr6V5QIwfRrORZD4asuNM1eTSK3pe5clgbjF3lyJp/FE/qoHRPMG llvkZwM2Bq4ycrUyRUbmJT4RFVXu+n8aiopgo3V3EBLgzfOeyZEunZo/6mLxKh4Gc07p DF3Sq8MbhjoHq7hfSh76hE6k+IkyvKblbS1+NT007tVtfdd5HM+2cfmrieGQJjCCENJx LCSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776699114; x=1777303914; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=li1QTXDLKUg9Sb2Wzb5S3vgbZrLxrrKq59N8rWxZa0g=; b=Z4kEnKawpCODuBMJ1o0WfHPPJNV1n31kSk+rlpCzLPmM/GIJYCstmmRlhCOfzrY16T AgCfDi13+aQ7NqoPtM1rqFeep1b7KLUnPU1vv21uXMrqDZqBqOiJnNW8iGWrYefQ6LBi BR4slNfwG6E3PNOJMfUFc99g7igZn1dfif6foGRgs+coaqimLdoGfChnQI0wLaJj1vDf 5OqAhvPvcmBD+ArhMM/XhwftWXsmmOCWYdgd1Ou8q0kP6asmGR+q+E3QAQHlztluZryr 8hBQRUy+fcNEufF4cv3PvAv9Fp5icrPhZg4g9SixuTKTwnAqflxHfMqQZa+1W7s7TMkY hQKA== X-Forwarded-Encrypted: i=1; AFNElJ/P6BZVwp8OZNQTWH8+4c6/8BYm6rowGXiK2V/U+yMW2wfVYqUSeFok0p0gThwgrRNuEyvCRa8q6zHuwCI=@vger.kernel.org X-Gm-Message-State: AOJu0Ywqv1ekXOjuQGK3EuikkMEO5fxDL2XGuUC1AsQe91MhxvSm+UKt lqdpOQpJ7qqT7USd9gekzD0zR7Ts6t80VshFxXx8xB0rJaP1RgSTQisD7/gBnQixiZPUNjnK2Qg K+x+ikmG3edDWWMQGZeYJ5juVOLqyCIUilRE9N2HmANN6BiBcpsvbyYMCaTN6GFvbe9U= X-Gm-Gg: AeBDievJLG5SvUemlJkCtYg46GGkG2VyJs24VLhMwrlrogp8L/BUbfNLz80ouAB3JoB rlsDW5rX6Eb8OIFE+Thmzb4Mt5b7nwk5gkcPDsqwWYrmMgoGhJqUaaJm8ZEN2Ps9EqtmqFdHGkb ijg8w+rtyXKBckqdKF5Gd7Qh4KMQ6TozyEsCNgNDX25Vi5V3tDOgwYRQ6dK/6MycgEE6SdWJk19 5KlDR5pYW0jCIA5XC1O34p1r0VxIulfjh9ajMv0lGqZnCxlN2bwiS9sxwTM7KiCK5LOsMnt1HZx CuF0wl3h6kLD/0huAnpJ8cdozfVTfef3iO86c2WgEpjKuaouKvOBD4aIE3BLJiguue4Enl49m1+ Wx5byuzPcGeipZoV1aUkOqWS6xQShz6+UZ93KnIyIELpPY1xw3p7ULDzdPbx+SsIPAhQ9lpXVOg /uFPY43ke4aQdOd3sS4X/HdPJtnQfEvyPRJglUSCwgc5pXiw== X-Received: by 2002:a05:6808:130e:b0:45c:85fa:5a3e with SMTP id 5614622812f47-4799bfdd9c8mr6136763b6e.25.1776699113596; Mon, 20 Apr 2026 08:31:53 -0700 (PDT) X-Received: by 2002:a05:6808:130e:b0:45c:85fa:5a3e with SMTP id 5614622812f47-4799bfdd9c8mr6136710b6e.25.1776699113069; Mon, 20 Apr 2026 08:31:53 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a4185bc31dsm3071171e87.22.2026.04.20.08.31.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2026 08:31:51 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 20 Apr 2026 18:31:44 +0300 Subject: [PATCH v2 6/6] usb: typec: ucsi: huawei-gaokun: pass down HPD_IRQ events Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260420-hpd-irq-events-v2-6-402ffe27e9e9@oss.qualcomm.com> References: <20260420-hpd-irq-events-v2-0-402ffe27e9e9@oss.qualcomm.com> In-Reply-To: <20260420-hpd-irq-events-v2-0-402ffe27e9e9@oss.qualcomm.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Heikki Krogerus , Greg Kroah-Hartman , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Adrien Grassein , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio , Pengyu Luo , Nikita Travkin , Yongxing Mou Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1309; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=mxGolAt7ROQ681cKNciUMVefMdiRDsSwC5zox5THv9w=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBp5kbdKgPye7XiAeoSoakScVMUMjCOu46HRvpZ/ 8qrEonxwheJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaeZG3QAKCRCLPIo+Aiko 1Un6B/9Xc/mQPkkBXKR61XdHwQ1fxJIryoBdS++LX1KT0pEEYteBKqRJ/XSYQUrc+EPfqLU9PMe H5fUvSJHLdqvfoBUCUEQk1YTcGI7SpMzLE8TkrLZ01bkDNnf5fF1nWJ2jeH0js+HhXpHXNYwq6+ eMkODvtWK6jOOzLJVIWNEp1Jf/1Qo6CBDpX7f6O8hgnOauDvYkX3G4NrCVHZbGnvqgxwfoT2Fmz XfzV/uRG9TPUQ007KR6NG8ovnQVsBtzYYjzGiMZtRYlCbgMnemhbOxWRCAYGadr/D7zvREJKKaC /KB3r6hKi8dNIA7osaCTEBo1CdUrJ6ljvRhahpB9mb6AkOwp X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDE1MSBTYWx0ZWRfX4c2y//Ticpw5 pxIpPKtI2msPXh4LhbabMAnIXk4ANUeAUC6FRCKJgPGxf0gf0V8H63/6iO8m7wuWAMpxvjYhrHU MnuUZ0SiawKRKzZzk8VhAlh2aQqjQVvtQ5UStHaJFaIocdxw5ahsWivGFWmWmMo4DG6R/7xXGvx SCGdSL+u2zkMG+nAsms1mIMH5qKyt4IEtXYahQYTdpngilUY9M3RmcrGhx7fhpsIQv0QQp8u4ma uLSHBLD+KQE3aezp3OwnqfSIaUEKHeetZEj44AE9YSuy7EO/mBUozyS+ncXYSRo3xl2HgxDQj1/ xZyHimJeHetZBlsjHXp4IIqPFkPJuLS6coDPgrzF/FzUGbAmrQF3lOi4nYHlQ8vhtQUrNAgrcdH Eh0WQBBuidv8/EdYfmQQu/FIAIt1HEkdMbRt27ojZ+kpWB6VXAY4yl2CHeRW+BkVsb079vTa2xN 7roL1IMuBK+8+eLf1/Q== X-Proofpoint-ORIG-GUID: AJRBAww2R2RM-W1Ug6EfBV-OpI22lFpc X-Proofpoint-GUID: AJRBAww2R2RM-W1Ug6EfBV-OpI22lFpc X-Authority-Analysis: v=2.4 cv=L+ItheT8 c=1 sm=1 tr=0 ts=69e646ea cx=c_pps a=4ztaESFFfuz8Af0l9swBwA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=pGLkceISAAAA:8 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=xNxaoOyMFJLcTYWjjPMA:9 a=QEXdDO2ut3YA:10 a=TPnrazJqx2CeVZ-ItzZ-:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-20_03,2026-04-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 clxscore=1015 impostorscore=0 malwarescore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200151 Pass IRQ_HPD events to the HPD bridge, letting those to be delivered to the DisplayPort driver. Reviewed-by: Pengyu Luo Acked-by: Heikki Krogerus Signed-off-by: Dmitry Baryshkov --- drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c b/drivers/usb/type= c/ucsi/ucsi_huawei_gaokun.c index ca749fde49bd..5e3f887ecbd8 100644 --- a/drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c +++ b/drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c @@ -299,10 +299,13 @@ static void gaokun_ucsi_handle_altmode(struct gaokun_= ucsi_port *port) =20 /* UCSI callback .connector_status() have set orientation */ if (port->bridge) - drm_aux_hpd_bridge_notify(&port->bridge->dev, - port->hpd_state ? - connector_status_connected : - connector_status_disconnected); + drm_aux_hpd_bridge_notify_extra(&port->bridge->dev, + port->hpd_state ? + connector_status_connected : + connector_status_disconnected, + port->hpd_irq ? + DRM_CONNECTOR_DP_IRQ_HPD : + DRM_CONNECTOR_NO_EXTRA_STATUS); =20 gaokun_ec_ucsi_pan_ack(uec->ec, port->idx); } --=20 2.47.3