Message ID | 20240829-sm8650-v6-11-hmd-pocf-mdss-quad-upstream-8-v1-0-bdb05b4b5a2e@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | drm/msm: Support quad pipe with dual-DSI | expand |
On Thu, 29 Aug 2024 at 13:19, Jun Nie <jun.nie@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@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@linaro.org> >
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/ Signed-off-by: Jun Nie <jun.nie@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,