Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7edc6629 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Revert "drm/bridge: Rename bridge helpers targeting a bridge chain"



This reverts commit bb08be72.

It breaks the Android kernel api and was added only because of a tiny
drm driver bugfix for an issue that can not ever really be hit, so it is
safe to revert.

Bug: 161946584
Change-Id: I048f2ee1cfd60416b408af65b403286e282efcdd
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 8d15e5fa
Loading
Loading
Loading
Loading
+8 −11
Original line number Diff line number Diff line
@@ -445,8 +445,7 @@ mode_fixup(struct drm_atomic_state *state)
		encoder = new_conn_state->best_encoder;
		funcs = encoder->helper_private;

		ret = drm_bridge_chain_mode_fixup(encoder->bridge,
					&new_crtc_state->mode,
		ret = drm_bridge_mode_fixup(encoder->bridge, &new_crtc_state->mode,
				&new_crtc_state->adjusted_mode);
		if (!ret) {
			DRM_DEBUG_ATOMIC("Bridge fixup failed\n");
@@ -512,7 +511,7 @@ static enum drm_mode_status mode_valid_path(struct drm_connector *connector,
		return ret;
	}

	ret = drm_bridge_chain_mode_valid(encoder->bridge, mode);
	ret = drm_bridge_mode_valid(encoder->bridge, mode);
	if (ret != MODE_OK) {
		DRM_DEBUG_ATOMIC("[BRIDGE] mode_valid() failed\n");
		return ret;
@@ -1031,7 +1030,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_chain_disable(encoder->bridge, old_state);
		drm_atomic_bridge_disable(encoder->bridge, old_state);

		/* Right function depends upon target state. */
		if (funcs) {
@@ -1045,8 +1044,7 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state)
				funcs->dpms(encoder, DRM_MODE_DPMS_OFF);
		}

		drm_atomic_bridge_chain_post_disable(encoder->bridge,
						     old_state);
		drm_atomic_bridge_post_disable(encoder->bridge, old_state);
	}

	for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) {
@@ -1227,8 +1225,7 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state)
			funcs->mode_set(encoder, mode, adjusted_mode);
		}

		drm_bridge_chain_mode_set(encoder->bridge, mode,
					  adjusted_mode);
		drm_bridge_mode_set(encoder->bridge, mode, adjusted_mode);
	}
}

@@ -1345,7 +1342,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_chain_pre_enable(encoder->bridge, old_state);
		drm_atomic_bridge_pre_enable(encoder->bridge, old_state);

		if (funcs) {
			if (funcs->atomic_enable)
@@ -1356,7 +1353,7 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
				funcs->commit(encoder);
		}

		drm_atomic_bridge_chain_enable(encoder->bridge, old_state);
		drm_atomic_bridge_enable(encoder->bridge, old_state);
	}

	drm_atomic_helper_commit_writebacks(dev, old_state);
+61 −64
Original line number Diff line number Diff line
@@ -172,7 +172,7 @@ void drm_bridge_detach(struct drm_bridge *bridge)
 */

/**
 * drm_bridge_chain_mode_fixup - fixup proposed mode for all bridges in the
 * drm_bridge_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_chain_mode_fixup(struct drm_bridge *bridge,
bool drm_bridge_mode_fixup(struct drm_bridge *bridge,
			const struct drm_display_mode *mode,
			struct drm_display_mode *adjusted_mode)
{
@@ -198,15 +198,14 @@ bool drm_bridge_chain_mode_fixup(struct drm_bridge *bridge,
	if (bridge->funcs->mode_fixup)
		ret = bridge->funcs->mode_fixup(bridge, mode, adjusted_mode);

	ret = ret && drm_bridge_chain_mode_fixup(bridge->next, mode,
						 adjusted_mode);
	ret = ret && drm_bridge_mode_fixup(bridge->next, mode, adjusted_mode);

	return ret;
}
EXPORT_SYMBOL(drm_bridge_chain_mode_fixup);
EXPORT_SYMBOL(drm_bridge_mode_fixup);

/**
 * drm_bridge_chain_mode_valid - validate the mode against all bridges in the
 * drm_bridge_mode_valid - validate the mode against all bridges in the
 * 			   encoder chain.
 * @bridge: bridge control structure
 * @mode: desired mode to be validated
@@ -220,8 +219,7 @@ EXPORT_SYMBOL(drm_bridge_chain_mode_fixup);
 * RETURNS:
 * MODE_OK on success, drm_mode_status Enum error code on failure
 */
enum drm_mode_status
drm_bridge_chain_mode_valid(struct drm_bridge *bridge,
enum drm_mode_status drm_bridge_mode_valid(struct drm_bridge *bridge,
					   const struct drm_display_mode *mode)
{
	enum drm_mode_status ret = MODE_OK;
@@ -235,12 +233,12 @@ drm_bridge_chain_mode_valid(struct drm_bridge *bridge,
	if (ret != MODE_OK)
		return ret;

	return drm_bridge_chain_mode_valid(bridge->next, mode);
	return drm_bridge_mode_valid(bridge->next, mode);
}
EXPORT_SYMBOL(drm_bridge_chain_mode_valid);
EXPORT_SYMBOL(drm_bridge_mode_valid);

/**
 * drm_bridge_chain_disable - disables all bridges in the encoder chain
 * drm_bridge_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
@@ -249,21 +247,20 @@ EXPORT_SYMBOL(drm_bridge_chain_mode_valid);
 *
 * Note: the bridge passed should be the one closest to the encoder
 */
void drm_bridge_chain_disable(struct drm_bridge *bridge)
void drm_bridge_disable(struct drm_bridge *bridge)
{
	if (!bridge)
		return;

	drm_bridge_chain_disable(bridge->next);
	drm_bridge_disable(bridge->next);

	if (bridge->funcs->disable)
		bridge->funcs->disable(bridge);
}
EXPORT_SYMBOL(drm_bridge_chain_disable);
EXPORT_SYMBOL(drm_bridge_disable);

/**
 * drm_bridge_chain_post_disable - cleans up after disabling all bridges in the
 *				   encoder chain
 * drm_bridge_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
@@ -272,7 +269,7 @@ EXPORT_SYMBOL(drm_bridge_chain_disable);
 *
 * Note: the bridge passed should be the one closest to the encoder
 */
void drm_bridge_chain_post_disable(struct drm_bridge *bridge)
void drm_bridge_post_disable(struct drm_bridge *bridge)
{
	if (!bridge)
		return;
@@ -280,23 +277,23 @@ void drm_bridge_chain_post_disable(struct drm_bridge *bridge)
	if (bridge->funcs->post_disable)
		bridge->funcs->post_disable(bridge);

	drm_bridge_chain_post_disable(bridge->next);
	drm_bridge_post_disable(bridge->next);
}
EXPORT_SYMBOL(drm_bridge_chain_post_disable);
EXPORT_SYMBOL(drm_bridge_post_disable);

/**
 * drm_bridge_chain_mode_set - set proposed mode for all bridges in the
 * drm_bridge_mode_set - set proposed mode for all bridges in the
 *			 encoder chain
 * @bridge: bridge control structure
 * @mode: desired mode to be set for the encoder chain
 * @adjusted_mode: updated mode that works for this encoder chain
 * @mode: desired mode to be set for the bridge
 * @adjusted_mode: updated mode that works for this bridge
 *
 * 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_chain_mode_set(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)
{
@@ -306,13 +303,13 @@ void drm_bridge_chain_mode_set(struct drm_bridge *bridge,
	if (bridge->funcs->mode_set)
		bridge->funcs->mode_set(bridge, mode, adjusted_mode);

	drm_bridge_chain_mode_set(bridge->next, mode, adjusted_mode);
	drm_bridge_mode_set(bridge->next, mode, adjusted_mode);
}
EXPORT_SYMBOL(drm_bridge_chain_mode_set);
EXPORT_SYMBOL(drm_bridge_mode_set);

/**
 * drm_bridge_chain_pre_enable - prepares for enabling all bridges in the
 *				 encoder chain
 * drm_bridge_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
@@ -321,20 +318,20 @@ EXPORT_SYMBOL(drm_bridge_chain_mode_set);
 *
 * Note: the bridge passed should be the one closest to the encoder
 */
void drm_bridge_chain_pre_enable(struct drm_bridge *bridge)
void drm_bridge_pre_enable(struct drm_bridge *bridge)
{
	if (!bridge)
		return;

	drm_bridge_chain_pre_enable(bridge->next);
	drm_bridge_pre_enable(bridge->next);

	if (bridge->funcs->pre_enable)
		bridge->funcs->pre_enable(bridge);
}
EXPORT_SYMBOL(drm_bridge_chain_pre_enable);
EXPORT_SYMBOL(drm_bridge_pre_enable);

/**
 * drm_bridge_chain_enable - enables all bridges in the encoder chain
 * drm_bridge_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
@@ -343,7 +340,7 @@ EXPORT_SYMBOL(drm_bridge_chain_pre_enable);
 *
 * Note that the bridge passed should be the one closest to the encoder
 */
void drm_bridge_chain_enable(struct drm_bridge *bridge)
void drm_bridge_enable(struct drm_bridge *bridge)
{
	if (!bridge)
		return;
@@ -351,12 +348,12 @@ void drm_bridge_chain_enable(struct drm_bridge *bridge)
	if (bridge->funcs->enable)
		bridge->funcs->enable(bridge);

	drm_bridge_chain_enable(bridge->next);
	drm_bridge_enable(bridge->next);
}
EXPORT_SYMBOL(drm_bridge_chain_enable);
EXPORT_SYMBOL(drm_bridge_enable);

/**
 * drm_atomic_bridge_chain_disable - disables all bridges in the encoder chain
 * drm_atomic_bridge_disable - disables all bridges in the encoder chain
 * @bridge: bridge control structure
 * @state: atomic state being committed
 *
@@ -367,24 +364,24 @@ EXPORT_SYMBOL(drm_bridge_chain_enable);
 *
 * Note: the bridge passed should be the one closest to the encoder
 */
void drm_atomic_bridge_chain_disable(struct drm_bridge *bridge,
void drm_atomic_bridge_disable(struct drm_bridge *bridge,
			       struct drm_atomic_state *state)
{
	if (!bridge)
		return;

	drm_atomic_bridge_chain_disable(bridge->next, state);
	drm_atomic_bridge_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_chain_disable);
EXPORT_SYMBOL(drm_atomic_bridge_disable);

/**
 * drm_atomic_bridge_chain_post_disable - cleans up after disabling all bridges
 *					  in the encoder chain
 * drm_atomic_bridge_post_disable - cleans up after disabling all bridges in the
 *				    encoder chain
 * @bridge: bridge control structure
 * @state: atomic state being committed
 *
@@ -395,7 +392,7 @@ EXPORT_SYMBOL(drm_atomic_bridge_chain_disable);
 *
 * Note: the bridge passed should be the one closest to the encoder
 */
void drm_atomic_bridge_chain_post_disable(struct drm_bridge *bridge,
void drm_atomic_bridge_post_disable(struct drm_bridge *bridge,
				    struct drm_atomic_state *state)
{
	if (!bridge)
@@ -406,13 +403,13 @@ void drm_atomic_bridge_chain_post_disable(struct drm_bridge *bridge,
	else if (bridge->funcs->post_disable)
		bridge->funcs->post_disable(bridge);

	drm_atomic_bridge_chain_post_disable(bridge->next, state);
	drm_atomic_bridge_post_disable(bridge->next, state);
}
EXPORT_SYMBOL(drm_atomic_bridge_chain_post_disable);
EXPORT_SYMBOL(drm_atomic_bridge_post_disable);

/**
 * drm_atomic_bridge_chain_pre_enable - prepares for enabling all bridges in
 *					the encoder chain
 * drm_atomic_bridge_pre_enable - prepares for enabling all bridges in the
 *				  encoder chain
 * @bridge: bridge control structure
 * @state: atomic state being committed
 *
@@ -423,23 +420,23 @@ EXPORT_SYMBOL(drm_atomic_bridge_chain_post_disable);
 *
 * Note: the bridge passed should be the one closest to the encoder
 */
void drm_atomic_bridge_chain_pre_enable(struct drm_bridge *bridge,
void drm_atomic_bridge_pre_enable(struct drm_bridge *bridge,
				  struct drm_atomic_state *state)
{
	if (!bridge)
		return;

	drm_atomic_bridge_chain_pre_enable(bridge->next, state);
	drm_atomic_bridge_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_chain_pre_enable);
EXPORT_SYMBOL(drm_atomic_bridge_pre_enable);

/**
 * drm_atomic_bridge_chain_enable - enables all bridges in the encoder chain
 * drm_atomic_bridge_enable - enables all bridges in the encoder chain
 * @bridge: bridge control structure
 * @state: atomic state being committed
 *
@@ -450,7 +447,7 @@ EXPORT_SYMBOL(drm_atomic_bridge_chain_pre_enable);
 *
 * Note: the bridge passed should be the one closest to the encoder
 */
void drm_atomic_bridge_chain_enable(struct drm_bridge *bridge,
void drm_atomic_bridge_enable(struct drm_bridge *bridge,
			      struct drm_atomic_state *state)
{
	if (!bridge)
@@ -461,9 +458,9 @@ void drm_atomic_bridge_chain_enable(struct drm_bridge *bridge,
	else if (bridge->funcs->enable)
		bridge->funcs->enable(bridge);

	drm_atomic_bridge_chain_enable(bridge->next, state);
	drm_atomic_bridge_enable(bridge->next, state);
}
EXPORT_SYMBOL(drm_atomic_bridge_chain_enable);
EXPORT_SYMBOL(drm_atomic_bridge_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_chain_mode_valid(encoder->bridge, mode);
		ret = drm_bridge_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
@@ -1389,7 +1389,7 @@ static void exynos_dsi_enable(struct drm_encoder *encoder)
		if (ret < 0)
			goto err_put_sync;
	} else {
		drm_bridge_chain_pre_enable(dsi->out_bridge);
		drm_bridge_pre_enable(dsi->out_bridge);
	}

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

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

	drm_panel_disable(dsi->panel);
	drm_bridge_chain_disable(dsi->out_bridge);
	drm_bridge_disable(dsi->out_bridge);
	exynos_dsi_set_display_enable(dsi, false);
	drm_panel_unprepare(dsi->panel);
	drm_bridge_chain_post_disable(dsi->out_bridge);
	drm_bridge_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
@@ -1246,7 +1246,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_chain_mode_fixup(hdmi->bridge.next, mode,
		if (!drm_bridge_mode_fixup(hdmi->bridge.next, mode,
					   &adjusted_mode))
			return MODE_BAD;
	}
Loading