aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/dsi.c
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@nokia.com>2010-01-11 08:11:01 -0500
committerTomi Valkeinen <tomi.valkeinen@nokia.com>2010-02-24 07:31:27 -0500
commit225b650d41e7cdbf5cd322a461b04493caabed09 (patch)
treedcd6b3f83036eeb13777f018aca4cf8273d087c5 /drivers/video/omap2/dss/dsi.c
parenta269950405ab17ce3a604ddcd939709a4a7a747c (diff)
OMAP: DSS2: move enable/get_te()
Move enable/get_te() from omap_dss_device to omap_dss_driver. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Diffstat (limited to 'drivers/video/omap2/dss/dsi.c')
-rw-r--r--drivers/video/omap2/dss/dsi.c53
1 files changed, 3 insertions, 50 deletions
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
index abc66f2c070..697a78b8580 100644
--- a/drivers/video/omap2/dss/dsi.c
+++ b/drivers/video/omap2/dss/dsi.c
@@ -2879,20 +2879,6 @@ static int dsi_set_update_mode(struct omap_dss_device *dssdev,
2879 return r; 2879 return r;
2880} 2880}
2881 2881
2882static int dsi_set_te(struct omap_dss_device *dssdev, bool enable)
2883{
2884 int r = 0;
2885
2886 if (dssdev->driver->enable_te) {
2887 r = dssdev->driver->enable_te(dssdev, enable);
2888 /* XXX for some reason, DSI TE breaks if we don't wait here.
2889 * Panel bug? Needs more studying */
2890 msleep(100);
2891 }
2892
2893 return r;
2894}
2895
2896static void dsi_handle_framedone(void) 2882static void dsi_handle_framedone(void)
2897{ 2883{
2898 int r; 2884 int r;
@@ -3267,9 +3253,6 @@ static int dsi_display_enable(struct omap_dss_device *dssdev)
3267 dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; 3253 dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
3268 3254
3269 dsi.use_ext_te = dssdev->phy.dsi.ext_te; 3255 dsi.use_ext_te = dssdev->phy.dsi.ext_te;
3270 r = dsi_set_te(dssdev, dsi.te_enabled);
3271 if (r)
3272 goto err4;
3273 3256
3274 dsi_set_update_mode(dssdev, dsi.user_update_mode); 3257 dsi_set_update_mode(dssdev, dsi.user_update_mode);
3275 3258
@@ -3278,9 +3261,6 @@ static int dsi_display_enable(struct omap_dss_device *dssdev)
3278 3261
3279 return 0; 3262 return 0;
3280 3263
3281err4:
3282
3283 dsi_display_uninit_dsi(dssdev);
3284err3: 3264err3:
3285 dsi_display_uninit_dispc(dssdev); 3265 dsi_display_uninit_dispc(dssdev);
3286err2: 3266err2:
@@ -3383,10 +3363,6 @@ static int dsi_display_resume(struct omap_dss_device *dssdev)
3383 3363
3384 dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; 3364 dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
3385 3365
3386 r = dsi_set_te(dssdev, dsi.te_enabled);
3387 if (r)
3388 goto err2;
3389
3390 dsi_set_update_mode(dssdev, dsi.user_update_mode); 3366 dsi_set_update_mode(dssdev, dsi.user_update_mode);
3391 3367
3392 dsi_bus_unlock(); 3368 dsi_bus_unlock();
@@ -3504,33 +3480,12 @@ static enum omap_dss_update_mode dsi_display_get_update_mode(
3504} 3480}
3505 3481
3506 3482
3507static int dsi_display_enable_te(struct omap_dss_device *dssdev, bool enable) 3483int omapdss_dsi_enable_te(struct omap_dss_device *dssdev, bool enable)
3508{ 3484{
3509 int r = 0;
3510
3511 DSSDBGF("%d", enable);
3512
3513 if (!dssdev->driver->enable_te)
3514 return -ENOENT;
3515
3516 dsi_bus_lock();
3517
3518 dsi.te_enabled = enable; 3485 dsi.te_enabled = enable;
3519 3486 return 0;
3520 if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
3521 goto end;
3522
3523 r = dsi_set_te(dssdev, enable);
3524end:
3525 dsi_bus_unlock();
3526
3527 return r;
3528}
3529
3530static int dsi_display_get_te(struct omap_dss_device *dssdev)
3531{
3532 return dsi.te_enabled;
3533} 3487}
3488EXPORT_SYMBOL(omapdss_dsi_enable_te);
3534 3489
3535void dsi_get_overlay_fifo_thresholds(enum omap_plane plane, 3490void dsi_get_overlay_fifo_thresholds(enum omap_plane plane,
3536 u32 fifo_size, enum omap_burst_size *burst_size, 3491 u32 fifo_size, enum omap_burst_size *burst_size,
@@ -3557,8 +3512,6 @@ int dsi_init_display(struct omap_dss_device *dssdev)
3557 dssdev->sync = dsi_display_sync; 3512 dssdev->sync = dsi_display_sync;
3558 dssdev->set_update_mode = dsi_display_set_update_mode; 3513 dssdev->set_update_mode = dsi_display_set_update_mode;
3559 dssdev->get_update_mode = dsi_display_get_update_mode; 3514 dssdev->get_update_mode = dsi_display_get_update_mode;
3560 dssdev->enable_te = dsi_display_enable_te;
3561 dssdev->get_te = dsi_display_get_te;
3562 3515
3563 /* XXX these should be figured out dynamically */ 3516 /* XXX these should be figured out dynamically */
3564 dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE | 3517 dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE |