From 96e2e6374385d2219b9011f6bfd0de7221a591d4 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Wed, 10 Oct 2012 15:55:19 +0300 Subject: [PATCH] OMAPDSS: move irq handling to dispc-compat The whole dispc irq handling system we currently have is only needed for compat layer, and thus can be moved from dispc.c to the compat layer. This is quite straigtforward, but we need to add new dispc functions to request and free the actual hardware irq: dispc_request_irq() and dispc_free_irq(). Signed-off-by: Tomi Valkeinen --- drivers/video/omap2/dss/apply.c | 14 ++ drivers/video/omap2/dss/dispc-compat.c | 430 ++++++++++++++++++++++++++++++++ drivers/video/omap2/dss/dispc-compat.h | 3 + drivers/video/omap2/dss/dispc.c | 437 +-------------------------------- drivers/video/omap2/dss/dss.h | 5 + 5 files changed, 463 insertions(+), 426 deletions(-) diff --git a/drivers/video/omap2/dss/apply.c b/drivers/video/omap2/dss/apply.c index 0de0d3c..29e1143 100644 --- a/drivers/video/omap2/dss/apply.c +++ b/drivers/video/omap2/dss/apply.c @@ -1607,11 +1607,23 @@ int omapdss_compat_init(void) if (r) goto err_mgr_ops; + dispc_runtime_get(); + + r = dss_dispc_initialize_irq(); + if (r) + goto err_init_irq; + + dispc_runtime_put(); + out: mutex_unlock(&compat_init_lock); return 0; +err_init_irq: + dispc_runtime_put(); + dss_uninstall_mgr_ops(); + err_mgr_ops: dss_uninit_overlay_managers(pdev); dss_uninit_overlays(pdev); @@ -1633,6 +1645,8 @@ void omapdss_compat_uninit(void) if (--compat_refcnt > 0) goto out; + dss_dispc_uninitialize_irq(); + dss_uninstall_mgr_ops(); dss_uninit_overlay_managers(pdev); diff --git a/drivers/video/omap2/dss/dispc-compat.c b/drivers/video/omap2/dss/dispc-compat.c index 24e1d5e..928884c 100644 --- a/drivers/video/omap2/dss/dispc-compat.c +++ b/drivers/video/omap2/dss/dispc-compat.c @@ -23,6 +23,8 @@ #include #include #include +#include +#include #include