mbox series

[v2,0/6] drm: rcar-du: Rework CRTC and groups for atomic commits

Message ID 20190315170110.23280-1-kieran.bingham+renesas@ideasonboard.com (mailing list archive)
Headers show
Series drm: rcar-du: Rework CRTC and groups for atomic commits | expand

Message

Kieran Bingham March 15, 2019, 5:01 p.m. UTC
The DU processes the CRTC and group objects, with various operations storing
state of those objects globally, along with performing configuration operations
in the atomic_begin handlers.

This series aims to refactor the code to establish a private object for the
group state, and move all hardware operations to occur only in the commit_tail
code paths.

The sequence of register writes to the DU is confirmed to be unchanged by this
series, however follow on patches after this may begin to modify the sequences.
Because of this, these patches are kept as their own series.

Note that the rcar_du_crtc_get() in rcar_du_crtc_atomic_begin() is safe to
remove, as the call to rcar_du_vsp_atomic_begin() now maps to a no-op, but is
kept for API integrity, though it could now be removed.

Removal of rcar_du_vsp_atomic_begin() and indeed rcar_du_crtc_atomic_begin()
could occur in a later patch, but needs to be synchronised with VSP update.

These patches are based on top of my previous cleanup series, which is on top
of drm-next.

Kieran Bingham (6):
  drm: rcar-du: Link CRTCs to the DU device
  drm: rcar-du: Add CRTC standby helpers
  drm: rcar-du: Add pre/post commit CRTC helpers
  drm: rcar-du: Provide for_each_group helper
  drm: rcar-du: Create a group state object
  drm: rcar-du: Add group hooks for atomic-commit

 drivers/gpu/drm/rcar-du/rcar_du_crtc.c  | 150 +++++++++++--------
 drivers/gpu/drm/rcar-du/rcar_du_crtc.h  |  14 +-
 drivers/gpu/drm/rcar-du/rcar_du_drv.h   |   5 +
 drivers/gpu/drm/rcar-du/rcar_du_group.c | 182 +++++++++++++++++++-----
 drivers/gpu/drm/rcar-du/rcar_du_group.h |  36 ++++-
 drivers/gpu/drm/rcar-du/rcar_du_kms.c   |  49 +++----
 drivers/gpu/drm/rcar-du/rcar_du_vsp.c   |   2 +-
 7 files changed, 305 insertions(+), 133 deletions(-)