From nobody Fri Jun 12 17:19:04 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 913D33A71A3 for ; Wed, 13 May 2026 18:23: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=1778696636; cv=none; b=QsuOsVjPOyEQVZDjd3pbv09+S9jc+rQInu3aAcfMYboINRTlBQb8+v5roGHKV9xJLJUXsSr6cGHLT/PXuncfTOPh9vzaczQh2R0O818b76ss+zzaXFmj7wb6vCcxejEPsIfeC/ZeDbE1sjvdkOU7IoXrF3e9AMBI0259oa5iNrU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778696636; c=relaxed/simple; bh=lnVODOLTo2WpHrvqFht5FXa9gKD0IeWSjwE7+hKxwmM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=R/DTPXzXIU30zj4YhXMemyCbXy26jg1CPTpvPtKGzg73tZiakYZ3As5+UUmAO9W1eGyLJTBcZKJZfdKqvSzSx+oFheL46bMLVOQQGS8LaNkifa8ieblpX0f9rCNpsuY1OAQ+6xpBM1SfqyIXp+kwFugi/ACnxp5SEYCb+sQ/C3M= 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=Rc0jFcRt; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=NJnlZ/3k; 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="Rc0jFcRt"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="NJnlZ/3k" 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 64DGuJVu3995620 for ; Wed, 13 May 2026 18:23: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= lUxjcmVB1mry2JFOZUVE65+ZJk/cVp6zUgik6yCWYSo=; b=Rc0jFcRtiw+h55So zoTr6UzoG1TzenCRG2BQXvDfD6fxKCDKrQmyLxG3/4Wa1QnskXhnepcU30WtlDMR zz/9dkXLcAnffHFqLks3kors5Tm70GRjvq57IMCk3wa6L0jP8xr102vGPPnq8Iol 3fAYLdgOU4sp/7uInRa1f7k1uShv/ddhwwPxFnd8B/6M5to5JtodKsLaHR7UAJC+ wgUYdnL8KgQ7h/n/Xy5YnkjnuZi0CJ+2m1uQ7IoN8LuI1V38k+AuWwns8KAMNq+L NlgVMGdZH84ny1tN+npBtZROT80H8lbUDeHKYovQGMUtquWbdMEahR4Lobe0MK1r GjJpbg== Received: from mail-ua1-f71.google.com (mail-ua1-f71.google.com [209.85.222.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4w8urb4h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 18:23:53 +0000 (GMT) Received: by mail-ua1-f71.google.com with SMTP id a1e0cc1a2514c-95ce07ddc14so8240279241.2 for ; Wed, 13 May 2026 11:23:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778696633; x=1779301433; 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=NJnlZ/3kukmn1txezYdskt9tBCzevoY19kspTtW/yAT8hLeGFjCmiOKnZR4O/haRio sGhsFuBpnelqSvURyonuUPWuCFWvQBc6HxCdFFXgGBB3L2MYmsbgZAPa+jiD2sgvGI+l tPIPjgVEVZN8ur7u16JNETad23kPxdXxArBOgOVAP6ceJZ2yyywI4kc8cw56MePJ+eiI WL5MJmi0x++7eVzCtvKYh5E/I6VNZzlg/hVnCiRLOopj/5KvM6+QJUj0U/phdv7P35rV J4jg3a0+L/MQmGQqPXyko4kMXkuhK8mz6e0pGH+aAQknkDMfw+V8Z+X11VOPg0CV0Ktp TuqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778696633; x=1779301433; 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=S9Xr4ynjxmRsD8rPfg3MKCaQy8kwZZ3yvo+843OZjMdzqTuVZHI6akhNUbWNi5rKIr gX1YKDMB7O5NLjdv2GmYdgc8XBL48h+tXXajdI7RWNIlOJJkpfI0mXolpGRrsT9nAIZD i0yteIKNSjTkfa4Byd/9aKHaoM30e18gmf9p3mp3OYMF/fu3Gv9kf7jeVZd9Xt5+qpiR 4SAjKOWUiv4vhpzHdJ0PdSLVtUQB5+/z6F2WeOThBGZzKINIL8PLjkEbETpvclKEwC76 xt7kFYqGv8JQDs9lFjATfLeGzuuGrmpJzZZBbCU5iOxR1cXLfNrKf08jveDSDCA41qel Q1oQ== X-Forwarded-Encrypted: i=1; AFNElJ+ALzFeHWq4aqYThkrtKT8EN2BlEL53gRq0tLoB9aFf4QY3zkOKFdHs5wSK+CeeUVqlFZp0j9c9YBX8z6w=@vger.kernel.org X-Gm-Message-State: AOJu0YyNPUAJlQxlFAdd+Q8Hz4ngi37b/rBzUJvQnSH2oWteiGi9LXF0 g9D2zh+jaU+u2Z3M3FJfWWppZg60dCvwYsKUkZdN8C2dWPH0X4Do/MCfFK72lY6tWv25ILWWL4v FSQg1nkcFORkjl7POw5UvOZJIP43LYiqvpXzfTnQfiKLjp8t6VoQJVedfOFsj8QwPtU0= X-Gm-Gg: Acq92OGVwBbZFXzyN7lxDInNz+TZL6ZFKIMXwiOmom+fM3/1f12BPMqkJYMCvHEVtwk jH3rLc8FL6AxPBXihdakmbXE5EU+JjjL5ZF5O4CtBUqw1Eq40S8M+IB4khdN8dxtyxQu+aY6wTw YmVW2QIR18W+Reev20SN0M7QyTAD5gr2SS9MjnXAkVahV+0PcLOC4JKfU4EMAHAUOnrFSKDGoq+ BoLV+oh9UgNlU2lxkm2bFWuNS+nwn7TvmUx0GM+QfxFEDNkNKOWLb7XMt7Y1xEbQ5hEQ27CdDvw tR8Y/G/orUmHK+dp+Xl+5ZDPIyJuagpgHTFmGm0EN9K6nyaak1ND+jP9vMO2o47Yrgz9fBQBywA WIju8Pui4oMGo6deNQ8X0fdXSCCEiDpfiDx/BjvPq14vvoLGiYswDnDVDyH2WJ2QTqDjtJdIXPW 42XhmkN020hCiBrVv2At0mDxyoYial2c9pssY= X-Received: by 2002:a05:6102:3049:b0:631:37cb:1e64 with SMTP id ada2fe7eead31-637a6c2f9bfmr2354048137.4.1778696632711; Wed, 13 May 2026 11:23:52 -0700 (PDT) X-Received: by 2002:a05:6102:3049:b0:631:37cb:1e64 with SMTP id ada2fe7eead31-637a6c2f9bfmr2354028137.4.1778696632148; Wed, 13 May 2026 11:23:52 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a8a951d1f6sm4212851e87.23.2026.05.13.11.23.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 11:23:51 -0700 (PDT) From: Dmitry Baryshkov Date: Wed, 13 May 2026 21:23:21 +0300 Subject: [PATCH RESEND v3 1/6] drm/connector: report IRQ_HPD events to drm_connector_oob_hotplug_event() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260513-hpd-irq-events-v3-1-086857017f16@oss.qualcomm.com> References: <20260513-hpd-irq-events-v3-0-086857017f16@oss.qualcomm.com> In-Reply-To: <20260513-hpd-irq-events-v3-0-086857017f16@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, Dmitry Baryshkov 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/pANAwAKAYs8ij4CKSjVAcsmYgBqBMG034q0WD1dU9zBBukSN63zwQflgiz212FH+ aqfkZzELSaJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagTBtAAKCRCLPIo+Aiko 1YnxB/9wgWldcqDS/btctLZ+d4WsAunvc9HMjgx3vDv+jWuyFXbuto6YvRhbSJRFl/bn6USOWD2 w+hnbxoLs+GoJtRyQnFJYpcDk1fBoIczXXMR6sphI9KOwzaltd2I60W4bmVoFc5Wvsr4+nemF2Z pf0UegE91hmpbV+XvOx/ta7AUoZKVfz0FRc/R5JYhifiw+cSJQjoP8x/tu4Ncj6llXyPrg1oN2K eFPtDtsEXLMSMnwoXsQRLn3mVftP5QhLrFy41s+AfgyNdqoTgY07/GFwxWrUKJVCGP4hhGzQE2W AnzPdKdY/9NCJym/+SY3fUf2/aD8Ud+ZcUgSLRoY/KMHiWaX X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=WP1PmHsR c=1 sm=1 tr=0 ts=6a04c1b9 cx=c_pps a=KB4UBwrhAZV1kjiGHFQexw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=-JEBqWJC5KD3P7x9m9UA:9 a=QEXdDO2ut3YA:10 a=o1xkdb1NAhiiM49bd1HK:22 X-Proofpoint-GUID: ZDuDW-QrHHn1Q5UXGB2ChDA918ofHktE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE4MyBTYWx0ZWRfXzahXqfcgG4a2 dbByQ2JqUEtGoNEdztHcFB0q2T5nLzAiOIDWc16ctLRUr6vDF0kqJ1hANRfuoz67iR77cUV7kik Ys0Jspqhc7LmO+rKFCfk+r6FKOjYnB2mqbrpbBK/5esTSrHnXZBoHVxksJFw+IROLOtqQi3fUgm d7siLuib2/MyLfW/qqTShdfsEavYgJwvKEvN7/SxFAVqmfBROON1BPLEUCrnf2v53h+/iqvzs4V Lvlf2zW8up2qW8K2P5bNEySiFEHhtqUCw8SEyxo/yQwOI0MrmogGxJXDiVrLzzExzAV4Uh871Hp s2eXXlQgblzeyQ+KYSlmGQSMjormYikRc3spwsHmRyk8qxiY9mdTJDFTDTk+qBrI3FyLRgUMjvC wWN4v5NMrGp+P5Xjo4rf1ByMVyPT/MV3rY0K2GCpC5uc7frJOyPwXKyhJGMi50Igo4tFSWC9Zkr pu61OG0auhJ9pg2hvEw== X-Proofpoint-ORIG-GUID: ZDuDW-QrHHn1Q5UXGB2ChDA918ofHktE 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-05-13_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 malwarescore=0 bulkscore=0 spamscore=0 impostorscore=0 suspectscore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130183 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 Acked-by: Heikki Krogerus --- 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 Fri Jun 12 17:19:04 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 557A63A7F4A for ; Wed, 13 May 2026 18:23:56 +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=1778696639; cv=none; b=Ryg1X0oVX4glH3rbYn2cN84z5mtetiGQACzw+bVzu7rFF6tcmnobFicK6dbh+2o7dsV1mBoWSV3MzSdPwl3pBq5y9TbgESeJCBPrEfjb6P7Dp/XZhOgwnDbaMWgwGrZNmFs6r5O/PhkdzIkgrDau9YqcpDJvkg9JaAmhA7v+2jY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778696639; c=relaxed/simple; bh=EFjBNNXY4LL2a3Oa83bwPsPhmfsi3WM3QfAbe0woSwI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qrbwSIvJp0kJQDG8xwwgpseyQNgmSzWoKF/9s7AeSmNRwg4KxqkE5n0meRQdXdgPHoLlzZ6i4naP+yi3qYKBXOV93eJnE8J+K+8NpwAV9zZd6FEcJmPyPmFJR758m9O8mIyskjXsbc49Ht3RX10BRGxpM3pOHFIpMER3SJsukPc= 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=af/Fnqrg; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Tae5cHI8; 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="af/Fnqrg"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Tae5cHI8" 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 64DEpIoR3474926 for ; Wed, 13 May 2026 18:23:55 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=af/Fnqrg/vlwhr58 lvdGUenDQOawOnXh7xj+WHYRSRNXxmvx2ZeYe6eihbh3GXyh2hEFiwlUR7057HJP 66VbyRXu6icPKGiIP7VYaWuVOyLqAi+NsZ0j/D3xE1EDFVMk9CGzbDkWwXW80RqD VCD9CFS79gDrBvsnAo24KLcIUHB199+Q7y0ww/oi9606pzVRWjPOsp3jcI3gUNu4 4jS43T11PITjIBRSbkmiURKJAQeMhsncy14YgslAL+MWdPKFgSwv4M1m1BW5j0dW J2zQI3/CgrNTm8dbnzH6qcVf4ru1a3/xrly9YQNV5Mf5BCiI7SNozc9ssnCBNfM3 zKn7Gw== Received: from mail-vs1-f72.google.com (mail-vs1-f72.google.com [209.85.217.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p41a8y4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 18:23:55 +0000 (GMT) Received: by mail-vs1-f72.google.com with SMTP id ada2fe7eead31-636fce7dc8dso1504189137.2 for ; Wed, 13 May 2026 11:23:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778696634; x=1779301434; 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=Tae5cHI8nlW9AIY/2PnMNKxoMcCf9EO0Xe3d8i4szy8hyQW94SiXsUYiBIfbP9/8/7 cc7R2SlhX8siGXsaWx0oQ9aCH7LE04aXO+IQ/SldDYfQJ+vTHI/7oz5ecGc6T/3QYRlr q0oM14i/Lm4geanhlmCCuOMKbQogGiFWFnnu4T1jU1XTb9rQAc0qWVaQbVe0gbs5pQ+F 8bOg0S49xaV5wwRGIwS9rxnbPVGZ7YChIre73ZV0hIzsfHAZI8hkWNjrF4QFB2+t8Q1j PxOZeRWSKco7K27XwHs2Mwiln5suqb3F++Tb7ltrA8m9tANQlDJQddqG1ghrxjibyZJq wq0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778696634; x=1779301434; 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=dSjFyFIfdOBbKUMcJR9YKIBRvRGCUW6cOCUKbe4r3i/821FQv82kMMwj/vrVh5uL+2 Wxi9r2Scv0rLWyJfJteOoXH7eLQTV/Kg4Dk0vMZBM8nw05qfJ4OufbSmN0ApE2fNxNEI FfXSo0NeuULgz+Mh/N/vlofXIv4VXOP5cAr1yDRJTOt8b73lEBdTnVLXDETX0ycsFVS3 Uj1fJVmCVvKUFvIHQ4KFDEa769Mkqm8RPvL5UxFUjzbz/q2l1Wp+url/aBYiwKyVskqz 2MHLBNRi71PnAFPh2/Zm39Ey14GHrGlw1UGg2t9B9kKWLVvEZiF9bHBFD1FGvU/QGBjK 7jEA== X-Forwarded-Encrypted: i=1; AFNElJ9KCdyarl3vgWe4Wgl1X9QlTeoTF26i/y8dpq2Pgyh9bMFakCv2yJRQ77euHuUDsrOPs7LQw69pa97r1U0=@vger.kernel.org X-Gm-Message-State: AOJu0YwGzH/JwX2lJkprTyVp9qzDMjww0gulk3M/VyLYwH4jzeB185BS 1z1PgzFFXqIoHVg4YSNIK3CXpTFFO4BxT17FA/L63nutTYmwleL+wyKJkdsSVKazAcjJmAtteHH 5d2KPGlg61B6Jwg3sG9sFSE8lqNGCpkceHIF/iBCDKVc5xeSsJGUYOFKNl5o412Y2alY= X-Gm-Gg: Acq92OFKZYRUeH8+xgFP3uHJS34WElcyA3JF+tFaYE4h4ru3zo5v6Tdes+WX0ZydEzh D9ROudZX6fXvTCoWtE9SteKeUbEN/68Fq82vrP+LuvuU128gt/Vi9gekhGQ8sGMbind37aN5R8j g5I5g4R03n2sFzpl8zVW2Z4qGTgUftT74uGNi9wN8eYMvKHnIE3v40THUmak0QF6w/n7/ZcmzZh MP6dtzYjTZ8g+BQa6f9ke38uZWnrVns73JyOrPle3Os7N0ACaVtLcxC+wRQDtEw1z8CrT3BrNY7 SkdTkJLK8avhEz1adK15pkpdVvZ3eZLMFuED+2qNxAeh35SaNdGs/5AgQ5NUJ23okvd115BwVzD KHFQ7FH1PU3M2fA7apbcdz+13MD1NZGQT3uNKSoZ4kOt6uPA6fJQR1r/KV/BMFpoVX/cwVIufOo rtw4mzC/s23M7KkvR7MVah56kkp8ss4FDfYeY= X-Received: by 2002:a05:6102:2b85:b0:62f:2d04:db5b with SMTP id ada2fe7eead31-6377413a99emr2299586137.24.1778696634341; Wed, 13 May 2026 11:23:54 -0700 (PDT) X-Received: by 2002:a05:6102:2b85:b0:62f:2d04:db5b with SMTP id ada2fe7eead31-6377413a99emr2299549137.24.1778696633821; Wed, 13 May 2026 11:23: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-5a8a951d1f6sm4212851e87.23.2026.05.13.11.23.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 11:23:52 -0700 (PDT) From: Dmitry Baryshkov Date: Wed, 13 May 2026 21:23:22 +0300 Subject: [PATCH RESEND v3 2/6] drm/bridge: pass down IRQ_HPD to the drivers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260513-hpd-irq-events-v3-2-086857017f16@oss.qualcomm.com> References: <20260513-hpd-irq-events-v3-0-086857017f16@oss.qualcomm.com> In-Reply-To: <20260513-hpd-irq-events-v3-0-086857017f16@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, Dmitry Baryshkov 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/pANAwAKAYs8ij4CKSjVAcsmYgBqBMG0TTOQB2D3QNzlxfbPJH9VMKJHoSWnSen/d uMkeVpZAM6JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagTBtAAKCRCLPIo+Aiko 1VjICACb7V+WfOkPXClY5+6IzCXvHJIgfhj1Cv/b2icXLKlqPDbKKaS+vw1VyYjuNSqLycN0zfA 5KkCzpdNLBFmXqRsEJb2M2Ey1FxfcbddZjm8es06hSRCT4NxF963EjG81UlXtutfzkMojNRP+A0 BmcDaUWglS9oziSrQiIUHR+9AAX4c1y7/rIl0JjliQnrkTVvcpx1jDSCCSL573LtW92n+5oW5JZ T0ZIr/9Yvg+/37KbESINoko0bxYRALMsEbPRarVBoT+2ddJpjArXzp25kDLehBrq02D6eCUQApN CFa+XW8kq36HTmdZmk5HZouzivOdDGA5MPcqHg7ltzO1gAKP X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=df+wG3Xe c=1 sm=1 tr=0 ts=6a04c1bb cx=c_pps a=DUEm7b3gzWu7BqY5nP7+9g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=-CExsNOmisbVDtTgQd4A:9 a=QEXdDO2ut3YA:10 a=-aSRE8QhW-JAV6biHavz:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE4MyBTYWx0ZWRfXznCpCHY7s7+j nte00mzD8zhOk8QkBJ7MhHFIwJ2XNL8AwZ8VGg11uJFHBU44yuWbU3lWxbLBVEI6EecCbPn303w 61K+reKm0v/9aI2BlFa1+q9AKVk7RKkfVmXU7qDkVyaGpKeKpmAo1wCLUvHVSlUvo2UiWCGG0pk +j1BWYC8BxMFHpyxsNzdwXZ4nduy04HjVM+evcN13nf2QkcrZ9c3X9axjM6LFrZakUyxmbm7TuI YJNahkak095JYx5SCNxtwpom7gAqQZVcmR3aeoD78L8R1MopqjEQ41abGEhmR7VHN7x2yWdjiqi KEIy7SGwZWQg1H7HvOS+YCjO39KE47XgA7W3U8UVSaP72b5uFoTuYmLsKXPQC9LtcihLzEXNPzP oMeiOGbfKAwCcllJU+eQQWUbFs+dEF5yCD4cWBVMRAXBgnmyz/yuZ8FyD0gYQl9TN6pKooouPml bugEGTi+5x/YhLjd1wg== X-Proofpoint-GUID: JBTmYN0rwdBhwzGcnAam7rfKBBKB_Zyt X-Proofpoint-ORIG-GUID: JBTmYN0rwdBhwzGcnAam7rfKBBKB_Zyt 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-05-13_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 clxscore=1015 impostorscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130183 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 Fri Jun 12 17:19:04 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 BCECC3A8759 for ; Wed, 13 May 2026 18:24:00 +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=1778696645; cv=none; b=YsCg4Qrwm6gE2bTdJQzGffPzMTGcfLCVL+IQ7V9FTjnXS3YCoHrexLBg2X+E/0yj0UBllfmZTdIXB4VwluC8EOD77gkhSLwwK6/53bmi/2GMDnj0TL/a3tnQIOih+ymQjTrUnXYEPU4nahca4NH539yBVlBWj2Gag5MbLpw7N9k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778696645; c=relaxed/simple; bh=2ND7iJgLsvG3cprXNomvoKMU6TvVGvnMNqba7Eqodcs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UuCf34Zh9aFikk6KEcapbvjzvJ9DCggFq1NZHobG2wGNo9stY7S/TdB/umpVX5cc6QeMzrOGhGKSg6l2sZ1A7hIHnJG4jWhtPM2WFjcb43qeoyflByfsjnXqKgZ7E2XHUA449ZbPJ0ogvIx7hyCpYNkbwkm+CZZnJfvx3j0Llzg= 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=ZN3X5zQq; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=TGt+tb5g; 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="ZN3X5zQq"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="TGt+tb5g" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DGAxMN2524414 for ; Wed, 13 May 2026 18:23:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= u03qL5j/ar0CqHZjl/YYwUnYIpVEFmw6U1ix4HLrmMQ=; b=ZN3X5zQq82m9ph1P 6DK7N9XOMtvv+DpVX8n2YXVdtRAOXtyfCO7JRs51nFJiHCV5yLl/t54OFCaFnhLg U8FX7oBM6A8wJ5kl+NO5FeHdxulglXb0CH4Woib6U9PgbhAYWLj8Rj0U6FniejFw FX+Q2Avi0wc2dNvvTsEOEZES1bJ2WKho3MZ5u55ADSTNZKymyjA8/QHmuhlq7n9s hf2qHUgq8TuEZar1JoOUnqckaw8qNsFOYJAje3C6TImZFr250pmNL6Is0fecaJPB xRnKQXwRUk/w1VROpXrhey5pTrwD5rXboPCwFNrA7gEK0nt0k+KVF0HHvwoU8ePV ATyR0Q== Received: from mail-vs1-f70.google.com (mail-vs1-f70.google.com [209.85.217.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4vkjghge-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 18:23:58 +0000 (GMT) Received: by mail-vs1-f70.google.com with SMTP id ada2fe7eead31-6313cb80e7eso6124911137.2 for ; Wed, 13 May 2026 11:23:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778696638; x=1779301438; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=u03qL5j/ar0CqHZjl/YYwUnYIpVEFmw6U1ix4HLrmMQ=; b=TGt+tb5gUrRNqUI20GnCPUJaf07fCLPXallzZOroCF/qm55JNrz95GGQ5PVJwml1cV sf9jGj0T7Yb49/1ekaA3WbESy7+M5JqM2WhapPRaWvcVLvAVtaEIDQZqsAFAN2n6qX99 V49DDbPI2ALD5/XHEx/rYExCCrpyw80vrMf9L7lkuKtAG+MZA44+F98pIO7c233TnE5m D3ewvmWfnPXRrQRz87vn8m1tsOWyeDAasBeceKm5XsBGBXH22g+gKZrnCzUha5dP3TJL wCvL5PeFZKsT9s/dxmGS1v10ohxNvUXT3DpnqqF3CTr2wf7KyaKCYLpldGfEa7Fes7dy 511Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778696638; x=1779301438; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=u03qL5j/ar0CqHZjl/YYwUnYIpVEFmw6U1ix4HLrmMQ=; b=GO/V+tpXXV9QSkA9irwZbi/GUxw02UbpGH8um7tjEfmwXhcWGPXIS3k1SsAhh2uDVP lLR+g4IANK/AE+WSOx8eqyTg8mPxdTg2BfLoZPtxplHuZf9B03nPwzqnXeqe8KmxndXt Gj/isiDBnYhYij845ZyQZDyqlgCLh7cv5s75aobsCixRhHSGShWoii6j5wrFC/FSxsXH Z3c2A4j2+H/eFm5AAqovJ2qwZQ5+Mi5kPPVZFQiJZDkOzgXIVSB7kWeqn6WI5YQMsr2Q t/lXdiDvkuUd0CvCleljlOTQFMEr3VpGMxAnWFkWUCs31nep2V+jWM6Nv+uA2q7Ljcbx /7cw== X-Forwarded-Encrypted: i=1; AFNElJ+jnKofj+avulEtjygVNSux8cSunF16PtWD1kR7ZaI2tgESvS98bQ5j1Vew3YGmRa1hJGaC00anT0X5LlY=@vger.kernel.org X-Gm-Message-State: AOJu0Yy2n1eefgmihlDCB6KvMjSuq34KMTNLsQObl21dbOn/yZn46PKm 8a/HYEgp8h25RtNZV0GTg4Ta2clKY59MbWaVxWOEsZA4T2vX30+g2aELS4AV5IJNWObpSOekgvj FE/kS4jJ6dzky3DeNbxaubzeB0XNeK3dngp4VKfPizkdB5GLXn8EuMjotBFsE7aOHjfA= X-Gm-Gg: Acq92OFI+cO6dFqz7PXFWkXbVv68N1L55GoURzObiUA/ZRx/q3XLOx+DR5UhokQ2GKL 4eb8gZlmOMJdmlTdWRaMtow4w5+tXH9ocvdjN4Fy34ZWtSnjfjTnllnkWy97gDRE284/LWRjbJA QJCriVKAhjA5N0BomrBC0h7rTze8DvXc8ZYbK1b0okBrDA4bbMzZnwImAqvLnVB/VL6XNIBwLfW /PjplaMO2IcnUJRgW/WF7x1wctXMxUZoKIDN63sLqzMg/0yIWgeesiEL49GJJjQcez29l43JEpN r4cRKNse+ypHVEbbuIZnwt6voXLHknGApMlcF7qgiHW2/JnVEMIc7gx0guROIcktKHSDiD4LN8a EC8KFn/W1p7SoSvz/geUCsJvAtnatbCnRROGlstcirrFmYK69MMeT00si68aBeTW7lEtLnPKuVt TofaZ/pKWI9ApXpdVgpCbNc5MWtTrIKNwRAkzp+rS/G5M1rQ== X-Received: by 2002:a05:6102:6883:b0:610:db51:6f3d with SMTP id ada2fe7eead31-63773e1c1b1mr2855665137.12.1778696637994; Wed, 13 May 2026 11:23:57 -0700 (PDT) X-Received: by 2002:a05:6102:6883:b0:610:db51:6f3d with SMTP id ada2fe7eead31-63773e1c1b1mr2855644137.12.1778696637357; Wed, 13 May 2026 11:23:57 -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-5a8a951d1f6sm4212851e87.23.2026.05.13.11.23.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 11:23:55 -0700 (PDT) From: Dmitry Baryshkov Date: Wed, 13 May 2026 21:23:23 +0300 Subject: [PATCH RESEND v3 3/6] drm/bridge: aux-hpd: let drivers pass IRQ_HPD events Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260513-hpd-irq-events-v3-3-086857017f16@oss.qualcomm.com> References: <20260513-hpd-irq-events-v3-0-086857017f16@oss.qualcomm.com> In-Reply-To: <20260513-hpd-irq-events-v3-0-086857017f16@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, Dmitry Baryshkov X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=7164; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=2ND7iJgLsvG3cprXNomvoKMU6TvVGvnMNqba7Eqodcs=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBMG0S88LTfrlotDPFQ6SiDe7cKoRp0xcJ9JmS hADUx0XTxKJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagTBtAAKCRCLPIo+Aiko 1WMbB/4/R94r4TBQje4rZ53xfXGO4Acm+KRv+31SpUJ/7Tjp/EDS2WzFK37ZW2rnye18vgrbURD v0F98QIrEG77Y9vJyBOwFZbTNZhVRv7TcZtBMGMJlZ/+pXt8B2VAbOUxw1QWXIyGDX9GeZa5jfS D3cDLDS9/4Ve8xRkNOruvYI7qS7A5NgKyyuuEbBx1X4Lluk+MhmpFB1K0OIdfBQapFX8aThp+7Q pXS/R2pbKujWHBIbiUBpkpD1+cm2FlJSWRWNDL1m78nL14CDGijDtsPgg4BiDs+8ePOdhYdZvPj ZNGXJ2ejI1x2LrIWizu8+UEQkZgB5NQpSJ0LX65iK4l88rRq X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: 4DKYPR96FB104AIMdVC19GH8-tAo-Q4a X-Proofpoint-ORIG-GUID: 4DKYPR96FB104AIMdVC19GH8-tAo-Q4a X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE4MyBTYWx0ZWRfX5vFe6eOVbSbm jmHwYwAzZkTu15meWUaewe9Ok9usP5eB4MGhb73AWdpJ1HlXB3PVKFEuzEiWcLZ/H6uMeK6GKz5 thD1hEsM2r2ebDx/1XKuRRbruh9+QoF4/Bx3JGqYBe0UNZuS93uLPNNQdbmgBin4fXPbIJ76Q4D ZLDXe3nrq8vs7BlirKMLQuoGr+qut6JPPAevs+D3dUfl+De7U0lAXC2oEAu5XeDarB2wfZZTfwK qwITfSyG+mPFAMaDXjLUfA5GzNIsrWyzDEvKiiJgdCEOu3R6ek4cC5cKEzukRRyAgW14Yt6nVXw CNNAjA0FqxiaZXobcScEf24okdf/tVdfjr7z/kFcKoUfXzFCA0eSqRL171mrPHcPhjsROCUFFcp br/jY8Mft6V3QBLSK10UsX4s/WeNmDp61dJrgbVEijW5b2GoBmVeQrRaXpMHAND7Tl7hY3Ce3AF OTDrh2XH4jDeB/pwPTQ== X-Authority-Analysis: v=2.4 cv=PbDPQChd c=1 sm=1 tr=0 ts=6a04c1be cx=c_pps a=N1BjEkVkxJi3uNfLdpvX3g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=zEMOeRQCFk_hQCPR_I0A:9 a=QEXdDO2ut3YA:10 a=crWF4MFLhNY0qMRaF8an: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-05-13_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 phishscore=0 malwarescore=0 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130183 Let users of aux-hpd, the UCSI and PMIC GLINK drivers pass the IRQ_HPD events to the DisplayPort drivers. The drm_aux_hpd_bridge_notify() is keps to ease merging of the series, preventing extra cross-tree merges. It will be removed once all drivers are converted. The drm_bridge_hpd_notify() function is kept for the driver which only care about the connector status and will always pass false as the irq_hpd event. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/bridge/aux-hpd-bridge.c | 11 +++++++---- drivers/gpu/drm/drm_bridge.c | 17 ++++++++++------- include/drm/bridge/aux-bridge.h | 13 +++++++++++-- include/drm/drm_bridge.h | 22 ++++++++++++++++++++-- 4 files changed, 48 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/bridge/aux-hpd-bridge.c b/drivers/gpu/drm/brid= ge/aux-hpd-bridge.c index f02a38a2638a..0e2f0b046121 100644 --- a/drivers/gpu/drm/bridge/aux-hpd-bridge.c +++ b/drivers/gpu/drm/bridge/aux-hpd-bridge.c @@ -136,16 +136,19 @@ struct device *drm_dp_hpd_bridge_register(struct devi= ce *parent, struct device_n EXPORT_SYMBOL_GPL(drm_dp_hpd_bridge_register); =20 /** - * drm_aux_hpd_bridge_notify - notify hot plug detection events + * drm_aux_hpd_bridge_notify_extra - notify hot plug detection events * @dev: device created for the HPD bridge * @status: output connection status + * @extra_status: extra status bits like DRM_CONNECTOR_DP_IRQ_HPD * * A wrapper around drm_bridge_hpd_notify() that is used to report hot plug * detection events for bridges created via drm_dp_hpd_bridge_register(). * * This function shall be called in a context that can sleep. */ -void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_connector_stat= us status) +void drm_aux_hpd_bridge_notify_extra(struct device *dev, + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { struct auxiliary_device *adev =3D to_auxiliary_dev(dev); struct drm_aux_hpd_bridge_data *data =3D auxiliary_get_drvdata(adev); @@ -153,9 +156,9 @@ void drm_aux_hpd_bridge_notify(struct device *dev, enum= drm_connector_status sta if (!data) return; =20 - drm_bridge_hpd_notify(&data->bridge, status); + drm_bridge_hpd_notify_extra(&data->bridge, status, extra_status); } -EXPORT_SYMBOL_GPL(drm_aux_hpd_bridge_notify); +EXPORT_SYMBOL_GPL(drm_aux_hpd_bridge_notify_extra); =20 static int drm_aux_hpd_bridge_attach(struct drm_bridge *bridge, struct drm_encoder *encoder, diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c index c8c3301cd936..09c3f5954ade 100644 --- a/drivers/gpu/drm/drm_bridge.c +++ b/drivers/gpu/drm/drm_bridge.c @@ -1495,25 +1495,28 @@ void drm_bridge_hpd_disable(struct drm_bridge *brid= ge) EXPORT_SYMBOL_GPL(drm_bridge_hpd_disable); =20 /** - * drm_bridge_hpd_notify - notify hot plug detection events + * drm_bridge_hpd_notify_extra - notify hot plug detection and sink IRQ ev= ents * @bridge: bridge control structure * @status: output connection status + * @extra_status: additional status recorded by the sink * * Bridge drivers shall call this function to report hot plug events when = they - * detect a change in the output status, when hot plug detection has been - * enabled by drm_bridge_hpd_enable(). + * detect a change in the output status or when the sink has reported extr= a HPD + * status events (like the IRQ_HPD in case of the DisplayPort), when hot p= lug + * detection has been enabled by drm_bridge_hpd_enable(). * * This function shall be called in a context that can sleep. */ -void drm_bridge_hpd_notify(struct drm_bridge *bridge, - enum drm_connector_status status) +void drm_bridge_hpd_notify_extra(struct drm_bridge *bridge, + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { mutex_lock(&bridge->hpd_mutex); if (bridge->hpd_cb) - bridge->hpd_cb(bridge->hpd_data, status, DRM_CONNECTOR_NO_EXTRA_STATUS); + bridge->hpd_cb(bridge->hpd_data, status, extra_status); mutex_unlock(&bridge->hpd_mutex); } -EXPORT_SYMBOL_GPL(drm_bridge_hpd_notify); +EXPORT_SYMBOL_GPL(drm_bridge_hpd_notify_extra); =20 #ifdef CONFIG_OF /** diff --git a/include/drm/bridge/aux-bridge.h b/include/drm/bridge/aux-bridg= e.h index c2f5a855512f..f9a86886b0df 100644 --- a/include/drm/bridge/aux-bridge.h +++ b/include/drm/bridge/aux-bridge.h @@ -25,7 +25,9 @@ struct auxiliary_device *devm_drm_dp_hpd_bridge_alloc(str= uct device *parent, str int devm_drm_dp_hpd_bridge_add(struct device *dev, struct auxiliary_device= *adev); struct device *drm_dp_hpd_bridge_register(struct device *parent, struct device_node *np); -void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_connector_stat= us status); +void drm_aux_hpd_bridge_notify_extra(struct device *dev, + enum drm_connector_status status, + enum drm_connector_status_extra extra_status); #else static inline struct auxiliary_device *devm_drm_dp_hpd_bridge_alloc(struct= device *parent, struct device_node *np) @@ -44,9 +46,16 @@ static inline struct device *drm_dp_hpd_bridge_register(= struct device *parent, return NULL; } =20 -static inline void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_= connector_status status) +static inline void drm_aux_hpd_bridge_notify_extra(struct device *dev, + enum drm_connector_status status, + enum drm_connector_status_extra extra_status) { } #endif =20 +static inline void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_= connector_status status) +{ + drm_aux_hpd_bridge_notify_extra(dev, status, DRM_CONNECTOR_NO_EXTRA_STATU= S); +} + #endif diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h index 3e4672fbd7a8..2cf604cf02db 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -1556,8 +1556,26 @@ void drm_bridge_hpd_enable(struct drm_bridge *bridge, enum drm_connector_status_extra extra_status), void *data); void drm_bridge_hpd_disable(struct drm_bridge *bridge); -void drm_bridge_hpd_notify(struct drm_bridge *bridge, - enum drm_connector_status status); +void drm_bridge_hpd_notify_extra(struct drm_bridge *bridge, + enum drm_connector_status status, + enum drm_connector_status_extra extra_status); + +/** + * drm_bridge_hpd_notify - notify hot plug detection events + * @bridge: bridge control structure + * @status: output connection status + * + * Bridge drivers shall call this function to report hot plug events when = they + * detect a change in the output status, when hot plug detection has been + * enabled by drm_bridge_hpd_enable(). + * + * This function shall be called in a context that can sleep. + */ +static inline void drm_bridge_hpd_notify(struct drm_bridge *bridge, + enum drm_connector_status status) +{ + drm_bridge_hpd_notify_extra(bridge, status, DRM_CONNECTOR_NO_EXTRA_STATUS= ); +} =20 #ifdef CONFIG_DRM_PANEL_BRIDGE bool drm_bridge_is_panel(const struct drm_bridge *bridge); --=20 2.47.3 From nobody Fri Jun 12 17:19:04 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 BB5F33A872B for ; Wed, 13 May 2026 18:24:03 +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=1778696646; cv=none; b=MOmVuqH8xQoWnsBO5FXTVHSxfjdi5ZmYX7GX9mKBHv5iHlyeGreDCAfEO3gAhkcBPHgByr6aTd+z6yC08t4nIdnxntTzFquyCbBhSzphFcUQ4UbZ4ChgUmR/Yw+Vy5uonff3PND9JR8jLc+XcDJAn8S25JCU925jR9g5tiKQgYY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778696646; c=relaxed/simple; bh=+/ILvBuGhqekKhSlkO02babbVbDbrJeHq8l4XOhAwlU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oBRnKjeayEt17/UeTNcK84PYmdlKg1S28KD5oTSuujkYEE5WhxDOfMu6os7XtnbeB02cT09SQHpbmJ20jVIIyVLlkAWkXVZNATnqRXH3BiTrsRez6a8hMXyn8vMdfwJg4CzFBS2/2sjjGqhE0OoTd8KbnGlirHCFszo1V0HSJ7w= 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=L926dWnb; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YJjem3Ly; 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="L926dWnb"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YJjem3Ly" 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 64DGuIFp3995531 for ; Wed, 13 May 2026 18:24:02 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=L926dWnbrlNFEaqp srzRYuP0cO0M8CQROQviJ240OwfSEfGfQkjbDWjadxTXeUGNt9JYCz2eOPBXiVMi reTJ/PRQJ9I7gmqRo3iKPD6xxNuzJSjsU5HEUsQFY6Vl9KFE4wO14tlNEUuyvvp9 BV1Q8J/d+hIcdRBvj5Vwf6AwCWTcEQBgR3qPxVBpRg7PbOWMYZaSgsZJh7w+1yJP juhymAF7rJU1/fKM7YlysCzzyUCQMC1mZua8c9pmeUD6fi4mdDcceyHTwYp2x1yc x+g+3i7jbjZ3Lsljj7CqG7gPLkFr0h8+ay6DFmGE3wnZyULseJ2QoxdDEd920u5L ODmvYg== Received: from mail-vs1-f72.google.com (mail-vs1-f72.google.com [209.85.217.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4w8urb5g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 18:24:01 +0000 (GMT) Received: by mail-vs1-f72.google.com with SMTP id ada2fe7eead31-631289505b8so3500988137.0 for ; Wed, 13 May 2026 11:24:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778696641; x=1779301441; 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=YJjem3LyQP+H5R5nLnq1osNsQsfvEGNpYAsJWdbx0fTbacft8DO/BUssuor22Hyza6 W7XqfanT5zWJrPgNyEJB/1jxb6CyB2iHLW7KFM+KpTlUk5DKzV7s/zIusRbpQ3PKodg/ 5XWcj9zzw2bf9KfyilX4FKDTjQeB39/3tT9ZqHd41uigC1TKyElWBJQpftb8/uyEOeqf 8qT2WnwJad+Qz1QPJS5uBemkbAvdMQWwBPAbkut+dDAhr6tkF7tYtEUdk+vITrnnPWGW htsstJjxB4Wx3kCeFlVgo7V73dnoxgjJAQbrxwZzB5PzCUEZDZ458of3l1HXwa6/eoR2 7iWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778696641; x=1779301441; 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=JwDtK7/AHdASO8/3W5Yx6G17jkqRX7aESVOvE4+fGY/wWBcXwPAk7Gb+DKowuvW70N 8Om1N9MG7In5PZM6SMUPFCwYeyI+qvzTTS468oc9+s3k3PFyzWnbdVj2GnXlh/76bocp rBbIJA92hMjemNZKLs4k1txAcAaLrr3ICPQNYlISkp1H8iCFMcO5pJqDYIp1gg6Bnu4b 4NQP1orlVIa9+320rN4FaZWzQAGGb1pm+L747IRB7AuIgaXN9/deAKLJIjyVazVZqlJM Rs8YjEm/kXTfKbaH/U70ZyJeT6qPMDQrlNOczKt+NFELm5HHrYOrt7qPMupaLL83GTy7 Bbvg== X-Forwarded-Encrypted: i=1; AFNElJ8vy5M+ms59qu9fqpzN5Vy+gvi2KV8iN7Xn6B70uB8LiLvqKTw0LFHbxhyNxmwhlugV/wbfzh7Szldavao=@vger.kernel.org X-Gm-Message-State: AOJu0Yy+eIGK93RczCYQg45FgvfqO0Bw5dfslaPez92ZUE3fczd6mxjE OYPfF/l52U8UbNUMKbhCdedIaNOYEEhPs7R/O+uyUQyBSrNym+ZCOJUfY+Z/HTNOsNIWkOI9x17 0J5g3/UpY/4/eEB9MoPP80VP8kJ2SRtnOmqj00dwlebpvQZXiVp5DDlAeAp5Z7fcbcFI= X-Gm-Gg: Acq92OHlDhQNzKU4sW9NZhydLrtEsU1rjNWVQFgDmzah3NGQajlj2Iysud5CR9m3bi6 4TITaYKBoJyScvBk6T0CAMz9addy+0UsK++/KCnppzS6KmqULnw+yNLHURKBgpT/DHPTtpRgkSq 5AGxJvPGtEjYHFM+91ReIXWQL3NHQNSmxfDg2E3FzuqxcLYqunYhFxSvYFL48ZsxQn56avntdDm Ot5pRiKcLHJGELPv2woBvEZ2n8W4OBUh923mq6BUSYZcftTh1bJhqWZ/CeIgF/JbZiRSKovsqtL itDsqMGOmKOqZpz5Qz7WAQ8RklLuBpKwDMHzdby5GUol0lGJZFtM3ROPwzMNECjXlhgVHmmWdXP AiLuyjaYvpsK/jzYJqj/13RAhwmOMXRoyv95Va6j6u76tgOFAEv03wWqJwUHK9p4Om3VStxFHZb dwu8znsxV7s/hS0bGKBYJuVh86m3I5hMauUuk= X-Received: by 2002:a05:6102:3754:b0:636:46ee:2f0b with SMTP id ada2fe7eead31-63771e93dd2mr2536248137.12.1778696640943; Wed, 13 May 2026 11:24:00 -0700 (PDT) X-Received: by 2002:a05:6102:3754:b0:636:46ee:2f0b with SMTP id ada2fe7eead31-63771e93dd2mr2536205137.12.1778696640430; Wed, 13 May 2026 11:24:00 -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-5a8a951d1f6sm4212851e87.23.2026.05.13.11.23.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 11:23:58 -0700 (PDT) From: Dmitry Baryshkov Date: Wed, 13 May 2026 21:23:24 +0300 Subject: [PATCH RESEND v3 4/6] drm/msm: dp: handle the IRQ_HPD events reported by USB-C Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260513-hpd-irq-events-v3-4-086857017f16@oss.qualcomm.com> References: <20260513-hpd-irq-events-v3-0-086857017f16@oss.qualcomm.com> In-Reply-To: <20260513-hpd-irq-events-v3-0-086857017f16@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, Dmitry Baryshkov X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=891; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=+/ILvBuGhqekKhSlkO02babbVbDbrJeHq8l4XOhAwlU=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqBMG0abAwQqrwNKrmGMKndnLCYyJA6PXn23RVR jIy1b2VxsmJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagTBtAAKCRCLPIo+Aiko 1dGPCACNGtpqzbvMTWs5X5vG8ECac3Hmh2yf8eM0hhFimdemipY/3p1uE7tZ1kfXqE9pDI1tP49 wqoR6jikFqcgnRZ8SpkPDt3z2v8IjbTYJObqopxYBFmBaUt9lrvfMYHjf1IRxPBi0juVhtyKqEE I3psZD5FRUZi9u7VKDzuMV4vqUQitc9UgMQYvFPmPG/qomdvVXZJgCwlMUaSCY9/5RHsT3TNKC9 JQNkKOHh+ORyA8ZutxDUNr1WX70N0HMl6YY7t91D4ZYk7vBzHYUOcRa5mm3GvAXPnywKP3vMquG 6lyEjDNfEPjnhsGq8tO/gH5cybCBy0/PqZe1OxCjHZf+ALPU X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=WP1PmHsR c=1 sm=1 tr=0 ts=6a04c1c1 cx=c_pps a=DUEm7b3gzWu7BqY5nP7+9g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=3ML_fINe3tzxlWvVV4AA:9 a=QEXdDO2ut3YA:10 a=-aSRE8QhW-JAV6biHavz:22 X-Proofpoint-GUID: -p-cMpTZHPt3wYSVxxt2HgDxGF2GhQFb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE4MyBTYWx0ZWRfX2JWx3ns7T5Sr hUE51Iin/GXdbw1nIBKuRm01Xz6S+TvRS0uXaXFs0GteEz+ME1TOQEC6BaIThfft8CIRqjosL74 CcqwykkqNm9/x96N3eEMomqEmNy/YmsAoAeBI3S+BG40l7822NTqtQRfmhRn1r/ke2pBV6nqJQc peKqgdNY9/yl1BXSEip8g4Ip1WQPG7mQIlFWwb6rZ9wDxVSqjz4II5LUIiSaUkqEKsXN8qvy93u 9E4zWkdj6r0yRuctaFOHMvpq+5gbegmNMNrsMp0DmSkqJWRomKJkwiMX1S8AjFTKAbj8upxLBLu zJGFnLoJ4jVROZAHQ9BteBHwSpmAl258EncCLEFbSDldyemnlWU1KlLxjkqzjByI0eT9h7P6Ihd tQj3sLCdBsmMxxx9XXcztswUHjMMyw2ugGvQ9W/xRsezutgSwt4BK42OZ5GZcfiMzu2UQ24lDco rNKJQWnkjUvz5SLDG/Q== X-Proofpoint-ORIG-GUID: -p-cMpTZHPt3wYSVxxt2HgDxGF2GhQFb 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-05-13_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 malwarescore=0 bulkscore=0 spamscore=0 impostorscore=0 suspectscore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130183 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 Fri Jun 12 17:19:04 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 1BC243921D0 for ; Wed, 13 May 2026 18:24:04 +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=1778696648; cv=none; b=ZvQJNfygbViopcVgwHmTwpA1PVKf39WbhxwZmbbko0/YW0Vep2x2O8+U0f2hM+XbKd0XOHzygu0EsJeOMlrGh7x871khCQBIK5JNPncLYuIa5/oye2jklfv+8rq975v3FP5YnK9YLmZfe1uSdLZ9fIPFxOD01oGwRdi4CcXh6pA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778696648; c=relaxed/simple; bh=g2eHBnhqeprT5L86a/SxcLn20kIiQiAhlBDTRdUq0LE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aCsbzmy8dWczeACoGeuHlI5IpXpVscfuEKHyFENTJl68zCcOKpMFX8JiPCHmAGXI8Ct+EEez45f0l8Gf76jSv+vM3mVtLgpoLAmkM+8hDa6Vl0X035rjZqBpcREfMoAUi9f8aFrzD7oRXAC4UPnjdf0ioVVOnmmojYJjHBAOV34= 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=adOOFUnq; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=HCPu2xKN; 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="adOOFUnq"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="HCPu2xKN" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DF9bin4159600 for ; Wed, 13 May 2026 18:24:03 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=adOOFUnqD/cK+eQt lzJ7pMMU0fq91KwakaSBkYOagBIE6/8cH83nWlAgh3JSK+ZkPY4lAYueqom0Oa9f wc0pEl0e0UaS0c+Kynn1xjQhLjmV7cdGToDW1gWuSiqaiuWP4AmvLFddcO31vAPI WxptBTOrewx+2AHw1RuIc5ZHyq9RjarZWhCQo7wYpRN/X2Jy3TUYWOAnur1+AhRP 8/4VE+NdttnJicMKGweDNaMHGF0o0bkdvpC0g0eExp34w0X2Tt7qclAjhSXjw2ih g1GEQyi5cDWpRFm3VROExFq1gsIisJCw1lhQn4ZCAxW+/hJapsL2ANbARxN8JZyS XyYgDA== Received: from mail-vs1-f69.google.com (mail-vs1-f69.google.com [209.85.217.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p91t815-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 18:24:03 +0000 (GMT) Received: by mail-vs1-f69.google.com with SMTP id ada2fe7eead31-63144b84f14so6737792137.0 for ; Wed, 13 May 2026 11:24:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778696643; x=1779301443; 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=HCPu2xKNWJ9IPYbM75BkKzhrkJXBIsoo6T8CFyDLOmQqagEjGUXRXnnW1fdKpeHOKq 3Rwp8EX4d1vYUMQYul+ZKPCju5i05qhAmiIPzSqrJoUgU4cZcVDuYnvA/K881gw+i4Jv KQYil+CRivt7yN24v6QPpEw56izlvamaypXlH/suJ2bVX3dnc0ribW0gbd1s8copBuQe d0E2vaVMeu5wUfjvmHX1bhzn8On2NYx3GqQlATkUr1052AG0teYVyW1821i+avyOHnmk TGyV8uZg/z/klpHI84aap2i1i0hmgGv3zV4IEO9bh+emwTxKEVYIxUU4gHifQxEnrPxQ FNww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778696643; x=1779301443; 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=MrYb4ZMRNfTHdV/qBOhnqUCnWk1RCAb+QgCqqyuxjkMArN07U5m/3VyXkYbUy9Zy/9 GAPaRGMAmizO5t8B8WWWDm6YI3bQhuHX/VZ+NTvlQaIBbKdjauN3yKPVe/hivKuphFch Ppm4bQx6z0tdLKum+TBBXro1aRzJYLEmNpYESs5eEBo/yMt/I2U+KHO90tPHB4T23Hel NE8FmtmC952Yho6LgcKY0uCiUMntUsldlXutOsLQtdE20o8Fi1Qq0Hp6W1FQ/kxIXkml IqILkGG4TTLbUWS94CUclfFcafZ7zJoKIyDy9+bDMbJsC6vlGE7VPAVKd7x9Vt3colCD PAaQ== X-Forwarded-Encrypted: i=1; AFNElJ/ml+j6J0cqTbJG/fsQ4Od/YRydwwyYhcj6hrWl/l3HJpNbsaoDtGYbydhpm++soEephzSfmmIxIyEqAlo=@vger.kernel.org X-Gm-Message-State: AOJu0YxTIZhcx+LcV01MbpWRICNkG59QKpy/bm9CQxy6ZjTZ+N0euh7h 2TYMWk8Sa4IxiA9Ith4b+DAgfLmZvjpsO8WXewcph4ydQeV6DtAKQfrMxLayRJsc+9Sk3oo3Fwu vxgkIqTxpfyVxlBH2aZvrPbzNafRZeLXdt1T7QEntaJVDcLlSq+t7cP7SN8QfmhDkR0E= X-Gm-Gg: Acq92OHReXXwr+9JazghepKFoVwl16nCbKHdCXyilJaglK+2euhphWifz+8ILqRyPC/ mxMC1xUEBI7WMuYNatWoqaeCOwj4TdY3+mEBa5RnFk7LgqAyf0XAmTHoVGinc0a2hS8D8QzVStq qSJIxmX8D30hBFrHW5BpVeAZU8kIflmYPlk+HfNWDyH9t4wYNzPSrcnfbJ21znJwUEuNEZnoYij 8FMjsA+L6veF7wlxq1okZthhVuVcUIN4WaL3dJBmEwe+yK/NOF95PM96YSevXbK/r30RdYQTI5z MslXGJtnC3AFr7e5tQb8ZJgSIvdvgBueT06IGphyC77/9AbvTFnrF6bP5f8PKalcN3rnPeZ73+P Ry9oWGQs/w0CMC5ON5EHFsdnJxnV3z8Euj5BElhqrNQ86pXRlNC4Xdy3pFNP7vpOlmR+choMhcd eIYs4oH3U5o4RKe1Cw5+OfN/ZsgsgQlZcSZ0I= X-Received: by 2002:a05:6102:2927:b0:62f:31d9:7bf with SMTP id ada2fe7eead31-637754eace2mr2861799137.17.1778696642564; Wed, 13 May 2026 11:24:02 -0700 (PDT) X-Received: by 2002:a05:6102:2927:b0:62f:31d9:7bf with SMTP id ada2fe7eead31-637754eace2mr2861750137.17.1778696642033; Wed, 13 May 2026 11:24:02 -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-5a8a951d1f6sm4212851e87.23.2026.05.13.11.24.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 11:24:01 -0700 (PDT) From: Dmitry Baryshkov Date: Wed, 13 May 2026 21:23:25 +0300 Subject: [PATCH RESEND v3 5/6] soc: qcom: pmic-glink-altmode: pass down HPD_IRQ events Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260513-hpd-irq-events-v3-5-086857017f16@oss.qualcomm.com> References: <20260513-hpd-irq-events-v3-0-086857017f16@oss.qualcomm.com> In-Reply-To: <20260513-hpd-irq-events-v3-0-086857017f16@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, Dmitry Baryshkov 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/pANAwAKAYs8ij4CKSjVAcsmYgBqBMG0drlwCbTuEWcWCuHk7pQDuuarVA3oztNqH T7Bd2hVw3KJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagTBtAAKCRCLPIo+Aiko 1RL7B/4jgrhGIEZynL+WT5KesqjMHxOK4WlzF0fcjJVPHChMLdUytHaxmufdMqTgSy0mcUbDBn9 6q+vvyQ6qYt0ElA3eZFhzZswAyCgcR8e4VTK8o8hpdhNHHqN0OnWTYPFN2SHs8+2VNdnQpl3rl6 nMO0qA5XZZ0N0MW59OPPIDbL7bNNmFqUKmIe2WCRfvquF0In8ReMbRiQJj7LkMVsU4X/WUHvw1c D8V8E3vb27NV4op4UtcX7LQjtY/tpC3kuvEBz1k0eDC+LlEa/A9pzrNHGsDflhVd9anRh7OF2dP 6y+RL8SzW1ovqNGn+6AgKDUbs46tJjRUUkfsmEfNEOEnsmEN X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: u42ktj1kWYDWdiCns2yeGGl62s6LlIvi X-Proofpoint-GUID: u42ktj1kWYDWdiCns2yeGGl62s6LlIvi X-Authority-Analysis: v=2.4 cv=G9Ys1dk5 c=1 sm=1 tr=0 ts=6a04c1c3 cx=c_pps a=5HAIKLe1ejAbszaTRHs9Ug==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=QzDdqdBtNhq9Kz3vvWgA:9 a=QEXdDO2ut3YA:10 a=gYDTvv6II1OnSo0itH1n:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE4MyBTYWx0ZWRfXzERWRJwbi4w9 LeQRS6VtZjvSWfMoLshtO9RbDCNWYRPAx2MOfkvRZDHmHj8Gop6KvbUdjQ7i+YzZaP4Sk1Jw9sU 3LZpTzYxadLFzxMxM777J0xABhXoIA2fsUDAR/JHNf1lALqrqxl3bFLuwXuQ+qBxhz35OdU92yO 8sHt4YkAsPfrTsPP/EEnr9CG78F8mx+rbu9tvziZhG9ppciDImOY+P6QTgAWcxI4VAJno70bWh2 SatnJBD2wZeP3uq1VGn0XkYi5rkrhN/b48cqRy04CoUYwUoFeyQf/bN4xt5qVhWhEIzCY4wGDu8 Ve1zMEaCIYQ9Gwz63Mm8unB+n1vVGWfVheNyIMmCN3LP5mZSGulw9yNcfkwbcaVytdxlmWNaMVB bRFRg1oeTi11rwestxp38iFUm6Kz6aU+4u48Ogr2wnqPy8EWFJ+dzfswnKvlbOh6qEcrFJFuYAq Mq3FbkvXomISCG9Y5cg== 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-05-13_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 adultscore=0 spamscore=0 phishscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130183 Pass IRQ_HPD events to the HPD bridge, letting those to be delivered to the DisplayPort driver. Signed-off-by: Dmitry Baryshkov Acked-by: Bjorn Andersson --- 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 Fri Jun 12 17:19:04 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 3E0F32D6E44 for ; Wed, 13 May 2026 18:24:06 +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=1778696651; cv=none; b=sQ7KKfOJN3zr+5vjABg1ugKTcqvPkDP6lTqQn7sr4JQ+zWqZAwvkNgQs4sSXjJ6EknXGHLyi5QksIYW6RuZEPHaF04FO/5a0h4r8/NZDnPPuXhn9/ht8ysAcDacSMW70gky3v4+XGZe9XwXx1PKbJsoqWdtSixMpMqlroArYoNE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778696651; c=relaxed/simple; bh=mxGolAt7ROQ681cKNciUMVefMdiRDsSwC5zox5THv9w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YBG8TH3EjqjXaBXU6Nvro1OECQuakoVq3OH66AsIArPxGPoYkRlsD3J20XWv2nkAsQU5+AOgFeqMPDOschlevAbFqbad8wLxGksN/ATfXU7cehFoqcMwW1CMR0LaSZvxIO8gextoaHGwswsum2KF8i65PX2XMv8l1LBmtrxLH+M= 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=Xs5+o8is; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LU7w4Wn3; 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="Xs5+o8is"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LU7w4Wn3" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64DEvDSO4161718 for ; Wed, 13 May 2026 18:24:05 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=Xs5+o8is26i9TDoz y3y7X36LjlcrVNTHGo46xIwoGiWfsMdLrS54s/66GDd4akyYZMGQR05NxojrB/R+ x/9om5EnZ9cPMwmqjxdXO1GVzf+uLhKU5CcYtgZP3w1wETTy2UpkHnSCy0lTgFNF ha1pCTN8J/of06OBBF50O1zZWQNiYO0LjxltuBQ4cad3lD3n9Lbl5sffy0vcEfCL IoOHFVq8f5zOfv2bTths8NCpQ2GK04suj0VD8Xy6mhDvF5bNx4+W9zSZqTgl2C2M hBBxbdFwO6cc+uphD7iBz/MXTLPdYOgJZa1BHoEcpYdI1axmH16oOGw+BayBf7hp B5Hjqw== Received: from mail-vs1-f69.google.com (mail-vs1-f69.google.com [209.85.217.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p91t81g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 18:24:05 +0000 (GMT) Received: by mail-vs1-f69.google.com with SMTP id ada2fe7eead31-631289505b8so3501020137.0 for ; Wed, 13 May 2026 11:24:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778696644; x=1779301444; 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=LU7w4Wn3JpPmuk6OJsWPwCVXJHIYsBwXtaVof1zgNph3fj6zwL5Cwhi0ZEP//TJGT6 r+Ix1NuxkqszSrHcgfSIYI0SF9XvPyvUf4n2AigtcNn2Ac+Rq8vvp11oCkntRyb/QlGU LjqvpZlBdussjNxovCZMjnwEMOqbbkXn2NIJtZ+xB94xj6qkd/tocXjT+5us1wiJmPpa UI+N/Hm5sFqeLcNjZTgz2iYF2I+GNRuqMLCBKtZ2O8UgZgnJSyDRuyziY3BiISPoCIMg 7XCotHnJQReNNSwsNDhfM93oU+VW6X6CT3kzM8kU4DZHYu7X5aqMOStEzNA1cB6OKJ3C Gx7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778696644; x=1779301444; 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=k6ykXKvxho+LqnpPRx3pJ60bBzXG4unAlOKS0xVMNe+wUCQyDw5635Sc+y0nvQYxZ+ 9AqaAIG+z6KncX/fuDo7JWAPE9exov8bFWscj1CIrpRJW5g5vnDCWzipjhnXKwzQTmxx rJMcAaL6KjHwP3Yi9gJCBbtSdSBTksNfb3TPlyV8Y89tKqzRrLZXl+MVyCts0fmzHBcC x7GEjH+B36UQNfdpR3wsJZPfNjMdmz1puEX+dDzzHTxjfm5BgjDVv+jlH8ZmbMz1ZaGr iuiOGorKXIxZ8q7zhnUxBMPChUg5VsYrL+jszRY0+CDav9KTGnkIqMFmelGBwtUGdGd0 zTIA== X-Forwarded-Encrypted: i=1; AFNElJ+cu0f+ruALjSQFGTt6k6BEl46ECg+1x/PyAJ3kmGULZwQd8mETxbeJTv4mwxz4hcWXjeEhiAo8jTBBDV0=@vger.kernel.org X-Gm-Message-State: AOJu0Yw3Sh5ynlAQ0L4K3wMvrL58mkC+Azl/Vz2Q7h318nx+GwJXd5wg 5V8QSZuW5UhzH4nxhNm8GJg4igAgu5trycFSGWA6OTgv7AFiTQ/iTaz+7fz2CB7jdcy2CCiSnGa L3p98Xx1tQo8iKyhJeViy57SaylUP0qlzzB7KveSFD7Hsvn6C1aEMcgAO80AAdCgeNoE= X-Gm-Gg: Acq92OEVD1I/mj63rX0qeFyIOXH+71RverywHy/Ih7Xf1Q31OQAPJ2VfJhvFgPjOnfg lv3OvXWIHeOslKYcAjSRhI8otqXsY4qR7dO5KkL38BtY/pmhqJ/KTIAPOrGM/xfhtkL8PZle8ph 6Km96QrJwts3/5KIEoxuo7M4qnKp20zXqIRX50dbzHbaG8ev5jn2xZDsncgfyl2anHPD1ldnljq 0L3jAOlQHcpHTyerrJlgm5ChbUgJ4pZRPmg+b2yM6NJ8uvYTAtDueDimmTwNu9VZQsNQ7wlSgAV UBpi7Xfl4yZJ5VRGS0PxQzdE3OQyIjaITaPuAtB8akyC9bYyDeuQAi3ZTVcVmfpAhCit5Tyngj8 mU1TH66m9+jM/YstgwY//iTWzD9F495lqZ8AqL1omsyC6ViJbNoeIEosK2W3wvUeLKZaOr0LvGV jUmjBWO1hgQdOVGD8WBsKdHHk6YGYdpkI2wkdfk2LJQl/FRA== X-Received: by 2002:a05:6102:4a95:b0:631:2a80:e492 with SMTP id ada2fe7eead31-63774777cf0mr2754242137.30.1778696644230; Wed, 13 May 2026 11:24:04 -0700 (PDT) X-Received: by 2002:a05:6102:4a95:b0:631:2a80:e492 with SMTP id ada2fe7eead31-63774777cf0mr2754191137.30.1778696643647; Wed, 13 May 2026 11:24:03 -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-5a8a951d1f6sm4212851e87.23.2026.05.13.11.24.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 11:24:02 -0700 (PDT) From: Dmitry Baryshkov Date: Wed, 13 May 2026 21:23:26 +0300 Subject: [PATCH RESEND v3 6/6] usb: typec: ucsi: huawei-gaokun: pass down HPD_IRQ events Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260513-hpd-irq-events-v3-6-086857017f16@oss.qualcomm.com> References: <20260513-hpd-irq-events-v3-0-086857017f16@oss.qualcomm.com> In-Reply-To: <20260513-hpd-irq-events-v3-0-086857017f16@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, Dmitry Baryshkov 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/pANAwAKAYs8ij4CKSjVAcsmYgBqBMG0hilhJ2gGkZQQxe/0GBPH0fFPTqqZlimMt 5EPtgQGMWaJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCagTBtAAKCRCLPIo+Aiko 1UfqB/sEB1F2WFxCMTR2F1PIB/yP08QefwUon51gJHLQXhYRVsVZgMzGsE56RR40iDFtt0PCNNR e8/bhQUFNOGrzI8yy7h2fUumtwY6WquWhqqhJdrMaos/EEi0wqo92efWacjzI8ohK4UFbJt5bjN ffYm9hQw7mZu7rzFKn0nk5m4neMOewWtG2qMy4tDxV+FcYWNWYNdbOIiroBSVTXPvibDr1zfc6B lWhGMFxqUSjlgv/QMEhFapwgacJOv8N956Zein+/YYHUDvNrrMCD25WxF9YwwoRqVq6nRJacaJq 0UUW8vbtRRRMty0+1dZCHZVxEpa+Qw3X4pIkBQ/WmrrFhFvO X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: yF36eVzWMFp02sSQt9PUZwS17n3hdDxr X-Proofpoint-GUID: yF36eVzWMFp02sSQt9PUZwS17n3hdDxr X-Authority-Analysis: v=2.4 cv=G9Ys1dk5 c=1 sm=1 tr=0 ts=6a04c1c5 cx=c_pps a=5HAIKLe1ejAbszaTRHs9Ug==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=pGLkceISAAAA:8 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=xNxaoOyMFJLcTYWjjPMA:9 a=QEXdDO2ut3YA:10 a=gYDTvv6II1OnSo0itH1n:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDE4MyBTYWx0ZWRfXzNIrtRa6ejzi bYrqtIKlyXd65ccBeFsnQtKCAs7y5JDNjawsoBayGNt9EhnLQYc6ZGvbx5s8CgB7AKm5D52M+Sd YC4QkV3YM2x5kSARIrQX90SDDetKqCFmWryhSvC8jiS26+EnxsU0UZnlv/sykI9C7JJXCZ38GYl QnWe1iCrdXP4UkMsWVeMtIkr//QO93hp3TjbjzrD3pWWed3MFgTx/edXBlM4+W+WzglW74Es6dU zT/YA5QRA7pMKMBu9dp/4I08RL1f2FwmLtQFzNi7ulHYexX2sOfxpKDOKs/OaviQEI70nqoyebM tRQ4HzijUWeS26yurKRfFfNO7PBCDPzSnfE03eCSvMf3l3yRxpeCl6GXZBzPMeAlT7Nd7Z2qxBZ F+QVq6BjFt5rYziYq/MNKQRbOrqCkIGtekYUSZPAOzhZosu8QXdBznhvZr4Se5zEQVGglsX4hjF g4GEfnEl77pDJRPnalg== 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-05-13_02,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 adultscore=0 spamscore=0 phishscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130183 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