Commit d8dbe791 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Tomi Valkeinen

drm/omap: Store CRTC timings in .set_timings() operation

The video timings are stored in the CRTC structure by the
omap_crtc_dss_set_timings() function, called by dss_mgr_set_timings()
from the .enable() operation of the internal encoders. This instead
belongs to the .set_timings() code paths. Move the
omap_crtc_dss_set_timings() calls accordingly.
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarSebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent a730ce99
...@@ -361,8 +361,6 @@ static int dpi_set_mode(struct dpi_data *dpi) ...@@ -361,8 +361,6 @@ static int dpi_set_mode(struct dpi_data *dpi)
if (r) if (r)
return r; return r;
dss_mgr_set_timings(&dpi->output, vm);
return 0; return 0;
} }
...@@ -479,6 +477,8 @@ static void dpi_set_timings(struct omap_dss_device *dssdev, ...@@ -479,6 +477,8 @@ static void dpi_set_timings(struct omap_dss_device *dssdev,
dpi->vm = *vm; dpi->vm = *vm;
dss_mgr_set_timings(&dpi->output, vm);
mutex_unlock(&dpi->lock); mutex_unlock(&dpi->lock);
} }
......
...@@ -3901,8 +3901,6 @@ static void dsi_update_screen_dispc(struct dsi_data *dsi) ...@@ -3901,8 +3901,6 @@ static void dsi_update_screen_dispc(struct dsi_data *dsi)
msecs_to_jiffies(250)); msecs_to_jiffies(250));
BUG_ON(r == 0); BUG_ON(r == 0);
dss_mgr_set_timings(&dsi->output, &dsi->vm);
dss_mgr_start_update(&dsi->output); dss_mgr_start_update(&dsi->output);
if (dsi->te_enabled) { if (dsi->te_enabled) {
...@@ -4044,8 +4042,6 @@ static int dsi_display_init_dispc(struct dsi_data *dsi) ...@@ -4044,8 +4042,6 @@ static int dsi_display_init_dispc(struct dsi_data *dsi)
dsi->mgr_config.fifohandcheck = false; dsi->mgr_config.fifohandcheck = false;
} }
dss_mgr_set_timings(&dsi->output, &dsi->vm);
r = dsi_configure_dispc_clocks(dsi); r = dsi_configure_dispc_clocks(dsi);
if (r) if (r)
goto err1; goto err1;
...@@ -4756,6 +4752,8 @@ static int dsi_set_config(struct omap_dss_device *dssdev, ...@@ -4756,6 +4752,8 @@ static int dsi_set_config(struct omap_dss_device *dssdev,
dsi->vm.flags &= ~DISPLAY_FLAGS_VSYNC_LOW; dsi->vm.flags &= ~DISPLAY_FLAGS_VSYNC_LOW;
dsi->vm.flags |= DISPLAY_FLAGS_VSYNC_HIGH; dsi->vm.flags |= DISPLAY_FLAGS_VSYNC_HIGH;
dss_mgr_set_timings(&dsi->output, &dsi->vm);
dsi->vm_timings = ctx.dsi_vm; dsi->vm_timings = ctx.dsi_vm;
mutex_unlock(&dsi->lock); mutex_unlock(&dsi->lock);
......
...@@ -207,9 +207,6 @@ static int hdmi_power_on_full(struct omap_hdmi *hdmi) ...@@ -207,9 +207,6 @@ static int hdmi_power_on_full(struct omap_hdmi *hdmi)
hdmi4_configure(&hdmi->core, &hdmi->wp, &hdmi->cfg); hdmi4_configure(&hdmi->core, &hdmi->wp, &hdmi->cfg);
/* tv size */
dss_mgr_set_timings(&hdmi->output, vm);
r = dss_mgr_enable(&hdmi->output); r = dss_mgr_enable(&hdmi->output);
if (r) if (r)
goto err_mgr_enable; goto err_mgr_enable;
...@@ -262,6 +259,8 @@ static void hdmi_display_set_timings(struct omap_dss_device *dssdev, ...@@ -262,6 +259,8 @@ static void hdmi_display_set_timings(struct omap_dss_device *dssdev,
dispc_set_tv_pclk(hdmi->dss->dispc, vm->pixelclock); dispc_set_tv_pclk(hdmi->dss->dispc, vm->pixelclock);
dss_mgr_set_timings(&hdmi->output, vm);
mutex_unlock(&hdmi->lock); mutex_unlock(&hdmi->lock);
} }
......
...@@ -206,9 +206,6 @@ static int hdmi_power_on_full(struct omap_hdmi *hdmi) ...@@ -206,9 +206,6 @@ static int hdmi_power_on_full(struct omap_hdmi *hdmi)
hdmi5_configure(&hdmi->core, &hdmi->wp, &hdmi->cfg); hdmi5_configure(&hdmi->core, &hdmi->wp, &hdmi->cfg);
/* tv size */
dss_mgr_set_timings(&hdmi->output, vm);
r = dss_mgr_enable(&hdmi->output); r = dss_mgr_enable(&hdmi->output);
if (r) if (r)
goto err_mgr_enable; goto err_mgr_enable;
...@@ -261,6 +258,8 @@ static void hdmi_display_set_timings(struct omap_dss_device *dssdev, ...@@ -261,6 +258,8 @@ static void hdmi_display_set_timings(struct omap_dss_device *dssdev,
dispc_set_tv_pclk(hdmi->dss->dispc, vm->pixelclock); dispc_set_tv_pclk(hdmi->dss->dispc, vm->pixelclock);
dss_mgr_set_timings(&hdmi->output, vm);
mutex_unlock(&hdmi->lock); mutex_unlock(&hdmi->lock);
} }
......
...@@ -155,8 +155,6 @@ static int sdi_display_enable(struct omap_dss_device *dssdev) ...@@ -155,8 +155,6 @@ static int sdi_display_enable(struct omap_dss_device *dssdev)
sdi->mgr_config.clock_info = dispc_cinfo; sdi->mgr_config.clock_info = dispc_cinfo;
dss_mgr_set_timings(&sdi->output, &sdi->vm);
r = dss_set_fck_rate(sdi->dss, fck); r = dss_set_fck_rate(sdi->dss, fck);
if (r) if (r)
goto err_set_dss_clock_div; goto err_set_dss_clock_div;
...@@ -220,6 +218,8 @@ static void sdi_set_timings(struct omap_dss_device *dssdev, ...@@ -220,6 +218,8 @@ static void sdi_set_timings(struct omap_dss_device *dssdev,
struct sdi_device *sdi = dssdev_to_sdi(dssdev); struct sdi_device *sdi = dssdev_to_sdi(dssdev);
sdi->vm = *vm; sdi->vm = *vm;
dss_mgr_set_timings(&sdi->output, vm);
} }
static int sdi_check_timings(struct omap_dss_device *dssdev, static int sdi_check_timings(struct omap_dss_device *dssdev,
......
...@@ -491,8 +491,6 @@ static int venc_power_on(struct venc_device *venc) ...@@ -491,8 +491,6 @@ static int venc_power_on(struct venc_device *venc)
venc_write_reg(venc, VENC_OUTPUT_CONTROL, l); venc_write_reg(venc, VENC_OUTPUT_CONTROL, l);
dss_mgr_set_timings(&venc->output, &venc->vm);
r = regulator_enable(venc->vdda_dac_reg); r = regulator_enable(venc->vdda_dac_reg);
if (r) if (r)
goto err1; goto err1;
...@@ -595,6 +593,8 @@ static void venc_set_timings(struct omap_dss_device *dssdev, ...@@ -595,6 +593,8 @@ static void venc_set_timings(struct omap_dss_device *dssdev,
dispc_set_tv_pclk(venc->dss->dispc, 13500000); dispc_set_tv_pclk(venc->dss->dispc, 13500000);
dss_mgr_set_timings(&venc->output, vm);
mutex_unlock(&venc->venc_lock); mutex_unlock(&venc->venc_lock);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment