Re: [PATCH v4 14/39] drm/msm/dp: introduce max_streams for DP controller MST support
From: Yongxing Mou
Date: Fri May 22 2026 - 04:03:33 EST
On 5/21/2026 8:07 PM, Dmitry Baryshkov wrote:
On Thu, May 21, 2026 at 07:34:32PM +0800, Yongxing Mou wrote:1. In some scenarios, even if the hardware supports up to 4-stream MST, we may not want to enable all streams (e.g., LeMans: 2xDSI + 4xMST + 2xMST, but it only has a 6-layer mixer).
On 4/12/2026 1:59 AM, Dmitry Baryshkov wrote:
On Fri, Apr 10, 2026 at 05:33:49PM +0800, Yongxing Mou wrote:Sure.. will change max_stream -> DP_STREAM_MAX next version.
From: Abhinav Kumar <quic_abhinavk@xxxxxxxxxxx>
@@ -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.
In fact, I'd rather use that instead of the hardcoded value forThe current logic only assigns num streams to dp->max_stream when
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.
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.
Why?
2. Currently, the DTs for all platforms have already been merged, and for some legacy platforms, not sure if all platforms MST will work.
If my understanding is incorrect, please feel free to correct me. Thanks.
Do you think it would be acceptable to use:
dp->max_stream = min(num_pixel_clks, desc->mst_streams)?
We know that num_pixel_clks <= desc->mst_streams. Otherwise DT is wrong
and should not have been comitted. So, the min(a,b) has a known return
value of num_pixel_clks.
ctrl->pixel_clk[i] = devm_clk_get(dev, pixel_clks[i]);
if (i == 0 && IS_ERR(ctrl->pixel_clk[i]))