aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/core.c
diff options
context:
space:
mode:
authorSenthilvadivu Guruswamy <svadivu@ti.com>2011-01-24 01:21:57 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-03-11 08:46:19 -0500
commit96c401bcb83a182a4f332f2f64ee6530ba35511a (patch)
tree9561806b92baf3ab42d9d859e7ad67a6b1c5125c /drivers/video/omap2/dss/core.c
parentcf07f5316215972e987c63b0a75a922c89813781 (diff)
OMAP2, 3: DSS2: DSS: create platform_driver, move init, exit to driver
Hwmod adaptation design requires each of the DSS HW IP to be a platform driver. So a platform_driver of DSS is created and init exit methods are moved from core.c to its driver probe,remove. pdev member has to be maintained by its own drivers. DSS platform driver is registered from inside omap_dss_probe, in the order desired. Signed-off-by: Senthilvadivu Guruswamy <svadivu@ti.com> Signed-off-by: Sumit Semwal <sumit.semwal@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2/dss/core.c')
-rw-r--r--drivers/video/omap2/dss/core.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/video/omap2/dss/core.c b/drivers/video/omap2/dss/core.c
index ee56859c52ce..e399ca22e514 100644
--- a/drivers/video/omap2/dss/core.c
+++ b/drivers/video/omap2/dss/core.c
@@ -517,15 +517,9 @@ static int omap_dss_probe(struct platform_device *pdev)
517 core.ctx_id = dss_get_ctx_id(); 517 core.ctx_id = dss_get_ctx_id();
518 DSSDBG("initial ctx id %u\n", core.ctx_id); 518 DSSDBG("initial ctx id %u\n", core.ctx_id);
519 519
520#ifdef CONFIG_FB_OMAP_BOOTLOADER_INIT 520 r = dss_init_platform_driver();
521 /* DISPC_CONTROL */
522 if (omap_readl(0x48050440) & 1) /* LCD enabled? */
523 skip_init = 1;
524#endif
525
526 r = dss_init(skip_init);
527 if (r) { 521 if (r) {
528 DSSERR("Failed to initialize DSS\n"); 522 DSSERR("Failed to initialize DSS platform driver\n");
529 goto err_dss; 523 goto err_dss;
530 } 524 }
531 525
@@ -553,6 +547,11 @@ static int omap_dss_probe(struct platform_device *pdev)
553 goto err_venc; 547 goto err_venc;
554 } 548 }
555 549
550#ifdef CONFIG_FB_OMAP_BOOTLOADER_INIT
551 /* DISPC_CONTROL */
552 if (omap_readl(0x48050440) & 1) /* LCD enabled? */
553 skip_init = 1;
554#endif
556 if (cpu_is_omap34xx()) { 555 if (cpu_is_omap34xx()) {
557 r = sdi_init(skip_init); 556 r = sdi_init(skip_init);
558 if (r) { 557 if (r) {
@@ -610,7 +609,7 @@ err_dispc:
610err_dpi: 609err_dpi:
611 rfbi_exit(); 610 rfbi_exit();
612err_rfbi: 611err_rfbi:
613 dss_exit(); 612 dss_uninit_platform_driver();
614err_dss: 613err_dss:
615 dss_clk_disable_all_no_ctx(); 614 dss_clk_disable_all_no_ctx();
616 dss_put_clocks(); 615 dss_put_clocks();
@@ -635,7 +634,7 @@ static int omap_dss_remove(struct platform_device *pdev)
635 sdi_exit(); 634 sdi_exit();
636 } 635 }
637 636
638 dss_exit(); 637 dss_uninit_platform_driver();
639 638
640 /* 639 /*
641 * As part of hwmod changes, DSS is not the only controller of dss 640 * As part of hwmod changes, DSS is not the only controller of dss