aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/dss
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2018-06-08 09:53:37 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2018-09-03 09:13:30 -0400
commitd8dbe79143764b86bd04c63c044431565582a22d (patch)
tree89cd5b4336e66ea175b6b5cfb7ff8bd577a94d9a /drivers/gpu/drm/omapdrm/dss
parenta730ce996ce4da09979bac884ddb62daf413b79e (diff)
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: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/dss')
-rw-r--r--drivers/gpu/drm/omapdrm/dss/dpi.c4
-rw-r--r--drivers/gpu/drm/omapdrm/dss/dsi.c6
-rw-r--r--drivers/gpu/drm/omapdrm/dss/hdmi4.c5
-rw-r--r--drivers/gpu/drm/omapdrm/dss/hdmi5.c5
-rw-r--r--drivers/gpu/drm/omapdrm/dss/sdi.c4
-rw-r--r--drivers/gpu/drm/omapdrm/dss/venc.c4
6 files changed, 12 insertions, 16 deletions
diff --git a/drivers/gpu/drm/omapdrm/dss/dpi.c b/drivers/gpu/drm/omapdrm/dss/dpi.c
index 2a4ad732679f..223586788648 100644
--- a/drivers/gpu/drm/omapdrm/dss/dpi.c
+++ b/drivers/gpu/drm/omapdrm/dss/dpi.c
@@ -361,8 +361,6 @@ static int dpi_set_mode(struct dpi_data *dpi)
361 if (r) 361 if (r)
362 return r; 362 return r;
363 363
364 dss_mgr_set_timings(&dpi->output, vm);
365
366 return 0; 364 return 0;
367} 365}
368 366
@@ -479,6 +477,8 @@ static void dpi_set_timings(struct omap_dss_device *dssdev,
479 477
480 dpi->vm = *vm; 478 dpi->vm = *vm;
481 479
480 dss_mgr_set_timings(&dpi->output, vm);
481
482 mutex_unlock(&dpi->lock); 482 mutex_unlock(&dpi->lock);
483} 483}
484 484
diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
index d1734ea2534a..394c129cfb3b 100644
--- a/drivers/gpu/drm/omapdrm/dss/dsi.c
+++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
@@ -3901,8 +3901,6 @@ static void dsi_update_screen_dispc(struct dsi_data *dsi)
3901 msecs_to_jiffies(250)); 3901 msecs_to_jiffies(250));
3902 BUG_ON(r == 0); 3902 BUG_ON(r == 0);
3903 3903
3904 dss_mgr_set_timings(&dsi->output, &dsi->vm);
3905
3906 dss_mgr_start_update(&dsi->output); 3904 dss_mgr_start_update(&dsi->output);
3907 3905
3908 if (dsi->te_enabled) { 3906 if (dsi->te_enabled) {
@@ -4044,8 +4042,6 @@ static int dsi_display_init_dispc(struct dsi_data *dsi)
4044 dsi->mgr_config.fifohandcheck = false; 4042 dsi->mgr_config.fifohandcheck = false;
4045 } 4043 }
4046 4044
4047 dss_mgr_set_timings(&dsi->output, &dsi->vm);
4048
4049 r = dsi_configure_dispc_clocks(dsi); 4045 r = dsi_configure_dispc_clocks(dsi);
4050 if (r) 4046 if (r)
4051 goto err1; 4047 goto err1;
@@ -4756,6 +4752,8 @@ static int dsi_set_config(struct omap_dss_device *dssdev,
4756 dsi->vm.flags &= ~DISPLAY_FLAGS_VSYNC_LOW; 4752 dsi->vm.flags &= ~DISPLAY_FLAGS_VSYNC_LOW;
4757 dsi->vm.flags |= DISPLAY_FLAGS_VSYNC_HIGH; 4753 dsi->vm.flags |= DISPLAY_FLAGS_VSYNC_HIGH;
4758 4754
4755 dss_mgr_set_timings(&dsi->output, &dsi->vm);
4756
4759 dsi->vm_timings = ctx.dsi_vm; 4757 dsi->vm_timings = ctx.dsi_vm;
4760 4758
4761 mutex_unlock(&dsi->lock); 4759 mutex_unlock(&dsi->lock);
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
index 7ad173098c22..df7cfb3e2b12 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
@@ -207,9 +207,6 @@ static int hdmi_power_on_full(struct omap_hdmi *hdmi)
207 207
208 hdmi4_configure(&hdmi->core, &hdmi->wp, &hdmi->cfg); 208 hdmi4_configure(&hdmi->core, &hdmi->wp, &hdmi->cfg);
209 209
210 /* tv size */
211 dss_mgr_set_timings(&hdmi->output, vm);
212
213 r = dss_mgr_enable(&hdmi->output); 210 r = dss_mgr_enable(&hdmi->output);
214 if (r) 211 if (r)
215 goto err_mgr_enable; 212 goto err_mgr_enable;
@@ -262,6 +259,8 @@ static void hdmi_display_set_timings(struct omap_dss_device *dssdev,
262 259
263 dispc_set_tv_pclk(hdmi->dss->dispc, vm->pixelclock); 260 dispc_set_tv_pclk(hdmi->dss->dispc, vm->pixelclock);
264 261
262 dss_mgr_set_timings(&hdmi->output, vm);
263
265 mutex_unlock(&hdmi->lock); 264 mutex_unlock(&hdmi->lock);
266} 265}
267 266
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi5.c b/drivers/gpu/drm/omapdrm/dss/hdmi5.c
index 147c3550df51..cb212e5e790f 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi5.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi5.c
@@ -206,9 +206,6 @@ static int hdmi_power_on_full(struct omap_hdmi *hdmi)
206 206
207 hdmi5_configure(&hdmi->core, &hdmi->wp, &hdmi->cfg); 207 hdmi5_configure(&hdmi->core, &hdmi->wp, &hdmi->cfg);
208 208
209 /* tv size */
210 dss_mgr_set_timings(&hdmi->output, vm);
211
212 r = dss_mgr_enable(&hdmi->output); 209 r = dss_mgr_enable(&hdmi->output);
213 if (r) 210 if (r)
214 goto err_mgr_enable; 211 goto err_mgr_enable;
@@ -261,6 +258,8 @@ static void hdmi_display_set_timings(struct omap_dss_device *dssdev,
261 258
262 dispc_set_tv_pclk(hdmi->dss->dispc, vm->pixelclock); 259 dispc_set_tv_pclk(hdmi->dss->dispc, vm->pixelclock);
263 260
261 dss_mgr_set_timings(&hdmi->output, vm);
262
264 mutex_unlock(&hdmi->lock); 263 mutex_unlock(&hdmi->lock);
265} 264}
266 265
diff --git a/drivers/gpu/drm/omapdrm/dss/sdi.c b/drivers/gpu/drm/omapdrm/dss/sdi.c
index e98c1b6e3d2d..36edcdbf0609 100644
--- a/drivers/gpu/drm/omapdrm/dss/sdi.c
+++ b/drivers/gpu/drm/omapdrm/dss/sdi.c
@@ -155,8 +155,6 @@ static int sdi_display_enable(struct omap_dss_device *dssdev)
155 155
156 sdi->mgr_config.clock_info = dispc_cinfo; 156 sdi->mgr_config.clock_info = dispc_cinfo;
157 157
158 dss_mgr_set_timings(&sdi->output, &sdi->vm);
159
160 r = dss_set_fck_rate(sdi->dss, fck); 158 r = dss_set_fck_rate(sdi->dss, fck);
161 if (r) 159 if (r)
162 goto err_set_dss_clock_div; 160 goto err_set_dss_clock_div;
@@ -220,6 +218,8 @@ static void sdi_set_timings(struct omap_dss_device *dssdev,
220 struct sdi_device *sdi = dssdev_to_sdi(dssdev); 218 struct sdi_device *sdi = dssdev_to_sdi(dssdev);
221 219
222 sdi->vm = *vm; 220 sdi->vm = *vm;
221
222 dss_mgr_set_timings(&sdi->output, vm);
223} 223}
224 224
225static int sdi_check_timings(struct omap_dss_device *dssdev, 225static int sdi_check_timings(struct omap_dss_device *dssdev,
diff --git a/drivers/gpu/drm/omapdrm/dss/venc.c b/drivers/gpu/drm/omapdrm/dss/venc.c
index 126efbf89898..39e3c43c54c1 100644
--- a/drivers/gpu/drm/omapdrm/dss/venc.c
+++ b/drivers/gpu/drm/omapdrm/dss/venc.c
@@ -491,8 +491,6 @@ static int venc_power_on(struct venc_device *venc)
491 491
492 venc_write_reg(venc, VENC_OUTPUT_CONTROL, l); 492 venc_write_reg(venc, VENC_OUTPUT_CONTROL, l);
493 493
494 dss_mgr_set_timings(&venc->output, &venc->vm);
495
496 r = regulator_enable(venc->vdda_dac_reg); 494 r = regulator_enable(venc->vdda_dac_reg);
497 if (r) 495 if (r)
498 goto err1; 496 goto err1;
@@ -595,6 +593,8 @@ static void venc_set_timings(struct omap_dss_device *dssdev,
595 593
596 dispc_set_tv_pclk(venc->dss->dispc, 13500000); 594 dispc_set_tv_pclk(venc->dss->dispc, 13500000);
597 595
596 dss_mgr_set_timings(&venc->output, vm);
597
598 mutex_unlock(&venc->venc_lock); 598 mutex_unlock(&venc->venc_lock);
599} 599}
600 600