Hi, On Thu, Jan 16, 2025 at 02:43:37AM +0200, Dmitry Baryshkov wrote: > On Wed, Jan 15, 2025 at 10:05:30PM +0100, Maxime Ripard wrote: > > 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. > > > > Signed-off-by: Maxime Ripard <mripard@xxxxxxxxxx> > > --- > > include/drm/drm_bridge.h | 17 +++++++++++++++++ > > 1 file changed, 17 insertions(+) > > > > diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h > > index 8e18130be8bb85fc2463917dde9bf1d281934184..95c5037a6335e4c1be511e6c31308202015c7754 100644 > > --- a/include/drm/drm_bridge.h > > +++ b/include/drm/drm_bridge.h > > @@ -955,10 +955,27 @@ static inline struct drm_bridge *of_drm_find_bridge(struct device_node *np) > > { > > return NULL; > > } > > #endif > > > > +/** > > + * @drm_bridge_get_current_state() - Get the current bridge state > > + * @bridge: bridge object > > + * > > + * RETURNS: > > + * > > + * The current bridge state, or NULL if there is none. > > Are there any kind of limitations on when and how this function can be > used? I don't think we can be accessing the state randomly, as the > framework can change it at some points. E.g. what if the driver uses > this state from audio or cec callbacks, while the DRM framework performs > atomic commit and changes / frees the state right concurrently? The semantics are equivalent to drm_connector->state, drm_crtc->state, etc, but I'm not sure we ever defined it clearly. Also, it looks like I can never remember what the locking rules are :) It looks like a good occasion to ask Sima and write some more documentation. Thanks! Maxime
Attachment:
signature.asc
Description: PGP signature