aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2012-11-27 09:41:16 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2013-04-03 08:19:00 -0400
commit03a0d1e81bdb519aa5881487cc5f20ffb8906c59 (patch)
tree3cce374f5b7257313c62418e480a42a1a863690e /drivers/video/omap2/dss
parent4fdfdf062d896c0afa18aa2d977a933e38c7c96c (diff)
OMAPDSS: DPI: remove omap_dss_device uses
The role of struct omap_dss_device will change in the future. The exact details of that are still a bit unclear. However, the less uses of omap_dss_device we have, the easier the change is in the future. This patch removes uses of omap_dss_device from dpi.c, where it can be done neatly, by, for example, passing some lower level parameter in function parameters. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
Diffstat (limited to 'drivers/video/omap2/dss')
-rw-r--r--drivers/video/omap2/dss/dpi.c35
1 files changed, 15 insertions, 20 deletions
diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c
index 4af136a04e53..cb6b280124f1 100644
--- a/drivers/video/omap2/dss/dpi.c
+++ b/drivers/video/omap2/dss/dpi.c
@@ -91,11 +91,10 @@ static enum omap_dss_clk_source dpi_get_alt_clk_src(enum omap_channel channel)
91 } 91 }
92} 92}
93 93
94static int dpi_set_dsi_clk(struct omap_dss_device *dssdev, 94static int dpi_set_dsi_clk(enum omap_channel channel,
95 unsigned long pck_req, unsigned long *fck, int *lck_div, 95 unsigned long pck_req, unsigned long *fck, int *lck_div,
96 int *pck_div) 96 int *pck_div)
97{ 97{
98 struct omap_overlay_manager *mgr = dssdev->output->manager;
99 struct dsi_clock_info dsi_cinfo; 98 struct dsi_clock_info dsi_cinfo;
100 struct dispc_clock_info dispc_cinfo; 99 struct dispc_clock_info dispc_cinfo;
101 int r; 100 int r;
@@ -109,8 +108,8 @@ static int dpi_set_dsi_clk(struct omap_dss_device *dssdev,
109 if (r) 108 if (r)
110 return r; 109 return r;
111 110
112 dss_select_lcd_clk_source(mgr->id, 111 dss_select_lcd_clk_source(channel,
113 dpi_get_alt_clk_src(mgr->id)); 112 dpi_get_alt_clk_src(channel));
114 113
115 dpi.mgr_config.clock_info = dispc_cinfo; 114 dpi.mgr_config.clock_info = dispc_cinfo;
116 115
@@ -121,9 +120,8 @@ static int dpi_set_dsi_clk(struct omap_dss_device *dssdev,
121 return 0; 120 return 0;
122} 121}
123 122
124static int dpi_set_dispc_clk(struct omap_dss_device *dssdev, 123static int dpi_set_dispc_clk(unsigned long pck_req, unsigned long *fck,
125 unsigned long pck_req, unsigned long *fck, int *lck_div, 124 int *lck_div, int *pck_div)
126 int *pck_div)
127{ 125{
128 struct dss_clock_info dss_cinfo; 126 struct dss_clock_info dss_cinfo;
129 struct dispc_clock_info dispc_cinfo; 127 struct dispc_clock_info dispc_cinfo;
@@ -146,20 +144,19 @@ static int dpi_set_dispc_clk(struct omap_dss_device *dssdev,
146 return 0; 144 return 0;
147} 145}
148 146
149static int dpi_set_mode(struct omap_dss_device *dssdev) 147static int dpi_set_mode(struct omap_overlay_manager *mgr)
150{ 148{
151 struct omap_video_timings *t = &dpi.timings; 149 struct omap_video_timings *t = &dpi.timings;
152 struct omap_overlay_manager *mgr = dssdev->output->manager;
153 int lck_div = 0, pck_div = 0; 150 int lck_div = 0, pck_div = 0;
154 unsigned long fck = 0; 151 unsigned long fck = 0;
155 unsigned long pck; 152 unsigned long pck;
156 int r = 0; 153 int r = 0;
157 154
158 if (dpi.dsidev) 155 if (dpi.dsidev)
159 r = dpi_set_dsi_clk(dssdev, t->pixel_clock * 1000, &fck, 156 r = dpi_set_dsi_clk(mgr->id, t->pixel_clock * 1000, &fck,
160 &lck_div, &pck_div); 157 &lck_div, &pck_div);
161 else 158 else
162 r = dpi_set_dispc_clk(dssdev, t->pixel_clock * 1000, &fck, 159 r = dpi_set_dispc_clk(t->pixel_clock * 1000, &fck,
163 &lck_div, &pck_div); 160 &lck_div, &pck_div);
164 if (r) 161 if (r)
165 return r; 162 return r;
@@ -179,10 +176,8 @@ static int dpi_set_mode(struct omap_dss_device *dssdev)
179 return 0; 176 return 0;
180} 177}
181 178
182static void dpi_config_lcd_manager(struct omap_dss_device *dssdev) 179static void dpi_config_lcd_manager(struct omap_overlay_manager *mgr)
183{ 180{
184 struct omap_overlay_manager *mgr = dssdev->output->manager;
185
186 dpi.mgr_config.io_pad_mode = DSS_IO_PAD_MODE_BYPASS; 181 dpi.mgr_config.io_pad_mode = DSS_IO_PAD_MODE_BYPASS;
187 182
188 dpi.mgr_config.stallmode = false; 183 dpi.mgr_config.stallmode = false;
@@ -197,7 +192,7 @@ static void dpi_config_lcd_manager(struct omap_dss_device *dssdev)
197 192
198int omapdss_dpi_display_enable(struct omap_dss_device *dssdev) 193int omapdss_dpi_display_enable(struct omap_dss_device *dssdev)
199{ 194{
200 struct omap_dss_output *out = dssdev->output; 195 struct omap_dss_output *out = &dpi.output;
201 int r; 196 int r;
202 197
203 mutex_lock(&dpi.lock); 198 mutex_lock(&dpi.lock);
@@ -230,7 +225,7 @@ int omapdss_dpi_display_enable(struct omap_dss_device *dssdev)
230 if (r) 225 if (r)
231 goto err_get_dispc; 226 goto err_get_dispc;
232 227
233 r = dss_dpi_select_source(dssdev->channel); 228 r = dss_dpi_select_source(out->manager->id);
234 if (r) 229 if (r)
235 goto err_src_sel; 230 goto err_src_sel;
236 231
@@ -244,11 +239,11 @@ int omapdss_dpi_display_enable(struct omap_dss_device *dssdev)
244 goto err_dsi_pll_init; 239 goto err_dsi_pll_init;
245 } 240 }
246 241
247 r = dpi_set_mode(dssdev); 242 r = dpi_set_mode(out->manager);
248 if (r) 243 if (r)
249 goto err_set_mode; 244 goto err_set_mode;
250 245
251 dpi_config_lcd_manager(dssdev); 246 dpi_config_lcd_manager(out->manager);
252 247
253 mdelay(2); 248 mdelay(2);
254 249
@@ -285,7 +280,7 @@ EXPORT_SYMBOL(omapdss_dpi_display_enable);
285 280
286void omapdss_dpi_display_disable(struct omap_dss_device *dssdev) 281void omapdss_dpi_display_disable(struct omap_dss_device *dssdev)
287{ 282{
288 struct omap_overlay_manager *mgr = dssdev->output->manager; 283 struct omap_overlay_manager *mgr = dpi.output.manager;
289 284
290 mutex_lock(&dpi.lock); 285 mutex_lock(&dpi.lock);
291 286
@@ -325,7 +320,7 @@ int dpi_check_timings(struct omap_dss_device *dssdev,
325 struct omap_video_timings *timings) 320 struct omap_video_timings *timings)
326{ 321{
327 int r; 322 int r;
328 struct omap_overlay_manager *mgr = dssdev->output->manager; 323 struct omap_overlay_manager *mgr = dpi.output.manager;
329 int lck_div, pck_div; 324 int lck_div, pck_div;
330 unsigned long fck; 325 unsigned long fck;
331 unsigned long pck; 326 unsigned long pck;