mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Yongxing Mou <yongxing.mou@oss.qualcomm.com>
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Rob Clark <robin.clark@oss.qualcomm.com>,
	Dmitry Baryshkov <lumag@kernel.org>,
	Abhinav Kumar <abhinav.kumar@linux.dev>,
	Sean Paul <sean@poorly.run>,
	Marijn Suijten <marijn.suijten@somainline.org>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Jessica Zhang <jesszhan0024@gmail.com>,
	linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org,
	freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	Abhinav Kumar <quic_abhinavk@quicinc.com>
Subject: Re: [PATCH RESEND v5 00/25] drm/msm/dp: Add MST support for MSM chipsets
Date: Wed, 26 Aug 2026 17:17:14 +0800	[thread overview]
Message-ID: <13ea4f40-5b99-4a8c-b287-b0117ffc4bf1@oss.qualcomm.com> (raw)
In-Reply-To: <vd7njp6lg3yzydwtqmaepjt5kik2akqfcpe26faowvu65pfkow@bieyxaivjcqz>



On 7/12/2026 7:04 PM, Dmitry Baryshkov wrote:
> On Mon, Jun 29, 2026 at 10:14:21PM +0800, Yongxing Mou wrote:
>> Add support for Multi-stream transport for MSM chipsets that allow
>> a single instance of DP controller to send multiple streams.
>>
>> This series has been validated on sa8775p ride platform using multiple
>> MST dongles and also daisy chain method on both DP0 and DP1 upto 1080P.
> 
> Type-C?
> 
Hi, I'm planning to send a new revision of the series, but it still 
won't include the Type-C APIs. There are two main reasons:
1.The Type-C flow and native DP will eventually use the same set of 
APIs, and the required changes are mostly in the DRM APIs themselves. 
Because of that, I'd prefer to discuss and enable Type-C support as part 
of the DRM API work rather than in this MST series. The MST flow itself 
is not fundamentally different.
2.I would prefer not to make this series depend on the DRM IRQ series. 
Keeping them independent should make it easier to iterate on the reviews 
and hopefully get the patches merged more quickly.

Regarding the final MST support, my current plan is to add the Type-C 
support back into this series once both series are close to their final 
form. At that point, we can bring in the complete MST solution with all 
the required pieces together.
>>
>> With 4x4K monitors, due to lack of layer mixers that combination will not
>> work but this can be supported as well after some rework on the DPU side.
>>
>> In addition, SST was re-validated with all these changes to ensure there
>> were no regressions.
>>
>> This patch series was made on top of:
>>
>> [1] : https://patchwork.freedesktop.org/series/167458/
>>
>> Overall, the patch series has been organized in the following way:
>>
>> 1) First set are a couple of fixes made while debugging MST but applicable
>> to SST as well so go ahead of everything else
>> 2) Prepare the DP driver to get ready to handle multiple streams. This is the bulk
>> of the work as current DP driver design had to be adjusted to make this happen.
>> 3) Finally, new files to handle MST related operations
>>
>> Note:
>> Validation for this series has so far been done on the latest linux-next
>> on LeMans, covering both FB console and Weston.
>>
>> Type-C MST support will be submitted shortly after this series.
> 
> You end up introducing issues which are fixed in those patches. The API
> changes might need to be submitted separately, but the rest should go
> through this patchset.
> 
Got it.
>> Signed-off-by: Yongxing Mou <yongxing.mou@oss.qualcomm.com>
>> ---
>> Changes in v5(fix comments from V4):
>> - Dropped early refactoring patches (v4 01-12); restructured as
>>    "move link-level teardown", "factor out _helper variants", etc.
>> - Dropped v4 39/39 (platform MST stream list); use DT pixel-clock
>>    count instead per Dmitry's request.
>> - Patch 02: Remove artificial max-stream limitation check.
>>    unify register naming (REG_DP1 vs MMSS_DP1).
>> - Patch 05: Calculate ACT wait time dynamically from mode parameters
>>    instead of hardcoded 20 ms.
>> - Patch 08: Replace start-slot loop with direct math; fix commit message.
>> - Patch 09: Add locking annotation "Must be called with
>>    msm_dp_mst::mst_lock held" to msm_dp_ctrl_push_vcpf().
>> - Patch 17: Rename prepared flag to link_ready.
>> - Patch 22: Move drm_dp_mst_atomic_check() call into msm_atomic.c.
>> - Patch 23: Replace bridge-based MST DRM model with encoder-based
>>    approach; remove redundant bridge layer between encoder and connector.
>> - Patch 24: Add drm_edid_free(); add FIXME for bpp negotiation.
>> - Patch 25: Use dp->plugged flag instead of link status for MST plug path routing.
>> - Link to v4: https://lore.kernel.org/r/20260410-msm-dp-mst-v4-0-b20518dea8de@oss.qualcomm.com
>>
>> Changes in v4:
>> - Fixed most comments from V3.
>> - Rebase onto HPD refactor V5.
>> - Fixed casing/formatting issues, for example: “mst”.
>> - Drop .mode_set() and set_mode in .atomic_enable().
>> - Rewrite commit messages that are unclear.
>> - Use the same API for MST link and SST link writes.
>> - Use the new drm_dp_dpcd_read_byte() / drm_dp_dpcd_write_byte() interfaces.
>> - Remove some unnecessary payload fields from the MST bridge.
>> - Remove some defensive NULL pointer checks.
>> - Reworked the patch order to make the series easier to follow.
>> - Add support for more platforms.
>> - Link to v3: https://lore.kernel.org/r/20250825-msm-dp-mst-v3-0-01faacfcdedd@oss.qualcomm.com
>>
>> Changes in v3: Fixed review comments from Dmitry
>> - Fixed lots of comments from series V1/V2.
>> - Rebased onto next-20250808.
>> - Rebased onto Jessica's HPD-refactor branch.
>> - Fixed formatting issues in commit messages under changes.
>> - Removed unnecessary one-line wrappers.
>> - Relocated MST-related .atomic_check() calls to their appropriate positions.
>> - Removed the logic related to slot checking in .mode_valid().
>> - Link to v2: https://lore.kernel.org/r/20250609-msm-dp-mst-v2-0-a54d8902a23d@quicinc.com
>>
>> Changes in v2: Fixed review comments from Dmitry
>> - Rebase on top of next-20250606
>> - Add all 4 streams pixel clks support and MST2/MST3 Link clk support
>> - Address the formatting issues mentioned in the review comments
>> - Drop the cache of msm_dp_panel->drm_edid cached
>> - Remove the one-line wrapper funtion and redundant conditional check
>> - Fixed the commit messgae descriptions of some patches
>> - Reordered the patches and renamed some functions and variables
>> - Link to v1: https://lore.kernel.org/all/20241205-dp_mst-v1-0-f
>> 8618d42a99a@quicinc.com/
>>
>> Signed-off-by: Yongxing Mou <yongxing.mou@oss.qualcomm.com>
>>
>> ---
>> Abhinav Kumar (19):
>>        drm/msm/dp: introduce stream_id for each DP panel
>>        drm/msm/dp: introduce max_streams for DP controller MST support
>>        drm/msm/dp: Add support for programming p1/p2/p3 register blocks
>>        drm/msm/dp: use stream_id to change offsets in dp_catalog
>>        drm/msm/dp: add support to send ACT packets for MST
>>        drm/msm/dp: Add support to enable MST in mainlink control
>>        drm/msm/dp: no need to update tu calculation for mst
>>        drm/msm/dp: Add support for MST channel slot allocation
>>        drm/msm/dp: Add support for sending VCPF packets in DP controller
>>        drm/msm/dp: Always program MST_FIFO_CONSTANT_FILL for MST use cases
>>        drm/msm/dp: move link-level teardown from display_disable to display_unprepare
>>        drm/msm/dp: factor out _helper variants of bridge ops accepting a panel
>>        drm/msm/dp: replace power_on with active_stream_cnt for dp_display
>>        drm/msm/dp: Mark the SST bridge disconnected when mst is active
>>        drm/msm/dp: add an API to initialize MST on sink side
>>        drm/msm/dp: add msm_dp_display_get_panel() to initialize DP panel
>>        drm/msm/dp: initialize dp_mst module for each DP MST controller
>>        drm/msm/dp: add connector abstraction for DP MST
>>        drm/msm/dp: add HPD callback for dp MST
>>
>> Yongxing Mou (6):
>>        drm/msm/dp: add link_ready to manage link-level operations
>>        drm/msm/dpu: initialize encoders per stream for DP MST
>>        drm/msm/dpu: expose dpu_encoder ops for DP MST reuse
>>        drm/msm/dpu: use msm_dp_get_mst_intf_id() to get the intf id
>>        drm/msm/dp: wire MST helpers into atomic check and commit paths
>>        drm/msm/dp: add dp_mst_drm to manage DP MST encoder operations
>>
>>   drivers/gpu/drm/msm/Makefile                |   3 +-
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c |  40 +-
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h |   8 +
>>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c     |  30 +-
>>   drivers/gpu/drm/msm/dp/dp_audio.c           |   2 +-
>>   drivers/gpu/drm/msm/dp/dp_ctrl.c            | 473 ++++++++++++++++++++--
>>   drivers/gpu/drm/msm/dp/dp_ctrl.h            |  17 +-
>>   drivers/gpu/drm/msm/dp/dp_display.c         | 394 +++++++++++++++----
>>   drivers/gpu/drm/msm/dp/dp_display.h         |  25 +-
>>   drivers/gpu/drm/msm/dp/dp_mst_drm.c         | 583 ++++++++++++++++++++++++++++
>>   drivers/gpu/drm/msm/dp/dp_mst_drm.h         |  14 +
>>   drivers/gpu/drm/msm/dp/dp_panel.c           | 197 ++++++++--
>>   drivers/gpu/drm/msm/dp/dp_panel.h           |  20 +-
>>   drivers/gpu/drm/msm/dp/dp_reg.h             |  68 ++++
>>   drivers/gpu/drm/msm/msm_atomic.c            |  14 +-
>>   drivers/gpu/drm/msm/msm_drv.h               |  19 +
>>   drivers/gpu/drm/msm/msm_kms.c               |   1 +
>>   17 files changed, 1718 insertions(+), 190 deletions(-)
>> ---
>> base-commit: e7d700e14934e68f86338c5610cf2ae76798b663
>> change-id: 20260410-msm-dp-mst-35130b6e8b84
>> prerequisite-message-id: <20260609-dp_mstclean-v7-0-ea04113e8233@oss.qualcomm.com>
>> prerequisite-patch-id: 1d440cb9fed2bdd66d8de0e1e20475f0fe166973
>> prerequisite-patch-id: be0f4b80697df7224c80362b161b8a9f0a542184
>> prerequisite-patch-id: eefa6e6353df301420feae1da704a9db2c2155f2
>> prerequisite-patch-id: 9e9095f82dd6c131c9f3c1de4fdb8a62bd65ca24
>> prerequisite-patch-id: 3e635f008f9b56823101abd9253905f078fcb3b5
>> prerequisite-patch-id: e39e0dc124ed043c7a419610ebe03ad105da27db
>> prerequisite-patch-id: 945af39213cd4241e1a5929fada04a9286aeb5db
>> prerequisite-patch-id: 898ae7e4582a6b31492c223e7dd167fb9ce78096
>> prerequisite-patch-id: 3887553893357c1ffbda99eb010801bc2166cbad
>> prerequisite-patch-id: 7ccd961fa3c6f925659dee7d7a5bd167c8e7331b
>> prerequisite-patch-id: be2bf918e0e87ec2ea999927f36bd172c498748e
>> prerequisite-patch-id: 6aacdabb2dd0536dc04da04f8419ae39e35f8b19
>> prerequisite-patch-id: a9f27eff8f643ff445810b17d670891928f5b416
>> prerequisite-patch-id: efd300a2b52715153b8c1c7407db696eb331594b
>> prerequisite-patch-id: 950abefc4862050ef606404977fd27c5dd2cbb2b
>>
>> Best regards,
>> -- 
>> Yongxing Mou <yongxing.mou@oss.qualcomm.com>
>>
> 


      reply	other threads:[~2026-08-26  9:17 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-29 14:14 Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 01/25] drm/msm/dp: introduce stream_id for each DP panel Yongxing Mou
2026-07-12 11:11   ` Dmitry Baryshkov
2026-08-21  9:26     ` Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 02/25] drm/msm/dp: introduce max_streams for DP controller MST support Yongxing Mou
2026-07-12 11:17   ` Dmitry Baryshkov
2026-08-26  7:48     ` Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 03/25] drm/msm/dp: Add support for programming p1/p2/p3 register blocks Yongxing Mou
2026-07-12 11:23   ` Dmitry Baryshkov
2026-08-21  9:27     ` Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 04/25] drm/msm/dp: use stream_id to change offsets in dp_catalog Yongxing Mou
2026-07-12 11:29   ` Dmitry Baryshkov
2026-06-29 14:14 ` [PATCH RESEND v5 05/25] drm/msm/dp: add support to send ACT packets for MST Yongxing Mou
2026-07-12 13:56   ` Dmitry Baryshkov
2026-08-26  7:48     ` Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 06/25] drm/msm/dp: Add support to enable MST in mainlink control Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 07/25] drm/msm/dp: no need to update tu calculation for mst Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 08/25] drm/msm/dp: Add support for MST channel slot allocation Yongxing Mou
2026-07-12 18:57   ` Dmitry Baryshkov
2026-08-26  7:48     ` Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 09/25] drm/msm/dp: Add support for sending VCPF packets in DP controller Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 10/25] drm/msm/dp: Always program MST_FIFO_CONSTANT_FILL for MST use cases Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 11/25] drm/msm/dp: move link-level teardown from display_disable to display_unprepare Yongxing Mou
2026-07-12 18:20   ` Dmitry Baryshkov
2026-08-25  6:50     ` Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 12/25] drm/msm/dp: factor out _helper variants of bridge ops accepting a panel Yongxing Mou
2026-07-12 18:43   ` Dmitry Baryshkov
2026-06-29 14:14 ` [PATCH RESEND v5 13/25] drm/msm/dp: replace power_on with active_stream_cnt for dp_display Yongxing Mou
2026-07-12 18:51   ` Dmitry Baryshkov
2026-08-26  7:48     ` Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 14/25] drm/msm/dp: Mark the SST bridge disconnected when mst is active Yongxing Mou
2026-07-12 21:00   ` Dmitry Baryshkov
2026-08-26  7:49     ` Yongxing Mou
2026-07-12 21:03   ` Dmitry Baryshkov
2026-06-29 14:14 ` [PATCH RESEND v5 15/25] drm/msm/dp: add an API to initialize MST on sink side Yongxing Mou
2026-07-12 21:35   ` Dmitry Baryshkov
2026-08-26  7:48     ` Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 16/25] drm/msm/dp: add msm_dp_display_get_panel() to initialize DP panel Yongxing Mou
2026-07-12 21:56   ` Dmitry Baryshkov
2026-06-29 14:14 ` [PATCH RESEND v5 17/25] drm/msm/dp: add link_ready to manage link-level operations Yongxing Mou
2026-07-12 23:46   ` Dmitry Baryshkov
2026-08-26  7:49     ` Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 18/25] drm/msm/dpu: initialize encoders per stream for DP MST Yongxing Mou
2026-07-12 23:55   ` Dmitry Baryshkov
2026-06-29 14:14 ` [PATCH RESEND v5 19/25] drm/msm/dp: initialize dp_mst module for each DP MST controller Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 20/25] drm/msm/dpu: expose dpu_encoder ops for DP MST reuse Yongxing Mou
2026-07-13  0:01   ` Dmitry Baryshkov
2026-08-26  7:48     ` Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 21/25] drm/msm/dpu: use msm_dp_get_mst_intf_id() to get the intf id Yongxing Mou
2026-07-13  0:09   ` Dmitry Baryshkov
2026-08-26  7:48     ` Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 22/25] drm/msm/dp: wire MST helpers into atomic check and commit paths Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 23/25] drm/msm/dp: add dp_mst_drm to manage DP MST encoder operations Yongxing Mou
2026-07-13  0:40   ` Dmitry Baryshkov
2026-08-26  7:49     ` Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 24/25] drm/msm/dp: add connector abstraction for DP MST Yongxing Mou
2026-07-13  0:52   ` Dmitry Baryshkov
2026-08-25  6:29     ` Yongxing Mou
2026-06-29 14:14 ` [PATCH RESEND v5 25/25] drm/msm/dp: add HPD callback for dp MST Yongxing Mou
2026-07-13  0:54   ` Dmitry Baryshkov
2026-08-25  6:29     ` Yongxing Mou
2026-07-12 11:04 ` [PATCH RESEND v5 00/25] drm/msm/dp: Add MST support for MSM chipsets Dmitry Baryshkov
2026-08-26  9:17   ` Yongxing Mou [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=13ea4f40-5b99-4a8c-b287-b0117ffc4bf1@oss.qualcomm.com \
    --to=yongxing.mou@oss.qualcomm.com \
    --cc=abhinav.kumar@linux.dev \
    --cc=airlied@gmail.com \
    --cc=dmitry.baryshkov@oss.qualcomm.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=jesszhan0024@gmail.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lumag@kernel.org \
    --cc=marijn.suijten@somainline.org \
    --cc=quic_abhinavk@quicinc.com \
    --cc=robin.clark@oss.qualcomm.com \
    --cc=sean@poorly.run \
    --cc=simona@ffwll.ch \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®