Commit 5d676b6f authored by Tomi Valkeinen's avatar Tomi Valkeinen
Browse files

drm/omap: dsi: move enable/disable to bridge enable/disable



Clean up the code by inlining dsi_enable_video_outputs and
dsi_disable_video_outputs functions.

Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201215104657.802264-76-tomi.valkeinen@ti.com
parent 7aa52346
Loading
Loading
Loading
Loading
+22 −33
Original line number Diff line number Diff line
@@ -3338,20 +3338,6 @@ static void dsi_disable_video_output(struct omap_dss_device *dssdev, int vc)
	dsi_display_uninit_dispc(dsi);
}

static void dsi_disable_video_outputs(struct omap_dss_device *dssdev)
{
	struct dsi_data *dsi = to_dsi_data(dssdev);

	dsi_bus_lock(dsi);
	dsi->video_enabled = false;

	dsi_disable_video_output(dssdev, VC_VIDEO);

	dsi_display_disable(dssdev);

	dsi_bus_unlock(dsi);
}

static void dsi_update_screen_dispc(struct dsi_data *dsi)
{
	unsigned int bytespp;
@@ -3793,23 +3779,6 @@ static void dsi_display_enable(struct omap_dss_device *dssdev)
	_dsi_display_enable(dsi);
}

static void dsi_enable_video_outputs(struct omap_dss_device *dssdev)
{
	struct dsi_data *dsi = to_dsi_data(dssdev);

	dsi_bus_lock(dsi);

	dsi_display_enable(dssdev);

	dsi_enable_video_output(dssdev, VC_VIDEO);

	dsi->video_enabled = true;

	dsi_set_ulps_auto(dsi, true);

	dsi_bus_unlock(dsi);
}

static void _dsi_display_disable(struct dsi_data *dsi,
		bool disconnect_lanes, bool enter_ulps)
{
@@ -4971,15 +4940,35 @@ static void dsi_bridge_mode_set(struct drm_bridge *bridge,
static void dsi_bridge_enable(struct drm_bridge *bridge)
{
	struct dsi_data *dsi = drm_bridge_to_dsi(bridge);
	struct omap_dss_device *dssdev = &dsi->output;

	dsi_enable_video_outputs(&dsi->output);
	dsi_bus_lock(dsi);

	dsi_display_enable(dssdev);

	dsi_enable_video_output(dssdev, VC_VIDEO);

	dsi->video_enabled = true;

	dsi_set_ulps_auto(dsi, true);

	dsi_bus_unlock(dsi);
}

static void dsi_bridge_disable(struct drm_bridge *bridge)
{
	struct dsi_data *dsi = drm_bridge_to_dsi(bridge);
	struct omap_dss_device *dssdev = &dsi->output;

	dsi_bus_lock(dsi);

	dsi->video_enabled = false;

	dsi_disable_video_output(dssdev, VC_VIDEO);

	dsi_disable_video_outputs(&dsi->output);
	dsi_display_disable(dssdev);

	dsi_bus_unlock(dsi);
}

static const struct drm_bridge_funcs dsi_bridge_funcs = {