OMAPDSS: SDI: Create a function to set timings
authorArchit Taneja <archit@ti.com>
Thu, 5 Jul 2012 11:41:12 +0000 (17:11 +0530)
committerArchit Taneja <archit@ti.com>
Wed, 15 Aug 2012 10:18:45 +0000 (15:48 +0530)
Create function omapdss_sdi_set_timings(). Configuring new timings is done the
same way as before, SDI is disabled, and re-enabled with the new timings in
dssdev. This just moves the code from the panel drivers to the SDI driver.

The panel drivers shouldn't be aware of how SDI manages to configure a new set
of timings. This should be taken care of by the SDI driver itself.

Signed-off-by: Archit Taneja <archit@ti.com>
drivers/video/omap2/displays/panel-acx565akm.c
drivers/video/omap2/dss/sdi.c
include/video/omapdss.h

index eaeed4340e04eaf49afd176ec3f95ed2b56d8734..11bdc883e46ba409d42f936113002d4b71d81726 100644 (file)
@@ -731,18 +731,7 @@ static int acx_panel_resume(struct omap_dss_device *dssdev)
 static void acx_panel_set_timings(struct omap_dss_device *dssdev,
                struct omap_video_timings *timings)
 {
-       int r;
-
-       if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)
-               omapdss_sdi_display_disable(dssdev);
-
-       dssdev->panel.timings = *timings;
-
-       if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) {
-               r = omapdss_sdi_display_enable(dssdev);
-               if (r)
-                       dev_err(&dssdev->dev, "%s enable failed\n", __func__);
-       }
+       omapdss_sdi_set_timings(dssdev, timings);
 }
 
 static int acx_panel_check_timings(struct omap_dss_device *dssdev,
index 5d31699fbd3caf4c885840b77c76fd4512d52ed9..0474962571c68786f2cd9d3e7f760e63e10ef8bb 100644 (file)
@@ -146,6 +146,23 @@ void omapdss_sdi_display_disable(struct omap_dss_device *dssdev)
 }
 EXPORT_SYMBOL(omapdss_sdi_display_disable);
 
+void omapdss_sdi_set_timings(struct omap_dss_device *dssdev,
+               struct omap_video_timings *timings)
+{
+       int r;
+
+       dssdev->panel.timings = *timings;
+
+       if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) {
+               omapdss_sdi_display_disable(dssdev);
+
+               r = omapdss_sdi_display_enable(dssdev);
+               if (r)
+                       DSSERR("failed to set new timings\n");
+       }
+}
+EXPORT_SYMBOL(omapdss_sdi_set_timings);
+
 static int __init sdi_init_display(struct omap_dss_device *dssdev)
 {
        DSSDBG("SDI init\n");
index 0898c2fad9ae94d49b1573cc5fefb4a696474962..a06a9ba3872d1072774979468ba647e69347f3a5 100644 (file)
@@ -744,6 +744,8 @@ int dpi_check_timings(struct omap_dss_device *dssdev,
 
 int omapdss_sdi_display_enable(struct omap_dss_device *dssdev);
 void omapdss_sdi_display_disable(struct omap_dss_device *dssdev);
+void omapdss_sdi_set_timings(struct omap_dss_device *dssdev,
+               struct omap_video_timings *timings);
 
 int omapdss_rfbi_display_enable(struct omap_dss_device *dssdev);
 void omapdss_rfbi_display_disable(struct omap_dss_device *dssdev);