mbox series

[00/23] drm/i915: Add support for FBs requiring a POT stride padding

Message ID 20210310221736.2963264-1-imre.deak@intel.com (mailing list archive)
Headers show
Series drm/i915: Add support for FBs requiring a POT stride padding | expand

Message

Imre Deak March 10, 2021, 10:17 p.m. UTC
An upcoming platform requires the stride of tiled display surfaces to be
power-of-two aligned. This patch adds support for this using the FB
remapping logic.

Until the functionality is fully enabled we keep testing it via the
vma selftests and by the last patch which forces the padding on for all
platforms where the FB remapping is possible.

The other goal of the changes is to reduce the size of intel_display.c,
starting to collect all FB plane specific functions to a separate
intel_fb.c file and to share more code between the FB creation and
commit time remapping logic.

For reference I also pushed the changes to:
https://github.com/ideak/linux/commits/fb_pot_remap

Imre Deak (23):
  drm/i915: Fix rotation setup during plane HW readout
  drm/i915/selftest: Fix error handling in igt_vma_remapped_gtt()
  drm/i915/selftest: Fix debug message in igt_vma_remapped_gtt()
  drm/i915: Make sure i915_ggtt_view is inited when creating an FB
  drm/i915/selftest: Make sure to init i915_ggtt_view in
    igt_vma_rotate_remap()
  drm/i915: Remove duplicate intel_surf_alignment() declaration
  drm/i915/intel_fb: Pull FB plane functions from intel_display_types.h
  drm/i915/intel_fb: Pull FB plane functions from skl_universal_plane.c
  drm/i915/intel_fb: Pull is_surface_linear() from
    intel_display.c/skl_universal_plane.c
  drm/i915/intel_fb: Pull FB plane functions from intel_sprite.c
  drm/i915/intel_fb: Pull FB plane functions from intel_display.c
  drm/i915/intel_fb: Unexport intel_fb_check_stride()
  drm/i915/intel_fb: s/dev_priv/i915/
  drm/i915/intel_fb: Factor out convert_plane_offset_to_xy()
  drm/i915/intel_fb: Factor out calc_plane_aligned_offset()
  drm/i915/intel_fb: Factor out calc_plane_normal_size()
  drm/i915/intel_fb: Factor out plane_calc_remap_info()
  drm/i915: Shrink the size of intel_remapped_plane_info struct
  drm/i915/selftest: Unify use of intel_remapped_plane_info in
    igt_vma_rotate_remap()
  drm/i915: s/stride/src_stride/ in the intel_remapped_plane_info struct
  drm/i915: Add support for FBs requiring a POT stride alignment
  drm/i915/selftest: Add remap/rotate vma subtests when
    dst_stride!=width/height
  drm/i915: For-CI: Force remapping the FB with a POT aligned stride

 drivers/gpu/drm/i915/Makefile                 |    1 +
 drivers/gpu/drm/i915/display/i9xx_plane.c     |    1 +
 drivers/gpu/drm/i915/display/intel_cursor.c   |    1 +
 drivers/gpu/drm/i915/display/intel_display.c  |  833 +-------------
 drivers/gpu/drm/i915/display/intel_display.h  |   19 -
 .../drm/i915/display/intel_display_types.h    |   32 +-
 drivers/gpu/drm/i915/display/intel_fb.c       | 1012 +++++++++++++++++
 drivers/gpu/drm/i915/display/intel_fb.h       |   56 +
 drivers/gpu/drm/i915/display/intel_sprite.c   |   32 -
 drivers/gpu/drm/i915/display/intel_sprite.h   |    1 -
 .../drm/i915/display/skl_universal_plane.c    |   41 +-
 .../drm/i915/display/skl_universal_plane.h    |    2 -
 drivers/gpu/drm/i915/gt/intel_ggtt.c          |   58 +-
 drivers/gpu/drm/i915/i915_debugfs.c           |   16 +-
 drivers/gpu/drm/i915/i915_vma_types.h         |   12 +-
 drivers/gpu/drm/i915/selftests/i915_vma.c     |  217 +++-
 16 files changed, 1310 insertions(+), 1024 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/display/intel_fb.c
 create mode 100644 drivers/gpu/drm/i915/display/intel_fb.h