From: Senthilvadivu Guruswamy <svadivu@xxxxxx> Move init exit methods to its driver probe remove. pdev member has to be maintained by its own drivers. Signed-off-by: Senthilvadivu Guruswamy <svadivu@xxxxxx> --- drivers/video/omap2/dss/core.c | 16 ---------------- drivers/video/omap2/dss/dss.c | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/video/omap2/dss/core.c b/drivers/video/omap2/dss/core.c index ce5240f..54fe333 100644 --- a/drivers/video/omap2/dss/core.c +++ b/drivers/video/omap2/dss/core.c @@ -193,18 +193,6 @@ static int omap_dss_probe(struct platform_device *pdev) dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK1 | DSS_CLK_54M); -#ifdef CONFIG_FB_OMAP_BOOTLOADER_INIT - /* DISPC_CONTROL */ - if (omap_readl(0x48050440) & 1) /* LCD enabled? */ - skip_init = 1; -#endif - - r = dss_init(skip_init); - if (r) { - DSSERR("Failed to initialize DSS\n"); - goto err_dss; - } - r = rfbi_init(); if (r) { DSSERR("Failed to initialize rfbi\n"); @@ -286,8 +274,6 @@ err_dispc: err_dpi: rfbi_exit(); err_rfbi: - dss_exit(); -err_dss: return r; } @@ -308,8 +294,6 @@ static int omap_dss_remove(struct platform_device *pdev) sdi_exit(); } - dss_exit(); - dss_uninit_overlays(pdev); dss_uninit_overlay_managers(pdev); diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c index fba8bcd..b93b118 100644 --- a/drivers/video/omap2/dss/dss.c +++ b/drivers/video/omap2/dss/dss.c @@ -410,6 +410,7 @@ void dss_debug_dump_clocks(struct seq_file *s) static int omap_dsshw_probe(struct platform_device *pdev) { int r; + int skip_init = 0; dss.pdev = pdev; @@ -422,6 +423,19 @@ static int omap_dsshw_probe(struct platform_device *pdev) dss.ctx_id = dss_get_ctx_id(); DSSDBG("initial ctx id %u\n", dss.ctx_id); +#ifdef CONFIG_FB_OMAP_BOOTLOADER_INIT + /* DISPC_CONTROL */ + if (omap_readl(0x48050440) & 1) /* LCD enabled? */ + skip_init = 1; +#endif + + r = dss_init(skip_init); + if (r) { + DSSERR("Failed to initialize DSS\n"); + goto err_dss; + } + +err_dss: dss_clk_disable_all_no_ctx(); err_clocks: @@ -432,6 +446,8 @@ static int omap_dsshw_remove(struct platform_device *pdev) { int c; + dss_exit(); + /* these should be removed at some point */ c = dss.dss_ick->usecount; if (c > 0) { -- 1.6.3.3 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html