Message ID | 20240903-dpu-mode-config-width-v6-0-617e1ecc4b7a@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | drm/msm/dpu: be more friendly to X.org | expand |
On Tue, 03 Sep 2024 06:22:43 +0300, Dmitry Baryshkov wrote: > Unlike other compositors X.org allocates a single framebuffer covering > the whole screen space. This is not an issue with the single screens, > but with the multi-monitor setup 5120x4096 becomes a limiting factor. > Check the hardware-bound limitations and lift the FB max size to > 16383x16383. > > > [...] Applied, thanks! [04/15] drm/msm/dpu: drop dpu_format_check_modified_format https://gitlab.freedesktop.org/lumag/msm/-/commit/a26991933c01 [05/15] drm/msm/dpu: drop dpu_format_populate_layout from dpu_plane_sspp_atomic_update https://gitlab.freedesktop.org/lumag/msm/-/commit/759bcfe8e710 [06/15] drm/msm/dpu: drop extra aspace checks in dpu_formats https://gitlab.freedesktop.org/lumag/msm/-/commit/ce357877e6df [07/15] drm/msm/dpu: drop msm_format from struct dpu_hw_fmt_layout https://gitlab.freedesktop.org/lumag/msm/-/commit/5e317a64967b [08/15] drm/msm/dpu: pass drm_framebuffer to _dpu_format_get_plane_sizes() https://gitlab.freedesktop.org/lumag/msm/-/commit/d13445bc61dc [09/15] drm/msm/dpu: move pitch check to _dpu_format_get_plane_sizes_linear() https://gitlab.freedesktop.org/lumag/msm/-/commit/d8cb42418207 [10/15] drm/msm/dpu: split dpu_format_populate_layout https://gitlab.freedesktop.org/lumag/msm/-/commit/b05093f4296a [11/15] drm/msm/dpu: make dpu_format_populate_addrs return void https://gitlab.freedesktop.org/lumag/msm/-/commit/4f3ec1e5e152 [12/15] drm/msm/dpu: move layout setup population out of dpu_plane_prepare_fb() https://gitlab.freedesktop.org/lumag/msm/-/commit/dc0def61a16e [13/15] drm/msm/dpu: check for the plane pitch overflow https://gitlab.freedesktop.org/lumag/msm/-/commit/707db375ecec [14/15] drm/msm/dpu: merge MAX_IMG_WIDTH/HEIGHT with DPU_MAX_IMG_WIDTH/HEIGHT https://gitlab.freedesktop.org/lumag/msm/-/commit/671cc420b5f8 [15/15] drm/msm/dpu: sync mode_config limits to the FB limits in dpu_plane.c https://gitlab.freedesktop.org/lumag/msm/-/commit/2261751d5f22 Best regards,
Unlike other compositors X.org allocates a single framebuffer covering the whole screen space. This is not an issue with the single screens, but with the multi-monitor setup 5120x4096 becomes a limiting factor. Check the hardware-bound limitations and lift the FB max size to 16383x16383. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- Changes in v6: - Fixed the commit subject of the resource assignment patch (Abhinav) - Reworked resource assignment to dpu_encoder_phys in dpu_encoder_virt_atomic_mode_set (Abhinav) - Fixed num_dspp check / hw_dspp assignment (Abhinav) - Moved dpu_encoder_assign_crtc_resources under the needs_modeset() check (Abhinav) - Link to v5: https://lore.kernel.org/r/20240625-dpu-mode-config-width-v5-0-501d984d634f@linaro.org Changes in v5: - Fix crash in the writeback code. - Link to v4: https://lore.kernel.org/r/20240624-dpu-mode-config-width-v4-0-1038c13da3a5@linaro.org Changes in v4: - Fix handling of the not visible planes with the FB being set, as detected via the kms_cursor_edge_walk test. - Link to v3: https://lore.kernel.org/r/20240614-dpu-mode-config-width-v3-0-29ec4069c99b@linaro.org Changes in v3: - Reoder the functions to pull up a fix to the start of the patchset (Abhinav) - Rename the _dpu_crtc_setup_lm_bounds() to _dpu_crtc_check_and_setup_lm_bounds() (Abhinav) - Make dpu_crtc_mode_valid() static. - Link to v2: https://lore.kernel.org/r/20240603-dpu-mode-config-width-v2-0-16af520575a6@linaro.org Changes in v2: - Added dpu_crtc_valid() to verify that 2*lm_width limit is enforced (Abhinav) - Link to v1: https://lore.kernel.org/r/20240319-dpu-mode-config-width-v1-0-d0fe6bf81bf1@linaro.org --- Dmitry Baryshkov (15): drm/msm/dpu: make sure phys resources are properly initialized drm/msm/dpu: move CRTC resource assignment to dpu_encoder_virt_atomic_check drm/msm/dpu: check for overflow in _dpu_crtc_setup_lm_bounds() drm/msm/dpu: drop dpu_format_check_modified_format drm/msm/dpu: drop dpu_format_populate_layout from dpu_plane_sspp_atomic_update drm/msm/dpu: drop extra aspace checks in dpu_formats drm/msm/dpu: drop msm_format from struct dpu_hw_fmt_layout drm/msm/dpu: pass drm_framebuffer to _dpu_format_get_plane_sizes() drm/msm/dpu: move pitch check to _dpu_format_get_plane_sizes_linear() drm/msm/dpu: split dpu_format_populate_layout drm/msm/dpu: make dpu_format_populate_addrs return void drm/msm/dpu: move layout setup population out of dpu_plane_prepare_fb() drm/msm/dpu: check for the plane pitch overflow drm/msm/dpu: merge MAX_IMG_WIDTH/HEIGHT with DPU_MAX_IMG_WIDTH/HEIGHT drm/msm/dpu: sync mode_config limits to the FB limits in dpu_plane.c drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 34 ++- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 68 +++--- .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 37 ++-- drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 243 +++++++-------------- drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h | 30 +-- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 4 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h | 2 - drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h | 2 + drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c | 4 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.h | 3 +- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 10 +- drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 50 ++--- drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h | 3 + drivers/gpu/drm/msm/msm_kms.h | 6 - 14 files changed, 201 insertions(+), 295 deletions(-) --- base-commit: ecc768a84f0b8e631986f9ade3118fa37852fef0 change-id: 20240318-dpu-mode-config-width-626d3c7ad52a Best regards,