aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/video/omap2/dss/core.c35
-rw-r--r--drivers/video/omap2/dss/dss.h50
2 files changed, 61 insertions, 24 deletions
diff --git a/drivers/video/omap2/dss/core.c b/drivers/video/omap2/dss/core.c
index 6d54467e5e20..92ee06742ece 100644
--- a/drivers/video/omap2/dss/core.c
+++ b/drivers/video/omap2/dss/core.c
@@ -482,6 +482,14 @@ static void dss_uninitialize_debugfs(void)
482 if (dss_debugfs_dir) 482 if (dss_debugfs_dir)
483 debugfs_remove_recursive(dss_debugfs_dir); 483 debugfs_remove_recursive(dss_debugfs_dir);
484} 484}
485#else /* CONFIG_DEBUG_FS && CONFIG_OMAP2_DSS_DEBUG_SUPPORT */
486static inline int dss_initialize_debugfs(void)
487{
488 return 0;
489}
490static inline void dss_uninitialize_debugfs(void)
491{
492}
485#endif /* CONFIG_DEBUG_FS && CONFIG_OMAP2_DSS_DEBUG_SUPPORT */ 493#endif /* CONFIG_DEBUG_FS && CONFIG_OMAP2_DSS_DEBUG_SUPPORT */
486 494
487/* PLATFORM DEVICE */ 495/* PLATFORM DEVICE */
@@ -518,56 +526,47 @@ static int omap_dss_probe(struct platform_device *pdev)
518 goto fail0; 526 goto fail0;
519 } 527 }
520 528
521#ifdef CONFIG_OMAP2_DSS_RFBI
522 r = rfbi_init(); 529 r = rfbi_init();
523 if (r) { 530 if (r) {
524 DSSERR("Failed to initialize rfbi\n"); 531 DSSERR("Failed to initialize rfbi\n");
525 goto fail0; 532 goto fail0;
526 } 533 }
527#endif
528 534
529#ifdef CONFIG_OMAP2_DSS_DPI
530 r = dpi_init(pdev); 535 r = dpi_init(pdev);
531 if (r) { 536 if (r) {
532 DSSERR("Failed to initialize dpi\n"); 537 DSSERR("Failed to initialize dpi\n");
533 goto fail0; 538 goto fail0;
534 } 539 }
535#endif
536 540
537 r = dispc_init(); 541 r = dispc_init();
538 if (r) { 542 if (r) {
539 DSSERR("Failed to initialize dispc\n"); 543 DSSERR("Failed to initialize dispc\n");
540 goto fail0; 544 goto fail0;
541 } 545 }
542#ifdef CONFIG_OMAP2_DSS_VENC 546
543 r = venc_init(pdev); 547 r = venc_init(pdev);
544 if (r) { 548 if (r) {
545 DSSERR("Failed to initialize venc\n"); 549 DSSERR("Failed to initialize venc\n");
546 goto fail0; 550 goto fail0;
547 } 551 }
548#endif 552
549 if (cpu_is_omap34xx()) { 553 if (cpu_is_omap34xx()) {
550#ifdef CONFIG_OMAP2_DSS_SDI
551 r = sdi_init(skip_init); 554 r = sdi_init(skip_init);
552 if (r) { 555 if (r) {
553 DSSERR("Failed to initialize SDI\n"); 556 DSSERR("Failed to initialize SDI\n");
554 goto fail0; 557 goto fail0;
555 } 558 }
556#endif 559
557#ifdef CONFIG_OMAP2_DSS_DSI
558 r = dsi_init(pdev); 560 r = dsi_init(pdev);
559 if (r) { 561 if (r) {
560 DSSERR("Failed to initialize DSI\n"); 562 DSSERR("Failed to initialize DSI\n");
561 goto fail0; 563 goto fail0;
562 } 564 }
563#endif
564 } 565 }
565 566
566#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_OMAP2_DSS_DEBUG_SUPPORT)
567 r = dss_initialize_debugfs(); 567 r = dss_initialize_debugfs();
568 if (r) 568 if (r)
569 goto fail0; 569 goto fail0;
570#endif
571 570
572 for (i = 0; i < pdata->num_devices; ++i) { 571 for (i = 0; i < pdata->num_devices; ++i) {
573 struct omap_dss_device *dssdev = pdata->devices[i]; 572 struct omap_dss_device *dssdev = pdata->devices[i];
@@ -595,27 +594,15 @@ static int omap_dss_remove(struct platform_device *pdev)
595 int i; 594 int i;
596 int c; 595 int c;
597 596
598#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_OMAP2_DSS_DEBUG_SUPPORT)
599 dss_uninitialize_debugfs(); 597 dss_uninitialize_debugfs();
600#endif
601 598
602#ifdef CONFIG_OMAP2_DSS_VENC
603 venc_exit(); 599 venc_exit();
604#endif
605 dispc_exit(); 600 dispc_exit();
606#ifdef CONFIG_OMAP2_DSS_DPI
607 dpi_exit(); 601 dpi_exit();
608#endif
609#ifdef CONFIG_OMAP2_DSS_RFBI
610 rfbi_exit(); 602 rfbi_exit();
611#endif
612 if (cpu_is_omap34xx()) { 603 if (cpu_is_omap34xx()) {
613#ifdef CONFIG_OMAP2_DSS_DSI
614 dsi_exit(); 604 dsi_exit();
615#endif
616#ifdef CONFIG_OMAP2_DSS_SDI
617 sdi_exit(); 605 sdi_exit();
618#endif
619 } 606 }
620 607
621 dss_exit(); 608 dss_exit();
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h
index 24326a5fd292..786f433fd571 100644
--- a/drivers/video/omap2/dss/dss.h
+++ b/drivers/video/omap2/dss/dss.h
@@ -242,11 +242,22 @@ int dss_calc_clock_div(bool is_tft, unsigned long req_pck,
242 struct dispc_clock_info *dispc_cinfo); 242 struct dispc_clock_info *dispc_cinfo);
243 243
244/* SDI */ 244/* SDI */
245#ifdef CONFIG_OMAP2_DSS_SDI
245int sdi_init(bool skip_init); 246int sdi_init(bool skip_init);
246void sdi_exit(void); 247void sdi_exit(void);
247int sdi_init_display(struct omap_dss_device *display); 248int sdi_init_display(struct omap_dss_device *display);
249#else
250static inline int sdi_init(bool skip_init)
251{
252 return 0;
253}
254static inline void sdi_exit(void)
255{
256}
257#endif
248 258
249/* DSI */ 259/* DSI */
260#ifdef CONFIG_OMAP2_DSS_DSI
250int dsi_init(struct platform_device *pdev); 261int dsi_init(struct platform_device *pdev);
251void dsi_exit(void); 262void dsi_exit(void);
252 263
@@ -270,11 +281,30 @@ void dsi_pll_uninit(void);
270void dsi_get_overlay_fifo_thresholds(enum omap_plane plane, 281void dsi_get_overlay_fifo_thresholds(enum omap_plane plane,
271 u32 fifo_size, enum omap_burst_size *burst_size, 282 u32 fifo_size, enum omap_burst_size *burst_size,
272 u32 *fifo_low, u32 *fifo_high); 283 u32 *fifo_low, u32 *fifo_high);
284#else
285static inline int dsi_init(struct platform_device *pdev)
286{
287 return 0;
288}
289static inline void dsi_exit(void)
290{
291}
292#endif
273 293
274/* DPI */ 294/* DPI */
295#ifdef CONFIG_OMAP2_DSS_DPI
275int dpi_init(struct platform_device *pdev); 296int dpi_init(struct platform_device *pdev);
276void dpi_exit(void); 297void dpi_exit(void);
277int dpi_init_display(struct omap_dss_device *dssdev); 298int dpi_init_display(struct omap_dss_device *dssdev);
299#else
300static inline int dpi_init(struct platform_device *pdev)
301{
302 return 0;
303}
304static inline void dpi_exit(void)
305{
306}
307#endif
278 308
279/* DISPC */ 309/* DISPC */
280int dispc_init(void); 310int dispc_init(void);
@@ -362,12 +392,23 @@ int dispc_get_clock_div(struct dispc_clock_info *cinfo);
362 392
363 393
364/* VENC */ 394/* VENC */
395#ifdef CONFIG_OMAP2_DSS_VENC
365int venc_init(struct platform_device *pdev); 396int venc_init(struct platform_device *pdev);
366void venc_exit(void); 397void venc_exit(void);
367void venc_dump_regs(struct seq_file *s); 398void venc_dump_regs(struct seq_file *s);
368int venc_init_display(struct omap_dss_device *display); 399int venc_init_display(struct omap_dss_device *display);
400#else
401static inline int venc_init(struct platform_device *pdev)
402{
403 return 0;
404}
405static inline void venc_exit(void)
406{
407}
408#endif
369 409
370/* RFBI */ 410/* RFBI */
411#ifdef CONFIG_OMAP2_DSS_RFBI
371int rfbi_init(void); 412int rfbi_init(void);
372void rfbi_exit(void); 413void rfbi_exit(void);
373void rfbi_dump_regs(struct seq_file *s); 414void rfbi_dump_regs(struct seq_file *s);
@@ -379,6 +420,15 @@ void rfbi_transfer_area(u16 width, u16 height,
379void rfbi_set_timings(int rfbi_module, struct rfbi_timings *t); 420void rfbi_set_timings(int rfbi_module, struct rfbi_timings *t);
380unsigned long rfbi_get_max_tx_rate(void); 421unsigned long rfbi_get_max_tx_rate(void);
381int rfbi_init_display(struct omap_dss_device *display); 422int rfbi_init_display(struct omap_dss_device *display);
423#else
424static inline int rfbi_init(void)
425{
426 return 0;
427}
428static inline void rfbi_exit(void)
429{
430}
431#endif
382 432
383 433
384#ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS 434#ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS