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 C4C5B348C79 for ; Thu, 28 May 2026 07:11:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779952263; cv=none; b=AqBxp2eXDGrCN5r60MMFqneW2oFFEBAVR9jq1a3bCSxBOQ6Ho1YMN1d19mvNfiOw6kKd53rUCO7y7sbILUknU+b/NKj9dQWo0RdS47/ChdS5xlamV75w/udO8Rw1QsMiIIHwDHBlMxQtRtcIxkCRA0ceYDYipj7+bJZ328XR+RA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779952263; c=relaxed/simple; bh=gXYnVv+et9mKSsRcfzytd7/BMq8iX3aPDHuiutk/ozU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Bzft2PxLESxEHxP+RpRJ1i1P0JPXX0nCVwrI/tZL1Hf7u69RL2EuLGuh/7hTU/08cy+NNvg2HiEq0zg5gN78yDedd4Onbi2giswM432Oq4cWuEctWZFHbJ2WDsjLhoH4dqfdZjP+S7aqJtOsbUOqkUVhrNKX/GwUC7sTaAkHOro= 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=R3gniVIY; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=etsAuXQo; 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="R3gniVIY"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="etsAuXQo" 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 64S6oxK54188843 for ; Thu, 28 May 2026 07:11:01 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= lteX2KHrPi0Rqr6OUVWRnH5AyAUAaRSxr8uhMk11Hlg=; b=R3gniVIY8gKB2/xl kaThstLE+hIldtvqqoof69I2jojduDc3KQLNDd1pi2zMJXNAzSynV6DUYcH7ZuTx fjMHvRRNMUFr1QL4t+sfLdomiIyhcXSUm8wkIWZVDQRl7PzvrR6qP+Gv9wsiTYgE d7kVmcZhPWYbmf83GI1Sdq72Fzmi5veaZSgugRGeMo3tggarnVf59tYpc1No1nrK JOFgtAgVCqOyQvcjbOEjddqhipF3cwMRItTZPpWTQslHl57jGJKpxSl7jboZA+VS Jt2xTVGePA+I0s16W8EmTJYryR1Ebgd1vV+o8obmfLnL+XMpiwqdDkjYICXLjZ/0 ja9XVA== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ee7y2spym-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 28 May 2026 07:11:00 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-5165d10e036so221122671cf.3 for ; Thu, 28 May 2026 00:11:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779952260; x=1780557060; 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=lteX2KHrPi0Rqr6OUVWRnH5AyAUAaRSxr8uhMk11Hlg=; b=etsAuXQo2gf2TR6dAbaOAJjbmcT3wu7vP9Ni7OKOSH6HOErVYb7CSxCs4xpRt3EOVR +GkZNNckDnGqpo/3g5PftqxRwWKKZKKDIfsrjUej6cJzGegr2PHDaYDkgykGPMHW+4Ep +pwii4B5lonA5oujkEE/EW6G8tAhXNlypgEO4d7zHVIoWiJXAJOHZvMpWztxkIAziDMH AQkB3Rgm8sPlD9hPUPSxhFkfp2j9zXYOH5s14X4RpFznpMF8kT0IX4Ac/tYQvSAxhvXR 7kAE+7L+eqn+y4K3oDyhFElzcfwZjesg5z5Ul3DPRRc1/7ZeG0jAU8JnA3ihZTRTb4h4 hI/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779952260; x=1780557060; 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=lteX2KHrPi0Rqr6OUVWRnH5AyAUAaRSxr8uhMk11Hlg=; b=op26a5OKdga819zTk1pzfgguE2AxpMVQhk7Kgv2XW0U7dJ0rEL8rglbtkTPCnTQk6u UHl8ozw/SwW0D/e75r8VpOqA7FkM+o5S3EUMqbXrfzoGIkHEWuKUjOG2GHxl15mppMZO rqn4W6aFKijWV1i07zqIcc54qOgXsM1DJH8bWU7pVAiZ38eOsSQOTKtI/qWzYMyGFjwd uqAdSxf7c2FN5gU93IETOx6WrEqFZz9ubPxq9LbBxefr87+vZZt2WTOhwVL6hd0LuFjj dueWReUn/TUZBZ5I/MxHA/WptIiv/FA3Y5/fPbpiH4DTPpfehErSrf39S1VDwkmEEcrp h3yA== X-Forwarded-Encrypted: i=1; AFNElJ/YaMypSGUORoGsySXPSfm6If9pQeGuSlD052gAyTdc5OgUHkL343CGgv3xOE+4ah030BUxQg2bOz1TKdo=@vger.kernel.org X-Gm-Message-State: AOJu0YzbDmLYNUSQNSyLvSzeF9a2mOFFV/0suQH967sDgCBn+Zr7pr37 HwwBQxXuMNvsSWIuf0BnUgq2skLBBXRUGeLdfb8HDB8urbrTjy5WDKoqxr4NTJRMzer5aKRHvVA 81o41qXblHalUtWsMOFBzfL6I/qDDfUeP8UyNaSAWcnR09jALBeoCO/iyGUKPrgTjj50= X-Gm-Gg: Acq92OFBKZ23s6qAl7N61r/RlwaTVUNPQfHjHbwyH2TbwdOLPiaWTkqEY6XRye6Chul g+/0bM45I7sl7DBpzQaA1OBEQZFZ/GrOTKvh7izSz3wTbxEwT2lLyuuS1O8p80HozAD3ZlU6Zyd YFw0oR50hlxdhOhQpqzLx8fzCaH9lYRynk7+znQ5Z25zZu7rwBtPb+WSUbWEvzGRGR7ABPJuiGx 0bUPVyXD3Q8ofj4VfDt0kH1m9q/ePlDjQvPNmt61B1MvHQzGlmkr74Ika0Q05fibR0qUjG382dH 1tmz1bB9Y9YlRwDg0WeUDigpeT75DpbqOUle6uz3G9jty6O65sSMt8Bk7VclYoXklXN8IgSgG++ J0O8vUXSA/ywB4PqH6PYGFUipbVaBwUTUg0NjeHBAFG5JncNn//KV9Psqg5AwrCY/RLF50PZI05 l7rp1dSlKxfyfcX8TYKQcuFdqhQbtjdb4Afi/2HRHKEBKcOg== X-Received: by 2002:a05:622a:1a81:b0:516:3183:c1fc with SMTP id d75a77b69052e-516d43b30camr367362851cf.50.1779952259925; Thu, 28 May 2026 00:10:59 -0700 (PDT) X-Received: by 2002:a05:622a:1a81:b0:516:3183:c1fc with SMTP id d75a77b69052e-516d43b30camr367362441cf.50.1779952259241; Thu, 28 May 2026 00:10:59 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-395dcc0a54fsm37416161fa.20.2026.05.28.00.10.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 May 2026 00:10:57 -0700 (PDT) From: Dmitry Baryshkov Date: Thu, 28 May 2026 10:10:50 +0300 Subject: [PATCH v3 3/3] drm/bridge: display-connector: trigger initial HPD event for DP 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: 7bit Message-Id: <20260528-dp-connector-hpd-v3-3-d656eb1079b7@oss.qualcomm.com> References: <20260528-dp-connector-hpd-v3-0-d656eb1079b7@oss.qualcomm.com> In-Reply-To: <20260528-dp-connector-hpd-v3-0-d656eb1079b7@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Tomi Valkeinen , Boris Brezillon , Sam Ravnborg , Sebastian Reichel , Yongxing Mou , Jonas Karlman Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3380; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=gXYnVv+et9mKSsRcfzytd7/BMq8iX3aPDHuiutk/ozU=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqF+p5eciFkm/4ibcN/flXWH7mQ7FqQW0gmpGCE nhQAHBs172JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCahfqeQAKCRCLPIo+Aiko 1dDSB/9slePnf8zuZRcb+x7QodsYuVQoLGfur6bPOuuwfYYOt7kcKa3FHM5vx41MXzjhWQmIYtv IXwQvWfxDqnUCZpCulPxGk7PHFYnWW7r0L/EXDic32bPZ00I5VYt8Zdg7nGmKTn0x2DQKclXCMm E/N55aA1v6HwQStpGIFig4PySb9s8QNSiA2TEifJwuf7pxcZE18QOAjge1CeWXimV/psTU84V2Z 1JwU0VMxmEKzjCXc5X5HOaQhAEA+pNsn9EC00nhsJN1lPssWHq1vTrF52mfOCg6U0uuf87D1w/s sp4BcHpqHore9t3QDoJEbamPsjBf6RGIN6i3KJILwbW1Vryy X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=VeXH+lp9 c=1 sm=1 tr=0 ts=6a17ea84 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=vFO7MoRB4rWv4-WZv6sA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI4MDA2OSBTYWx0ZWRfXzJSAQ8c+uyFs saPyAvLZqJhiMyjHdBLE364XlxwKmwRz+TvXYEeyzInVEQ4eIt43T2G+4mhW26wYlSg/qVCEYau pF1zMlC50c0LhK77eSzEQ/dIe0tXcybzRR+vGMWwVuXhaXeqHCuO4bm9AU8ydxcFzwSYEUhhXSS rn4I8shcYha8EZD/Tq4+OYVHDrbtESnfDCzCFgw915eVzJzxbFt7VbFcSZXcJUjen8N3dS/RtoM 6hVY8mP0zXsYYypmAZz2aWcQB4HF3KxfDEsFfz+xxIco67gIg5pdCcHg6ALhqoWe5bgguspxh1s naoaStnleb1nr8tw4ltOqubXmxc7EQqq/9fqb1vb7uL0TCOHVGsgZYvY4Amr7q54OWJ9IVo6N3b Ni4AxKeJIH4519ZU8hz78CiiHp1NUineN25A9Srv4PD2AUP/joSzZDBSonJcJd9FhqzzELtVbrW 5fFhWy2x8psvFgWilUA== X-Proofpoint-GUID: ovNWkyYvWoabUon95rcp1GVLW-mumr5c X-Proofpoint-ORIG-GUID: ovNWkyYvWoabUon95rcp1GVLW-mumr5c 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-05-28_02,2026-05-26_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 bulkscore=0 suspectscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605280069 If the DisplayPort drivers use display-connector for the HPD detection, the internal HPD state machine might be not active and thus the hardware might be not able to handle cable detection correctly. Instead it will depend on the external HPD notifications to set the cable state, bypassing the internal HPD state machine (for example this is the case for the msm DP driver). However if the cable has been plugged before the HPD IRQ has been enabled, there will be no HPD event coming. The drivers might fail detection in such a case. Trigger the HPD notification after enabling the HPD IRQ, propagating the cable insertion state. Note, this issue only affects drivers which set OP_HPD but not OP_DETECT (like dp-connector). Here DP differs from HDMI. For HDMI there is no additional state or extra "bridge with no sinks plugged" cases. The HPD pin state is equal to the display plugged state. Nor do we have an AUX bus with timeouts, etc. Fixes: 2e2bf3a5584d ("drm/bridge: display-connector: add DP support") Reported-by: Yongxing Mou Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/bridge/display-connector.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/gpu/drm/bridge/display-connector.c b/drivers/gpu/drm/bridge/display-connector.c index 6bb1134f75c3..f7a5bfd9c075 100644 --- a/drivers/gpu/drm/bridge/display-connector.c +++ b/drivers/gpu/drm/bridge/display-connector.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -25,6 +26,8 @@ struct display_connector { struct regulator *supply; struct gpio_desc *ddc_en; + + struct work_struct hpd_work; }; static inline struct display_connector * @@ -92,15 +95,29 @@ static void display_connector_hpd_enable(struct drm_bridge *bridge) struct display_connector *conn = to_display_connector(bridge); enable_irq(conn->hpd_irq); + + if (conn->bridge.type == DRM_MODE_CONNECTOR_DisplayPort) + schedule_work(&conn->hpd_work); } static void display_connector_hpd_disable(struct drm_bridge *bridge) { struct display_connector *conn = to_display_connector(bridge); + if (conn->bridge.type == DRM_MODE_CONNECTOR_DisplayPort) + cancel_work_sync(&conn->hpd_work); + disable_irq(conn->hpd_irq); } +static void display_connector_hpd_work(struct work_struct *work) +{ + struct display_connector *conn = container_of(work, struct display_connector, hpd_work); + struct drm_bridge *bridge = &conn->bridge; + + drm_bridge_hpd_notify(bridge, display_connector_detect(bridge)); +} + static const struct drm_edid *display_connector_edid_read(struct drm_bridge *bridge, struct drm_connector *connector) { @@ -395,6 +412,8 @@ static int display_connector_probe(struct platform_device *pdev) conn->bridge.ops |= DRM_BRIDGE_OP_DETECT; if (conn->hpd_irq >= 0) conn->bridge.ops |= DRM_BRIDGE_OP_HPD; + if (conn->hpd_irq >= 0 && type == DRM_MODE_CONNECTOR_DisplayPort) + INIT_WORK(&conn->hpd_work, display_connector_hpd_work); dev_dbg(&pdev->dev, "Found %s display connector '%s' %s DDC bus and %s HPD GPIO (ops 0x%x)\n", -- 2.47.3