As discussed on IRC, change dpu_plane implementation to be virtual: register unified planes and select backing SSPP block at runtime. In future this would allow implementing multirect (or wide planes) in a proper way, without requiring zpos hacks or additional userspace handling. The last patch adds a compile time #if to select between virtual planes or traditional planes. It is implemented this way to ease testing of this patchset. In the next versions it is going to be morphed into the proper module parameter. The following changes since commit e88bbc91849b2bf57683119c339e52916d34433f: Revert "drm/msm/mdp5: provide dynamic bandwidth management" (2021-06-23 14:06:20 -0700) are available in the Git repository at: https://git.linaro.org/people/dmitry.baryshkov/kernel.git dpu-virtual-planes for you to fetch changes up to c0b20040e9b265e77cbf02c5b5312090b3677f81: drm/msm/dpu: switch into using virtual planes (2021-06-24 17:50:54 +0300) ---------------------------------------------------------------- Dmitry Baryshkov (17): drm/msm/dpu: move LUT levels out of QOS config drm/msm/dpu: remove pipe_qos_cfg from struct dpu_plane drm/msm/dpu: drop pipe_name from struct dpu_plane drm/msm/dpu: remove stage_cfg from struct dpu_crtc drm/msm/dpu: rip out master planes support drm/msm/dpu: move dpu_hw_pipe_cfg out of struct dpu_plane drm/msm/dpu: don't cache pipe->cap->features in dpu_plane drm/msm/dpu: don't cache pipe->cap->sblk in dpu_plane drm/msm/dpu: rip out debugfs support from dpu_plane drm/msm/dpu: simplify colorspace conversion setup drm/msm/dpu: drop src_split and multirect check from dpu_crtc_atomic_check drm/msm/dpu: add list of supported formats to the DPU caps drm/msm/dpu: simplify DPU_SSPP features checks drm/msm/dpu: do not limit the zpos property drm/msm/dpu: add support for SSPP allocation to RM drm/msm/dpu: add support for virtualized planes drm/msm/dpu: switch into using virtual planes drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 215 ++------ drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 2 - drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 10 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 4 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 17 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h | 44 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c | 2 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h | 2 +- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 139 ++--- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 70 +-- drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 709 ++++++++++--------------- drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h | 42 +- drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 81 +++ drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h | 6 + 14 files changed, 560 insertions(+), 783 deletions(-)