msm: qdss: consolidate initialization
Change-Id: I63e88174a34126288ed338f5a66a778d19f3e66b
Signed-off-by: Pratik Patel <pratikp@codeaurora.org>
diff --git a/arch/arm/mach-msm/qdss-etb.c b/arch/arm/mach-msm/qdss-etb.c
index 24419c6..39b7670 100644
--- a/arch/arm/mach-msm/qdss-etb.c
+++ b/arch/arm/mach-msm/qdss-etb.c
@@ -296,7 +296,7 @@
return ret;
}
-static int __devexit etb_remove(struct platform_device *pdev)
+static int etb_remove(struct platform_device *pdev)
{
if (etb.enabled)
etb_disable();
@@ -310,23 +310,18 @@
static struct platform_driver etb_driver = {
.probe = etb_probe,
- .remove = __devexit_p(etb_remove),
+ .remove = etb_remove,
.driver = {
.name = "msm_etb",
},
};
-static int __init etb_init(void)
+int __init etb_init(void)
{
return platform_driver_register(&etb_driver);
}
-module_init(etb_init);
-static void __exit etb_exit(void)
+void etb_exit(void)
{
platform_driver_unregister(&etb_driver);
}
-module_exit(etb_exit);
-
-MODULE_LICENSE("GPL v2");
-MODULE_DESCRIPTION("Coresight Embedded Trace Buffer");
diff --git a/arch/arm/mach-msm/qdss-funnel.c b/arch/arm/mach-msm/qdss-funnel.c
index c8b1f99..dd61c15 100644
--- a/arch/arm/mach-msm/qdss-funnel.c
+++ b/arch/arm/mach-msm/qdss-funnel.c
@@ -129,7 +129,7 @@
return ret;
}
-static int __devexit funnel_remove(struct platform_device *pdev)
+static int funnel_remove(struct platform_device *pdev)
{
if (funnel.enabled)
funnel_disable(0x0, 0xFF);
@@ -140,23 +140,18 @@
static struct platform_driver funnel_driver = {
.probe = funnel_probe,
- .remove = __devexit_p(funnel_remove),
+ .remove = funnel_remove,
.driver = {
.name = "msm_funnel",
},
};
-static int __init funnel_init(void)
+int __init funnel_init(void)
{
return platform_driver_register(&funnel_driver);
}
-module_init(funnel_init);
-static void __exit funnel_exit(void)
+void funnel_exit(void)
{
platform_driver_unregister(&funnel_driver);
}
-module_exit(funnel_exit);
-
-MODULE_LICENSE("GPL v2");
-MODULE_DESCRIPTION("Coresight Funnel");
diff --git a/arch/arm/mach-msm/qdss-ptm.c b/arch/arm/mach-msm/qdss-ptm.c
index 66d4555..d0d841a 100644
--- a/arch/arm/mach-msm/qdss-ptm.c
+++ b/arch/arm/mach-msm/qdss-ptm.c
@@ -673,7 +673,7 @@
return ret;
}
-static int __devexit ptm_remove(struct platform_device *pdev)
+static int ptm_remove(struct platform_device *pdev)
{
if (ptm.trace_enabled)
ptm_trace_disable();
@@ -687,23 +687,18 @@
static struct platform_driver ptm_driver = {
.probe = ptm_probe,
- .remove = __devexit_p(ptm_remove),
+ .remove = ptm_remove,
.driver = {
.name = "msm_ptm",
},
};
-static int __init ptm_init(void)
+int __init ptm_init(void)
{
return platform_driver_register(&ptm_driver);
}
-module_init(ptm_init);
-static void __exit ptm_exit(void)
+void ptm_exit(void)
{
platform_driver_unregister(&ptm_driver);
}
-module_exit(ptm_exit);
-
-MODULE_LICENSE("GPL v2");
-MODULE_DESCRIPTION("Coresight Program Flow Trace driver");
diff --git a/arch/arm/mach-msm/qdss-tpiu.c b/arch/arm/mach-msm/qdss-tpiu.c
index c6740e7..e4a61de 100644
--- a/arch/arm/mach-msm/qdss-tpiu.c
+++ b/arch/arm/mach-msm/qdss-tpiu.c
@@ -106,7 +106,7 @@
return ret;
}
-static int __devexit tpiu_remove(struct platform_device *pdev)
+static int tpiu_remove(struct platform_device *pdev)
{
if (tpiu.enabled)
tpiu_disable();
@@ -117,23 +117,18 @@
static struct platform_driver tpiu_driver = {
.probe = tpiu_probe,
- .remove = __devexit_p(tpiu_remove),
+ .remove = tpiu_remove,
.driver = {
.name = "msm_tpiu",
},
};
-static int __init tpiu_init(void)
+int __init tpiu_init(void)
{
return platform_driver_register(&tpiu_driver);
}
-module_init(tpiu_init);
-static void __exit tpiu_exit(void)
+void tpiu_exit(void)
{
platform_driver_unregister(&tpiu_driver);
}
-module_exit(tpiu_exit);
-
-MODULE_LICENSE("GPL v2");
-MODULE_DESCRIPTION("Coresight Trace Port Interface Unit");
diff --git a/arch/arm/mach-msm/qdss.c b/arch/arm/mach-msm/qdss.c
index 7fdc4d3..55d14cd 100644
--- a/arch/arm/mach-msm/qdss.c
+++ b/arch/arm/mach-msm/qdss.c
@@ -57,3 +57,45 @@
ret = msm_rpmrs_set(MSM_RPM_CTX_SET_0, &iv, 1);
WARN(ret, "qdss clks not disabled (%d)\n", ret);
}
+
+static int __init qdss_init(void)
+{
+ int ret;
+
+ ret = etb_init();
+ if (ret)
+ goto err_etb;
+ ret = tpiu_init();
+ if (ret)
+ goto err_tpiu;
+ ret = funnel_init();
+ if (ret)
+ goto err_funnel;
+ ret = ptm_init();
+ if (ret)
+ goto err_ptm;
+
+ return 0;
+
+err_ptm:
+ funnel_exit();
+err_funnel:
+ tpiu_exit();
+err_tpiu:
+ etb_exit();
+err_etb:
+ return ret;
+}
+module_init(qdss_init);
+
+static void __exit qdss_exit(void)
+{
+ ptm_exit();
+ funnel_exit();
+ tpiu_exit();
+ etb_exit();
+}
+module_exit(qdss_exit);
+
+MODULE_LICENSE("GPL v2");
+MODULE_DESCRIPTION("Qualcomm Debug SubSystem Driver");
diff --git a/arch/arm/mach-msm/qdss.h b/arch/arm/mach-msm/qdss.h
index c883000..199222a 100644
--- a/arch/arm/mach-msm/qdss.h
+++ b/arch/arm/mach-msm/qdss.h
@@ -58,6 +58,15 @@
#define BMVAL(val, lsb, msb) ((val & BM(lsb, msb)) >> lsb)
#define BVAL(val, n) ((val & BIT(n)) >> n)
+int etb_init(void);
+void etb_exit(void);
+int tpiu_init(void);
+void tpiu_exit(void);
+int funnel_init(void);
+void funnel_exit(void);
+int ptm_init(void);
+void ptm_exit(void);
+
void etb_enable(void);
void etb_disable(void);
void etb_dump(void);