Hi Tomi, On 17/11/2021 15:19, Neil Armstrong wrote: > This patchset is the follow-up the v4 patchset from Benoit Parrot at [1]. > > This patch series adds virtual-plane support to omapdrm driver to allow the use > of display wider than 2048 pixels. > > In order to do so we introduce the concept of hw_overlay which can then be > dynamically allocated to a plane. When the requested output width exceed what > be supported by one overlay a second is then allocated if possible to handle > display wider then 2048. > > This series replaces an earlier series which was DT based and using statically > allocated resources. > > This implementation is inspired from the work done in msm/disp/mdp5 > driver. > > Changes since v6 at [3]: > - Patch 1: Added comment for drm_atomic_helper_check_plane_state, added Reviewed-by > - Patch 2: added Reviewed-by > - Patch 3: added Reviewed-by > - Patch 4: added Reviewed-by > - Patch 5: added Reviewed-by > - Patch 6: No changes > - Patch 7: No changes > - Patch 8: Reformatted omap_plane_atomic_print_state() output for overlays > - Patch 9: Added a comment of the utility of the local omap_atomic_update_normalize_zpos() + atomic_print_state() reformat > > Changes since v5 at [2]: > - Patch 1: renamed width/height_fp to max_width/height > - Patch 2: no changes > - Patch 3: removed possible_crtcs stuff, > added cleanup on failure to allocate, > removed name in omap_plane struct & plane_id_to_name in omap_plane.c, > switched all omap_plane->name to plane->name or omap_plane->id > - Patch 4: aligned omap_plane_atomic_duplicate_state the the crtc style > - Patch 5: removed glob_obj_lock & reformated global state declaration in omap_drv.h > - Patch 6: moved drm_atomic_helper_check_plane_state() from atomic_check() in separate commit, > removed zpos change, updated debug messages to be useful, > renamed omap_overlay_disable() to omap_overlay_update_state(), > added useful comments for omap_overlay_assign() & omap_overlay_update_state(), > simplified omap_overlay_assign() & omap_overlay_update_state() for actual use-cases, > refactored omap_plane_atomic_check() changes to be cleaner & simpler > - Patch 7: no changes (except possible_crtcs print removal) > - Patch 8: Reformated omap_plane_atomic_check() & omap_overlay_assign() changes to match previous patches layout > > Changes since v4 at [1]: > - rebased on v5.15-rc2 > - adapted to drm_atomic_get_new/old_plane_state() > - tested on Beagle-x15 > - checked for non-regression on Beagle-x15 > - removed unused "state" variable in omap_global_state > > [1] https://lore.kernel.org/all/20181012201703.29065-1-bparrot@xxxxxx/ > [2] https://lore.kernel.org/all/20210923070701.145377-1-narmstrong@xxxxxxxxxxxx/ > [3] https://lore.kernel.org/all/20211018142842.2511200-1-narmstrong@xxxxxxxxxxxx > > Benoit Parrot (8): > drm/omap: Add ability to check if requested plane modes can be > supported > drm/omap: Add ovl checking funcs to dispc_ops > drm/omap: introduce omap_hw_overlay > drm/omap: omap_plane: subclass drm_plane_state > drm/omap: Add global state as a private atomic object > drm/omap: dynamically assign hw overlays to planes > drm/omap: add plane_atomic_print_state support > drm/omap: Add a 'right overlay' to plane state > > Neil Armstrong (1): > drm/omap: add sanity plane state check > > drivers/gpu/drm/omapdrm/Makefile | 1 + > drivers/gpu/drm/omapdrm/dss/dispc.c | 31 ++- > drivers/gpu/drm/omapdrm/dss/dss.h | 5 + > drivers/gpu/drm/omapdrm/omap_drv.c | 196 +++++++++++++- > drivers/gpu/drm/omapdrm/omap_drv.h | 24 ++ > drivers/gpu/drm/omapdrm/omap_fb.c | 33 ++- > drivers/gpu/drm/omapdrm/omap_fb.h | 4 +- > drivers/gpu/drm/omapdrm/omap_overlay.c | 212 +++++++++++++++ > drivers/gpu/drm/omapdrm/omap_overlay.h | 35 +++ > drivers/gpu/drm/omapdrm/omap_plane.c | 349 +++++++++++++++++++++---- > drivers/gpu/drm/omapdrm/omap_plane.h | 1 + > 11 files changed, 832 insertions(+), 59 deletions(-) > create mode 100644 drivers/gpu/drm/omapdrm/omap_overlay.c > create mode 100644 drivers/gpu/drm/omapdrm/omap_overlay.h > > > base-commit: 49c39ec4670a8f045729e3717af2e1a74caf89a5 > Gentle ping, Neil