diff options
author | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2010-01-12 08:12:07 -0500 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2010-02-24 07:31:28 -0500 |
commit | 37ac60e414052f1d9301368437db8f0cb9e323fe (patch) | |
tree | d6b30b58deae82a6d5f2ac2f4d9cf18ed3bc57da /drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c | |
parent | 18946f62c6cc8cf051bafca8b7fa72309e8a1067 (diff) |
OMAP: DSS2: move enable/disable/suspend/resume
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.valkeinen@nokia.com>
Diffstat (limited to 'drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c')
-rw-r--r-- | drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c | 67 |
1 files changed, 53 insertions, 14 deletions
diff --git a/drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c b/drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c index e75798edbb59..10267461991c 100644 --- a/drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c +++ b/drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c | |||
@@ -39,6 +39,41 @@ static struct omap_video_timings sharp_lq_timings = { | |||
39 | .vbp = 2, | 39 | .vbp = 2, |
40 | }; | 40 | }; |
41 | 41 | ||
42 | static int sharp_lq_panel_power_on(struct omap_dss_device *dssdev) | ||
43 | { | ||
44 | int r; | ||
45 | |||
46 | r = omapdss_dpi_display_enable(dssdev); | ||
47 | if (r) | ||
48 | goto err0; | ||
49 | |||
50 | /* wait couple of vsyncs until enabling the LCD */ | ||
51 | msleep(50); | ||
52 | |||
53 | if (dssdev->platform_enable) { | ||
54 | r = dssdev->platform_enable(dssdev); | ||
55 | if (r) | ||
56 | goto err1; | ||
57 | } | ||
58 | |||
59 | return 0; | ||
60 | err1: | ||
61 | omapdss_dpi_display_disable(dssdev); | ||
62 | err0: | ||
63 | return r; | ||
64 | } | ||
65 | |||
66 | static void sharp_lq_panel_power_off(struct omap_dss_device *dssdev) | ||
67 | { | ||
68 | if (dssdev->platform_disable) | ||
69 | dssdev->platform_disable(dssdev); | ||
70 | |||
71 | /* wait at least 5 vsyncs after disabling the LCD */ | ||
72 | msleep(100); | ||
73 | |||
74 | omapdss_dpi_display_disable(dssdev); | ||
75 | } | ||
76 | |||
42 | static int sharp_lq_panel_probe(struct omap_dss_device *dssdev) | 77 | static int sharp_lq_panel_probe(struct omap_dss_device *dssdev) |
43 | { | 78 | { |
44 | 79 | ||
@@ -58,36 +93,40 @@ static int sharp_lq_panel_enable(struct omap_dss_device *dssdev) | |||
58 | { | 93 | { |
59 | int r = 0; | 94 | int r = 0; |
60 | 95 | ||
96 | r = sharp_lq_panel_power_on(dssdev); | ||
97 | if (r) | ||
98 | return r; | ||
61 | 99 | ||
62 | /* wait couple of vsyncs until enabling the LCD */ | 100 | dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; |
63 | msleep(50); | ||
64 | |||
65 | if (dssdev->platform_enable) | ||
66 | r = dssdev->platform_enable(dssdev); | ||
67 | 101 | ||
68 | return r; | 102 | return 0; |
69 | } | 103 | } |
70 | 104 | ||
71 | static void sharp_lq_panel_disable(struct omap_dss_device *dssdev) | 105 | static void sharp_lq_panel_disable(struct omap_dss_device *dssdev) |
72 | { | 106 | { |
107 | sharp_lq_panel_power_off(dssdev); | ||
73 | 108 | ||
74 | if (dssdev->platform_disable) | 109 | dssdev->state = OMAP_DSS_DISPLAY_DISABLED; |
75 | dssdev->platform_disable(dssdev); | ||
76 | |||
77 | /* wait at least 5 vsyncs after disabling the LCD */ | ||
78 | |||
79 | msleep(100); | ||
80 | } | 110 | } |
81 | 111 | ||
82 | static int sharp_lq_panel_suspend(struct omap_dss_device *dssdev) | 112 | static int sharp_lq_panel_suspend(struct omap_dss_device *dssdev) |
83 | { | 113 | { |
84 | sharp_lq_panel_disable(dssdev); | 114 | sharp_lq_panel_power_off(dssdev); |
115 | dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED; | ||
85 | return 0; | 116 | return 0; |
86 | } | 117 | } |
87 | 118 | ||
88 | static int sharp_lq_panel_resume(struct omap_dss_device *dssdev) | 119 | static int sharp_lq_panel_resume(struct omap_dss_device *dssdev) |
89 | { | 120 | { |
90 | return sharp_lq_panel_enable(dssdev); | 121 | int r = 0; |
122 | |||
123 | r = sharp_lq_panel_power_on(dssdev); | ||
124 | if (r) | ||
125 | return r; | ||
126 | |||
127 | dssdev->state = OMAP_DSS_DISPLAY_ACTIVE; | ||
128 | |||
129 | return 0; | ||
91 | } | 130 | } |
92 | 131 | ||
93 | static struct omap_dss_driver sharp_lq_driver = { | 132 | static struct omap_dss_driver sharp_lq_driver = { |