On Mon, Sep 15, 2025 at 09:40:57PM +0300, Dmitry Baryshkov wrote: > On Tue, Sep 02, 2025 at 10:32:38AM +0200, Maxime Ripard wrote: > > In order to enable drivers to fill their initial state from the hardware > > state, we need to provide an alternative atomic_reset helper. > > > > This helper relies on each state having its own atomic_state_readout() > > hooks. Each component will thus be able to fill the initial state based > > on what they can figure out from the hardware. > > > > It also allocates a dummy drm_atomic_state to glue the whole thing > > together so atomic_state_readout implementations can still figure out > > the state of other related entities. > > > > Link: > > https://lore.kernel.org/dri-devel/CAKMK7uHtqHy_oz4W7F+hmp9iqp7W5Ra8CxPvJ=9bwmvfu-o...@mail.gmail.com/ > > Signed-off-by: Maxime Ripard <[email protected]> > > --- > > drivers/gpu/drm/drm_atomic_helper.c | 382 > > ++++++++++++++++++++++++++++++++++++ > > drivers/gpu/drm/drm_mode_config.c | 1 + > > include/drm/drm_atomic_helper.h | 1 + > > include/drm/drm_bridge.h | 21 ++ > > include/drm/drm_connector.h | 26 +++ > > include/drm/drm_crtc.h | 19 ++ > > include/drm/drm_plane.h | 27 +++ > > 7 files changed, 477 insertions(+) > > > > + drm_for_each_encoder(encoder, dev) { > > + struct drm_connector_state *enc_conn_state; > > + struct drm_crtc_state *enc_crtc_state; > > + struct drm_bridge *bridge; > > + > > + /* > > + * It works a bit differently for bridges. Because they are > > + * using a drm_private_state, and because > > + * drm_atomic_private_obj_init() asks for its initial state when > > + * initializing, instead of doing it later on through a reset > > + * call like the other entities, we can't have reset xor > > + * readout. > > Would it make sense to unify the way the bridges / priv_obj handle the > state with the rest of the object types?
I would be all for it, but I think this is pretty much the same conversation we had in my recent bridge improvement series. Aren't bridges not assumed to have atomic support and thus we can't really do something better here? Or should we move all bridges to be atomic? Maxime
signature.asc
Description: PGP signature
