Re: [PATCH v7 0/9] drm/omap: Add virtual-planes support
From: Neil Armstrong
Date: Tue Nov 30 2021 - 11:35:05 EST
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