All of lore.kernel.org
 help / color / mirror / Atom feed
From: Neil Armstrong <narmstrong@baylibre.com>
To: Boris Brezillon <boris.brezillon@collabora.com>,
	dri-devel@lists.freedesktop.org
Cc: Lucas Stach <l.stach@pengutronix.de>,
	Chris Healy <cphealy@gmail.com>,
	Andrey Smirnov <andrew.smirnov@gmail.com>,
	Nikita Yushchenko <nikita.yoush@cogentembedded.com>,
	kernel@collabora.com, Daniel Vetter <daniel@ffwll.ch>,
	Inki Dae <inki.dae@samsung.com>,
	Joonyoung Shim <jy0922.shim@samsung.com>,
	Seung-Woo Kim <sw0312.kim@samsung.com>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Sam Ravnborg <sam@ravnborg.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Rob Clark <robdclark@gmail.com>,
	Andrzej Hajda <a.hajda@samsung.com>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
	Jonas Karlman <jonas@kwiboo.se>,
	Jernej Skrabec <jernej.skrabec@siol.net>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org
Subject: Re: [PATCH v3 04/21] drm/bridge: Rename bridge helpers targeting a bridge chain
Date: Fri, 25 Oct 2019 15:26:58 +0200	[thread overview]
Message-ID: <bebc1b04-a149-86a4-dd3f-ed475af0ea29@baylibre.com> (raw)
In-Reply-To: <20191023154512.9762-5-boris.brezillon@collabora.com>

On 23/10/2019 17:44, Boris Brezillon wrote:
> Change the prefix of bridge helpers targeting a bridge chain from
> drm_bridge_ to drm_bridge_chain_ to better reflect the fact that
> the operation will happen on all elements of chain, starting at the
> bridge passed in argument.
> 
> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
> ---
> Changes in v3:
> * None
> 
> Changes in v2:
> * Pass te bridge, not the encoder, so we can later act on a sub-chain
>   instead of the whole chain
> ---
>  drivers/gpu/drm/drm_atomic_helper.c |  19 +++--
>  drivers/gpu/drm/drm_bridge.c        | 125 ++++++++++++++--------------
>  drivers/gpu/drm/drm_probe_helper.c  |   2 +-
>  drivers/gpu/drm/mediatek/mtk_hdmi.c |   4 +-
>  include/drm/drm_bridge.h            |  64 +++++++-------
>  5 files changed, 112 insertions(+), 102 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 587052751b48..cf678be58fa4 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -435,8 +435,9 @@ mode_fixup(struct drm_atomic_state *state)
>  		encoder = new_conn_state->best_encoder;
>  		funcs = encoder->helper_private;
>  
> -		ret = drm_bridge_mode_fixup(encoder->bridge, &new_crtc_state->mode,
> -				&new_crtc_state->adjusted_mode);
> +		ret = drm_bridge_chain_mode_fixup(encoder->bridge,
> +					&new_crtc_state->mode,
> +					&new_crtc_state->adjusted_mode);
>  		if (!ret) {
>  			DRM_DEBUG_ATOMIC("Bridge fixup failed\n");
>  			return -EINVAL;
> @@ -501,7 +502,7 @@ static enum drm_mode_status mode_valid_path(struct drm_connector *connector,
>  		return ret;
>  	}
>  
> -	ret = drm_bridge_mode_valid(encoder->bridge, mode);
> +	ret = drm_bridge_chain_mode_valid(encoder->bridge, mode);
>  	if (ret != MODE_OK) {
>  		DRM_DEBUG_ATOMIC("[BRIDGE] mode_valid() failed\n");
>  		return ret;
> @@ -1020,7 +1021,7 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state)
>  		 * Each encoder has at most one connector (since we always steal
>  		 * it away), so we won't call disable hooks twice.
>  		 */
> -		drm_atomic_bridge_disable(encoder->bridge, old_state);
> +		drm_atomic_bridge_chain_disable(encoder->bridge, old_state);
>  
>  		/* Right function depends upon target state. */
>  		if (funcs) {
> @@ -1034,7 +1035,8 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state)
>  				funcs->dpms(encoder, DRM_MODE_DPMS_OFF);
>  		}
>  
> -		drm_atomic_bridge_post_disable(encoder->bridge, old_state);
> +		drm_atomic_bridge_chain_post_disable(encoder->bridge,
> +						     old_state);
>  	}
>  
>  	for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) {
> @@ -1215,7 +1217,8 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state)
>  			funcs->mode_set(encoder, mode, adjusted_mode);
>  		}
>  
> -		drm_bridge_mode_set(encoder->bridge, mode, adjusted_mode);
> +		drm_bridge_chain_mode_set(encoder->bridge, mode,
> +					  adjusted_mode);
>  	}
>  }
>  
> @@ -1332,7 +1335,7 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
>  		 * Each encoder has at most one connector (since we always steal
>  		 * it away), so we won't call enable hooks twice.
>  		 */
> -		drm_atomic_bridge_pre_enable(encoder->bridge, old_state);
> +		drm_atomic_bridge_chain_pre_enable(encoder->bridge, old_state);
>  
>  		if (funcs) {
>  			if (funcs->atomic_enable)
> @@ -1343,7 +1346,7 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
>  				funcs->commit(encoder);
>  		}
>  
> -		drm_atomic_bridge_enable(encoder->bridge, old_state);
> +		drm_atomic_bridge_chain_enable(encoder->bridge, old_state);
>  	}
>  
>  	drm_atomic_helper_commit_writebacks(dev, old_state);
> diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c
> index cba537c99e43..54c874493c57 100644
> --- a/drivers/gpu/drm/drm_bridge.c
> +++ b/drivers/gpu/drm/drm_bridge.c
> @@ -172,8 +172,8 @@ void drm_bridge_detach(struct drm_bridge *bridge)
>   */
>  
>  /**
> - * drm_bridge_mode_fixup - fixup proposed mode for all bridges in the
> - *			   encoder chain
> + * drm_bridge_chain_mode_fixup - fixup proposed mode for all bridges in the
> + *				 encoder chain
>   * @bridge: bridge control structure
>   * @mode: desired mode to be set for the bridge
>   * @adjusted_mode: updated mode that works for this bridge
> @@ -186,9 +186,9 @@ void drm_bridge_detach(struct drm_bridge *bridge)
>   * RETURNS:
>   * true on success, false on failure
>   */
> -bool drm_bridge_mode_fixup(struct drm_bridge *bridge,
> -			const struct drm_display_mode *mode,
> -			struct drm_display_mode *adjusted_mode)
> +bool drm_bridge_chain_mode_fixup(struct drm_bridge *bridge,
> +				 const struct drm_display_mode *mode,
> +				 struct drm_display_mode *adjusted_mode)
>  {
>  	bool ret = true;
>  
> @@ -198,15 +198,16 @@ bool drm_bridge_mode_fixup(struct drm_bridge *bridge,
>  	if (bridge->funcs->mode_fixup)
>  		ret = bridge->funcs->mode_fixup(bridge, mode, adjusted_mode);
>  
> -	ret = ret && drm_bridge_mode_fixup(bridge->next, mode, adjusted_mode);
> +	ret = ret && drm_bridge_chain_mode_fixup(bridge->next, mode,
> +						 adjusted_mode);
>  
>  	return ret;
>  }
> -EXPORT_SYMBOL(drm_bridge_mode_fixup);
> +EXPORT_SYMBOL(drm_bridge_chain_mode_fixup);
>  
>  /**
> - * drm_bridge_mode_valid - validate the mode against all bridges in the
> - * 			   encoder chain.
> + * drm_bridge_chain_mode_valid - validate the mode against all bridges in the
> + *				 encoder chain.
>   * @bridge: bridge control structure
>   * @mode: desired mode to be validated
>   *
> @@ -219,8 +220,9 @@ EXPORT_SYMBOL(drm_bridge_mode_fixup);
>   * RETURNS:
>   * MODE_OK on success, drm_mode_status Enum error code on failure
>   */
> -enum drm_mode_status drm_bridge_mode_valid(struct drm_bridge *bridge,
> -					   const struct drm_display_mode *mode)
> +enum drm_mode_status
> +drm_bridge_chain_mode_valid(struct drm_bridge *bridge,
> +			    const struct drm_display_mode *mode)
>  {
>  	enum drm_mode_status ret = MODE_OK;
>  
> @@ -233,12 +235,12 @@ enum drm_mode_status drm_bridge_mode_valid(struct drm_bridge *bridge,
>  	if (ret != MODE_OK)
>  		return ret;
>  
> -	return drm_bridge_mode_valid(bridge->next, mode);
> +	return drm_bridge_chain_mode_valid(bridge->next, mode);
>  }
> -EXPORT_SYMBOL(drm_bridge_mode_valid);
> +EXPORT_SYMBOL(drm_bridge_chain_mode_valid);
>  
>  /**
> - * drm_bridge_disable - disables all bridges in the encoder chain
> + * drm_bridge_chain_disable - disables all bridges in the encoder chain
>   * @bridge: bridge control structure
>   *
>   * Calls &drm_bridge_funcs.disable op for all the bridges in the encoder
> @@ -247,20 +249,21 @@ EXPORT_SYMBOL(drm_bridge_mode_valid);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_bridge_disable(struct drm_bridge *bridge)
> +void drm_bridge_chain_disable(struct drm_bridge *bridge)
>  {
>  	if (!bridge)
>  		return;
>  
> -	drm_bridge_disable(bridge->next);
> +	drm_bridge_chain_disable(bridge->next);
>  
>  	if (bridge->funcs->disable)
>  		bridge->funcs->disable(bridge);
>  }
> -EXPORT_SYMBOL(drm_bridge_disable);
> +EXPORT_SYMBOL(drm_bridge_chain_disable);
>  
>  /**
> - * drm_bridge_post_disable - cleans up after disabling all bridges in the encoder chain
> + * drm_bridge_chain_post_disable - cleans up after disabling all bridges in the
> + *				   encoder chain
>   * @bridge: bridge control structure
>   *
>   * Calls &drm_bridge_funcs.post_disable op for all the bridges in the
> @@ -269,7 +272,7 @@ EXPORT_SYMBOL(drm_bridge_disable);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_bridge_post_disable(struct drm_bridge *bridge)
> +void drm_bridge_chain_post_disable(struct drm_bridge *bridge)
>  {
>  	if (!bridge)
>  		return;
> @@ -277,25 +280,25 @@ void drm_bridge_post_disable(struct drm_bridge *bridge)
>  	if (bridge->funcs->post_disable)
>  		bridge->funcs->post_disable(bridge);
>  
> -	drm_bridge_post_disable(bridge->next);
> +	drm_bridge_chain_post_disable(bridge->next);
>  }
> -EXPORT_SYMBOL(drm_bridge_post_disable);
> +EXPORT_SYMBOL(drm_bridge_chain_post_disable);
>  
>  /**
> - * drm_bridge_mode_set - set proposed mode for all bridges in the
> - *			 encoder chain
> + * drm_bridge_chain_mode_set - set proposed mode for all bridges in the
> + *			       encoder chain
>   * @bridge: bridge control structure
> - * @mode: desired mode to be set for the bridge
> - * @adjusted_mode: updated mode that works for this bridge
> + * @mode: desired mode to be set for the encoder chain
> + * @adjusted_mode: updated mode that works for this encoder chain
>   *
>   * Calls &drm_bridge_funcs.mode_set op for all the bridges in the
>   * encoder chain, starting from the first bridge to the last.
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_bridge_mode_set(struct drm_bridge *bridge,
> -			 const struct drm_display_mode *mode,
> -			 const struct drm_display_mode *adjusted_mode)
> +void drm_bridge_chain_mode_set(struct drm_bridge *bridge,
> +			       const struct drm_display_mode *mode,
> +			       const struct drm_display_mode *adjusted_mode)
>  {
>  	if (!bridge)
>  		return;
> @@ -303,13 +306,13 @@ void drm_bridge_mode_set(struct drm_bridge *bridge,
>  	if (bridge->funcs->mode_set)
>  		bridge->funcs->mode_set(bridge, mode, adjusted_mode);
>  
> -	drm_bridge_mode_set(bridge->next, mode, adjusted_mode);
> +	drm_bridge_chain_mode_set(bridge->next, mode, adjusted_mode);
>  }
> -EXPORT_SYMBOL(drm_bridge_mode_set);
> +EXPORT_SYMBOL(drm_bridge_chain_mode_set);
>  
>  /**
> - * drm_bridge_pre_enable - prepares for enabling all
> - *			   bridges in the encoder chain
> + * drm_bridge_chain_pre_enable - prepares for enabling all bridges in the
> + *				 encoder chain
>   * @bridge: bridge control structure
>   *
>   * Calls &drm_bridge_funcs.pre_enable op for all the bridges in the encoder
> @@ -318,20 +321,20 @@ EXPORT_SYMBOL(drm_bridge_mode_set);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_bridge_pre_enable(struct drm_bridge *bridge)
> +void drm_bridge_chain_pre_enable(struct drm_bridge *bridge)
>  {
>  	if (!bridge)
>  		return;
>  
> -	drm_bridge_pre_enable(bridge->next);
> +	drm_bridge_chain_pre_enable(bridge->next);
>  
>  	if (bridge->funcs->pre_enable)
>  		bridge->funcs->pre_enable(bridge);
>  }
> -EXPORT_SYMBOL(drm_bridge_pre_enable);
> +EXPORT_SYMBOL(drm_bridge_chain_pre_enable);
>  
>  /**
> - * drm_bridge_enable - enables all bridges in the encoder chain
> + * drm_bridge_chain_enable - enables all bridges in the encoder chain
>   * @bridge: bridge control structure
>   *
>   * Calls &drm_bridge_funcs.enable op for all the bridges in the encoder
> @@ -340,7 +343,7 @@ EXPORT_SYMBOL(drm_bridge_pre_enable);
>   *
>   * Note that the bridge passed should be the one closest to the encoder
>   */
> -void drm_bridge_enable(struct drm_bridge *bridge)
> +void drm_bridge_chain_enable(struct drm_bridge *bridge)
>  {
>  	if (!bridge)
>  		return;
> @@ -348,12 +351,12 @@ void drm_bridge_enable(struct drm_bridge *bridge)
>  	if (bridge->funcs->enable)
>  		bridge->funcs->enable(bridge);
>  
> -	drm_bridge_enable(bridge->next);
> +	drm_bridge_chain_enable(bridge->next);
>  }
> -EXPORT_SYMBOL(drm_bridge_enable);
> +EXPORT_SYMBOL(drm_bridge_chain_enable);
>  
>  /**
> - * drm_atomic_bridge_disable - disables all bridges in the encoder chain
> + * drm_atomic_bridge_chain_disable - disables all bridges in the encoder chain
>   * @bridge: bridge control structure
>   * @state: atomic state being committed
>   *
> @@ -364,24 +367,24 @@ EXPORT_SYMBOL(drm_bridge_enable);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_atomic_bridge_disable(struct drm_bridge *bridge,
> -			       struct drm_atomic_state *state)
> +void drm_atomic_bridge_chain_disable(struct drm_bridge *bridge,
> +				     struct drm_atomic_state *state)
>  {
>  	if (!bridge)
>  		return;
>  
> -	drm_atomic_bridge_disable(bridge->next, state);
> +	drm_atomic_bridge_chain_disable(bridge->next, state);
>  
>  	if (bridge->funcs->atomic_disable)
>  		bridge->funcs->atomic_disable(bridge, state);
>  	else if (bridge->funcs->disable)
>  		bridge->funcs->disable(bridge);
>  }
> -EXPORT_SYMBOL(drm_atomic_bridge_disable);
> +EXPORT_SYMBOL(drm_atomic_bridge_chain_disable);
>  
>  /**
> - * drm_atomic_bridge_post_disable - cleans up after disabling all bridges in the
> - *				    encoder chain
> + * drm_atomic_bridge_chain_post_disable - cleans up after disabling all bridges
> + *					  in the encoder chain
>   * @bridge: bridge control structure
>   * @state: atomic state being committed
>   *
> @@ -392,8 +395,8 @@ EXPORT_SYMBOL(drm_atomic_bridge_disable);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_atomic_bridge_post_disable(struct drm_bridge *bridge,
> -				    struct drm_atomic_state *state)
> +void drm_atomic_bridge_chain_post_disable(struct drm_bridge *bridge,
> +					  struct drm_atomic_state *state)
>  {
>  	if (!bridge)
>  		return;
> @@ -403,13 +406,13 @@ void drm_atomic_bridge_post_disable(struct drm_bridge *bridge,
>  	else if (bridge->funcs->post_disable)
>  		bridge->funcs->post_disable(bridge);
>  
> -	drm_atomic_bridge_post_disable(bridge->next, state);
> +	drm_atomic_bridge_chain_post_disable(bridge->next, state);
>  }
> -EXPORT_SYMBOL(drm_atomic_bridge_post_disable);
> +EXPORT_SYMBOL(drm_atomic_bridge_chain_post_disable);
>  
>  /**
> - * drm_atomic_bridge_pre_enable - prepares for enabling all bridges in the
> - *				  encoder chain
> + * drm_atomic_bridge_chain_pre_enable - prepares for enabling all bridges in
> + *					the encoder chain
>   * @bridge: bridge control structure
>   * @state: atomic state being committed
>   *
> @@ -420,23 +423,23 @@ EXPORT_SYMBOL(drm_atomic_bridge_post_disable);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_atomic_bridge_pre_enable(struct drm_bridge *bridge,
> -				  struct drm_atomic_state *state)
> +void drm_atomic_bridge_chain_pre_enable(struct drm_bridge *bridge,
> +					struct drm_atomic_state *state)
>  {
>  	if (!bridge)
>  		return;
>  
> -	drm_atomic_bridge_pre_enable(bridge->next, state);
> +	drm_atomic_bridge_chain_pre_enable(bridge->next, state);
>  
>  	if (bridge->funcs->atomic_pre_enable)
>  		bridge->funcs->atomic_pre_enable(bridge, state);
>  	else if (bridge->funcs->pre_enable)
>  		bridge->funcs->pre_enable(bridge);
>  }
> -EXPORT_SYMBOL(drm_atomic_bridge_pre_enable);
> +EXPORT_SYMBOL(drm_atomic_bridge_chain_pre_enable);
>  
>  /**
> - * drm_atomic_bridge_enable - enables all bridges in the encoder chain
> + * drm_atomic_bridge_chain_enable - enables all bridges in the encoder chain
>   * @bridge: bridge control structure
>   * @state: atomic state being committed
>   *
> @@ -447,8 +450,8 @@ EXPORT_SYMBOL(drm_atomic_bridge_pre_enable);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_atomic_bridge_enable(struct drm_bridge *bridge,
> -			      struct drm_atomic_state *state)
> +void drm_atomic_bridge_chain_enable(struct drm_bridge *bridge,
> +				    struct drm_atomic_state *state)
>  {
>  	if (!bridge)
>  		return;
> @@ -458,9 +461,9 @@ void drm_atomic_bridge_enable(struct drm_bridge *bridge,
>  	else if (bridge->funcs->enable)
>  		bridge->funcs->enable(bridge);
>  
> -	drm_atomic_bridge_enable(bridge->next, state);
> +	drm_atomic_bridge_chain_enable(bridge->next, state);
>  }
> -EXPORT_SYMBOL(drm_atomic_bridge_enable);
> +EXPORT_SYMBOL(drm_atomic_bridge_chain_enable);
>  
>  #ifdef CONFIG_OF
>  /**
> diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c
> index a7c87abe88d0..c3ea722065c4 100644
> --- a/drivers/gpu/drm/drm_probe_helper.c
> +++ b/drivers/gpu/drm/drm_probe_helper.c
> @@ -112,7 +112,7 @@ drm_mode_validate_pipeline(struct drm_display_mode *mode,
>  			continue;
>  		}
>  
> -		ret = drm_bridge_mode_valid(encoder->bridge, mode);
> +		ret = drm_bridge_chain_mode_valid(encoder->bridge, mode);
>  		if (ret != MODE_OK) {
>  			/* There is also no point in continuing for crtc check
>  			 * here. */
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> index c79b1f855d89..ea68b5adccbe 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> @@ -1247,8 +1247,8 @@ static int mtk_hdmi_conn_mode_valid(struct drm_connector *conn,
>  		struct drm_display_mode adjusted_mode;
>  
>  		drm_mode_copy(&adjusted_mode, mode);
> -		if (!drm_bridge_mode_fixup(hdmi->bridge.next, mode,
> -					   &adjusted_mode))
> +		if (!drm_bridge_chain_mode_fixup(hdmi->bridge.next, mode,
> +						 &adjusted_mode))
>  			return MODE_BAD;
>  	}
>  
> diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h
> index c0a2286a81e9..726435baf4ad 100644
> --- a/include/drm/drm_bridge.h
> +++ b/include/drm/drm_bridge.h
> @@ -254,9 +254,10 @@ struct drm_bridge_funcs {
>  	 * there is one) when this callback is called.
>  	 *
>  	 * Note that this function will only be invoked in the context of an
> -	 * atomic commit. It will not be invoked from &drm_bridge_pre_enable. It
> -	 * would be prudent to also provide an implementation of @pre_enable if
> -	 * you are expecting driver calls into &drm_bridge_pre_enable.
> +	 * atomic commit. It will not be invoked from
> +	 * &drm_bridge_chain_pre_enable. It would be prudent to also provide an
> +	 * implementation of @pre_enable if you are expecting driver calls into
> +	 * &drm_bridge_chain_pre_enable.
>  	 *
>  	 * The @atomic_pre_enable callback is optional.
>  	 */
> @@ -279,9 +280,9 @@ struct drm_bridge_funcs {
>  	 * chain if there is one.
>  	 *
>  	 * Note that this function will only be invoked in the context of an
> -	 * atomic commit. It will not be invoked from &drm_bridge_enable. It
> -	 * would be prudent to also provide an implementation of @enable if
> -	 * you are expecting driver calls into &drm_bridge_enable.
> +	 * atomic commit. It will not be invoked from &drm_bridge_chain_enable.
> +	 * It would be prudent to also provide an implementation of @enable if
> +	 * you are expecting driver calls into &drm_bridge_chain_enable.
>  	 *
>  	 * The @atomic_enable callback is optional.
>  	 */
> @@ -301,9 +302,10 @@ struct drm_bridge_funcs {
>  	 * signals) feeding it is still running when this callback is called.
>  	 *
>  	 * Note that this function will only be invoked in the context of an
> -	 * atomic commit. It will not be invoked from &drm_bridge_disable. It
> -	 * would be prudent to also provide an implementation of @disable if
> -	 * you are expecting driver calls into &drm_bridge_disable.
> +	 * atomic commit. It will not be invoked from
> +	 * &drm_bridge_chain_disable. It would be prudent to also provide an
> +	 * implementation of @disable if you are expecting driver calls into
> +	 * &drm_bridge_chain_disable.
>  	 *
>  	 * The @atomic_disable callback is optional.
>  	 */
> @@ -325,10 +327,11 @@ struct drm_bridge_funcs {
>  	 * called.
>  	 *
>  	 * Note that this function will only be invoked in the context of an
> -	 * atomic commit. It will not be invoked from &drm_bridge_post_disable.
> +	 * atomic commit. It will not be invoked from
> +	 * &drm_bridge_chain_post_disable.
>  	 * It would be prudent to also provide an implementation of
>  	 * @post_disable if you are expecting driver calls into
> -	 * &drm_bridge_post_disable.
> +	 * &drm_bridge_chain_post_disable.
>  	 *
>  	 * The @atomic_post_disable callback is optional.
>  	 */
> @@ -406,27 +409,28 @@ struct drm_bridge *of_drm_find_bridge(struct device_node *np);
>  int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge,
>  		      struct drm_bridge *previous);
>  
> -bool drm_bridge_mode_fixup(struct drm_bridge *bridge,
> -			   const struct drm_display_mode *mode,
> -			   struct drm_display_mode *adjusted_mode);
> -enum drm_mode_status drm_bridge_mode_valid(struct drm_bridge *bridge,
> -					   const struct drm_display_mode *mode);
> -void drm_bridge_disable(struct drm_bridge *bridge);
> -void drm_bridge_post_disable(struct drm_bridge *bridge);
> -void drm_bridge_mode_set(struct drm_bridge *bridge,
> -			 const struct drm_display_mode *mode,
> -			 const struct drm_display_mode *adjusted_mode);
> -void drm_bridge_pre_enable(struct drm_bridge *bridge);
> -void drm_bridge_enable(struct drm_bridge *bridge);
> +bool drm_bridge_chain_mode_fixup(struct drm_bridge *bridge,
> +				 const struct drm_display_mode *mode,
> +				 struct drm_display_mode *adjusted_mode);
> +enum drm_mode_status
> +drm_bridge_chain_mode_valid(struct drm_bridge *bridge,
> +			    const struct drm_display_mode *mode);
> +void drm_bridge_chain_disable(struct drm_bridge *bridge);
> +void drm_bridge_chain_post_disable(struct drm_bridge *bridge);
> +void drm_bridge_chain_mode_set(struct drm_bridge *bridge,
> +			       const struct drm_display_mode *mode,
> +			       const struct drm_display_mode *adjusted_mode);
> +void drm_bridge_chain_pre_enable(struct drm_bridge *bridge);
> +void drm_bridge_chain_enable(struct drm_bridge *bridge);
>  
> -void drm_atomic_bridge_disable(struct drm_bridge *bridge,
> -			       struct drm_atomic_state *state);
> -void drm_atomic_bridge_post_disable(struct drm_bridge *bridge,
> +void drm_atomic_bridge_chain_disable(struct drm_bridge *bridge,
> +				     struct drm_atomic_state *state);
> +void drm_atomic_bridge_chain_post_disable(struct drm_bridge *bridge,
> +					  struct drm_atomic_state *state);
> +void drm_atomic_bridge_chain_pre_enable(struct drm_bridge *bridge,
> +					struct drm_atomic_state *state);
> +void drm_atomic_bridge_chain_enable(struct drm_bridge *bridge,
>  				    struct drm_atomic_state *state);
> -void drm_atomic_bridge_pre_enable(struct drm_bridge *bridge,
> -				  struct drm_atomic_state *state);
> -void drm_atomic_bridge_enable(struct drm_bridge *bridge,
> -			      struct drm_atomic_state *state);
>  
>  #ifdef CONFIG_DRM_PANEL_BRIDGE
>  struct drm_bridge *drm_panel_bridge_add(struct drm_panel *panel);
> 

Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>

WARNING: multiple messages have this Message-ID (diff)
From: Neil Armstrong <narmstrong@baylibre.com>
To: Boris Brezillon <boris.brezillon@collabora.com>,
	dri-devel@lists.freedesktop.org
Cc: Nikita Yushchenko <nikita.yoush@cogentembedded.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Jernej Skrabec <jernej.skrabec@siol.net>,
	Jonas Karlman <jonas@kwiboo.se>,
	Andrey Smirnov <andrew.smirnov@gmail.com>,
	Seung-Woo Kim <sw0312.kim@samsung.com>,
	Rob Herring <robh+dt@kernel.org>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
	kernel@collabora.com, Sam Ravnborg <sam@ravnborg.org>,
	devicetree@vger.kernel.org, Chris Healy <cphealy@gmail.com>
Subject: Re: [PATCH v3 04/21] drm/bridge: Rename bridge helpers targeting a bridge chain
Date: Fri, 25 Oct 2019 15:26:58 +0200	[thread overview]
Message-ID: <bebc1b04-a149-86a4-dd3f-ed475af0ea29@baylibre.com> (raw)
In-Reply-To: <20191023154512.9762-5-boris.brezillon@collabora.com>

On 23/10/2019 17:44, Boris Brezillon wrote:
> Change the prefix of bridge helpers targeting a bridge chain from
> drm_bridge_ to drm_bridge_chain_ to better reflect the fact that
> the operation will happen on all elements of chain, starting at the
> bridge passed in argument.
> 
> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
> ---
> Changes in v3:
> * None
> 
> Changes in v2:
> * Pass te bridge, not the encoder, so we can later act on a sub-chain
>   instead of the whole chain
> ---
>  drivers/gpu/drm/drm_atomic_helper.c |  19 +++--
>  drivers/gpu/drm/drm_bridge.c        | 125 ++++++++++++++--------------
>  drivers/gpu/drm/drm_probe_helper.c  |   2 +-
>  drivers/gpu/drm/mediatek/mtk_hdmi.c |   4 +-
>  include/drm/drm_bridge.h            |  64 +++++++-------
>  5 files changed, 112 insertions(+), 102 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 587052751b48..cf678be58fa4 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -435,8 +435,9 @@ mode_fixup(struct drm_atomic_state *state)
>  		encoder = new_conn_state->best_encoder;
>  		funcs = encoder->helper_private;
>  
> -		ret = drm_bridge_mode_fixup(encoder->bridge, &new_crtc_state->mode,
> -				&new_crtc_state->adjusted_mode);
> +		ret = drm_bridge_chain_mode_fixup(encoder->bridge,
> +					&new_crtc_state->mode,
> +					&new_crtc_state->adjusted_mode);
>  		if (!ret) {
>  			DRM_DEBUG_ATOMIC("Bridge fixup failed\n");
>  			return -EINVAL;
> @@ -501,7 +502,7 @@ static enum drm_mode_status mode_valid_path(struct drm_connector *connector,
>  		return ret;
>  	}
>  
> -	ret = drm_bridge_mode_valid(encoder->bridge, mode);
> +	ret = drm_bridge_chain_mode_valid(encoder->bridge, mode);
>  	if (ret != MODE_OK) {
>  		DRM_DEBUG_ATOMIC("[BRIDGE] mode_valid() failed\n");
>  		return ret;
> @@ -1020,7 +1021,7 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state)
>  		 * Each encoder has at most one connector (since we always steal
>  		 * it away), so we won't call disable hooks twice.
>  		 */
> -		drm_atomic_bridge_disable(encoder->bridge, old_state);
> +		drm_atomic_bridge_chain_disable(encoder->bridge, old_state);
>  
>  		/* Right function depends upon target state. */
>  		if (funcs) {
> @@ -1034,7 +1035,8 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state)
>  				funcs->dpms(encoder, DRM_MODE_DPMS_OFF);
>  		}
>  
> -		drm_atomic_bridge_post_disable(encoder->bridge, old_state);
> +		drm_atomic_bridge_chain_post_disable(encoder->bridge,
> +						     old_state);
>  	}
>  
>  	for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) {
> @@ -1215,7 +1217,8 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state)
>  			funcs->mode_set(encoder, mode, adjusted_mode);
>  		}
>  
> -		drm_bridge_mode_set(encoder->bridge, mode, adjusted_mode);
> +		drm_bridge_chain_mode_set(encoder->bridge, mode,
> +					  adjusted_mode);
>  	}
>  }
>  
> @@ -1332,7 +1335,7 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
>  		 * Each encoder has at most one connector (since we always steal
>  		 * it away), so we won't call enable hooks twice.
>  		 */
> -		drm_atomic_bridge_pre_enable(encoder->bridge, old_state);
> +		drm_atomic_bridge_chain_pre_enable(encoder->bridge, old_state);
>  
>  		if (funcs) {
>  			if (funcs->atomic_enable)
> @@ -1343,7 +1346,7 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
>  				funcs->commit(encoder);
>  		}
>  
> -		drm_atomic_bridge_enable(encoder->bridge, old_state);
> +		drm_atomic_bridge_chain_enable(encoder->bridge, old_state);
>  	}
>  
>  	drm_atomic_helper_commit_writebacks(dev, old_state);
> diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c
> index cba537c99e43..54c874493c57 100644
> --- a/drivers/gpu/drm/drm_bridge.c
> +++ b/drivers/gpu/drm/drm_bridge.c
> @@ -172,8 +172,8 @@ void drm_bridge_detach(struct drm_bridge *bridge)
>   */
>  
>  /**
> - * drm_bridge_mode_fixup - fixup proposed mode for all bridges in the
> - *			   encoder chain
> + * drm_bridge_chain_mode_fixup - fixup proposed mode for all bridges in the
> + *				 encoder chain
>   * @bridge: bridge control structure
>   * @mode: desired mode to be set for the bridge
>   * @adjusted_mode: updated mode that works for this bridge
> @@ -186,9 +186,9 @@ void drm_bridge_detach(struct drm_bridge *bridge)
>   * RETURNS:
>   * true on success, false on failure
>   */
> -bool drm_bridge_mode_fixup(struct drm_bridge *bridge,
> -			const struct drm_display_mode *mode,
> -			struct drm_display_mode *adjusted_mode)
> +bool drm_bridge_chain_mode_fixup(struct drm_bridge *bridge,
> +				 const struct drm_display_mode *mode,
> +				 struct drm_display_mode *adjusted_mode)
>  {
>  	bool ret = true;
>  
> @@ -198,15 +198,16 @@ bool drm_bridge_mode_fixup(struct drm_bridge *bridge,
>  	if (bridge->funcs->mode_fixup)
>  		ret = bridge->funcs->mode_fixup(bridge, mode, adjusted_mode);
>  
> -	ret = ret && drm_bridge_mode_fixup(bridge->next, mode, adjusted_mode);
> +	ret = ret && drm_bridge_chain_mode_fixup(bridge->next, mode,
> +						 adjusted_mode);
>  
>  	return ret;
>  }
> -EXPORT_SYMBOL(drm_bridge_mode_fixup);
> +EXPORT_SYMBOL(drm_bridge_chain_mode_fixup);
>  
>  /**
> - * drm_bridge_mode_valid - validate the mode against all bridges in the
> - * 			   encoder chain.
> + * drm_bridge_chain_mode_valid - validate the mode against all bridges in the
> + *				 encoder chain.
>   * @bridge: bridge control structure
>   * @mode: desired mode to be validated
>   *
> @@ -219,8 +220,9 @@ EXPORT_SYMBOL(drm_bridge_mode_fixup);
>   * RETURNS:
>   * MODE_OK on success, drm_mode_status Enum error code on failure
>   */
> -enum drm_mode_status drm_bridge_mode_valid(struct drm_bridge *bridge,
> -					   const struct drm_display_mode *mode)
> +enum drm_mode_status
> +drm_bridge_chain_mode_valid(struct drm_bridge *bridge,
> +			    const struct drm_display_mode *mode)
>  {
>  	enum drm_mode_status ret = MODE_OK;
>  
> @@ -233,12 +235,12 @@ enum drm_mode_status drm_bridge_mode_valid(struct drm_bridge *bridge,
>  	if (ret != MODE_OK)
>  		return ret;
>  
> -	return drm_bridge_mode_valid(bridge->next, mode);
> +	return drm_bridge_chain_mode_valid(bridge->next, mode);
>  }
> -EXPORT_SYMBOL(drm_bridge_mode_valid);
> +EXPORT_SYMBOL(drm_bridge_chain_mode_valid);
>  
>  /**
> - * drm_bridge_disable - disables all bridges in the encoder chain
> + * drm_bridge_chain_disable - disables all bridges in the encoder chain
>   * @bridge: bridge control structure
>   *
>   * Calls &drm_bridge_funcs.disable op for all the bridges in the encoder
> @@ -247,20 +249,21 @@ EXPORT_SYMBOL(drm_bridge_mode_valid);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_bridge_disable(struct drm_bridge *bridge)
> +void drm_bridge_chain_disable(struct drm_bridge *bridge)
>  {
>  	if (!bridge)
>  		return;
>  
> -	drm_bridge_disable(bridge->next);
> +	drm_bridge_chain_disable(bridge->next);
>  
>  	if (bridge->funcs->disable)
>  		bridge->funcs->disable(bridge);
>  }
> -EXPORT_SYMBOL(drm_bridge_disable);
> +EXPORT_SYMBOL(drm_bridge_chain_disable);
>  
>  /**
> - * drm_bridge_post_disable - cleans up after disabling all bridges in the encoder chain
> + * drm_bridge_chain_post_disable - cleans up after disabling all bridges in the
> + *				   encoder chain
>   * @bridge: bridge control structure
>   *
>   * Calls &drm_bridge_funcs.post_disable op for all the bridges in the
> @@ -269,7 +272,7 @@ EXPORT_SYMBOL(drm_bridge_disable);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_bridge_post_disable(struct drm_bridge *bridge)
> +void drm_bridge_chain_post_disable(struct drm_bridge *bridge)
>  {
>  	if (!bridge)
>  		return;
> @@ -277,25 +280,25 @@ void drm_bridge_post_disable(struct drm_bridge *bridge)
>  	if (bridge->funcs->post_disable)
>  		bridge->funcs->post_disable(bridge);
>  
> -	drm_bridge_post_disable(bridge->next);
> +	drm_bridge_chain_post_disable(bridge->next);
>  }
> -EXPORT_SYMBOL(drm_bridge_post_disable);
> +EXPORT_SYMBOL(drm_bridge_chain_post_disable);
>  
>  /**
> - * drm_bridge_mode_set - set proposed mode for all bridges in the
> - *			 encoder chain
> + * drm_bridge_chain_mode_set - set proposed mode for all bridges in the
> + *			       encoder chain
>   * @bridge: bridge control structure
> - * @mode: desired mode to be set for the bridge
> - * @adjusted_mode: updated mode that works for this bridge
> + * @mode: desired mode to be set for the encoder chain
> + * @adjusted_mode: updated mode that works for this encoder chain
>   *
>   * Calls &drm_bridge_funcs.mode_set op for all the bridges in the
>   * encoder chain, starting from the first bridge to the last.
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_bridge_mode_set(struct drm_bridge *bridge,
> -			 const struct drm_display_mode *mode,
> -			 const struct drm_display_mode *adjusted_mode)
> +void drm_bridge_chain_mode_set(struct drm_bridge *bridge,
> +			       const struct drm_display_mode *mode,
> +			       const struct drm_display_mode *adjusted_mode)
>  {
>  	if (!bridge)
>  		return;
> @@ -303,13 +306,13 @@ void drm_bridge_mode_set(struct drm_bridge *bridge,
>  	if (bridge->funcs->mode_set)
>  		bridge->funcs->mode_set(bridge, mode, adjusted_mode);
>  
> -	drm_bridge_mode_set(bridge->next, mode, adjusted_mode);
> +	drm_bridge_chain_mode_set(bridge->next, mode, adjusted_mode);
>  }
> -EXPORT_SYMBOL(drm_bridge_mode_set);
> +EXPORT_SYMBOL(drm_bridge_chain_mode_set);
>  
>  /**
> - * drm_bridge_pre_enable - prepares for enabling all
> - *			   bridges in the encoder chain
> + * drm_bridge_chain_pre_enable - prepares for enabling all bridges in the
> + *				 encoder chain
>   * @bridge: bridge control structure
>   *
>   * Calls &drm_bridge_funcs.pre_enable op for all the bridges in the encoder
> @@ -318,20 +321,20 @@ EXPORT_SYMBOL(drm_bridge_mode_set);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_bridge_pre_enable(struct drm_bridge *bridge)
> +void drm_bridge_chain_pre_enable(struct drm_bridge *bridge)
>  {
>  	if (!bridge)
>  		return;
>  
> -	drm_bridge_pre_enable(bridge->next);
> +	drm_bridge_chain_pre_enable(bridge->next);
>  
>  	if (bridge->funcs->pre_enable)
>  		bridge->funcs->pre_enable(bridge);
>  }
> -EXPORT_SYMBOL(drm_bridge_pre_enable);
> +EXPORT_SYMBOL(drm_bridge_chain_pre_enable);
>  
>  /**
> - * drm_bridge_enable - enables all bridges in the encoder chain
> + * drm_bridge_chain_enable - enables all bridges in the encoder chain
>   * @bridge: bridge control structure
>   *
>   * Calls &drm_bridge_funcs.enable op for all the bridges in the encoder
> @@ -340,7 +343,7 @@ EXPORT_SYMBOL(drm_bridge_pre_enable);
>   *
>   * Note that the bridge passed should be the one closest to the encoder
>   */
> -void drm_bridge_enable(struct drm_bridge *bridge)
> +void drm_bridge_chain_enable(struct drm_bridge *bridge)
>  {
>  	if (!bridge)
>  		return;
> @@ -348,12 +351,12 @@ void drm_bridge_enable(struct drm_bridge *bridge)
>  	if (bridge->funcs->enable)
>  		bridge->funcs->enable(bridge);
>  
> -	drm_bridge_enable(bridge->next);
> +	drm_bridge_chain_enable(bridge->next);
>  }
> -EXPORT_SYMBOL(drm_bridge_enable);
> +EXPORT_SYMBOL(drm_bridge_chain_enable);
>  
>  /**
> - * drm_atomic_bridge_disable - disables all bridges in the encoder chain
> + * drm_atomic_bridge_chain_disable - disables all bridges in the encoder chain
>   * @bridge: bridge control structure
>   * @state: atomic state being committed
>   *
> @@ -364,24 +367,24 @@ EXPORT_SYMBOL(drm_bridge_enable);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_atomic_bridge_disable(struct drm_bridge *bridge,
> -			       struct drm_atomic_state *state)
> +void drm_atomic_bridge_chain_disable(struct drm_bridge *bridge,
> +				     struct drm_atomic_state *state)
>  {
>  	if (!bridge)
>  		return;
>  
> -	drm_atomic_bridge_disable(bridge->next, state);
> +	drm_atomic_bridge_chain_disable(bridge->next, state);
>  
>  	if (bridge->funcs->atomic_disable)
>  		bridge->funcs->atomic_disable(bridge, state);
>  	else if (bridge->funcs->disable)
>  		bridge->funcs->disable(bridge);
>  }
> -EXPORT_SYMBOL(drm_atomic_bridge_disable);
> +EXPORT_SYMBOL(drm_atomic_bridge_chain_disable);
>  
>  /**
> - * drm_atomic_bridge_post_disable - cleans up after disabling all bridges in the
> - *				    encoder chain
> + * drm_atomic_bridge_chain_post_disable - cleans up after disabling all bridges
> + *					  in the encoder chain
>   * @bridge: bridge control structure
>   * @state: atomic state being committed
>   *
> @@ -392,8 +395,8 @@ EXPORT_SYMBOL(drm_atomic_bridge_disable);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_atomic_bridge_post_disable(struct drm_bridge *bridge,
> -				    struct drm_atomic_state *state)
> +void drm_atomic_bridge_chain_post_disable(struct drm_bridge *bridge,
> +					  struct drm_atomic_state *state)
>  {
>  	if (!bridge)
>  		return;
> @@ -403,13 +406,13 @@ void drm_atomic_bridge_post_disable(struct drm_bridge *bridge,
>  	else if (bridge->funcs->post_disable)
>  		bridge->funcs->post_disable(bridge);
>  
> -	drm_atomic_bridge_post_disable(bridge->next, state);
> +	drm_atomic_bridge_chain_post_disable(bridge->next, state);
>  }
> -EXPORT_SYMBOL(drm_atomic_bridge_post_disable);
> +EXPORT_SYMBOL(drm_atomic_bridge_chain_post_disable);
>  
>  /**
> - * drm_atomic_bridge_pre_enable - prepares for enabling all bridges in the
> - *				  encoder chain
> + * drm_atomic_bridge_chain_pre_enable - prepares for enabling all bridges in
> + *					the encoder chain
>   * @bridge: bridge control structure
>   * @state: atomic state being committed
>   *
> @@ -420,23 +423,23 @@ EXPORT_SYMBOL(drm_atomic_bridge_post_disable);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_atomic_bridge_pre_enable(struct drm_bridge *bridge,
> -				  struct drm_atomic_state *state)
> +void drm_atomic_bridge_chain_pre_enable(struct drm_bridge *bridge,
> +					struct drm_atomic_state *state)
>  {
>  	if (!bridge)
>  		return;
>  
> -	drm_atomic_bridge_pre_enable(bridge->next, state);
> +	drm_atomic_bridge_chain_pre_enable(bridge->next, state);
>  
>  	if (bridge->funcs->atomic_pre_enable)
>  		bridge->funcs->atomic_pre_enable(bridge, state);
>  	else if (bridge->funcs->pre_enable)
>  		bridge->funcs->pre_enable(bridge);
>  }
> -EXPORT_SYMBOL(drm_atomic_bridge_pre_enable);
> +EXPORT_SYMBOL(drm_atomic_bridge_chain_pre_enable);
>  
>  /**
> - * drm_atomic_bridge_enable - enables all bridges in the encoder chain
> + * drm_atomic_bridge_chain_enable - enables all bridges in the encoder chain
>   * @bridge: bridge control structure
>   * @state: atomic state being committed
>   *
> @@ -447,8 +450,8 @@ EXPORT_SYMBOL(drm_atomic_bridge_pre_enable);
>   *
>   * Note: the bridge passed should be the one closest to the encoder
>   */
> -void drm_atomic_bridge_enable(struct drm_bridge *bridge,
> -			      struct drm_atomic_state *state)
> +void drm_atomic_bridge_chain_enable(struct drm_bridge *bridge,
> +				    struct drm_atomic_state *state)
>  {
>  	if (!bridge)
>  		return;
> @@ -458,9 +461,9 @@ void drm_atomic_bridge_enable(struct drm_bridge *bridge,
>  	else if (bridge->funcs->enable)
>  		bridge->funcs->enable(bridge);
>  
> -	drm_atomic_bridge_enable(bridge->next, state);
> +	drm_atomic_bridge_chain_enable(bridge->next, state);
>  }
> -EXPORT_SYMBOL(drm_atomic_bridge_enable);
> +EXPORT_SYMBOL(drm_atomic_bridge_chain_enable);
>  
>  #ifdef CONFIG_OF
>  /**
> diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c
> index a7c87abe88d0..c3ea722065c4 100644
> --- a/drivers/gpu/drm/drm_probe_helper.c
> +++ b/drivers/gpu/drm/drm_probe_helper.c
> @@ -112,7 +112,7 @@ drm_mode_validate_pipeline(struct drm_display_mode *mode,
>  			continue;
>  		}
>  
> -		ret = drm_bridge_mode_valid(encoder->bridge, mode);
> +		ret = drm_bridge_chain_mode_valid(encoder->bridge, mode);
>  		if (ret != MODE_OK) {
>  			/* There is also no point in continuing for crtc check
>  			 * here. */
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> index c79b1f855d89..ea68b5adccbe 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> @@ -1247,8 +1247,8 @@ static int mtk_hdmi_conn_mode_valid(struct drm_connector *conn,
>  		struct drm_display_mode adjusted_mode;
>  
>  		drm_mode_copy(&adjusted_mode, mode);
> -		if (!drm_bridge_mode_fixup(hdmi->bridge.next, mode,
> -					   &adjusted_mode))
> +		if (!drm_bridge_chain_mode_fixup(hdmi->bridge.next, mode,
> +						 &adjusted_mode))
>  			return MODE_BAD;
>  	}
>  
> diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h
> index c0a2286a81e9..726435baf4ad 100644
> --- a/include/drm/drm_bridge.h
> +++ b/include/drm/drm_bridge.h
> @@ -254,9 +254,10 @@ struct drm_bridge_funcs {
>  	 * there is one) when this callback is called.
>  	 *
>  	 * Note that this function will only be invoked in the context of an
> -	 * atomic commit. It will not be invoked from &drm_bridge_pre_enable. It
> -	 * would be prudent to also provide an implementation of @pre_enable if
> -	 * you are expecting driver calls into &drm_bridge_pre_enable.
> +	 * atomic commit. It will not be invoked from
> +	 * &drm_bridge_chain_pre_enable. It would be prudent to also provide an
> +	 * implementation of @pre_enable if you are expecting driver calls into
> +	 * &drm_bridge_chain_pre_enable.
>  	 *
>  	 * The @atomic_pre_enable callback is optional.
>  	 */
> @@ -279,9 +280,9 @@ struct drm_bridge_funcs {
>  	 * chain if there is one.
>  	 *
>  	 * Note that this function will only be invoked in the context of an
> -	 * atomic commit. It will not be invoked from &drm_bridge_enable. It
> -	 * would be prudent to also provide an implementation of @enable if
> -	 * you are expecting driver calls into &drm_bridge_enable.
> +	 * atomic commit. It will not be invoked from &drm_bridge_chain_enable.
> +	 * It would be prudent to also provide an implementation of @enable if
> +	 * you are expecting driver calls into &drm_bridge_chain_enable.
>  	 *
>  	 * The @atomic_enable callback is optional.
>  	 */
> @@ -301,9 +302,10 @@ struct drm_bridge_funcs {
>  	 * signals) feeding it is still running when this callback is called.
>  	 *
>  	 * Note that this function will only be invoked in the context of an
> -	 * atomic commit. It will not be invoked from &drm_bridge_disable. It
> -	 * would be prudent to also provide an implementation of @disable if
> -	 * you are expecting driver calls into &drm_bridge_disable.
> +	 * atomic commit. It will not be invoked from
> +	 * &drm_bridge_chain_disable. It would be prudent to also provide an
> +	 * implementation of @disable if you are expecting driver calls into
> +	 * &drm_bridge_chain_disable.
>  	 *
>  	 * The @atomic_disable callback is optional.
>  	 */
> @@ -325,10 +327,11 @@ struct drm_bridge_funcs {
>  	 * called.
>  	 *
>  	 * Note that this function will only be invoked in the context of an
> -	 * atomic commit. It will not be invoked from &drm_bridge_post_disable.
> +	 * atomic commit. It will not be invoked from
> +	 * &drm_bridge_chain_post_disable.
>  	 * It would be prudent to also provide an implementation of
>  	 * @post_disable if you are expecting driver calls into
> -	 * &drm_bridge_post_disable.
> +	 * &drm_bridge_chain_post_disable.
>  	 *
>  	 * The @atomic_post_disable callback is optional.
>  	 */
> @@ -406,27 +409,28 @@ struct drm_bridge *of_drm_find_bridge(struct device_node *np);
>  int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge,
>  		      struct drm_bridge *previous);
>  
> -bool drm_bridge_mode_fixup(struct drm_bridge *bridge,
> -			   const struct drm_display_mode *mode,
> -			   struct drm_display_mode *adjusted_mode);
> -enum drm_mode_status drm_bridge_mode_valid(struct drm_bridge *bridge,
> -					   const struct drm_display_mode *mode);
> -void drm_bridge_disable(struct drm_bridge *bridge);
> -void drm_bridge_post_disable(struct drm_bridge *bridge);
> -void drm_bridge_mode_set(struct drm_bridge *bridge,
> -			 const struct drm_display_mode *mode,
> -			 const struct drm_display_mode *adjusted_mode);
> -void drm_bridge_pre_enable(struct drm_bridge *bridge);
> -void drm_bridge_enable(struct drm_bridge *bridge);
> +bool drm_bridge_chain_mode_fixup(struct drm_bridge *bridge,
> +				 const struct drm_display_mode *mode,
> +				 struct drm_display_mode *adjusted_mode);
> +enum drm_mode_status
> +drm_bridge_chain_mode_valid(struct drm_bridge *bridge,
> +			    const struct drm_display_mode *mode);
> +void drm_bridge_chain_disable(struct drm_bridge *bridge);
> +void drm_bridge_chain_post_disable(struct drm_bridge *bridge);
> +void drm_bridge_chain_mode_set(struct drm_bridge *bridge,
> +			       const struct drm_display_mode *mode,
> +			       const struct drm_display_mode *adjusted_mode);
> +void drm_bridge_chain_pre_enable(struct drm_bridge *bridge);
> +void drm_bridge_chain_enable(struct drm_bridge *bridge);
>  
> -void drm_atomic_bridge_disable(struct drm_bridge *bridge,
> -			       struct drm_atomic_state *state);
> -void drm_atomic_bridge_post_disable(struct drm_bridge *bridge,
> +void drm_atomic_bridge_chain_disable(struct drm_bridge *bridge,
> +				     struct drm_atomic_state *state);
> +void drm_atomic_bridge_chain_post_disable(struct drm_bridge *bridge,
> +					  struct drm_atomic_state *state);
> +void drm_atomic_bridge_chain_pre_enable(struct drm_bridge *bridge,
> +					struct drm_atomic_state *state);
> +void drm_atomic_bridge_chain_enable(struct drm_bridge *bridge,
>  				    struct drm_atomic_state *state);
> -void drm_atomic_bridge_pre_enable(struct drm_bridge *bridge,
> -				  struct drm_atomic_state *state);
> -void drm_atomic_bridge_enable(struct drm_bridge *bridge,
> -			      struct drm_atomic_state *state);
>  
>  #ifdef CONFIG_DRM_PANEL_BRIDGE
>  struct drm_bridge *drm_panel_bridge_add(struct drm_panel *panel);
> 

Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2019-10-25 13:27 UTC|newest]

Thread overview: 156+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-23 15:44 [PATCH v3 00/21] drm: Add support for bus-format negotiation Boris Brezillon
2019-10-23 15:44 ` Boris Brezillon
2019-10-23 15:44 ` [PATCH v3 01/21] drm/vc4: Declare the DSI encoder as a bridge element Boris Brezillon
2019-10-23 15:44   ` Boris Brezillon
2019-11-24 10:01   ` Laurent Pinchart
2019-11-24 10:01     ` Laurent Pinchart
2019-11-24 10:47     ` Boris Brezillon
2019-11-24 10:47       ` Boris Brezillon
2019-10-23 15:44 ` [PATCH v3 02/21] drm/exynos: Don't reset bridge->next Boris Brezillon
2019-10-23 15:44   ` Boris Brezillon
2019-10-28 12:19   ` Inki Dae
2019-10-28 12:19     ` Inki Dae
2019-10-23 15:44 ` [PATCH v3 03/21] drm/exynos: Declare the DSI encoder as a bridge element Boris Brezillon
2019-10-23 15:44   ` Boris Brezillon
2019-11-24 10:24   ` Laurent Pinchart
2019-11-24 10:24     ` Laurent Pinchart
2019-11-24 13:17     ` Boris Brezillon
2019-11-24 13:17       ` Boris Brezillon
2019-11-24 13:28       ` Boris Brezillon
2019-11-24 13:28         ` Boris Brezillon
2019-11-24 14:02       ` Laurent Pinchart
2019-11-24 14:02         ` Laurent Pinchart
2019-10-23 15:44 ` [PATCH v3 04/21] drm/bridge: Rename bridge helpers targeting a bridge chain Boris Brezillon
2019-10-23 15:44   ` Boris Brezillon
2019-10-25 13:26   ` Neil Armstrong [this message]
2019-10-25 13:26     ` Neil Armstrong
2019-11-24 10:28   ` Laurent Pinchart
2019-11-24 10:28     ` Laurent Pinchart
2019-10-23 15:44 ` [PATCH v3 05/21] drm/bridge: Introduce drm_bridge_chain_get_next_bridge() Boris Brezillon
2019-10-23 15:44   ` Boris Brezillon
2019-10-25 13:27   ` Neil Armstrong
2019-10-25 13:27     ` Neil Armstrong
2019-11-24 10:33   ` Laurent Pinchart
2019-11-24 10:33     ` Laurent Pinchart
2019-11-24 10:56     ` Boris Brezillon
2019-11-24 10:56       ` Boris Brezillon
2019-11-24 14:04       ` Laurent Pinchart
2019-11-24 14:04         ` Laurent Pinchart
2019-10-23 15:44 ` [PATCH v3 06/21] drm: Stop accessing encoder->bridge directly Boris Brezillon
2019-10-23 15:44   ` Boris Brezillon
2019-10-25 13:28   ` Neil Armstrong
2019-10-25 13:28     ` Neil Armstrong
2019-11-24 10:39   ` Laurent Pinchart
2019-11-24 10:39     ` Laurent Pinchart
2019-11-24 13:40     ` Boris Brezillon
2019-11-24 13:40       ` Boris Brezillon
2019-10-23 15:44 ` [PATCH v3 07/21] drm/bridge: Make the bridge chain a double-linked list Boris Brezillon
2019-10-23 15:44   ` Boris Brezillon
2019-10-25 13:29   ` Neil Armstrong
2019-10-25 13:29     ` Neil Armstrong
2019-11-05 16:02     ` Neil Armstrong
2019-11-05 16:02       ` Neil Armstrong
2019-11-24  7:48       ` Boris Brezillon
2019-11-24  7:48         ` Boris Brezillon
2019-11-24 13:57   ` Laurent Pinchart
2019-11-24 13:57     ` Laurent Pinchart
2019-10-23 15:44 ` [PATCH v3 08/21] drm/bridge: Add the drm_for_each_bridge_in_chain() helper Boris Brezillon
2019-10-23 15:44   ` Boris Brezillon
2019-10-25 13:30   ` Neil Armstrong
2019-10-25 13:30     ` Neil Armstrong
2019-11-24 14:07   ` Laurent Pinchart
2019-11-24 14:07     ` Laurent Pinchart
2019-10-23 15:45 ` [PATCH v3 09/21] drm/bridge: Add a drm_bridge_state object Boris Brezillon
2019-10-23 15:45   ` Boris Brezillon
2019-10-25 14:35   ` Neil Armstrong
2019-10-25 14:35     ` Neil Armstrong
2019-11-05 16:05   ` Neil Armstrong
2019-11-05 16:05     ` Neil Armstrong
2019-11-24  7:50     ` Boris Brezillon
2019-11-24  7:50       ` Boris Brezillon
2019-12-02 16:42   ` Laurent Pinchart
2019-12-02 16:42     ` Laurent Pinchart
2019-10-23 15:45 ` [PATCH v3 10/21] drm/bridge: Clarify the atomic enable/disable hooks semantics Boris Brezillon
2019-10-23 15:45   ` Boris Brezillon
2019-10-25 14:33   ` Neil Armstrong
2019-10-25 14:33     ` Neil Armstrong
2019-12-02 16:50   ` Laurent Pinchart
2019-12-02 16:50     ` Laurent Pinchart
2019-10-23 15:45 ` [PATCH v3 11/21] drm/bridge: Patch atomic hooks to take a drm_bridge_state Boris Brezillon
2019-10-23 15:45   ` Boris Brezillon
2019-12-02 16:57   ` Laurent Pinchart
2019-12-02 16:57     ` Laurent Pinchart
2019-10-23 15:45 ` [PATCH v3 12/21] drm/bridge: Add an ->atomic_check() hook Boris Brezillon
2019-10-23 15:45   ` Boris Brezillon
2019-10-25 14:35   ` Neil Armstrong
2019-10-25 14:35     ` Neil Armstrong
2019-12-02 17:03   ` Laurent Pinchart
2019-12-02 17:03     ` Laurent Pinchart
2019-12-03 10:11     ` Boris Brezillon
2019-12-03 10:11       ` Boris Brezillon
2019-12-03 10:15       ` Laurent Pinchart
2019-12-03 10:15         ` Laurent Pinchart
2019-10-23 15:45 ` [PATCH v3 13/21] drm/bridge: Add the drm_bridge_chain_get_prev_bridge() helper Boris Brezillon
2019-10-23 15:45   ` Boris Brezillon
2019-10-25 14:34   ` Neil Armstrong
2019-10-25 14:34     ` Neil Armstrong
2019-12-02 17:05   ` Laurent Pinchart
2019-12-02 17:05     ` Laurent Pinchart
2019-10-23 15:45 ` [PATCH v3 14/21] drm/bridge: Add the necessary bits to support bus format negotiation Boris Brezillon
2019-10-23 15:45   ` Boris Brezillon
2019-12-03 10:03   ` Laurent Pinchart
2019-12-03 10:03     ` Laurent Pinchart
2019-10-23 15:45 ` [PATCH v3 15/21] drm/imx: pd: Use bus format/flags provided by the bridge when available Boris Brezillon
2019-10-23 15:45   ` Boris Brezillon
2019-12-03 13:50   ` Philipp Zabel
2019-12-03 13:50     ` Philipp Zabel
2019-10-23 15:45 ` [PATCH v3 16/21] drm/bridge: lvds-encoder: Implement basic bus format negotiation Boris Brezillon
2019-10-23 15:45   ` Boris Brezillon
2019-12-03 10:14   ` Laurent Pinchart
2019-12-03 10:14     ` Laurent Pinchart
2019-10-23 15:45 ` [PATCH v3 17/21] dt-bindings: display: bridge: lvds-transmitter: Add new props Boris Brezillon
2019-10-23 15:45   ` Boris Brezillon
2019-10-25 19:57   ` Rob Herring
2019-10-25 19:57     ` Rob Herring
2019-10-31 13:04     ` Boris Brezillon
2019-10-31 13:04       ` Boris Brezillon
2019-12-02 17:11   ` Laurent Pinchart
2019-12-02 17:11     ` Laurent Pinchart
2019-12-03 12:38     ` Boris Brezillon
2019-12-03 12:38       ` Boris Brezillon
2019-12-03 13:22       ` Laurent Pinchart
2019-12-03 13:22         ` Laurent Pinchart
2019-10-23 15:45 ` [PATCH v3 18/21] drm/bridge: panel: Propage bus format/flags Boris Brezillon
2019-10-23 15:45   ` Boris Brezillon
2019-12-03 10:17   ` Laurent Pinchart
2019-12-03 10:17     ` Laurent Pinchart
2020-01-22  9:27     ` Boris Brezillon
2020-01-22  9:27       ` Boris Brezillon
2019-10-23 15:45 ` [PATCH v3 19/21] drm/panel: simple: Add support for Toshiba LTA089AC29000 panel Boris Brezillon
2019-10-23 15:45   ` Boris Brezillon
2019-12-02 17:17   ` Laurent Pinchart
2019-12-02 17:17     ` Laurent Pinchart
2019-12-03 12:42     ` Boris Brezillon
2019-12-03 12:42       ` Boris Brezillon
2019-12-03 13:28       ` Laurent Pinchart
2019-12-03 13:28         ` Laurent Pinchart
2019-10-23 15:45 ` [PATCH v3 20/21] dt-bindings: display: panel: Add the LTA089AC29000 variant Boris Brezillon
2019-10-23 15:45   ` Boris Brezillon
2019-10-25 19:58   ` Rob Herring
2019-10-25 19:58     ` Rob Herring
2019-10-25 19:58     ` Rob Herring
2019-12-02 17:19   ` Laurent Pinchart
2019-12-02 17:19     ` Laurent Pinchart
2019-10-23 15:45 ` [PATCH v3 21/21] ARM: dts: imx: imx51-zii-rdu1: Fix the display pipeline definition Boris Brezillon
2019-10-23 15:45   ` Boris Brezillon
2019-10-24 11:27 ` [PATCH v3 00/21] drm: Add support for bus-format negotiation Neil Armstrong
2019-10-24 11:27   ` Neil Armstrong
2019-10-24 13:22   ` Boris Brezillon
2019-10-24 13:22     ` Boris Brezillon
2019-11-24  0:46 ` Ezequiel Garcia
2019-11-24  0:46   ` Ezequiel Garcia
2019-11-24  0:46   ` Ezequiel Garcia
2019-11-24  7:32   ` Boris Brezillon
2019-11-24  7:32     ` Boris Brezillon
2019-11-24  9:34     ` Ezequiel Garcia
2019-11-24  9:34       ` Ezequiel Garcia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bebc1b04-a149-86a4-dd3f-ed475af0ea29@baylibre.com \
    --to=narmstrong@baylibre.com \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=a.hajda@samsung.com \
    --cc=andrew.smirnov@gmail.com \
    --cc=boris.brezillon@collabora.com \
    --cc=cphealy@gmail.com \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=inki.dae@samsung.com \
    --cc=jernej.skrabec@siol.net \
    --cc=jonas@kwiboo.se \
    --cc=jy0922.shim@samsung.com \
    --cc=kernel@collabora.com \
    --cc=kyungmin.park@samsung.com \
    --cc=l.stach@pengutronix.de \
    --cc=mark.rutland@arm.com \
    --cc=nikita.yoush@cogentembedded.com \
    --cc=p.zabel@pengutronix.de \
    --cc=robdclark@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=sam@ravnborg.org \
    --cc=sw0312.kim@samsung.com \
    --cc=thierry.reding@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.