[PATCH v5 00/15] drm/msm/dpu: Support quad pipe with dual-DSI
Jessica Zhang
quic_jesszhan at quicinc.com
Thu Jan 23 23:31:45 UTC 2025
On 1/17/2025 8:00 AM, Jun Nie wrote:
> 2 or more SSPPs and dual-DSI interface are need for super wide panel.
> And 4 DSC are preferred for power optimal in this case due to width
> limitation of SSPP and MDP clock rate constrain. This patch set
> extends number of pipes to 4 and revise related mixer blending logic
> to support quad pipe. All these changes depends on the virtual plane
> feature to split a super wide drm plane horizontally into 2 or more sub
> clip. Thus DMA of multiple SSPPs can share the effort of fetching the
> whole drm plane.
Hi Jun,
Please add me to the CC list of all future patchsets/revisions.
Thanks,
Jessica Zhang
>
> The first pipe pair co-work with the first mixer pair to cover the left
> half of screen and 2nd pair of pipes and mixers are for the right half
> of screen. If a plane is only for the right half of screen, only one
> or two of pipes in the 2nd pipe pair are valid, and no SSPP or mixer is
> assinged for invalid pipe.
>
> For those panel that does not require quad-pipe, only 1 or 2 pipes in
> the 1st pipe pair will be used. There is no concept of right half of
> screen.
>
> For legacy non virtual plane mode, the first 1 or 2 pipes are used for
> the single SSPP and its multi-rect mode.
>
> To test bonded DSI on SM8650, the 5 patches for active-CTL improvement
> are needed:
> https://gitlab.freedesktop.org/lumag/msm/-/commits/dpu-4k?ref_type=heads
>
> Changes in v5:
> - Iterate SSPP flushing within the required mixer pair, instead of all
> active mixers or specific mixer.
> - Limit qaud-pipe usage case to SoC with 4 or more DSC engines and 2
> interfaces case.
> - Polish commit messages and code comments.
> - Link to v4: https://lore.kernel.org/r/20250116-sm8650-v6-13-hmd-deckard-mdss-quad-upstream-33-v4-0-74749c6eba33@linaro.org
>
> Changes in v4:
> - Restrict SSPP flushing to the required mixer, instead of all active mixers.
> - Polish commit messages and code comments.
> - Rebase to latest msm/drm-next branch.
> - Move pipe checking patch to the top of patch set.
> - Link to v3: https://lore.kernel.org/dri-devel/20241219-sm8650-v6-13-hmd-deckard-mdss-quad-upstream-32-v3-0-92c7c0a228e3@linaro.org
>
> Changes in v3:
> - Split change in trace into a separate patch.
> - Rebase to latest msm-next branch.
> - Reorder patch sequence to make sure valid flag is set in earlier patch
> - Rectify rewrite patch to move logic change into other patch
> - Polish commit messages and code comments.
> - Link to v2: https://lore.kernel.org/dri-devel/20241009-sm8650-v6-11-hmd-pocf-mdss-quad-upstream-21-v2-0-76d4f5d413bf@linaro.org
>
> Changes in v2:
> - Revise the patch sequence with changing to 2 pipes topology first. Then
> prepare for quad-pipe setup, then enable quad-pipe at last.
> - Split DSI patches into other patch set.
> - Link to v1: https://lore.kernel.org/all/20240829-sm8650-v6-11-hmd-pocf-mdss-quad-upstream-8-v1-0-bdb05b4b5a2e@linaro.org
>
> Signed-off-by: Jun Nie <jun.nie at linaro.org>
> ---
> Jun Nie (15):
> drm/msm/dpu: check every pipe per capability
> drm/msm/dpu: Do not fix number of DSC
> drm/msm/dpu: configure DSC per number in use
> drm/msm/dpu: polish log for resource allocation
> drm/msm/dpu: decide right side per last bit
> drm/msm/dpu: fix mixer number counter on allocation
> drm/msm/dpu: switch RM to use crtc_id rather than enc_id for allocation
> drm/msm/dpu: bind correct pingpong for quad pipe
> drm/msm/dpu: Add pipe as trace argument
> drm/msm/dpu: handle pipes as array
> drm/msm/dpu: split PIPES_PER_STAGE definition per plane and mixer
> drm/msm/dpu: blend pipes per mixer pairs config
> drm/msm/dpu: support SSPP assignment for quad-pipe case
> drm/msm/dpu: support plane splitting in quad-pipe case
> drm/msm/dpu: Enable quad-pipe for DSC and dual-DSI case
>
> drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 88 +++--
> drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 8 +-
> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 75 +++--
> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 2 +-
> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 2 +-
> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h | 2 +
> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 12 +-
> drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 404 ++++++++++++++---------
> drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h | 12 +-
> drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 215 ++++++------
> drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h | 32 +-
> drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 10 +-
> 12 files changed, 517 insertions(+), 345 deletions(-)
> ---
> base-commit: 793ba0dd2dc6a38180a82d0ad0c58920bcf595b5
> change-id: 20250116-sm8650-v6-13-hmd-deckard-mdss-quad-upstream-33-fa9d24d27c81
>
> Best regards,
> --
> Jun Nie <jun.nie at linaro.org>
>
More information about the Freedreno
mailing list