@@ -792,6 +792,18 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
primary_planes[primary_planes_idx++] = plane;
}
+ if (dpu_use_virtual_planes) {
+ for (i = 0; i < catalog->sspp_count; i++) {
+ plane = dpu_plane_init_virtual(dev, DRM_PLANE_TYPE_OVERLAY,
+ (1UL << max_crtc_count) - 1);
+ if (IS_ERR(plane)) {
+ DPU_ERROR("dpu_plane_init failed\n");
+ ret = PTR_ERR(plane);
+ return ret;
+ }
+ }
+ }
+
max_crtc_count = min(max_crtc_count, primary_planes_idx);
/* Create one CRTC per encoder */
Since we have enabled sharing of SSPP blocks between two planes, it is now possible to use twice as much planes as there are hardware SSPP blocks. Create additional overlay planes. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)