Hi

Am 09.07.26 um 13:50 schrieb Maxime Ripard:
drm_gem_simple_kms_reset_shadow_plane() implements the reset_plane
hook for simple-kms shadow-buffered planes. Since the reset hook
conflates initial state creation with hardware and software reset
during suspend/resume, convert it to the create_plane_state pattern.

Replace it with drm_gem_simple_kms_create_shadow_plane_state(), which
implements the create_plane_state hook using
drm_gem_create_shadow_plane_state(). Update
DRM_GEM_SIMPLE_DISPLAY_PIPE_SHADOW_PLANE_FUNCS accordingly.

Signed-off-by: Maxime Ripard <[email protected]>

Reviewed-by: Thomas Zimmermann <[email protected]>

---
  drivers/gpu/drm/drm_gem_atomic_helper.c | 15 ++++++++++-----
  include/drm/drm_gem_atomic_helper.h     |  5 +++--
  2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem_atomic_helper.c 
b/drivers/gpu/drm/drm_gem_atomic_helper.c
index 7ef67c2d77ce..ae854555fd12 100644
--- a/drivers/gpu/drm/drm_gem_atomic_helper.c
+++ b/drivers/gpu/drm/drm_gem_atomic_helper.c
@@ -448,21 +448,26 @@ void drm_gem_simple_kms_end_shadow_fb_access(struct 
drm_simple_display_pipe *pip
        drm_gem_end_shadow_fb_access(&pipe->plane, plane_state);
  }
  EXPORT_SYMBOL(drm_gem_simple_kms_end_shadow_fb_access);
/**
- * drm_gem_simple_kms_reset_shadow_plane - resets a shadow-buffered plane
+ * drm_gem_simple_kms_create_shadow_plane_state - creates shadow-buffered 
plane state
   * @pipe: the simple display pipe
   *
- * This function implements struct drm_simple_display_funcs.reset_plane
+ * This function implements struct 
drm_simple_display_pipe_funcs.create_plane_state
   * for shadow-buffered planes.
+ *
+ * Returns:
+ * A pointer to a new plane state on success, or an ERR_PTR()-encoded
+ * error code otherwise.
   */
-void drm_gem_simple_kms_reset_shadow_plane(struct drm_simple_display_pipe 
*pipe)
+struct drm_plane_state *
+drm_gem_simple_kms_create_shadow_plane_state(struct drm_simple_display_pipe 
*pipe)
  {
-       drm_gem_reset_shadow_plane(&pipe->plane);
+       return drm_gem_create_shadow_plane_state(&pipe->plane);
  }
-EXPORT_SYMBOL(drm_gem_simple_kms_reset_shadow_plane);
+EXPORT_SYMBOL(drm_gem_simple_kms_create_shadow_plane_state);
/**
   * drm_gem_simple_kms_duplicate_shadow_plane_state - duplicates 
shadow-buffered plane state
   * @pipe: the simple display pipe
   *
diff --git a/include/drm/drm_gem_atomic_helper.h 
b/include/drm/drm_gem_atomic_helper.h
index 43657d8fb1c8..8a3bb27233db 100644
--- a/include/drm/drm_gem_atomic_helper.h
+++ b/include/drm/drm_gem_atomic_helper.h
@@ -131,11 +131,12 @@ void drm_gem_end_shadow_fb_access(struct drm_plane 
*plane, struct drm_plane_stat
int drm_gem_simple_kms_begin_shadow_fb_access(struct drm_simple_display_pipe *pipe,
                                              struct drm_plane_state 
*plane_state);
  void drm_gem_simple_kms_end_shadow_fb_access(struct drm_simple_display_pipe 
*pipe,
                                             struct drm_plane_state 
*plane_state);
-void drm_gem_simple_kms_reset_shadow_plane(struct drm_simple_display_pipe 
*pipe);
+struct drm_plane_state *
+drm_gem_simple_kms_create_shadow_plane_state(struct drm_simple_display_pipe 
*pipe);
  struct drm_plane_state *
  drm_gem_simple_kms_duplicate_shadow_plane_state(struct 
drm_simple_display_pipe *pipe);
  void drm_gem_simple_kms_destroy_shadow_plane_state(struct 
drm_simple_display_pipe *pipe,
                                                   struct drm_plane_state 
*plane_state);
@@ -148,10 +149,10 @@ void drm_gem_simple_kms_destroy_shadow_plane_state(struct drm_simple_display_pip
   * functions.
   */
  #define DRM_GEM_SIMPLE_DISPLAY_PIPE_SHADOW_PLANE_FUNCS \
        .begin_fb_access = drm_gem_simple_kms_begin_shadow_fb_access, \
        .end_fb_access = drm_gem_simple_kms_end_shadow_fb_access, \
-       .reset_plane = drm_gem_simple_kms_reset_shadow_plane, \
+       .create_plane_state = drm_gem_simple_kms_create_shadow_plane_state, \
        .duplicate_plane_state = 
drm_gem_simple_kms_duplicate_shadow_plane_state, \
        .destroy_plane_state = drm_gem_simple_kms_destroy_shadow_plane_state
#endif /* __DRM_GEM_ATOMIC_HELPER_H__ */


--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, (HRB 36809, AG Nürnberg)


Reply via email to