The drm_atomic_helper_bridge_reset() helper is deprecated in favour
of the new atomic_create_state callback.

Add drm_atomic_helper_bridge_create_state() as the counterpart helper
for this new callback.

Signed-off-by: Maxime Ripard <[email protected]>
---
 drivers/gpu/drm/drm_atomic_state_helper.c | 25 +++++++++++++++++++++++++
 include/drm/drm_atomic_state_helper.h     |  2 ++
 2 files changed, 27 insertions(+)

diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c 
b/drivers/gpu/drm/drm_atomic_state_helper.c
index f0688f2d83fe..b99dedbc4140 100644
--- a/drivers/gpu/drm/drm_atomic_state_helper.c
+++ b/drivers/gpu/drm/drm_atomic_state_helper.c
@@ -925,5 +925,30 @@ drm_atomic_helper_bridge_reset(struct drm_bridge *bridge)
 
        __drm_atomic_helper_bridge_state_init(bridge_state, bridge);
        return bridge_state;
 }
 EXPORT_SYMBOL(drm_atomic_helper_bridge_reset);
+
+/**
+ * drm_atomic_helper_bridge_create_state - default 
&drm_bridge_funcs.atomic_create_state hook for bridges
+ * @bridge: bridge object
+ *
+ * Allocates and initializes pristine @drm_bridge_state.
+ *
+ * This is useful for drivers that don't subclass @drm_bridge_state.
+ *
+ * RETURNS:
+ * Pointer to new bridge state, or ERR_PTR on failure.
+ */
+struct drm_bridge_state *
+drm_atomic_helper_bridge_create_state(struct drm_bridge *bridge)
+{
+       struct drm_bridge_state *bridge_state;
+
+       bridge_state = kzalloc_obj(*bridge_state);
+       if (!bridge_state)
+               return ERR_PTR(-ENOMEM);
+
+       __drm_atomic_helper_bridge_state_init(bridge_state, bridge);
+       return bridge_state;
+}
+EXPORT_SYMBOL(drm_atomic_helper_bridge_create_state);
diff --git a/include/drm/drm_atomic_state_helper.h 
b/include/drm/drm_atomic_state_helper.h
index cbc760598b9e..68c685ad330f 100644
--- a/include/drm/drm_atomic_state_helper.h
+++ b/include/drm/drm_atomic_state_helper.h
@@ -103,6 +103,8 @@ drm_atomic_helper_bridge_duplicate_state(struct drm_bridge 
*bridge);
 void drm_atomic_helper_bridge_destroy_state(struct drm_bridge *bridge,
                                            struct drm_bridge_state *state);
 void __drm_atomic_helper_bridge_state_init(struct drm_bridge_state *state,
                                           struct drm_bridge *bridge);
 struct drm_bridge_state *
+drm_atomic_helper_bridge_create_state(struct drm_bridge *bridge);
+struct drm_bridge_state *
 drm_atomic_helper_bridge_reset(struct drm_bridge *bridge);

-- 
2.54.0

Reply via email to