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 3F5B03CAE9B for ; Fri, 21 Aug 2026 09:27:01 +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=1787304428; cv=none; b=j1GYK4wGspq8y5Y2detXIZdzG87wm48cWdlRSTZQRAqhsaFMuq7pVX+JhD2zZwH8Wsa/wgdYbtNALwwUw2CVxXCAOt3HizdZHfCMUrYIsAfBqzMC5wCdgaTny2xmrTGTqJrg5oz2HbS/GIdVEwxD2s3imqxuhRUruWlFyjzxzJA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787304428; c=relaxed/simple; bh=zhz5Eppg9gK9VKs9NQeg/l+USZdAtPwCXPJ500zxdFM=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=e3ze2lJqt0Tfuaf1O/5+kbIdRhRPn5fqt4I3hecdQFpi0L+Xv5ldocVbA+Bi1kFmhvV9ymF6yUvAKvi9zU/3nvlvzqlT4FjcGTGAnQw+bvHxBxDGEYcN+ql+HRukKV1DiGELsNptMhPNAtRjDER+WfrBm3+2JsZRtSB6BqN8ov4= 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=mEPiNhXG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZfIlHlpH; 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="mEPiNhXG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZfIlHlpH" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67L9LqY62324756 for ; Fri, 21 Aug 2026 09:26: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= y9FPPE5oV3345poAfpF+CAauvyxVxyljY3apmDwlfD4=; b=mEPiNhXGzw0ysy7k +JGVQ32GD8hEYY4EwMIzEh51h2pfifIrHMoDwRar33RCURAgNkY5pO5X2F2xeziC U3dBNJ2zngOPQ/ZOA14nYetNuAZz44Al5duIEEGMa1/hSyBJVoM5RLxLlBJeyYMI ba/K6+MbIxZyJ2ze9UrPPiu3LckHNstNKzYe4+5uQNbpRFNwTSa0nOZWM52JWEEw IX82CatVWc21pq8y2rE1g1Dmfvq9mL/7ikacboz6qC4Lgo+aIxN+MBG55001VE6z vuaOxOx0TztdYBhzniNVMfzn7TU9pNebY3lceLPYRGuKVQLql3EnxYcV3jhjfSQZ krhvaw== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g6gdf0vhc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Aug 2026 09:26:55 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-388b404eaa4so1195393a91.0 for ; Fri, 21 Aug 2026 02:26:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787304414; x=1787909214; 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=y9FPPE5oV3345poAfpF+CAauvyxVxyljY3apmDwlfD4=; b=ZfIlHlpHcEiC5gfp9+dk0AROM22YnneYFEIbl+ciJ5OtLMB/2UUhURofc8/Kqk1+jq 2Zg7UJn3sI+BML06R+wXav6wjhRx6floQaN3Oyd1y089YwVO7cGdjgqpYlCylAbrSeHw ybUJ0YA22a/MNcfzJZhiUrpY8QbLjNE0KDWyiJMec6oZ5D3Bnc2pcx/hK9ErtFPJFJWo 2YA7CyalpGzhdFTlvkj/lwq4FGCZRPK/FNsYo8mfxQPoY/bVYA9mg+EnU88jhawwVFp8 h+IfKqaLbJVDm+q8LxSkRoX61FD+6E6qldf0NlaqRcJUmVFmNzVQNc6c8o4hYlrGfTzG RtPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787304414; x=1787909214; 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=y9FPPE5oV3345poAfpF+CAauvyxVxyljY3apmDwlfD4=; b=QWK8iGfAVLcar0E0uSAWr/O3vyBP5QZJ8TEKsh4T9oKWF/KmvCDEdwYJhwkbLj7m9G oh54h6fqhkosyX9NROFNQoTGnQsgTL95F0kpR3O71Uo7DkA1VmuQZ2mTDcGXCFBqPlHO DFl4mYEW0EZkd4VPBtz62wrbv4FDAcE1JzkJIIvWrMkm7aTz6+huOO3CDLBrGP8s61jS 4luT6IyE5KdTQYpDWCL92nMUFhgsJ3TEL/pCGizpbz6OnuJWVTCJSxv0Kp3vosPqNcJi uWZ/MVV/YvFQafekocF1aVl7hMYwOz7V+cibtAstRyObfcYgPslT+MwOAaSH4MTsvkAo iK0g== X-Forwarded-Encrypted: i=1; AHgh+RqirxXBCDKOSvpb2RKEabVU8/5QNap5lJ+FNG9bEXpr59IdHa7hRxCObgUrKpP0dQzFjsbInxNyTIMbzb8=@vger.kernel.org X-Gm-Message-State: AFuF++mhC2e+O2nBZ7rhjUzm+szDcwHaUuyH/9KJ2wOeIYoa/qlUVbx8 iGVePKLQAmLU+jTnTuoYsyfbqsLgNLw/sxj/NW52zhacUCK1mE3CSZrb0eZHlZN1bilmX2+pkju 9D5Zdumlft2ZRY8VbXYc0HXypPFvIxegeRd2fIpTC9hUAI6M/XMFbvBAN1706w3N+DUU= X-Gm-Gg: AR+sD12pLpvpY0noTzGgozHNI/vMnzU3oSl8FQj6G5WcxKhrPfQ5zOcj4GuXF4xhQDY 1xExHYqYlcLPvwyV5lxsJ1lX0UoJe3jlUxM6J52dtFGGJLmS+IRw5aQbdXiB2yibgfpsF2mydEp az8pTUxBSxhzduhB7JC0rk5g6TADzNj/sixDmbCj4qKd5OJOEDJ4rMDx+r69I4JD93njFafAftT rKM2Tdfp+SE/jG8tY+84Mgg8Czj6P+Mikq4gcbsV5EdsHRfeU4wKDhHokixp9BBd6gXG/4V+z5H 2NNloZs5OZOLMuXkODR+fVFLDY5rZGcNboFtULGYrIhmE9K2YvGbJjC0dogI7PIqBqH1rc2Nbm9 rl26RuWUU4W/V0L8Jzu7nz8SZjGdMWuqEt2z+9lC7R6LpdiWfiDc4bsxmdQ+3yXEI3VmTpyM= X-Received: by 2002:a17:90b:3912:b0:392:e5b1:d833 with SMTP id 98e67ed59e1d1-395c3738b35mr8102080a91.13.1787304414049; Fri, 21 Aug 2026 02:26:54 -0700 (PDT) X-Received: by 2002:a17:90b:3912:b0:392:e5b1:d833 with SMTP id 98e67ed59e1d1-395c3738b35mr8102020a91.13.1787304413572; Fri, 21 Aug 2026 02:26:53 -0700 (PDT) Received: from [10.133.33.40] (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-395c4c37996sm2309454a91.16.2026.08.21.02.26.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 21 Aug 2026 02:26:52 -0700 (PDT) Message-ID: <7db3d44a-7efa-4eb8-a80b-d3b23850063b@oss.qualcomm.com> Date: Fri, 21 Aug 2026 17:26:47 +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 01/25] drm/msm/dp: introduce stream_id for each DP panel 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-1-2ed6aee1867a@oss.qualcomm.com> <7fjeip5h4jzvsuowvfgmnm6krh7tvulrv3l3laa65quscq2jzp@lor2elvhmhia> Content-Language: en-US From: Yongxing Mou In-Reply-To: <7fjeip5h4jzvsuowvfgmnm6krh7tvulrv3l3laa65quscq2jzp@lor2elvhmhia> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Authority-Analysis: v=2.4 cv=CsqPtH4D c=1 sm=1 tr=0 ts=6a8819df cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=lU6QALhYSBwYHZQzA1gA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODIxMDA2OSBTYWx0ZWRfX5cnyd+L8I451 CgTCEXkZb0LIOFHz94+HeFFlURKUd+vJKMkqixlsHPLhIHij6yLcRpxEMBHOTmHdbwOvTR3qGCW iGh0hQgP4LqrJfMyU+yfYZ6U+CZHPPfykHyD31NZ5+9ESthTqwqD/6l2fSAGlp6yy64XrA/D8Jy 3wOe1rakNn8VWc8tJsGyGwHtFxLvP84ioaw6phRzifz7L9P5vZzEloblgFQIDExXjtBZmK9T04N zjGjXdNtMHbznJTLbWAPY2RXRMhk8Y6nqB1IUl/XPwlkgxjvMmI0JuL72TtcGHFVYPSLmIHyp6Z We4I5JNeT36ioxCS0KwK9av/AzUTSbdbbT1lkdKS4Bq7svV73W7ajlHesSu4JRPjbNl2/POBDk8 XVEs43kAgcB6eJpqNcIh6watj3ko7UIwF1cQ0+Wxkmb+zRw3kb3zOJyjwworUJwilwnXhQ2lT73 DQFUtJY9EMsDomT1uYw== X-Proofpoint-ORIG-GUID: -UWL3IXCRnW55NA5wBjexF5BCJcBNZa1 X-Proofpoint-GUID: -UWL3IXCRnW55NA5wBjexF5BCJcBNZa1 X-Proofpoint-Spam-Info: AW1haW4tMjYwODIxMDA2OSBTYWx0ZWRfX+3AeS3gJ+K6+ C9ALVHSdUgVMeKMOHhm6tdzL3QS4mWLJSZeTI0uTAqUyxlQlEyNpqnJFDFJkgoFViwDOpHBcvBo HaIT2ENd2VTX5OKfACyP/RjAngsMsS4= 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-21_03,2026-08-21_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 malwarescore=0 clxscore=1015 adultscore=0 bulkscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608210069 On 7/12/2026 7:11 PM, Dmitry Baryshkov wrote: > On Mon, Jun 29, 2026 at 10:14:22PM +0800, Yongxing Mou wrote: >> From: Abhinav Kumar >> >> With MST, each DP controller can handle multiple streams. There shall be >> one dp_panel for each stream but the dp_display object shall be shared >> among them. To represent this abstraction, create a stream_id for each DP > > You are not creating IDs. > Got it. Will modify it next patchset. >> panel which shall be dynamically assigned to actual stream IDs by the MST >> path. For SST, default this to stream 0. >> >> In the MST path, panels are dynamically assigned to actual stream IDs at >> stream enable time by the MST layer. >> >> Use the stream ID to control the pixel clock of that respective stream by >> extending the clock handles and state tracking of the DP pixel clock to >> an array of max supported streams. The maximum streams currently is 4. >> >> Signed-off-by: Abhinav Kumar >> Signed-off-by: Yongxing Mou >> --- >> drivers/gpu/drm/msm/dp/dp_ctrl.c | 67 +++++++++++++++++++++++-------------- >> drivers/gpu/drm/msm/dp/dp_ctrl.h | 2 +- >> drivers/gpu/drm/msm/dp/dp_display.c | 2 +- >> drivers/gpu/drm/msm/dp/dp_panel.c | 1 + >> drivers/gpu/drm/msm/dp/dp_panel.h | 11 ++++++ >> 5 files changed, 55 insertions(+), 28 deletions(-) >> >> @@ -2188,38 +2188,39 @@ static bool msm_dp_ctrl_send_phy_test_pattern(struct msm_dp_ctrl_private *ctrl) >> return success; >> } >> >> -static int msm_dp_ctrl_on_pixel_clk(struct msm_dp_ctrl_private *ctrl, unsigned long pixel_rate) >> +static int msm_dp_ctrl_on_pixel_clk(struct msm_dp_ctrl_private *ctrl, unsigned long pixel_rate, >> + enum msm_dp_stream_id stream_id) >> { >> int ret; >> >> - ret = clk_set_rate(ctrl->pixel_clk, pixel_rate * 1000); >> + ret = clk_set_rate(ctrl->pixel_clk[stream_id], pixel_rate * 1000); >> if (ret) { >> DRM_ERROR("Failed to set pixel clock rate. ret=%d\n", ret); >> return ret; >> } >> >> - if (WARN_ON_ONCE(ctrl->stream_clks_on)) >> + if (WARN_ON_ONCE(ctrl->stream_clks_on[stream_id])) >> return 0; > > Is it an error, defensive coding, DT mismatch or something else? Why are > we warning the users _and_ returning success here? > This is primarily defensive code. The normal execution flow is not expected to reach this path, so we only print a warning here. >> >> - ret = clk_prepare_enable(ctrl->pixel_clk); >> + ret = clk_prepare_enable(ctrl->pixel_clk[stream_id]); >> if (ret) { >> DRM_ERROR("Failed to start pixel clocks. ret=%d\n", ret); >> return ret; >> } >> - ctrl->stream_clks_on = true; >> + ctrl->stream_clks_on[stream_id] = true; >> >> return ret; >> } >> >