Commit ea099adf authored by Boris Brezillon's avatar Boris Brezillon
Browse files

drm/bridge: Rename bridge helpers targeting a bridge chain



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: default avatarBoris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191203141515.3597631-2-boris.brezillon@collabora.com
parent 64e62bdf
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -435,7 +435,8 @@ 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,
		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");
@@ -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);
+64 −61
Original line number Diff line number Diff line
@@ -172,7 +172,7 @@ void drm_bridge_detach(struct drm_bridge *bridge)
 */

/**
 * drm_bridge_mode_fixup - fixup proposed mode for all bridges in the
 * 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
@@ -186,7 +186,7 @@ void drm_bridge_detach(struct drm_bridge *bridge)
 * RETURNS:
 * true on success, false on failure
 */
bool drm_bridge_mode_fixup(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)
{
@@ -198,14 +198,15 @@ 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
 * 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,7 +220,8 @@ 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,
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,23 +280,23 @@ 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
 * 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,
void drm_bridge_chain_mode_set(struct drm_bridge *bridge,
			       const struct drm_display_mode *mode,
			       const struct drm_display_mode *adjusted_mode)
{
@@ -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,
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,7 +395,7 @@ 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,
void drm_atomic_bridge_chain_post_disable(struct drm_bridge *bridge,
					  struct drm_atomic_state *state)
{
	if (!bridge)
@@ -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,
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,7 +450,7 @@ 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,
void drm_atomic_bridge_chain_enable(struct drm_bridge *bridge,
				    struct drm_atomic_state *state)
{
	if (!bridge)
@@ -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
/**
+1 −1
Original line number Diff line number Diff line
@@ -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. */
+4 −4
Original line number Diff line number Diff line
@@ -1390,7 +1390,7 @@ static void exynos_dsi_enable(struct drm_encoder *encoder)
		if (ret < 0)
			goto err_put_sync;
	} else {
		drm_bridge_pre_enable(dsi->out_bridge);
		drm_bridge_chain_pre_enable(dsi->out_bridge);
	}

	exynos_dsi_set_display_mode(dsi);
@@ -1401,7 +1401,7 @@ static void exynos_dsi_enable(struct drm_encoder *encoder)
		if (ret < 0)
			goto err_display_disable;
	} else {
		drm_bridge_enable(dsi->out_bridge);
		drm_bridge_chain_enable(dsi->out_bridge);
	}

	dsi->state |= DSIM_STATE_VIDOUT_AVAILABLE;
@@ -1426,10 +1426,10 @@ static void exynos_dsi_disable(struct drm_encoder *encoder)
	dsi->state &= ~DSIM_STATE_VIDOUT_AVAILABLE;

	drm_panel_disable(dsi->panel);
	drm_bridge_disable(dsi->out_bridge);
	drm_bridge_chain_disable(dsi->out_bridge);
	exynos_dsi_set_display_enable(dsi, false);
	drm_panel_unprepare(dsi->panel);
	drm_bridge_post_disable(dsi->out_bridge);
	drm_bridge_chain_post_disable(dsi->out_bridge);
	dsi->state &= ~DSIM_STATE_ENABLED;
	pm_runtime_put_sync(dsi->dev);
}
+2 −2
Original line number Diff line number Diff line
@@ -1247,7 +1247,7 @@ 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,
		if (!drm_bridge_chain_mode_fixup(hdmi->bridge.next, mode,
						 &adjusted_mode))
			return MODE_BAD;
	}
Loading