diff options
author | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2010-01-11 14:11:01 +0100 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2010-02-24 13:31:27 +0100 |
commit | 225b650d41e7cdbf5cd322a461b04493caabed09 (patch) | |
tree | dcd6b3f83036eeb13777f018aca4cf8273d087c5 /drivers/video/omap2/dss | |
parent | OMAP: DSS2: move get_recommended_bpp() (diff) | |
download | linux-225b650d41e7cdbf5cd322a461b04493caabed09.tar.xz linux-225b650d41e7cdbf5cd322a461b04493caabed09.zip |
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')
-rw-r--r-- | drivers/video/omap2/dss/display.c | 7 | ||||
-rw-r--r-- | drivers/video/omap2/dss/dsi.c | 53 | ||||
-rw-r--r-- | drivers/video/omap2/dss/rfbi.c | 7 |
3 files changed, 7 insertions, 60 deletions
diff --git a/drivers/video/omap2/dss/display.c b/drivers/video/omap2/dss/display.c index af8aae7ef814..383a8c82dae8 100644 --- a/drivers/video/omap2/dss/display.c +++ b/drivers/video/omap2/dss/display.c @@ -106,7 +106,8 @@ static ssize_t display_tear_show(struct device *dev, { struct omap_dss_device *dssdev = to_dss_device(dev); return snprintf(buf, PAGE_SIZE, "%d\n", - dssdev->get_te ? dssdev->get_te(dssdev) : 0); + dssdev->driver->get_te ? + dssdev->driver->get_te(dssdev) : 0); } static ssize_t display_tear_store(struct device *dev, @@ -116,12 +117,12 @@ static ssize_t display_tear_store(struct device *dev, unsigned long te; int r; - if (!dssdev->enable_te || !dssdev->get_te) + if (!dssdev->driver->enable_te || !dssdev->driver->get_te) return -ENOENT; te = simple_strtoul(buf, NULL, 0); - r = dssdev->enable_te(dssdev, te); + r = dssdev->driver->enable_te(dssdev, te); if (r) return r; diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c index abc66f2c0705..697a78b85807 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, return r; } -static int dsi_set_te(struct omap_dss_device *dssdev, bool enable) -{ - int r = 0; - - if (dssdev->driver->enable_te) { - r = dssdev->driver->enable_te(dssdev, enable); - /* XXX for some reason, DSI TE breaks if we don't wait here. - * Panel bug? Needs more studying */ - msleep(100); - } - - return r; -} - static void dsi_handle_framedone(void) { int r; @@ -3267,9 +3253,6 @@ static int dsi_display_enable(struct omap_dss_device *dssdev) dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; dsi.use_ext_te = dssdev->phy.dsi.ext_te; - r = dsi_set_te(dssdev, dsi.te_enabled); - if (r) - goto err4; dsi_set_update_mode(dssdev, dsi.user_update_mode); @@ -3278,9 +3261,6 @@ static int dsi_display_enable(struct omap_dss_device *dssdev) return 0; -err4: - - dsi_display_uninit_dsi(dssdev); err3: dsi_display_uninit_dispc(dssdev); err2: @@ -3383,10 +3363,6 @@ static int dsi_display_resume(struct omap_dss_device *dssdev) dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; - r = dsi_set_te(dssdev, dsi.te_enabled); - if (r) - goto err2; - dsi_set_update_mode(dssdev, dsi.user_update_mode); dsi_bus_unlock(); @@ -3504,33 +3480,12 @@ static enum omap_dss_update_mode dsi_display_get_update_mode( } -static int dsi_display_enable_te(struct omap_dss_device *dssdev, bool enable) +int omapdss_dsi_enable_te(struct omap_dss_device *dssdev, bool enable) { - int r = 0; - - DSSDBGF("%d", enable); - - if (!dssdev->driver->enable_te) - return -ENOENT; - - dsi_bus_lock(); - dsi.te_enabled = enable; - - if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE) - goto end; - - r = dsi_set_te(dssdev, enable); -end: - dsi_bus_unlock(); - - return r; -} - -static int dsi_display_get_te(struct omap_dss_device *dssdev) -{ - return dsi.te_enabled; + return 0; } +EXPORT_SYMBOL(omapdss_dsi_enable_te); void dsi_get_overlay_fifo_thresholds(enum omap_plane plane, u32 fifo_size, enum omap_burst_size *burst_size, @@ -3557,8 +3512,6 @@ int dsi_init_display(struct omap_dss_device *dssdev) dssdev->sync = dsi_display_sync; dssdev->set_update_mode = dsi_display_set_update_mode; dssdev->get_update_mode = dsi_display_get_update_mode; - dssdev->enable_te = dsi_display_enable_te; - dssdev->get_te = dsi_display_get_te; /* XXX these should be figured out dynamically */ dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE | diff --git a/drivers/video/omap2/dss/rfbi.c b/drivers/video/omap2/dss/rfbi.c index 6b9cd767c7c1..71293876fed1 100644 --- a/drivers/video/omap2/dss/rfbi.c +++ b/drivers/video/omap2/dss/rfbi.c @@ -1232,12 +1232,6 @@ static int rfbi_display_sync(struct omap_dss_device *dssdev) return 0; } -static int rfbi_display_enable_te(struct omap_dss_device *dssdev, bool enable) -{ - dssdev->driver->enable_te(dssdev, enable); - return 0; -} - static int rfbi_display_enable(struct omap_dss_device *dssdev) { int r; @@ -1299,7 +1293,6 @@ int rfbi_init_display(struct omap_dss_device *dssdev) dssdev->disable = rfbi_display_disable; dssdev->update = rfbi_display_update; dssdev->sync = rfbi_display_sync; - dssdev->enable_te = rfbi_display_enable_te; rfbi.dssdev[dssdev->phy.rfbi.channel] = dssdev; |