diff options
author | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2010-01-11 08:11:01 -0500 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2010-02-24 07:31:27 -0500 |
commit | 225b650d41e7cdbf5cd322a461b04493caabed09 (patch) | |
tree | dcd6b3f83036eeb13777f018aca4cf8273d087c5 /drivers/video/omap2/dss/dsi.c | |
parent | a269950405ab17ce3a604ddcd939709a4a7a747c (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.c | 53 |
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 | ||
2882 | static 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 | |||
2896 | static void dsi_handle_framedone(void) | 2882 | static 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 | ||
3281 | err4: | ||
3282 | |||
3283 | dsi_display_uninit_dsi(dssdev); | ||
3284 | err3: | 3264 | err3: |
3285 | dsi_display_uninit_dispc(dssdev); | 3265 | dsi_display_uninit_dispc(dssdev); |
3286 | err2: | 3266 | err2: |
@@ -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 | ||
3507 | static int dsi_display_enable_te(struct omap_dss_device *dssdev, bool enable) | 3483 | int 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); | ||
3524 | end: | ||
3525 | dsi_bus_unlock(); | ||
3526 | |||
3527 | return r; | ||
3528 | } | ||
3529 | |||
3530 | static int dsi_display_get_te(struct omap_dss_device *dssdev) | ||
3531 | { | ||
3532 | return dsi.te_enabled; | ||
3533 | } | 3487 | } |
3488 | EXPORT_SYMBOL(omapdss_dsi_enable_te); | ||
3534 | 3489 | ||
3535 | void dsi_get_overlay_fifo_thresholds(enum omap_plane plane, | 3490 | void 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 | |