From 19b931e2f0a9553e6e3766a51cf891f75fe087b0 Mon Sep 17 00:00:00 2001
From: =?utf8?q?=E9=99=88=E6=81=92=E6=98=8E?= <chm@rock-chips.com>
Date: Tue, 17 Apr 2012 08:05:39 +0000
Subject: [PATCH] vpu_service: change compile mode to module

---
 arch/arm/mach-rk29/clock.c     | 1 +
 arch/arm/mach-rk29/vpu_mem.c   | 4 ++--
 arch/arm/plat-rk/Kconfig       | 4 ++--
 arch/arm/plat-rk/vpu_service.c | 4 ++--
 4 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/arch/arm/mach-rk29/clock.c b/arch/arm/mach-rk29/clock.c
index f9fdc9985bd2..c28a83bfb10b 100755
--- a/arch/arm/mach-rk29/clock.c
+++ b/arch/arm/mach-rk29/clock.c
@@ -292,6 +292,7 @@ void cru_set_soft_reset(enum cru_soft_reset idx, bool on)
 
 	local_irq_restore(flags);
 }
+EXPORT_SYMBOL(cru_set_soft_reset);
 
 static struct clk xin24m = {
 	.name		= "xin24m",
diff --git a/arch/arm/mach-rk29/vpu_mem.c b/arch/arm/mach-rk29/vpu_mem.c
index 898dee3d6fbb..1cf2436f1026 100644
--- a/arch/arm/mach-rk29/vpu_mem.c
+++ b/arch/arm/mach-rk29/vpu_mem.c
@@ -1394,9 +1394,10 @@ static struct platform_driver vpu_mem_driver = {
 	.driver = { .name = "vpu_mem" }
 };
 
-
+static int __init vpu_mem_proc_init(void);
 static int __init vpu_mem_init(void)
 {
+	vpu_mem_proc_init();
 	return platform_driver_register(&vpu_mem_driver);
 }
 
@@ -1516,6 +1517,5 @@ static int __init vpu_mem_proc_init(void)
 	return 0;
 
 }
-late_initcall(vpu_mem_proc_init);
 #endif /* CONFIG_PROC_FS */
 
diff --git a/arch/arm/plat-rk/Kconfig b/arch/arm/plat-rk/Kconfig
index caa635d836fa..9b19e420f832 100644
--- a/arch/arm/plat-rk/Kconfig
+++ b/arch/arm/plat-rk/Kconfig
@@ -106,9 +106,9 @@ config WIFI_CONTROL_FUNC
           Enables Power/Reset/Carddetect function abstraction
 
 config RK29_VPU
-	bool "VPU (Video Processing Unit) service driver in kernel"
+	tristate "VPU (Video Processing Unit) service driver in kernel"
 	depends on ARCH_RK29 || ARCH_RK30
-	default y
+	default m
 
 config RK29_LAST_LOG
 	bool "Save the last kernel log on /proc/last_log"
diff --git a/arch/arm/plat-rk/vpu_service.c b/arch/arm/plat-rk/vpu_service.c
index 4b0c85ad4720..fd30e17c58e0 100644
--- a/arch/arm/plat-rk/vpu_service.c
+++ b/arch/arm/plat-rk/vpu_service.c
@@ -1126,6 +1126,7 @@ static irqreturn_t vepu_isr(int irq, void *dev_id)
 	return IRQ_HANDLED;
 }
 
+static int __init vpu_service_proc_init(void);
 static int __init vpu_service_init(void)
 {
 	int ret;
@@ -1183,6 +1184,7 @@ static int __init vpu_service_init(void)
 	vpu_service_power_off();
 	pr_info("init success\n");
 
+	vpu_service_proc_init();
 	return 0;
 
 err_register:
@@ -1214,7 +1216,6 @@ static void __exit vpu_service_exit(void)
 
 module_init(vpu_service_init);
 module_exit(vpu_service_exit);
-MODULE_LICENSE("GPL");
 
 #ifdef CONFIG_PROC_FS
 #include <linux/proc_fs.h>
@@ -1277,6 +1278,5 @@ static int __init vpu_service_proc_init(void)
 	return 0;
 
 }
-late_initcall(vpu_service_proc_init);
 #endif /* CONFIG_PROC_FS */
 
-- 
2.34.1