arm: tegra: add edp limit to debugfs
Joseph Lehrer [Fri, 19 Aug 2011 22:36:13 +0000 (15:36 -0700)]
bug 865842

Original-Change-Id: I54dcf3e2e968692746f1d8b17bdf912305f547a2
(cherry picked from commit 5b9dce25485824036f86db093b28a45a3cd86c76)
Reviewed-on: http://git-master/r/48257
Reviewed-by: Joseph Lehrer <jlehrer@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Diwakar Tundlam <dtundlam@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>

Rebase-Id: R1adb1ca832e0f63f1e5b7e405f4c87c4a8a7aabe

arch/arm/mach-tegra/cpu-tegra.c
arch/arm/mach-tegra/edp.c
arch/arm/mach-tegra/include/mach/edp.h

index f790b36..902c515 100644 (file)
@@ -100,6 +100,11 @@ static int edp_thermal_index;
 static cpumask_t edp_cpumask;
 static unsigned int edp_limit;
 
+unsigned int tegra_get_edp_limit(void)
+{
+       return edp_limit;
+}
+
 static void edp_update_limit(void)
 {
        unsigned int limit = cpumask_weight(&edp_cpumask);
index 97b7212..d947523 100644 (file)
@@ -26,7 +26,6 @@
 
 #include "fuse.h"
 
-
 static const struct tegra_edp_limits *edp_limits;
 static int edp_limits_size;
 
@@ -180,6 +179,12 @@ void tegra_get_cpu_edp_limits(const struct tegra_edp_limits **limits, int *size)
 
 #ifdef CONFIG_DEBUG_FS
 
+static int edp_limit_debugfs_show(struct seq_file *s, void *data)
+{
+       seq_printf(s, "%u\n", tegra_get_edp_limit());
+       return 0;
+}
+
 static int edp_debugfs_show(struct seq_file *s, void *data)
 {
        int i;
@@ -207,6 +212,11 @@ static int edp_debugfs_open(struct inode *inode, struct file *file)
        return single_open(file, edp_debugfs_show, inode->i_private);
 }
 
+static int edp_limit_debugfs_open(struct inode *inode, struct file *file)
+{
+       return single_open(file, edp_limit_debugfs_show, inode->i_private);
+}
+
 
 static const struct file_operations edp_debugfs_fops = {
        .open           = edp_debugfs_open,
@@ -215,6 +225,12 @@ static const struct file_operations edp_debugfs_fops = {
        .release        = single_release,
 };
 
+static const struct file_operations edp_limit_debugfs_fops = {
+       .open           = edp_limit_debugfs_open,
+       .read           = seq_read,
+       .llseek         = seq_lseek,
+       .release        = single_release,
+};
 
 static int __init tegra_edp_debugfs_init(void)
 {
@@ -225,6 +241,9 @@ static int __init tegra_edp_debugfs_init(void)
        if (!d)
                return -ENOMEM;
 
+       d = debugfs_create_file("edp_limit", S_IRUGO, NULL, NULL,
+                               &edp_limit_debugfs_fops);
+
        return 0;
 }
 
index 1af8d9e..8cba6da 100644 (file)
@@ -42,6 +42,7 @@ struct tegra_edp_limits {
 int tegra_edp_update_thermal_zone(int temperature);
 void tegra_init_cpu_edp_limits(unsigned int regulator_mA);
 void tegra_get_cpu_edp_limits(const struct tegra_edp_limits **limits, int *size);
+unsigned int tegra_get_edp_limit(void);
 
 #else
 static inline void tegra_init_cpu_edp_limits(int regulator_mA)
@@ -51,6 +52,8 @@ static inline int tegra_edp_update_thermal_zone(int temperature)
 static inline void tegra_get_cpu_edp_limits(struct tegra_edp_limits **limits,
                                            int *size)
 {}
+static inline unsigned int tegra_get_edp_limit(void)
+{ return -1; }
 #endif
 
 #endif /* __MACH_EDP_H */