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 4702533F584 for ; Thu, 21 May 2026 11:34:41 +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=1779363282; cv=none; b=oNes3V3AggPPNTzXtQT+GumuERH0XDpSz2RTLKa2H35Km8tFrJ8rjbnggowmavqHIrn9qPQD6Ait/cjPAgCo/LCjL4BJCaxcMQYr5slVBdGCV9b1iNsccR3MeFAV4fSSdvphMy4PcXmWa/1j6UNatXUfWs05/crx5P/Zj5UY8s8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779363282; c=relaxed/simple; bh=onGbWX4+j0/rIjiJlytFfCq5hkYRahQtjeUHPtbYiKM=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=GGil/He6RrgZQPVo4UPiI9n5eN1ZhTKeZGZvRBDxgWvgwqyRGEkEKfktVBjyLHUQ3fhJDAZ2xKGD4m5/LsDvdwDbmNE8PRKLmR5ebM5pFcAlc55uf1OL2Rk+cSOD9dM55PkiDJuk2kP/65sCXxDwt72RLkXN08e662IApynJuJA= 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=gcHfgysV; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Odic3RdO; 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="gcHfgysV"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Odic3RdO" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64L99u3A3772914 for ; Thu, 21 May 2026 11:34:40 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= hdNGl96a1LRZ4HsRLvAttgH7mqHz0ODVIhshUZSEX4M=; b=gcHfgysV16q12LbB 9wVRB+KEWB1Kde20SRh+pTWIwHS0bvR1Ylq1J4SLdR65wKgY6y6DYM+P8bfjZx6o ZGL66cb4Wb0BXLjDlPCeEeoJWAgBdDcN7on31h7o9AWEkg77kj0I5/OaJTJ8Emc1 TC9QHms5iQeASI6QbB8vun+vD2L+woUuP7MRuCMcmlGp3eK/PHnsptirgee7CMex Dq/yzpCU6QejBJA/iaTZRHpKucj6UWKms5ICm9sxoci8ght3WwwhPmD6VKeueNlA LqKeKBX2FZPWUglXAKLWBX184xZwg65BT10rwslMgF+LkRrIbvxPv95rOHj4sSTR GYFTsA== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e9ma42yvh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 21 May 2026 11:34:40 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2b4530a90fdso106201615ad.1 for ; Thu, 21 May 2026 04:34:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779363279; x=1779968079; darn=vger.kernel.org; h=content-transfer-encoding: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; bh=hdNGl96a1LRZ4HsRLvAttgH7mqHz0ODVIhshUZSEX4M=; b=Odic3RdOTi7slF9Cpa7pnpLm2PaN/dH0oPxy9paALBmdkoJS07JDfueAk0CRFtAftu sTpUOTC5A2VrLZaecjVNm0ryajhnYhHPVYIh7J+WKkGNzGZ3dB1LPe2GjZO0/KvgVn60 R2Kegolu38b/925EJ8Evjx0Q2fuowAK8nOC88+1Mt7m38KSipQOq8a3MpLJ0xIKwFEJd /zqL/Iqx8mgWNAuPRMvQueBiqMpfxHJbFVOjsrVe/mocEqr9RXB8tsYLUKAxF6yziN4w FkDLn8fWBNaq50bLXGQiSyZ/wPklByV3B5nBGndipgtbCpBc3hkfAwQE+Qlmr6axkcf1 Z4EQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779363280; x=1779968080; h=content-transfer-encoding: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; bh=hdNGl96a1LRZ4HsRLvAttgH7mqHz0ODVIhshUZSEX4M=; b=V+W+LYOSQRuZ6BF/S6IcX50NbqI2KfYHega7i8Cga0m5Qg9971qRapI9dLsfil82nZ C7fYJdop7giN80HkLsKHPDSYVULNoT35vk4GebV8zO+M5ER7nulRUmzgafvxwHMKDAA2 X0gTKLHqLWgHYc5rgtVC10tVAXRinUm2G/iOSUBvObPzfwBTAjib9aFMZiHStqRboJCa pFosu0RltOUDMOkbpLGmbuhfk4G6+PnElb2KtoEFaBfR2jEO5/4ddvgDNMApv59O4vzF iF8RSmGzBBAJRWOTgBIzez929ORZRZhWqbkpFdzJEx0/lllmx5XBVDSbIZ2qPQ6R1eWT dbXA== X-Forwarded-Encrypted: i=1; AFNElJ9ufO6Pove5i6v1p4lsgJauz89emNi7mis30JlUN9jRXxSDFpPlFzSjgN5E+UYU5jxOkmt5k1t0Fx2CwV0=@vger.kernel.org X-Gm-Message-State: AOJu0YzSXAFplXzZ/vedr+ZWx69miGNr6p8ZKRSBxwlpuu2HubOIsSFj qWOwHU+KlS7KCBFpQz/JRGUBQ3iYmqEo+emNaxdYptGlea1eAsav9ba6T49za6nFgzri3b3fojU DsFyiU0JI/z1u7xh8q/wLGbCsU61Kv+9z/hNCahabuml/IVp52uRFTrmf4EvXfja6dNs= X-Gm-Gg: Acq92OFRG/KqQszeUkTx3FsDoAU51z/AYqabkgYlGGYY8L8rRd4J4eda6h6kNKCZrgz RUz++nXPxhNHdLilxwcbFBByKnSdCbfg4MYDlE+wwO0q3yjnegY1sUqrBhl5JoEdh4MIprm0SYS oUbmyGKaqIepljvKXuupFz2H7KLWjXK+jfbqd4fZz00VvE9pLyA1XTWZcIN7tcKM98sEy9dRozg TKkPzUYVe28+h7uqdNLVBbvsJ1owXJ7mxmXsMTzRktZkbTfStan+YrFr8DWGxKuelxnNZJ+cI46 AdaE5UYbUOIJMiiNZ+j6giM1VbVWvCovsO6naBDk+V0PqkvwBroMCE7mHwXJnpO6kpxeB+eP9Py 9+ZDDQzYxHylo3QSh/hvWK5kDCO92OGDst1tzxYqJud9ujQx3xw06XqELbohfNZn3FE6OfwX1An 4vdohNsqWVuyEr+gEHGA== X-Received: by 2002:a17:903:22cb:b0:2b2:4bf9:1766 with SMTP id d9443c01a7336-2bea33e3948mr28017875ad.33.1779363279465; Thu, 21 May 2026 04:34:39 -0700 (PDT) X-Received: by 2002:a17:903:22cb:b0:2b2:4bf9:1766 with SMTP id d9443c01a7336-2bea33e3948mr28017515ad.33.1779363278953; Thu, 21 May 2026 04:34:38 -0700 (PDT) Received: from [10.133.33.148] (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bea98ecbb2sm7832445ad.45.2026.05.21.04.34.34 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 May 2026 04:34:38 -0700 (PDT) Message-ID: <0e39dd9f-9858-49cb-a052-7d0791b694af@oss.qualcomm.com> Date: Thu, 21 May 2026 19:34:32 +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 v4 14/39] drm/msm/dp: introduce max_streams for DP controller MST support 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: <20260410-msm-dp-mst-v4-0-b20518dea8de@oss.qualcomm.com> <20260410-msm-dp-mst-v4-14-b20518dea8de@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-Authority-Analysis: v=2.4 cv=K9kS2SWI c=1 sm=1 tr=0 ts=6a0eedd0 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=WZztYMh3yrmu__bEN2gA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: Owt_Ok6jqsZgdoVek9oK_JS7-ypsOhaz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIxMDExNSBTYWx0ZWRfXz/5hEohsq5Wn aPMLZ3G//flT/37HB14wOj0OtDW9BGHJLM6+Wcxfbr+cB/SQv+jYdHm+H7PJC/H859VfdPrehqw rmb5EQYA8PjIXB33IZAl5ql7vF17rxIN7EVFac7PI4CKt1xytd54aDf+kgiiOxkjMqztE4kp9JA ITYzaLA3UmCILYFVzU7NDdARwPPHznWyzqCKkVHWnt6uM4le1gabDAIMdNGnEYAoFkJ8NyNC3nH e/nFqbx87utBvx5pWK/03qsssd97S/bQkOqDvRI6Ts5YR6JkjIf6m5CVZjkr1S1lcGi3Uai4WXu X4XodMSHu+Ff4gVSFfhIA3T4CNgeXtyvjYuqG6Ssb4AIbdeaJfARRp3ifuy4mzUQixLCJWZJ11P FOswZFTFNcxZrkYOrE3aSUWVpkr9WCaTjNEOYaaqYFho3BBn+PKknPQCcjuC7TYtG0giyfhlDnm Twbwg5dhyKpJ67DxyUQ== X-Proofpoint-ORIG-GUID: Owt_Ok6jqsZgdoVek9oK_JS7-ypsOhaz 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-21_02,2026-05-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605210115 On 4/12/2026 1:59 AM, Dmitry Baryshkov wrote: > On Fri, Apr 10, 2026 at 05:33:49PM +0800, Yongxing Mou wrote: >> From: Abhinav Kumar >> >> Introduce the `mst_streams` field in each DP controller descriptor to >> specify the number of supported MST streams. Most platforms support 2 or >> 4 MST streams, while platforms without MST support default to a single >> stream (`DEFAULT_STREAM_COUNT = 1`). > > There is no such const anymore. > >> >> Also accounts for platforms with asymmetric stream support, e.g., DP0 >> supporting 4 streams and DP1 supporting 2. > > There is no need to mention it. > >> >> Signed-off-by: Abhinav Kumar >> Signed-off-by: Yongxing Mou >> --- >> drivers/gpu/drm/msm/dp/dp_ctrl.c | 20 +++++++++++++++++--- >> drivers/gpu/drm/msm/dp/dp_ctrl.h | 2 ++ >> drivers/gpu/drm/msm/dp/dp_display.c | 20 +++++++++++++++++++- >> drivers/gpu/drm/msm/dp/dp_display.h | 1 + >> 4 files changed, 39 insertions(+), 4 deletions(-) >> >> @@ -2740,7 +2741,8 @@ static int msm_dp_ctrl_clk_init(struct msm_dp_ctrl *msm_dp_ctrl) >> if (rc) >> return rc; >> >> - for (i = DP_STREAM_0; i < DP_STREAM_MAX; i++) { >> + ctrl->num_pixel_clks = 0; >> + for (i = DP_STREAM_0; i < max_stream; i++) { > > Why? I think the code was fine with getting up to DP_STREAM_MAX clocks. Sure.. will change max_stream -> DP_STREAM_MAX next version. > In fact, I'd rather use that instead of the hardcoded value for > determining how many streams can be there. Think of the old DTs which > didn't have extra stream clocks. We still need to support those. > The current logic only assigns num streams to dp->max_stream when desc->mst_streams == num_pixel_clks, otherwise set to 1 which mean sst. I would like to introduce a switch in the driver to control the number of streams, rather than having it fully determined by the DTs. Do you think it would be acceptable to use: dp->max_stream = min(num_pixel_clks, desc->mst_streams)? >> ctrl->pixel_clk[i] = devm_clk_get(dev, pixel_clks[i]); >> >> if (i == 0 && IS_ERR(ctrl->pixel_clk[i])) >> @@ -2750,14 +2752,26 @@ static int msm_dp_ctrl_clk_init(struct msm_dp_ctrl *msm_dp_ctrl) >> DRM_DEBUG_DP("stream %d pixel clock not exist", i); >> break; >> } >> + >> + ctrl->num_pixel_clks++; >> } >> >> return 0; >> } >> >> @@ -1234,6 +1248,10 @@ static int msm_dp_display_probe(struct platform_device *pdev) >> dp->msm_dp_display.is_edp = >> (dp->msm_dp_display.connector_type == DRM_MODE_CONNECTOR_eDP); >> dp->hpd_isr_status = 0; >> + dp->max_stream = 1; >> + >> + if (desc->mst_streams > 1) >> + dp->max_stream = desc->mst_streams; > > Here you can assign it from the DT resources. > >> >> mutex_init(&dp->plugged_lock); >> >> diff --git a/drivers/gpu/drm/msm/dp/dp_display.h b/drivers/gpu/drm/msm/dp/dp_display.h >> index a5c6ed5b18e4..b0cfdf215970 100644 >> --- a/drivers/gpu/drm/msm/dp/dp_display.h >> +++ b/drivers/gpu/drm/msm/dp/dp_display.h >> @@ -26,6 +26,7 @@ struct msm_dp { >> bool psr_supported; >> }; >> >> +int msm_dp_get_mst_max_stream(struct msm_dp *msm_dp_display); >> int msm_dp_display_get_modes(struct msm_dp *msm_dp_display); >> bool msm_dp_display_check_video_test(struct msm_dp *msm_dp_display); >> int msm_dp_display_get_test_bpp(struct msm_dp *msm_dp_display); >> >> -- >> 2.43.0 >> >