Re: [PATCH 14/17] OMAP: DSS2: move enable/disable/suspend/resume

2010-02-09 Thread Grazvydas Ignotas
On Mon, Feb 8, 2010 at 5:57 PM, Tomi Valkeinen tomi.valkei...@nokia.com wrote:
 Move enable/disable/suspend/resume 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.valkei...@nokia.com
 ---

snip

 diff --git a/drivers/video/omap2/displays/panel-tpo-td043mtea1.c 
 b/drivers/video/omap2/displays/panel-tpo-td043mtea1.c
 index f297a46..c6e4a7e 100644
 --- a/drivers/video/omap2/displays/panel-tpo-td043mtea1.c
 +++ b/drivers/video/omap2/displays/panel-tpo-td043mtea1.c
 @@ -262,18 +262,20 @@ static const struct omap_video_timings 
 tpo_td043_timings = {
        .vbp            = 34,
  };

 -static int tpo_td043_enable(struct omap_dss_device *dssdev)
 +static int generic_panel_power_on(struct omap_dss_device *dssdev)

I guess you meant tpo_td043_power_on/tpo_td043_power_off?

I'll try to test your both series later this week.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 14/17] OMAP: DSS2: move enable/disable/suspend/resume

2010-02-09 Thread Tomi Valkeinen
On Tue, 2010-02-09 at 11:15 +0100, ext Grazvydas Ignotas wrote:
 On Mon, Feb 8, 2010 at 5:57 PM, Tomi Valkeinen tomi.valkei...@nokia.com 
 wrote:
  Move enable/disable/suspend/resume 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.valkei...@nokia.com
  ---
 
 snip
 
  diff --git a/drivers/video/omap2/displays/panel-tpo-td043mtea1.c 
  b/drivers/video/omap2/displays/panel-tpo-td043mtea1.c
  index f297a46..c6e4a7e 100644
  --- a/drivers/video/omap2/displays/panel-tpo-td043mtea1.c
  +++ b/drivers/video/omap2/displays/panel-tpo-td043mtea1.c
  @@ -262,18 +262,20 @@ static const struct omap_video_timings 
  tpo_td043_timings = {
 .vbp= 34,
   };
 
  -static int tpo_td043_enable(struct omap_dss_device *dssdev)
  +static int generic_panel_power_on(struct omap_dss_device *dssdev)
 
 I guess you meant tpo_td043_power_on/tpo_td043_power_off?

Yes, copy paste error =)

 I'll try to test your both series later this week.

Thanks.

 Tomi


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 14/17] OMAP: DSS2: move enable/disable/suspend/resume

2010-02-08 Thread Tomi Valkeinen
Move enable/disable/suspend/resume 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.valkei...@nokia.com
---
 arch/arm/plat-omap/include/plat/display.h  |   18 +-
 drivers/video/omap2/displays/panel-generic.c   |   56 -
 .../video/omap2/displays/panel-sharp-lq043t1dg01.c |   67 -
 .../video/omap2/displays/panel-sharp-ls037v7dw01.c |   42 +++-
 drivers/video/omap2/displays/panel-taal.c  |   76 +-
 .../video/omap2/displays/panel-toppoly-tdo35s.c|   56 -
 .../video/omap2/displays/panel-tpo-td043mtea1.c|   61 -
 drivers/video/omap2/dss/dispc.c|   12 +-
 drivers/video/omap2/dss/display.c  |   14 +-
 drivers/video/omap2/dss/dpi.c  |  102 +---
 drivers/video/omap2/dss/dsi.c  |  136 +--
 drivers/video/omap2/dss/rfbi.c |   22 +--
 drivers/video/omap2/dss/sdi.c  |   75 +--
 drivers/video/omap2/dss/venc.c |  251 
 drivers/video/omap2/omapfb/omapfb-main.c   |   12 +-
 15 files changed, 462 insertions(+), 538 deletions(-)

diff --git a/arch/arm/plat-omap/include/plat/display.h 
b/arch/arm/plat-omap/include/plat/display.h
index 46b3ff0..cc2b4e3 100644
--- a/arch/arm/plat-omap/include/plat/display.h
+++ b/arch/arm/plat-omap/include/plat/display.h
@@ -465,12 +465,6 @@ struct omap_dss_device {
 
enum omap_dss_display_state state;
 
-   int (*enable)(struct omap_dss_device *dssdev);
-   void (*disable)(struct omap_dss_device *dssdev);
-
-   int (*suspend)(struct omap_dss_device *dssdev);
-   int (*resume)(struct omap_dss_device *dssdev);
-
int (*check_timings)(struct omap_dss_device *dssdev,
struct omap_video_timings *timings);
void (*set_timings)(struct omap_dss_device *dssdev,
@@ -573,11 +567,21 @@ int omap_dsi_update(struct omap_dss_device *dssdev,
u16 x, u16 y, u16 w, u16 h,
void (*callback)(int, void *), void *data);
 
+int omapdss_dsi_display_enable(struct omap_dss_device *dssdev);
+void omapdss_dsi_display_disable(struct omap_dss_device *dssdev);
+
+int omapdss_dpi_display_enable(struct omap_dss_device *dssdev);
+void omapdss_dpi_display_disable(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);
+
+int omapdss_rfbi_display_enable(struct omap_dss_device *dssdev);
+void omapdss_rfbi_display_disable(struct omap_dss_device *dssdev);
 int omap_rfbi_prepare_update(struct omap_dss_device *dssdev,
u16 *x, u16 *y, u16 *w, u16 *h);
 int omap_rfbi_update(struct omap_dss_device *dssdev,
u16 x, u16 y, u16 w, u16 h,
void (*callback)(void *), void *data);
 
-
 #endif
diff --git a/drivers/video/omap2/displays/panel-generic.c 
b/drivers/video/omap2/displays/panel-generic.c
index eb48d1a..c59e4ba 100644
--- a/drivers/video/omap2/displays/panel-generic.c
+++ b/drivers/video/omap2/displays/panel-generic.c
@@ -35,6 +35,35 @@ static struct omap_video_timings generic_panel_timings = {
.vbp= 7,
 };
 
+static int generic_panel_power_on(struct omap_dss_device *dssdev)
+{
+   int r;
+
+   r = omapdss_dpi_display_enable(dssdev);
+   if (r)
+   goto err0;
+
+   if (dssdev-platform_enable) {
+   r = dssdev-platform_enable(dssdev);
+   if (r)
+   goto err1;
+   }
+
+   return 0;
+err1:
+   omapdss_dpi_display_disable(dssdev);
+err0:
+   return r;
+}
+
+static void generic_panel_power_off(struct omap_dss_device *dssdev)
+{
+   if (dssdev-platform_disable)
+   dssdev-platform_disable(dssdev);
+
+   omapdss_dpi_display_disable(dssdev);
+}
+
 static int generic_panel_probe(struct omap_dss_device *dssdev)
 {
dssdev-panel.config = OMAP_DSS_LCD_TFT;
@@ -51,27 +80,40 @@ static int generic_panel_enable(struct omap_dss_device 
*dssdev)
 {
int r = 0;
 
-   if (dssdev-platform_enable)
-   r = dssdev-platform_enable(dssdev);
+   r = generic_panel_power_on(dssdev);
+   if (r)
+   return r;
 
-   return r;
+   dssdev-state = OMAP_DSS_DISPLAY_ACTIVE;
+
+   return 0;
 }
 
 static void generic_panel_disable(struct omap_dss_device *dssdev)
 {
-   if (dssdev-platform_disable)
-   dssdev-platform_disable(dssdev);
+   generic_panel_power_off(dssdev);
+
+   dssdev-state = OMAP_DSS_DISPLAY_DISABLED;
 }
 
 static int generic_panel_suspend(struct omap_dss_device *dssdev)
 {
-   generic_panel_disable(dssdev);
+   generic_panel_power_off(dssdev);
+   dssdev-state = OMAP_DSS_DISPLAY_SUSPENDED;
return 0;
 }
 
 static int