From mboxrd@z Thu Jan 1 00:00:00 1970 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 5465F3EAC84 for ; Mon, 29 Jun 2026 14:48:38 +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=1782744519; cv=none; b=di88evS9rcbWKdW+r+9wCq02KUou8xuG4uHkJNT0aQvOVyGmLElAz+kC1OdU9YoeAZvPG4bFlTeUe6pMqbmpePo2uLbPc4HrGICi3vjI9pCiAzc81qBwz4Wygv/WjAfpx3VtT2XBlSS0v37BKl2jtvoR6w5PqB9HH+mbZzmK1Xc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782744519; c=relaxed/simple; bh=zCPPIEotdSUHd8PwFgThC89TK/453vk/QVgAmXnjK4c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SMXTi+NBED33+N6aGQcrIS0G/pZp8p07kTEFU0iPy/Is1mR7kpIJmuTWomjYl3Ojq5J2J0OwLeG/U8id4OY/u5qpjl3BX2TGFTnBjYkE+Mq4r+TGUeLLKJO/MD//xsZ5t19Sx3dfPB803EYrIS7aSWcZiFWF6HvfAR436G3Xy1w= 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=WrcmkiIp; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=HfvFgMwu; 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="WrcmkiIp"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="HfvFgMwu" 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 65TAT3KU2604343 for ; Mon, 29 Jun 2026 14:48:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= CY2/kYZwMHeTEPu+t0diQLOY++1sPPgUOB5KtcADCTU=; b=WrcmkiIpDYknkEZI H+j2O7fO40qENvHj6R6oHycIx8MDrjWg2Qkq/8s7DWV29k64+lAn9AzTYRj31N2Y vQ+sN8R1BxmqGmR2GDUvLY/ZXrmCWye8DbhOrAIQ+luyLHQKsWv9OgKYatTr9BSg HxL9iTXwG5g7HmpNIYSadf5xaVHoBYYFefgH/Hw5ckX8GheKj6UUuykNJm2MFT5/ Nqn2Snu94rZIUFsy8bVhxRPWlaAU40zBs/0dv1OkNu8iTIAMRmvPMhakqYarM6SK jsCILGRDadnx5edi2wkVcg95XyY0RJ9Mpko8wrkwVcb3kXeBZIu11DT7naqhBgaR vt4HXQ== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nq89c5v-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 14:48:37 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-92158791d14so441247485a.2 for ; Mon, 29 Jun 2026 07:48:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782744517; x=1783349317; 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=CY2/kYZwMHeTEPu+t0diQLOY++1sPPgUOB5KtcADCTU=; b=HfvFgMwu308E9YgHRNTVu8AU2vIoWeqAgOt1wu+Ve6KMTM6UMtNfbOljbzLRCDpDdr R4doXjiZvXcpTCnm7SBVkdm4agYzUeJcYqZQml31lIsQe7VNKiEdx6s0UByzRHlFzZsW 7/5yxdmKTeVIPGfBIHko99FEFV3SPrhdzBkroWEmbSzYQdNnijtRlrpSt2tyVgjMx7oB DiyHOME3bn2d7s2HZUgQwWvFfoqrDkC7DpQwtVbZOUilO/isvuPjbtyiYKHG1sTSEXl+ TIfT3fklhDLnK+x7DPb6RtL5K4y6BFzaZI2nQ8dFQAFx+RfZAIN6PPbFRSiYOeqSWUcB jogQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782744517; x=1783349317; 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=CY2/kYZwMHeTEPu+t0diQLOY++1sPPgUOB5KtcADCTU=; b=YhMiigYwTnvlNHxtu1KJwWO/w4AAWTIlY9get3M7FRyloZg2ywJkV+RNrx2gt3lGvh ZISZSUDwAN8LQyS2pye2utrv7215mSCeDu5XjRDg0tV6kENKpa2nG7GEjlkaMrW5ejNo QUUFYMb+3FMliy9saG2N8PlTyBs8xQCa+EwOQRT3X5bV6UK1vcr9/wsxeBXK+5codH4j lJkAUvSr5SRaOpvmQdvOS6ZFGGVHWx8fd2ehQpSgOKiArW9ouRlRsGThZPL8NoPjqda+ YH1GEh1OwZXufoB62DUkHjhChH2VnSj+asIG+xYHK9XkbMH9wJYhvA07OdRDY+PtNNuo qZ0g== X-Forwarded-Encrypted: i=1; AFNElJ+wuCCbZDD2wbIgGytQ2w9rNIaRF+oDdql1RJ9Jqc+mUHD//A92EL0qxKfeR/ccDxF5HSZLhDpzMKgN2W8=@vger.kernel.org X-Gm-Message-State: AOJu0Yw9Bg2iNB7mONM5rGxekeTZE399WkZFInkuF9eanbyeKri/oIvp o7rnYtoxE4UZnOIVmFD+MKNqADS8ZIW3eKB3lssMyN3+XOB+pdnbNnqjqAc/jhTDyrYkCIGh2TW 8Xa/NMSAF/l14NZUBNZ1Ln7Wbu5vOWsYzH9Faoxsto4TD5rMGSd0Yc7xZ1cONCUqufLo= X-Gm-Gg: AfdE7clc/54KXUVp+mClyA3SCKOfAaqp6dTPKDGmJDXb4MzHfqbC+YQURldnKlzvu2g IxTuXykWT0bID1igIq8RpV4siNBhptj2TLwU/g8X1Gmb/Ga+mCRVzAsFw5rf4eS1RXEWM+IIgIq Pfh2cBBuB3DzJmMZ/dUgmtFjV4753b6deKBHx3dlU/lytPgFOPO/h3Aty7QXKN3QFI5fCGUVEXn CBS31C9pSD3pXCJc2rBB4GdPzs0aA+hlTqpr8OPX+2QvxL9R706kNlJuqHuIS01n3zCMnMEj0uC XJePsN1wI7aMCeu8UYhViv7bGVfuDDQ0XVo76ZVCWodiFaV7Mpp6juGnwgzwZQyvXzv6Kzl7PAX rU6g7TUSl9DpSLT8y2wiV5h3mn4QPZwuL+KkMojVo9SlCn0PP1vIaxDyQ5p3YuyC23I5a0jDadg == X-Received: by 2002:a05:620a:199d:b0:92b:67e6:8ac1 with SMTP id af79cd13be357-92b67e68c82mr1371992785a.59.1782744516522; Mon, 29 Jun 2026 07:48:36 -0700 (PDT) X-Received: by 2002:a05:620a:199d:b0:92b:67e6:8ac1 with SMTP id af79cd13be357-92b67e68c82mr1371987585a.59.1782744516014; Mon, 29 Jun 2026 07:48:36 -0700 (PDT) Received: from yongmou2.ap.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id af79cd13be357-926004ab49csm2087974385a.34.2026.06.29.07.48.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 07:48:35 -0700 (PDT) From: Yongxing Mou Date: Mon, 29 Jun 2026 22:48:04 +0800 Subject: [PATCH 2/5] drm/bridge_connector: preserve connector status for IRQ-only 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: 8bit Message-Id: <20260629-msm-dp-msttypec-v1-2-646a10256233@oss.qualcomm.com> References: <20260629-msm-dp-msttypec-v1-0-646a10256233@oss.qualcomm.com> In-Reply-To: <20260629-msm-dp-msttypec-v1-0-646a10256233@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Luca Ceresoli , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Bjorn Andersson , Konrad Dybcio Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Yongxing Mou X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1782744487; l=2538; i=yongxing.mou@oss.qualcomm.com; s=20250910; h=from:subject:message-id; bh=zCPPIEotdSUHd8PwFgThC89TK/453vk/QVgAmXnjK4c=; b=EFccj6BHEEeRrzlWUTbw8BogiRwObxZsIqPHY+e7jjnG7UU6Nl4UC2X3L1RNMqKmEJgNMp3Fe JQsCWBXPtSOBQ2IDWOHleokIGMiYwdCc2UgAtX0nE8b8obM54A+uwE8 X-Developer-Key: i=yongxing.mou@oss.qualcomm.com; a=ed25519; pk=rAy5J1eP+V7OXqH5FJ7ngMCtUrnHhut30ZTldOj52UM= X-Proofpoint-GUID: u6FmKnYaMBlA05nwv_oBoue5Pc_L_ztN X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEyMyBTYWx0ZWRfXyRXkkvrUyiA/ 676Y4FRFy3h0RHqbqehrXycVJPziB49lR/oMT/ZyIHtTf2Wt8ATjwu8t83yIqdqcTJDVAq8ULf9 GaRol1RaeEuj8rKK9xSk4mdu59hwXQQ= X-Proofpoint-ORIG-GUID: u6FmKnYaMBlA05nwv_oBoue5Pc_L_ztN X-Authority-Analysis: v=2.4 cv=PqSjqQM3 c=1 sm=1 tr=0 ts=6a4285c5 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=HhJCdNca9OzhlWWnlXUA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEyMyBTYWx0ZWRfX8Myka6y49zo6 8/MN601eRWNd7QYUb7Zzvi0D584Q3JhsDPUKZ8L6s/DQK8WxUk17F8Fc/PmrpVNKwpvPBrxppa4 i1P3cZLilK7r8RFb0shX+oWcpJauNQrH9rfxkMWdhXSPWlRUu1jxe7hGuD6ICUMe6GdHwW5cmpq 7KRRcDjzYSQdaSJS5FdgfIw7I/Q6+9vrSmkV3TESDvQbMO/suPdjKMBALWHRcHu+4Ibd5MBAKc0 QRNlrxRNBiDx+UX88/CHGzrx7IfEA3Qg5XUV/B1Bt/FHMZXzs6EFz9VuUdLuECjPktkf7qzTA+J gxWikStW66ogA7Sw2/fAPZqV0lXb1zcSooj4bcbEuRMvBShwFihCK2d2dSdqPlCoQDA1UrclZHq f80ihzQ3d0Hvpafs5lV9XgPHp2nDy0YjwmsgtykWijqxMK9A9D9WM+J1UBo5eHISJxqYincV9Yn ypkY/dgN2e4H30/BL2A== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 adultscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290123 The bridge connector HPD handling path currently updates connector->status for every hpd_notify() invocation. This does not work well for IRQ-only notifications where the event being reported is carried by extra_status and no connector status transition is associated with it. One example is DP MST. HPD IRQs are propagated through drm_bridge_hpd_notify_*() so that bridge drivers can process the notification. During MST operation, however, the SST connector attached to the bridge connector is intentionally kept disconnected while the MST topology manager handles all connector creation, removal and hotplug processing. Updating connector->status for an IRQ-only MST notification may cause the SST connector state to oscillate between connected and disconnected depending on the notification path. These artificial state transitions can later be detected by the polling logic and result in unnecessary hotplug events being generated. Userspace then re-probes connector status, potentially triggering the same sequence again. Treat notifications with status == connector_status_unknown and a valid extra_status as IRQ-only events. Forward the notification to bridge drivers without modifying connector->status. This keeps IRQ delivery working while leaving connector state management to the component that actually owns it, such as the DP MST topology framework. Signed-off-by: Yongxing Mou --- drivers/gpu/drm/display/drm_bridge_connector.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c b/drivers/gpu/drm/display/drm_bridge_connector.c index 5edca47a025f..7334d6677604 100644 --- a/drivers/gpu/drm/display/drm_bridge_connector.c +++ b/drivers/gpu/drm/display/drm_bridge_connector.c @@ -163,6 +163,18 @@ static void drm_bridge_connector_handle_hpd(struct drm_bridge_connector *drm_bri struct drm_connector *connector = &drm_bridge_connector->base; struct drm_device *dev = connector->dev; + /* + * IRQ-only notification: extra_status carries the event but + * status is unknown — do not overwrite connector->status. + */ + if (status == connector_status_unknown && + extra_status != DRM_CONNECTOR_NO_EXTRA_STATUS) { + drm_bridge_connector_hpd_notify(connector, + connector->status, + extra_status, NULL); + return; + } + mutex_lock(&dev->mode_config.mutex); connector->status = status; mutex_unlock(&dev->mode_config.mutex); -- 2.43.0