[PATCH 00/21] drm/msm: Support quad pipe with dual-DSI

Dmitry Baryshkov dmitry.baryshkov at linaro.org
Thu Aug 29 12:22:54 UTC 2024


On Thu, 29 Aug 2024 at 13:19, Jun Nie <jun.nie at linaro.org> wrote:
>
> 2 SSPP and dual-DSI interface are need for super wide DSI panel.
> This patch set make changes to DSI driver and extend pipes
> and related mixer blending logic to support quad pipe.
>
> This patch set is based on virtual plane patch set:
> https://patchwork.freedesktop.org/series/131109/

Is this "depends" or "used some ideas" or something else?

If it depends, please say that clearly, including the revision of the patchset.

Next, generic feedback for the series.
- Please provide detailed commit messages. Describe why the change is
being introduced.
- Please grok why and how SSPPs are handled in non-virtual and
especially in a virtual case. Feel free to ask questions, but I really
don't expect to see patches assuming single SSPP per pair of pipes.
- Please drop all unrelated changes. DSI, DSC, etc must go to separate series.
- Please take care about the commit trailers. If the change is a fix,
it should have the Fixes trailer.

Next, please restructure the series. The patches should be ordered and
split in a logical order.
Start with a commit that gets rid of r_pipe. Don't increase
PIPES_PER_STAGE, etc, just loop over two pipes. Note how the code
handles r_pipe->sspp and keep that unchanged. Be sure to handle odd
plane sizes correctly. You can not just divide width by two to get the
pipe width.
Next, split PIPES_PER_STAGE into two defines: one for mixer code, one
for the pipes per plane.
Next come additional patches, like PP stride, etc.
Then extract the code to handle a single LM pair.
Finally introduce quad pipe, allocate two sets of LM configs, etc.
Each LM config still gets two pipes per plane. Each plane can have 4
pipes. Be extremely careful with splitting of the plane framebuffer
into the pipe configuration. Both x coordinate and width can be odd.
And a pair of pipes can not cross the screen middle line.

>
> Signed-off-by: Jun Nie <jun.nie at linaro.org>
> ---
> Jonathan Marek (3):
>       drm/msm/dsi: add support to DSI CTRL v2.8.0
>       drm/msm/dsi: fix DSC width for the bonded DSI case
>       drm/msm/dsi: support DSC configurations with slice_per_pkt > 1
>
> Jun Nie (18):
>       drm/msm/dsi: pass the right width to dsc
>       drm/msm/dpu: polish log for resource allocation
>       drm/msm/dpu: Add utility to get mixer number
>       drm/msm/dpu: Support dynamic DSC number
>       drm/msm/dpu: decide right side per last bit
>       drm/msm/dpu: request more mixer for 4K+ DSC case
>       drm/msm/dpu: fix lm number counter for quad-pipe
>       drm/msm/dpu: Support 4 mixers at most
>       drm/msm/dpu: switch RM to use crtc_id rather than enc_id for allocation
>       drm/msm/dpu: Support quad pipe in header files
>       drm/msm/dpu: Support quad-pipe in SSPP checking
>       drm/msm/dpu: support plane splitting in quad-pipe case
>       drm/msm/dpu: support SSPP assignment for quad-pipe case
>       drm/msm/dpu: setup pipes with 2 set of stage config
>       drm/msm/dpu: blend pipes by left and right
>       drm/msm/dpu: bind correct pingpong for quad pipe
>       drm/msm/dpu: support quad pipe in general operations
>       drm/msm/dpu: revise debug info to support quad pipe
>
>  drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c         | 119 ++++---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h         |  11 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c      |  73 +++--
>  drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h |   3 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h   |   1 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c       |  19 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h       |   4 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h      |   2 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h      |  11 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h          |  12 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c        | 385 ++++++++++++-----------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h        |  30 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c           | 209 ++++++------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h           |  19 +-
>  drivers/gpu/drm/msm/dsi/dsi.h                    |   3 +-
>  drivers/gpu/drm/msm/dsi/dsi_host.c               |  54 ++--
>  drivers/gpu/drm/msm/dsi/dsi_manager.c            |   2 +-
>  include/drm/drm_mipi_dsi.h                       |   2 +
>  18 files changed, 566 insertions(+), 393 deletions(-)
> ---
> base-commit: 9651fbfb684e7a1288dbae3bf1f15cd484c0217a
> change-id: 20240829-sm8650-v6-11-hmd-pocf-mdss-quad-upstream-8-d2d6b3eb1d57
>
> Best regards,
> --
> Jun Nie <jun.nie at linaro.org>
>


-- 
With best wishes
Dmitry


More information about the Freedreno mailing list