aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/video/omap2/dss/display.c20
-rw-r--r--drivers/video/omap2/dss/dpi.c10
-rw-r--r--drivers/video/omap2/dss/dsi.c10
-rw-r--r--drivers/video/omap2/dss/hdmi.c12
-rw-r--r--drivers/video/omap2/dss/rfbi.c9
-rw-r--r--drivers/video/omap2/dss/sdi.c10
-rw-r--r--drivers/video/omap2/dss/venc.c12
-rw-r--r--include/video/omapdss.h3
8 files changed, 2 insertions, 84 deletions
diff --git a/drivers/video/omap2/dss/display.c b/drivers/video/omap2/dss/display.c
index a9a1d5563aa0..809676473a99 100644
--- a/drivers/video/omap2/dss/display.c
+++ b/drivers/video/omap2/dss/display.c
@@ -233,26 +233,6 @@ struct omap_dss_device *omap_dss_find_device(void *data,
233} 233}
234EXPORT_SYMBOL(omap_dss_find_device); 234EXPORT_SYMBOL(omap_dss_find_device);
235 235
236int omap_dss_start_device(struct omap_dss_device *dssdev)
237{
238 if (!dssdev->driver) {
239 DSSDBG("no driver\n");
240 return -ENODEV;
241 }
242
243 if (!try_module_get(dssdev->dev->driver->owner))
244 return -ENODEV;
245
246 return 0;
247}
248EXPORT_SYMBOL(omap_dss_start_device);
249
250void omap_dss_stop_device(struct omap_dss_device *dssdev)
251{
252 module_put(dssdev->dev->driver->owner);
253}
254EXPORT_SYMBOL(omap_dss_stop_device);
255
256void videomode_to_omap_video_timings(const struct videomode *vm, 236void videomode_to_omap_video_timings(const struct videomode *vm,
257 struct omap_video_timings *ovt) 237 struct omap_video_timings *ovt)
258{ 238{
diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c
index aa653c46d9a4..e8cbf86eff9d 100644
--- a/drivers/video/omap2/dss/dpi.c
+++ b/drivers/video/omap2/dss/dpi.c
@@ -364,12 +364,6 @@ int omapdss_dpi_display_enable(struct omap_dss_device *dssdev)
364 goto err_no_out_mgr; 364 goto err_no_out_mgr;
365 } 365 }
366 366
367 r = omap_dss_start_device(dssdev);
368 if (r) {
369 DSSERR("failed to start device\n");
370 goto err_start_dev;
371 }
372
373 if (dss_has_feature(FEAT_DPI_USES_VDDS_DSI)) { 367 if (dss_has_feature(FEAT_DPI_USES_VDDS_DSI)) {
374 r = regulator_enable(dpi.vdds_dsi_reg); 368 r = regulator_enable(dpi.vdds_dsi_reg);
375 if (r) 369 if (r)
@@ -424,8 +418,6 @@ err_get_dispc:
424 if (dss_has_feature(FEAT_DPI_USES_VDDS_DSI)) 418 if (dss_has_feature(FEAT_DPI_USES_VDDS_DSI))
425 regulator_disable(dpi.vdds_dsi_reg); 419 regulator_disable(dpi.vdds_dsi_reg);
426err_reg_enable: 420err_reg_enable:
427 omap_dss_stop_device(dssdev);
428err_start_dev:
429err_no_out_mgr: 421err_no_out_mgr:
430err_no_reg: 422err_no_reg:
431 mutex_unlock(&dpi.lock); 423 mutex_unlock(&dpi.lock);
@@ -452,8 +444,6 @@ void omapdss_dpi_display_disable(struct omap_dss_device *dssdev)
452 if (dss_has_feature(FEAT_DPI_USES_VDDS_DSI)) 444 if (dss_has_feature(FEAT_DPI_USES_VDDS_DSI))
453 regulator_disable(dpi.vdds_dsi_reg); 445 regulator_disable(dpi.vdds_dsi_reg);
454 446
455 omap_dss_stop_device(dssdev);
456
457 mutex_unlock(&dpi.lock); 447 mutex_unlock(&dpi.lock);
458} 448}
459EXPORT_SYMBOL(omapdss_dpi_display_disable); 449EXPORT_SYMBOL(omapdss_dpi_display_disable);
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
index 7d9e5ccb41e1..26aa4c324c18 100644
--- a/drivers/video/omap2/dss/dsi.c
+++ b/drivers/video/omap2/dss/dsi.c
@@ -4592,12 +4592,6 @@ int omapdss_dsi_display_enable(struct omap_dss_device *dssdev)
4592 4592
4593 mutex_lock(&dsi->lock); 4593 mutex_lock(&dsi->lock);
4594 4594
4595 r = omap_dss_start_device(dssdev);
4596 if (r) {
4597 DSSERR("failed to start device\n");
4598 goto err_start_dev;
4599 }
4600
4601 r = dsi_runtime_get(dsidev); 4595 r = dsi_runtime_get(dsidev);
4602 if (r) 4596 if (r)
4603 goto err_get_dsi; 4597 goto err_get_dsi;
@@ -4618,8 +4612,6 @@ err_init_dsi:
4618 dsi_enable_pll_clock(dsidev, 0); 4612 dsi_enable_pll_clock(dsidev, 0);
4619 dsi_runtime_put(dsidev); 4613 dsi_runtime_put(dsidev);
4620err_get_dsi: 4614err_get_dsi:
4621 omap_dss_stop_device(dssdev);
4622err_start_dev:
4623 mutex_unlock(&dsi->lock); 4615 mutex_unlock(&dsi->lock);
4624 DSSDBG("dsi_display_enable FAILED\n"); 4616 DSSDBG("dsi_display_enable FAILED\n");
4625 return r; 4617 return r;
@@ -4648,8 +4640,6 @@ void omapdss_dsi_display_disable(struct omap_dss_device *dssdev,
4648 dsi_runtime_put(dsidev); 4640 dsi_runtime_put(dsidev);
4649 dsi_enable_pll_clock(dsidev, 0); 4641 dsi_enable_pll_clock(dsidev, 0);
4650 4642
4651 omap_dss_stop_device(dssdev);
4652
4653 mutex_unlock(&dsi->lock); 4643 mutex_unlock(&dsi->lock);
4654} 4644}
4655EXPORT_SYMBOL(omapdss_dsi_display_disable); 4645EXPORT_SYMBOL(omapdss_dsi_display_disable);
diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c
index 86b495c4b90f..1804f1e28b97 100644
--- a/drivers/video/omap2/dss/hdmi.c
+++ b/drivers/video/omap2/dss/hdmi.c
@@ -735,23 +735,15 @@ int omapdss_hdmi_display_enable(struct omap_dss_device *dssdev)
735 735
736 hdmi.ip_data.hpd_gpio = hdmi.hpd_gpio; 736 hdmi.ip_data.hpd_gpio = hdmi.hpd_gpio;
737 737
738 r = omap_dss_start_device(dssdev);
739 if (r) {
740 DSSERR("failed to start device\n");
741 goto err0;
742 }
743
744 r = hdmi_power_on_full(dssdev); 738 r = hdmi_power_on_full(dssdev);
745 if (r) { 739 if (r) {
746 DSSERR("failed to power on device\n"); 740 DSSERR("failed to power on device\n");
747 goto err1; 741 goto err0;
748 } 742 }
749 743
750 mutex_unlock(&hdmi.lock); 744 mutex_unlock(&hdmi.lock);
751 return 0; 745 return 0;
752 746
753err1:
754 omap_dss_stop_device(dssdev);
755err0: 747err0:
756 mutex_unlock(&hdmi.lock); 748 mutex_unlock(&hdmi.lock);
757 return r; 749 return r;
@@ -765,8 +757,6 @@ void omapdss_hdmi_display_disable(struct omap_dss_device *dssdev)
765 757
766 hdmi_power_off_full(dssdev); 758 hdmi_power_off_full(dssdev);
767 759
768 omap_dss_stop_device(dssdev);
769
770 mutex_unlock(&hdmi.lock); 760 mutex_unlock(&hdmi.lock);
771} 761}
772 762
diff --git a/drivers/video/omap2/dss/rfbi.c b/drivers/video/omap2/dss/rfbi.c
index cfcb52f088a2..30ff0e0d4629 100644
--- a/drivers/video/omap2/dss/rfbi.c
+++ b/drivers/video/omap2/dss/rfbi.c
@@ -902,12 +902,6 @@ int omapdss_rfbi_display_enable(struct omap_dss_device *dssdev)
902 if (r) 902 if (r)
903 return r; 903 return r;
904 904
905 r = omap_dss_start_device(dssdev);
906 if (r) {
907 DSSERR("failed to start device\n");
908 goto err0;
909 }
910
911 r = dss_mgr_register_framedone_handler(out->manager, 905 r = dss_mgr_register_framedone_handler(out->manager,
912 framedone_callback, NULL); 906 framedone_callback, NULL);
913 if (r) { 907 if (r) {
@@ -924,8 +918,6 @@ int omapdss_rfbi_display_enable(struct omap_dss_device *dssdev)
924 918
925 return 0; 919 return 0;
926err1: 920err1:
927 omap_dss_stop_device(dssdev);
928err0:
929 rfbi_runtime_put(); 921 rfbi_runtime_put();
930 return r; 922 return r;
931} 923}
@@ -937,7 +929,6 @@ void omapdss_rfbi_display_disable(struct omap_dss_device *dssdev)
937 929
938 dss_mgr_unregister_framedone_handler(out->manager, 930 dss_mgr_unregister_framedone_handler(out->manager,
939 framedone_callback, NULL); 931 framedone_callback, NULL);
940 omap_dss_stop_device(dssdev);
941 932
942 rfbi_runtime_put(); 933 rfbi_runtime_put();
943} 934}
diff --git a/drivers/video/omap2/dss/sdi.c b/drivers/video/omap2/dss/sdi.c
index ab67953f09b1..d4f3313bc378 100644
--- a/drivers/video/omap2/dss/sdi.c
+++ b/drivers/video/omap2/dss/sdi.c
@@ -138,12 +138,6 @@ int omapdss_sdi_display_enable(struct omap_dss_device *dssdev)
138 return -ENODEV; 138 return -ENODEV;
139 } 139 }
140 140
141 r = omap_dss_start_device(dssdev);
142 if (r) {
143 DSSERR("failed to start device\n");
144 goto err_start_dev;
145 }
146
147 r = regulator_enable(sdi.vdds_sdi_reg); 141 r = regulator_enable(sdi.vdds_sdi_reg);
148 if (r) 142 if (r)
149 goto err_reg_enable; 143 goto err_reg_enable;
@@ -215,8 +209,6 @@ err_calc_clock_div:
215err_get_dispc: 209err_get_dispc:
216 regulator_disable(sdi.vdds_sdi_reg); 210 regulator_disable(sdi.vdds_sdi_reg);
217err_reg_enable: 211err_reg_enable:
218 omap_dss_stop_device(dssdev);
219err_start_dev:
220 return r; 212 return r;
221} 213}
222EXPORT_SYMBOL(omapdss_sdi_display_enable); 214EXPORT_SYMBOL(omapdss_sdi_display_enable);
@@ -232,8 +224,6 @@ void omapdss_sdi_display_disable(struct omap_dss_device *dssdev)
232 dispc_runtime_put(); 224 dispc_runtime_put();
233 225
234 regulator_disable(sdi.vdds_sdi_reg); 226 regulator_disable(sdi.vdds_sdi_reg);
235
236 omap_dss_stop_device(dssdev);
237} 227}
238EXPORT_SYMBOL(omapdss_sdi_display_disable); 228EXPORT_SYMBOL(omapdss_sdi_display_disable);
239 229
diff --git a/drivers/video/omap2/dss/venc.c b/drivers/video/omap2/dss/venc.c
index f6d2b3f98885..d529a9249432 100644
--- a/drivers/video/omap2/dss/venc.c
+++ b/drivers/video/omap2/dss/venc.c
@@ -513,23 +513,15 @@ int omapdss_venc_display_enable(struct omap_dss_device *dssdev)
513 goto err0; 513 goto err0;
514 } 514 }
515 515
516 r = omap_dss_start_device(dssdev);
517 if (r) {
518 DSSERR("failed to start device\n");
519 goto err0;
520 }
521
522 r = venc_power_on(dssdev); 516 r = venc_power_on(dssdev);
523 if (r) 517 if (r)
524 goto err1; 518 goto err0;
525 519
526 venc.wss_data = 0; 520 venc.wss_data = 0;
527 521
528 mutex_unlock(&venc.venc_lock); 522 mutex_unlock(&venc.venc_lock);
529 523
530 return 0; 524 return 0;
531err1:
532 omap_dss_stop_device(dssdev);
533err0: 525err0:
534 mutex_unlock(&venc.venc_lock); 526 mutex_unlock(&venc.venc_lock);
535 return r; 527 return r;
@@ -543,8 +535,6 @@ void omapdss_venc_display_disable(struct omap_dss_device *dssdev)
543 535
544 venc_power_off(dssdev); 536 venc_power_off(dssdev);
545 537
546 omap_dss_stop_device(dssdev);
547
548 mutex_unlock(&venc.venc_lock); 538 mutex_unlock(&venc.venc_lock);
549} 539}
550 540
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index b7d975755cff..6a699f537a68 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -779,9 +779,6 @@ struct omap_dss_device *omap_dss_find_device(void *data,
779 int (*match)(struct omap_dss_device *dssdev, void *data)); 779 int (*match)(struct omap_dss_device *dssdev, void *data));
780const char *omapdss_get_default_display_name(void); 780const char *omapdss_get_default_display_name(void);
781 781
782int omap_dss_start_device(struct omap_dss_device *dssdev);
783void omap_dss_stop_device(struct omap_dss_device *dssdev);
784
785void videomode_to_omap_video_timings(const struct videomode *vm, 782void videomode_to_omap_video_timings(const struct videomode *vm,
786 struct omap_video_timings *ovt); 783 struct omap_video_timings *ovt);
787void omap_video_timings_to_videomode(const struct omap_video_timings *ovt, 784void omap_video_timings_to_videomode(const struct omap_video_timings *ovt,