Message ID | 20230328170752.1102347-2-jagan@amarulasolutions.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2,1/2] drm/bridge: Fix improper bridge init order with pre_enable_prev_first | expand |
On Tue, 28 Mar 2023 at 18:08, Jagan Teki <jagan@amarulasolutions.com> wrote: > > In order to satisfy the MIPI DSI initialization sequence the bridge > init order has been altered with the help of pre_enable_prev_first > in pre_enable and post_disable bridge operations. > > Document the affected bridge init order with an example on the > bridge operations helpers. > > Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com> > --- > Changes for v2: > - add missing dri-devel in CC > - prefix @ for bridge helper names > > drivers/gpu/drm/drm_bridge.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c > index 052a8e6c9961..caf0f341e524 100644 > --- a/drivers/gpu/drm/drm_bridge.c > +++ b/drivers/gpu/drm/drm_bridge.c > @@ -654,6 +654,13 @@ static void drm_atomic_bridge_call_post_disable(struct drm_bridge *bridge, > * bridge will be called before the previous one to reverse the @pre_enable > * calling direction. > * > + * Example: > + * Bridge A ---> Bridge B ---> Bridge C ---> Bridge D ---> Bridge E > + * > + * With pre_enable_prev_first flag enable in Bridge B, D, E then the resulting > + * @post_disable order would be, > + * Bridge B, Bridge A, Bridge E, Bridge D, Bridge C. > + * > * Note: the bridge passed should be the one closest to the encoder > */ > void drm_atomic_bridge_chain_post_disable(struct drm_bridge *bridge, > @@ -750,6 +757,13 @@ static void drm_atomic_bridge_call_pre_enable(struct drm_bridge *bridge, > * If a bridge sets @pre_enable_prev_first, then the pre_enable for the > * prev bridge will be called before pre_enable of this bridge. > * > + * Example: > + * Bridge A ---> Bridge B ---> Bridge C ---> Bridge D ---> Bridge E > + * > + * With pre_enable_prev_first flag enable in Bridge B, D, E then the resulting > + * @pre_enable order would be, > + * Bridge C, Bridge D, Bridge E, Bridge A, Bridge B. > + * > * Note: the bridge passed should be the one closest to the encoder > */ > void drm_atomic_bridge_chain_pre_enable(struct drm_bridge *bridge, > -- > 2.25.1 >
diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c index 052a8e6c9961..caf0f341e524 100644 --- a/drivers/gpu/drm/drm_bridge.c +++ b/drivers/gpu/drm/drm_bridge.c @@ -654,6 +654,13 @@ static void drm_atomic_bridge_call_post_disable(struct drm_bridge *bridge, * bridge will be called before the previous one to reverse the @pre_enable * calling direction. * + * Example: + * Bridge A ---> Bridge B ---> Bridge C ---> Bridge D ---> Bridge E + * + * With pre_enable_prev_first flag enable in Bridge B, D, E then the resulting + * @post_disable order would be, + * Bridge B, Bridge A, Bridge E, Bridge D, Bridge C. + * * Note: the bridge passed should be the one closest to the encoder */ void drm_atomic_bridge_chain_post_disable(struct drm_bridge *bridge, @@ -750,6 +757,13 @@ static void drm_atomic_bridge_call_pre_enable(struct drm_bridge *bridge, * If a bridge sets @pre_enable_prev_first, then the pre_enable for the * prev bridge will be called before pre_enable of this bridge. * + * Example: + * Bridge A ---> Bridge B ---> Bridge C ---> Bridge D ---> Bridge E + * + * With pre_enable_prev_first flag enable in Bridge B, D, E then the resulting + * @pre_enable order would be, + * Bridge C, Bridge D, Bridge E, Bridge A, Bridge B. + * * Note: the bridge passed should be the one closest to the encoder */ void drm_atomic_bridge_chain_pre_enable(struct drm_bridge *bridge,
In order to satisfy the MIPI DSI initialization sequence the bridge init order has been altered with the help of pre_enable_prev_first in pre_enable and post_disable bridge operations. Document the affected bridge init order with an example on the bridge operations helpers. Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> --- Changes for v2: - add missing dri-devel in CC - prefix @ for bridge helper names drivers/gpu/drm/drm_bridge.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)