drm/atomic-state-helper: Add drm_atomic_helper_bridge_create_state()

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, and make drm_atomic_helper_bridge_reset() call
this new helper.

Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com> # imx8mp + sn65dsi84 + bridge hotplug
Link: https://patch.msgid.link/20260619-drm-no-more-bridge-reset-v3-7-ff399263111b@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org>
This commit is contained in:
Maxime Ripard 2026-06-19 14:24:12 +02:00
parent 376542696c
commit 20df722d6b
No known key found for this signature in database
GPG Key ID: 275FCE19A23DBE76
2 changed files with 23 additions and 1 deletions

View File

@ -873,6 +873,7 @@ EXPORT_SYMBOL(drm_atomic_helper_bridge_duplicate_state);
* @state: bridge state to destroy
*
* Destroys a bridge state previously created by
* &drm_atomic_helper_bridge_create_state(),
* &drm_atomic_helper_bridge_reset() or
* &drm_atomic_helper_bridge_duplicate_state(). This helper is meant to be
* used as a bridge &drm_bridge_funcs.atomic_destroy_state hook for bridges
@ -917,6 +918,25 @@ EXPORT_SYMBOL(__drm_atomic_helper_bridge_state_init);
*/
struct drm_bridge_state *
drm_atomic_helper_bridge_reset(struct drm_bridge *bridge)
{
return drm_atomic_helper_bridge_create_state(bridge);
}
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;
@ -927,4 +947,4 @@ 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);
EXPORT_SYMBOL(drm_atomic_helper_bridge_create_state);

View File

@ -105,4 +105,6 @@ void drm_atomic_helper_bridge_destroy_state(struct drm_bridge *bridge,
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);