From mboxrd@z Thu Jan 1 00:00:00 1970 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 0DD483C7689 for ; Tue, 25 Aug 2026 06:29:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787639356; cv=none; b=ot6p2LCY0Jj1NlG6L2nWvzZW3NLmLMhFCDJ/CtboqLwtPosOzbIDl5yzWrK/wFn1aOfJ8Z3GfZqS9P2SnqV8ncy8zpnYHlZ1diw6g/zGtm40GOMHOHBBY5ong9ywrtMZOtDc4xWSGzVgvqoeTHIqpyYMGhK12yI4dcaqU1drIrA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787639356; c=relaxed/simple; bh=T5aV1bKmohpZ+aNSqdq7/26Tikkok1QjUqElY4u5bv8=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=S1+xIHWv6uDd7cCyxbK6owvAQUDKP3YbZ7f9UBw1W/u3eyyYnkGyLdSoYKNnbMS4wqFA4j83XQdU8oyv/dOed5X1+d/sCgVrs68FdTbh807Tp+djH5lsUc+pM1AHZSWkPXTkOEnVJAtpcIPshyaMhcT2Ql1KB93Us467Q1C+6cs= 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=UiTHo5y1; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=I4ONZMqD; 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="UiTHo5y1"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="I4ONZMqD" 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 67P2R62L120432 for ; Tue, 25 Aug 2026 06:29:13 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= B5BlCQjUficUb6+P36Gle/9S6qFrgRnf0A65vTV0iuY=; b=UiTHo5y1lbB64WL3 fwQywIod+yVa8ZONG/lsCSFeejYySG7KXE42GbAdytNjpDntGQkflG3hYOgbK8SO ox7SsD8lVZ5c2gTGIHv/MhNpp2gS3Ek40cMDbvRJg4a+L45ar/o7bE1LV8CITj7d XNx+ZMZu5JIbVtyLmXmwxRUTVQQkYuHi1ytNK/jESbjTPLlrJxmJm+nCcw956VD0 JqtZWzeGjgfQh3OA68rgPutMxyfAhjBJqxNxnPbTSkSeSNOaxJkidPpUjNTXOKPy 6W4OsWxb71XMQEgmusSfetcvPv0LF9jYLqrnj3K3HYWgmetl6dEbQ99SKA8r+M80 OCFNMw== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g8t3dtfft-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 25 Aug 2026 06:29:13 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2d6f73d0f89so3101705ad.0 for ; Mon, 24 Aug 2026 23:29:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787639353; x=1788244153; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=B5BlCQjUficUb6+P36Gle/9S6qFrgRnf0A65vTV0iuY=; b=I4ONZMqDSxOOapccqpZxjVgdHdzmHV6F0W1047TWrgsVh65XANChdQOMvIG4Mcpl2u saqjMglc4iS/jio8/QmQCq3SsBEPcsw6a0Mlesc+XTabtA8qVIQR0Yj7BchD/epbATOP Uyj+So0kGB8wJJoUjFJ1e8t4GhCLCNllYnx1mWvNHBV7o2KWGdsjLcQ2KnjfZv77mzj/ 7gGepyKzwjErrIo7HbznivMof8Jmq3iclXQA5ZS/oCU1bmj4M2VnMVhvgsOGkkI0S9zD 7gvJ1bx9yvuqR0Rr3WVCospfLDv+JgdOq9Z+VV+B4mbaXXuSvlLmivnzzJVmVxPM8d/X Ym6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787639353; x=1788244153; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=B5BlCQjUficUb6+P36Gle/9S6qFrgRnf0A65vTV0iuY=; b=YmEesqnO0V4anv8DU94C7MM89j2f7yykwWnD18mcNG1CUmReVOVQ+gHVcRP3/qBS0q H7bLOkGp0s0eF7IEfjwb7DUt4l14PYD6BkIjQSkRsO9g5m2BGQHL1ikPxgdPRC/mLEoe lhravPMhBL8H62CYuvDXBlIBF4XoClNybESpObSHkVtxjyizfDVY2VszE5E3THml+sag CkYeh2t120uoMolZHnIdiVHaUborKnbw5lpD4zc4QcrMlqRTNEJp3nOOuyIV1/e7Uz0C s4/kLpZnIwlHXPGvV2t4UU3XMJ6M1HDevOgbEFmM3SXmIrJtA8EmieNBjLnsyAU8qg+H d5fA== X-Forwarded-Encrypted: i=1; AHgh+RpvNB9moCpzVUM3TNg0cjs2f2YHc/1Fw/pm4Cjbsf8fRlS4TLd8rXj42FSGUlZ3aXZVhY4+G2UNUMUDGUo=@vger.kernel.org X-Gm-Message-State: AFuF++kFrvvwnrs8VULNlSv0Sb+/NnkxmYvL3OUXydfEPPUQSU+KztcJ iGaRAssbNvPQJ7PK2ygGV2hSI7yeMLVw9dPCJGn8vC2anWYo9QBNx0gX5Zg5sE4neRs8XdruwxC 6nf4bulcM8seuGbmfx4USuukYOhOE6zd7sLEMgcSKpk7ehrNWXzFIfs8LiX1aHjiPR04= X-Gm-Gg: AR+sD12dNQ5MTN/8jS53/8w9c2RD6eD3jyNOoyor/AMy36fSZVBZsQDnQD3ZmZ8QTNX a9/KK1oJ2wdko/TZXKx2sB+/7T326Yt1NlAor7EK95PH+1XU/0p5YJhF096j6r8uFdxnhSYGAcH ivXAoylChcSpMgi9HseK2dsKX2qStzi/WaPztRJ1CziRYjYTAK5TMlZ9RBX/TJZRZwwCRejlmsE vnC+/QPOD3Xup8a+Z5YWUTy+80GW642RP/W7rFHWTkiHXyUGneOWuaK6B53q93kLe5vKy+tPoj6 NRgtsGizPqkVaG6xZsJdXHaO5APKrHgglwOLGbTSm3/1lBDsW5kIWIWnyOgejFahSzfth+04QY/ QQJrfTy4coMW8TV69BL/GRoOKS8UBIhpuBPRP4xh2uXD3dz1L7RXDP94y9Zy1sMGqfkCTF0++ X-Received: by 2002:a17:903:4687:b0:2ca:f21a:a6c5 with SMTP id d9443c01a7336-2d6dca619a1mr88911815ad.1.1787639352649; Mon, 24 Aug 2026 23:29:12 -0700 (PDT) X-Received: by 2002:a17:903:4687:b0:2ca:f21a:a6c5 with SMTP id d9443c01a7336-2d6dca619a1mr88910725ad.1.1787639352192; Mon, 24 Aug 2026 23:29:12 -0700 (PDT) Received: from [10.133.33.108] (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d6768b9e3dsm24218565ad.65.2026.08.24.23.29.08 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 24 Aug 2026 23:29:11 -0700 (PDT) Message-ID: <73722056-4f15-4043-9005-c033dc8986f8@oss.qualcomm.com> Date: Tue, 25 Aug 2026 14:29:05 +0800 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH RESEND v5 25/25] drm/msm/dp: add HPD callback for dp MST To: Dmitry Baryshkov Cc: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Jessica Zhang , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, Abhinav Kumar References: <20260629-msm-dp-mst-v5-0-2ed6aee1867a@oss.qualcomm.com> <20260629-msm-dp-mst-v5-25-2ed6aee1867a@oss.qualcomm.com> Content-Language: en-US From: Yongxing Mou In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Proofpoint-ORIG-GUID: dhInEpGRcosAWG8oRd7bbiL2VM1IYey4 X-Authority-Analysis: v=2.4 cv=OLAXGyaB c=1 sm=1 tr=0 ts=6a8d3639 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=6gsoYQu_toBURm7Jz6AA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: dhInEpGRcosAWG8oRd7bbiL2VM1IYey4 X-Proofpoint-Spam-Info: AW1haW4tMjYwODI1MDA1MyBTYWx0ZWRfX51jk7ymZWmtK dUIpiB13xdu8TwNN4hJbDa7klqXlF3qE4W6JHSHbGaaTl9bzd523IKSnZHeTMmtChiTryfwY4XU 4gqN0OVDOQgJ6FYswNFL1X+MeYCeZVY= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI1MDA1MyBTYWx0ZWRfX7WByVMfbv7Bk RduP0p7N28irQ9sjssaGgRO+Cpm0wZRt0JPLNsQjiB2NJE9Dpa3VsWoD2wSun43JJnJ8w4CF3pr eo609HIStAbXZB3dWvg+ibN7t6+q+8f8TvtqJSjaMvZFhAXYm21rSnSNCegkc0AdyVXWoXf/RJC 01SRnClxaUXbC1EfHUaTts4JAb7rOBBIXQiRriLwRo1tz6oEsGeDJcUcmtW1VXsrOcaHe9ASc/Q wlxf+4cKhv8vsz43GQ9H8JD5c1A31zhnaITqLbe4P/bE4k7MDErVbDppL5YIyYKQJpZaImr9k0a CEhcfC/w9621Z60N0MqWahxl2sr+jRzTqtIuIM0J48VvFE3/9OEYTExHzZqVzCjAFJkcYKVtV89 Dl5gM/XMUvKTFzyUTR/fRe7IRjvKt751eKZ1qTe8A4QmefT4YLulOqXoxrUr2F7sZkJjZ3tqKTL UIRjJ8v3Yt3eyxGx5ew== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-25_01,2026-08-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 adultscore=0 malwarescore=0 suspectscore=0 priorityscore=1501 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608250053 On 7/13/2026 8:54 AM, Dmitry Baryshkov wrote: > On Mon, Jun 29, 2026 at 10:14:46PM +0800, Yongxing Mou wrote: >> From: Abhinav Kumar >> >> Add HPD callback for the MST module which shall be invoked from the >> dp_display's HPD handler to perform MST specific operations in case >> of HPD. In MST case, route the HPD messages to MST module. >> >> Signed-off-by: Abhinav Kumar >> Signed-off-by: Yongxing Mou >> --- >> drivers/gpu/drm/msm/dp/dp_display.c | 22 ++++++++++++++---- >> drivers/gpu/drm/msm/dp/dp_mst_drm.c | 46 +++++++++++++++++++++++++++++++++++++ >> drivers/gpu/drm/msm/dp/dp_mst_drm.h | 1 + >> 3 files changed, 65 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c >> index 6eac390af2e0..49a7bc5e031e 100644 >> --- a/drivers/gpu/drm/msm/dp/dp_display.c >> +++ b/drivers/gpu/drm/msm/dp/dp_display.c >> @@ -455,6 +455,9 @@ static int msm_dp_hpd_plug_handle(struct msm_dp_display_private *dp) >> dp->msm_dp_display.connector_type, >> dp->link->sink_count); >> >> + if (dp->plugged && dp->msm_dp_display.mst_active) >> + return 0; > > Why? > We need to filter out unnecessary plug events. A single physical HPD event may result in multiple hpd_notify() calls. The first call comes from the actual IRQ, while subsequent hotplug processing may trigger connector re-detection, which in turn causes additional hpd_notify() calls. >> + >> guard(mutex)(&dp->plugged_lock); >> >> ret = pm_runtime_resume_and_get(&pdev->dev); >> @@ -550,12 +553,18 @@ static int msm_dp_irq_hpd_handle(struct msm_dp_display_private *dp) >> { >> u32 sink_request; >> int rc = 0; >> + struct msm_dp *msm_dp_display = &dp->msm_dp_display; >> >> /* irq_hpd can happen at either connected or disconnected state */ >> drm_dbg_dp(dp->drm_dev, "Before, type=%d, sink_count=%d\n", >> dp->msm_dp_display.connector_type, >> dp->link->sink_count); >> >> + if (msm_dp_display->mst_active) { >> + msm_dp_mst_display_hpd_irq(&dp->msm_dp_display); > > This should be routed through the HPD / notifications API so that there > is always a single path for handling the IRQ_HPD interrupts. > Got it. The reason for having two paths in the native DP case today is that the current DRM IRQ API may result in unnecessary hotplug notifications. Once the API adaptation is completed, both native DP and Type-C DP are expected to use the same IRQ handling path. >> + return 0; >> + } >> + >> /* check for any test request issued by sink */ >> rc = msm_dp_link_process_request(dp->link); >> if (!rc) { >> @@ -1111,9 +1120,13 @@ static irqreturn_t msm_dp_display_irq_thread(int irq, void *dev_id) >> connector_status_connected); >> >> /* Send HPD as connected and distinguish it in the notifier */ >> - if (hpd_isr_status & DP_DP_IRQ_HPD_INT_MASK) >> - drm_bridge_hpd_notify(dp->msm_dp_display.bridge, >> - connector_status_connected); >> + if (hpd_isr_status & DP_DP_IRQ_HPD_INT_MASK) { >> + if (dp->msm_dp_display.mst_active) > > Locking? What if MST is being enabled or disabled on the other core? > In the future, we plan to switch this over to the DRM IRQ API. At that point, SST and MST will no longer be handled through separate paths, so this issue should naturally disappear. >> + msm_dp_irq_hpd_handle(dp); >> + else >> + drm_bridge_hpd_notify(dp->msm_dp_display.bridge, >> + connector_status_connected); >> + } >> >> ret = IRQ_HANDLED; >> >