Re: [PATCH v2 00/38] drm/msm/dp: Add MST support for MSM chipsets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 2025/6/9 20:36, Dmitry Baryshkov wrote:
On Mon, Jun 09, 2025 at 08:21:19PM +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.

Which means that you didn't validate the MST interaction with the USB-C
stack (there is a significant difference in the way HPD event is handled
in the Linux kernel).

Yes. this patch series not test with USB-DP. Actually, our initial plan was 2x2 MST on SA8775P and 4 MST on ACS8300. All of them are native DP interface, not USB-DP. So can we only support SA8775P/QCS8300 in this series. We don't plan to support other platform in this patch series.
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/seriedds/142010/ (v2 to fix up HPD)

This series has serious concerns and most likely will not be merged. Not
to mention that the URL is invalid.

Got it. Sorry for the typo in the URL. So should we drop this patch series or wait the state machine rework from Jessica zhang ?

Bindings for the pixel clock for additional stream is available at :

[2] : https://patchwork.freedesktop.org/series/142016/

This series needs another revision.

Got it.
Not to mention that I plan to land [3] this cycle

[3] http://lore.kernel.org/dri-devel/20250518-fd-dp-audio-fixup-v6-0-2f0ec3ec000d@xxxxxxxxxxxxxxxx


Got it. will rebase on this patch series.
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

Validation was done on the latest linux-next on top of above changes and
both FB console and weston compositors were validated with these changes.

Validation should be using IGT for testing. Please ensure that there are
no regressions.


To: Rob Clark <robin.clark@xxxxxxxxxxxxxxxx>
To: Dmitry Baryshkov <lumag@xxxxxxxxxx>
To: Abhinav Kumar <abhinav.kumar@xxxxxxxxx>
To: Jessica Zhang <jessica.zhang@xxxxxxxxxxxxxxxx>
To: Sean Paul <sean@xxxxxxxxxx>
To: Marijn Suijten <marijn.suijten@xxxxxxxxxxxxxx>
To: David Airlie <airlied@xxxxxxxxx>
To: Simona Vetter <simona@xxxxxxxx>
Cc: linux-arm-msm@xxxxxxxxxxxxxxx
Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx
Cc: freedreno@xxxxxxxxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx

Signed-off-by: Yongxing Mou <quic_yongmou@xxxxxxxxxxx>
---
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@xxxxxxxxxxx/

---
Abhinav Kumar (35):
       drm/msm/dp: split msm_dp_panel_read_sink_caps() into two parts and drop panel drm_edid
       drm/msm/dp: remove dp_display's dp_mode and use dp_panel's instead
       drm/msm/dp: break up dp_display_enable into two parts
       drm/msm/dp: re-arrange dp_display_disable() into functional parts
       drm/msm/dp: allow dp_ctrl stream APIs to use any panel passed to it
       drm/msm/dp: move the pixel clock control to its own API
       drm/msm/dp: split dp_ctrl_off() into stream and link parts
       drm/msm/dp: make bridge helpers use dp_display to allow re-use
       drm/msm/dp: separate dp_display_prepare() into its own API
       drm/msm/dp: introduce the max_streams for dp controller
       drm/msm/dp: introduce stream_id for each DP panel
       drm/msm/dp: add support for programming p1/p2/p3 register block
       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 program mst support in mainlink
       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 to send vcpf packets in dp controller
       drm/msm/dp: always program MST_FIFO_CONSTANT_FILL for MST
       drm/msm/dp: abstract out the dp_display stream helpers to accept a panel
       drm/msm/dp: move link related operations to dp_display_unprepare()
       drm/msm/dp: replace power_on with active_stream_cnt for dp_display
       drm/msm/dp: make the SST bridge disconnected when mst is active
       drm/msm/dp: add an API to initialize MST on sink side
       drm/msm/dp: skip reading the EDID for MST cases
       drm/msm/dp: add dp_display_get_panel() to initialize DP panel
       drm/msm/dp: add dp_mst_drm to manage DP MST bridge operations
       drm/msm/dp: add connector abstraction for DP MST
       drm/msm/dp: add HPD callback for dp MST
       drm/msm: add support for non-blocking commits
       drm/msm: initialize DRM MST encoders for DP controllers
       drm/msm/dp: initialize dp_mst module for each DP MST controller
       drm/msm/dpu: use msm_dp_get_mst_intf_id() to get the intf id
       drm/msm/dp: mark ST_DISCONNECTED only if all streams are disabled
       drm/msm/dp: fix the intf_type of MST interfaces

Yongxing Mou (3):
       drm/msm/dp: Add catalog support for 3rd/4th stream MST
       drm/msm/dp: propagate MST state changes to dp mst module
       drm/msm/dp: Add MST stream support for SA8775P DP controller 0 and 1

  drivers/gpu/drm/msm/Makefile                       |    3 +-
  .../drm/msm/disp/dpu1/catalog/dpu_8_4_sa8775p.h    |    8 +-
  drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c        |   21 +-
  drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h        |    2 +
  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c            |   72 +-
  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h            |    2 +-
  drivers/gpu/drm/msm/dp/dp_audio.c                  |    2 +-
  drivers/gpu/drm/msm/dp/dp_catalog.c                |  558 ++++++++--
  drivers/gpu/drm/msm/dp/dp_catalog.h                |   64 +-
  drivers/gpu/drm/msm/dp/dp_ctrl.c                   |  474 ++++++---
  drivers/gpu/drm/msm/dp/dp_ctrl.h                   |   22 +-
  drivers/gpu/drm/msm/dp/dp_display.c                |  510 +++++++---
  drivers/gpu/drm/msm/dp/dp_display.h                |   33 +-
  drivers/gpu/drm/msm/dp/dp_drm.c                    |   53 +-
  drivers/gpu/drm/msm/dp/dp_drm.h                    |   12 -
  drivers/gpu/drm/msm/dp/dp_mst_drm.c                | 1065 ++++++++++++++++++++
  drivers/gpu/drm/msm/dp/dp_mst_drm.h                |  106 ++
  drivers/gpu/drm/msm/dp/dp_panel.c                  |   66 +-
  drivers/gpu/drm/msm/dp/dp_panel.h                  |   10 +-
  drivers/gpu/drm/msm/dp/dp_reg.h                    |   46 +-
  drivers/gpu/drm/msm/msm_atomic.c                   |    3 +
  drivers/gpu/drm/msm/msm_drv.h                      |   19 +
  drivers/gpu/drm/msm/msm_kms.c                      |    2 +
  23 files changed, 2725 insertions(+), 428 deletions(-)
---
base-commit: 475c850a7fdd0915b856173186d5922899d65686
change-id: 20250609-msm-dp-mst-cddc2f61daee
prerequisite-message-id: <20250529-hpd_display_off-v1-0-ce33bac2987c@xxxxxxxxxxxxxxxx>
prerequisite-patch-id: a1f426b99b4a99d63daa9902cde9ee38ae1128d1
prerequisite-patch-id: ae9e0a0db8edd05da06f9673e9de56761654ed3c
prerequisite-patch-id: 7cb84491c6c3cf73480343218c543d090f8cb5e2
prerequisite-patch-id: f32638e79dd498db2075735392e85729b1b691fc
prerequisite-message-id: <20250530-dp_mst_bindings-v2-0-f925464d32a8@xxxxxxxxxxxxxxxx>
prerequisite-patch-id: e505c21f653c8e18ce83cad1fc787c13a6c8ed12
prerequisite-patch-id: cfdd5c37d38b2a4f1386af4021ba3920c6d8dcf8
prerequisite-patch-id: f4abdddcb90c8203044395f4768d794214fe3225
prerequisite-patch-id: 45013dfaf34856422b7b6b3d2ee42d81a917177b
prerequisite-patch-id: 2f35bedb0410bead1b66cbfaf51984fc7016828f

Best regards,
--
Yongxing Mou <quic_yongmou@xxxxxxxxxxx>







[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux