drm/bridge: Provide a helper to retrieve current bridge state

The current bridge state is accessible from the drm_bridge structure,
but since it's fairly indirect it's not easy to figure out.

Provide a helper to retrieve it.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20250313-bridge-connector-v6-2-511c54a604fb@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org>
This commit is contained in:
Maxime Ripard 2025-03-13 12:59:56 +01:00
parent 98007a0d56
commit 93b244866c
No known key found for this signature in database
GPG Key ID: 275FCE19A23DBE76

View File

@ -957,6 +957,38 @@ static inline struct drm_bridge *of_drm_find_bridge(struct device_node *np)
}
#endif
/**
* drm_bridge_get_current_state() - Get the current bridge state
* @bridge: bridge object
*
* This function must be called with the modeset lock held.
*
* RETURNS:
*
* The current bridge state, or NULL if there is none.
*/
static inline struct drm_bridge_state *
drm_bridge_get_current_state(struct drm_bridge *bridge)
{
if (!bridge)
return NULL;
/*
* Only atomic bridges will have bridge->base initialized by
* drm_atomic_private_obj_init(), so we need to make sure we're
* working with one before we try to use the lock.
*/
if (!bridge->funcs || !bridge->funcs->atomic_reset)
return NULL;
drm_modeset_lock_assert_held(&bridge->base.lock);
if (!bridge->base.state)
return NULL;
return drm_priv_to_bridge_state(bridge->base.state);
}
/**
* drm_bridge_get_next_bridge() - Get the next bridge in the chain
* @bridge: bridge object