On Wed, 22 Jan 2020 12:16:49 +0100 Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx> wrote: > + > +/** > + * drm_atomic_get_bridge_state - get bridge state > + * @state: global atomic state object > + * @bridge: bridge to get state object for > + * > + * This function returns the bridge state for the given bridge, allocating it > + * if needed. It will also grab the relevant bridge lock to make sure that the > + * state is consistent. > + * > + * Returns: > + * > + * Either the allocated state or the error code encoded into the pointer. When > + * the error is EDEADLK then the w/w mutex code has detected a deadlock and the > + * entire atomic sequence must be restarted. > + */ > +struct drm_bridge_state * > +drm_atomic_get_bridge_state(struct drm_atomic_state *state, > + struct drm_bridge *bridge) > +{ > + struct drm_private_state *obj_state; > + > + obj_state = drm_atomic_get_private_obj_state(state, &bridge->base); > + if (IS_ERR(obj_state)) > + return ERR_CAST(obj_state); > + > + return drm_priv_to_bridge_state(obj_state); > +} > +EXPORT_SYMBOL(drm_atomic_get_bridge_state); > + > +/** > + * drm_atomic_get_old_bridge_state - get old bridge state, if it exists > + * @state: global atomic state object > + * @bridge: bridge to grab > + * > + * This function returns the old bridge state for the given bridge, or NULL if > + * the bridge is not part of the global atomic state. > + */ > +struct drm_bridge_state * > +drm_atomic_get_old_bridge_state(struct drm_atomic_state *state, > + struct drm_bridge *bridge) > +{ > + struct drm_private_state *obj_state; > + > + obj_state = drm_atomic_get_old_private_obj_state(state, &bridge->base); > + if (!obj_state) > + return NULL; > + > + return drm_priv_to_bridge_state(obj_state); > +} > +EXPORT_SYMBOL(drm_atomic_get_old_bridge_state); > + > +/** > + * drm_atomic_get_new_bridge_state - get new bridge state, if it exists > + * @state: global atomic state object > + * @bridge: bridge to grab > + * > + * This function returns the new bridge state for the given bridge, or NULL if > + * the bridge is not part of the global atomic state. > + */ > +struct drm_bridge_state * > +drm_atomic_get_new_bridge_state(struct drm_atomic_state *state, > + struct drm_bridge *bridge) > +{ > + struct drm_private_state *obj_state; > + > + obj_state = drm_atomic_get_new_private_obj_state(state, &bridge->base); > + if (!obj_state) > + return NULL; > + > + return drm_priv_to_bridge_state(obj_state); > +} > +EXPORT_SYMBOL(drm_atomic_get_new_bridge_state); > + Oops, I placed those helpers in the #ifdef CONFIG_DEBUG_FS section. > #endif