ARM: tegra: restructuring battery EDP init code
Sivaram Nair [Fri, 23 Nov 2012 08:26:40 +0000 (10:26 +0200)]
The EDP manager init and registration code is slightly restructured in
oder to decouple the config flags CONFIG_EDP_FRAMEWORK and
CONFIG_TEGRA_EDP_LIMITS which are otherwise independent.

Change-Id: I48f0fb198fbf2ac2118e95293a6ac7ecd1abdcab
Signed-off-by: Sivaram Nair <sivaramn@nvidia.com>
Reviewed-on: http://git-master/r/166903
Reviewed-by: Mrutyunjay Sawant <msawant@nvidia.com>
Tested-by: Mrutyunjay Sawant <msawant@nvidia.com>

arch/arm/mach-tegra/board-dalmore.c
arch/arm/mach-tegra/board-pluto.c
arch/arm/mach-tegra/board-roth.c
arch/arm/mach-tegra/edp.c
arch/arm/mach-tegra/include/mach/edp.h

index b18c870..21e8e3d 100644 (file)
@@ -46,6 +46,7 @@
 #include <linux/leds.h>
 #include <linux/i2c/at24.h>
 #include <linux/of_platform.h>
+#include <linux/edp.h>
 
 #include <asm/hardware/gic.h>
 
@@ -64,7 +65,6 @@
 #include <mach/usb_phy.h>
 #include <mach/gpio-tegra.h>
 #include <mach/tegra_fiq_debugger.h>
-#include <mach/edp.h>
 #include <mach/tegra_usb_modem_power.h>
 
 #include "board-touch-raydium.h"
@@ -734,12 +734,47 @@ static int __init dalmore_touch_init(void)
        return 0;
 }
 
+#ifdef CONFIG_EDP_FRAMEWORK
+static struct edp_manager battery_edp_manager = {
+       .name = "battery",
+       .imax = 2500
+};
+
+static void __init dalmore_battery_edp_init(void)
+{
+       struct edp_governor *g;
+       int r;
+
+       r = edp_register_manager(&battery_edp_manager);
+       if (r)
+               goto err_ret;
+
+       /* start with priority governor */
+       g = edp_get_governor("priority");
+       if (!g) {
+               r = -EFAULT;
+               goto err_ret;
+       }
+
+       r = edp_set_governor(&battery_edp_manager, g);
+       if (r)
+               goto err_ret;
+
+       return;
+
+err_ret:
+       pr_err("Battery EDP init failed with error %d\n", r);
+       WARN_ON(1);
+}
+#else
+static inline void dalmore_battery_edp_init(void) {}
+#endif
 static void __init tegra_dalmore_init(void)
 {
        struct board_info board_info;
 
        tegra_get_display_board_info(&board_info);
-       tegra_battery_edp_init(2500);
+       dalmore_battery_edp_init();
        tegra_clk_init_from_table(dalmore_clk_init_table);
        tegra_soc_device_init("dalmore");
        tegra_enable_pinmux();
index e63c51a..09b7e9a 100644 (file)
@@ -48,6 +48,7 @@
 #include <linux/mfd/max8831.h>
 #include <linux/of_platform.h>
 #include <linux/a2220.h>
+#include <linux/edp.h>
 
 #include <asm/hardware/gic.h>
 
@@ -67,7 +68,6 @@
 #include <mach/gpio-tegra.h>
 #include <mach/tegra_fiq_debugger.h>
 #include <mach/tegra-bb-power.h>
-#include <mach/edp.h>
 #include <mach/tegra_usb_modem_power.h>
 
 #include "board.h"
@@ -989,9 +989,45 @@ static int __init pluto_touch_init(void)
        return 0;
 }
 
+#ifdef CONFIG_EDP_FRAMEWORK
+static struct edp_manager battery_edp_manager = {
+       .name = "battery",
+       .imax = 3250
+};
+
+static void __init pluto_battery_edp_init(void)
+{
+       struct edp_governor *g;
+       int r;
+
+       r = edp_register_manager(&battery_edp_manager);
+       if (r)
+               goto err_ret;
+
+       /* start with priority governor */
+       g = edp_get_governor("priority");
+       if (!g) {
+               r = -EFAULT;
+               goto err_ret;
+       }
+
+       r = edp_set_governor(&battery_edp_manager, g);
+       if (r)
+               goto err_ret;
+
+       return;
+
+err_ret:
+       pr_err("Battery EDP init failed with error %d\n", r);
+       WARN_ON(1);
+}
+#else
+static inline void pluto_battery_edp_init(void) {}
+#endif
+
 static void __init tegra_pluto_init(void)
 {
-       tegra_battery_edp_init(3250);
+       pluto_battery_edp_init();
        tegra_clk_init_from_table(pluto_clk_init_table);
        tegra_soc_device_init("tegra_pluto");
        tegra_enable_pinmux();
index 36b20cd..13a6754 100644 (file)
@@ -534,8 +534,6 @@ static void roth_audio_init(void)
 
 static void __init tegra_roth_init(void)
 {
-
-       tegra_battery_edp_init(2500);
        tegra_clk_init_from_table(roth_clk_init_table);
        tegra_soc_device_init("roth");
        tegra_enable_pinmux();
index 0128b4c..b4b8f6d 100644 (file)
@@ -698,42 +698,6 @@ void tegra_get_system_edp_limits(const unsigned int **limits)
        *limits = system_edp_limits;
 }
 
-#ifdef CONFIG_EDP_FRAMEWORK
-
-static struct edp_manager battery_edp_manager = {
-       .name = "battery"
-};
-
-void __init tegra_battery_edp_init(unsigned int cap)
-{
-       struct edp_governor *g;
-       int r;
-
-       battery_edp_manager.imax = cap;
-       r = edp_register_manager(&battery_edp_manager);
-       if (r)
-               goto err_ret;
-
-       /* start with priority governor */
-       g = edp_get_governor("priority");
-       if (!g) {
-               r = -EFAULT;
-               goto err_ret;
-       }
-
-       r = edp_set_governor(&battery_edp_manager, g);
-       if (r)
-               goto err_ret;
-
-       return;
-
-err_ret:
-       pr_err("Battery EDP init failed with error %d\n", r);
-       WARN_ON(1);
-}
-
-#endif
-
 #ifdef CONFIG_DEBUG_FS
 
 static int edp_limit_debugfs_show(struct seq_file *s, void *data)
index fd824a2..bd79eab 100644 (file)
@@ -112,12 +112,6 @@ static inline void tegra_edp_throttle_cpu_now(u8 factor)
 void tegra_edp_throttle_cpu_now(u8 factor);
 #endif
 
-#if defined(CONFIG_TEGRA_EDP_LIMITS) && defined(CONFIG_EDP_FRAMEWORK)
-void __init tegra_battery_edp_init(unsigned int cap);
-#else
-static inline void tegra_battery_edp_init(unsigned int cap) {}
-#endif
-
 #ifdef CONFIG_TEGRA_CORE_EDP_LIMITS
 void tegra_init_core_edp_limits(unsigned int regulator_mA);
 int tegra_core_edp_debugfs_init(struct dentry *edp_dir);