mbox series

[v6,00/15] drm/msm/dpu: be more friendly to X.org

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

Message

Dmitry Baryshkov Sept. 3, 2024, 3:22 a.m. UTC
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,

Comments

Dmitry Baryshkov Oct. 21, 2024, 12:17 p.m. UTC | #1
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,