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(-) -- 2.19.1