aboutsummaryrefslogtreecommitdiff
path: root/drivers/video/omap2/dss
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@nokia.com>2010-01-11 15:11:01 +0200
committerTomi Valkeinen <tomi.valkeinen@nokia.com>2010-02-24 14:31:27 +0200
commit225b650d41e7cdbf5cd322a461b04493caabed09 (patch)
treedcd6b3f83036eeb13777f018aca4cf8273d087c5 /drivers/video/omap2/dss
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')
-rw-r--r--drivers/video/omap2/dss/display.c7
-rw-r--r--drivers/video/omap2/dss/dsi.c53
-rw-r--r--drivers/video/omap2/dss/rfbi.c7
3 files changed, 7 insertions, 60 deletions
diff --git a/drivers/video/omap2/dss/display.c b/drivers/video/omap2/dss/display.c
index af8aae7ef81..383a8c82dae 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 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,
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 6b9cd767c7c..71293876fed 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;