diff options
author | Sai Charan Gurrappadi <sgurrappadi@nvidia.com> | 2012-08-10 15:13:00 -0700 |
---|---|---|
committer | Lokesh Pathak <lpathak@nvidia.com> | 2012-08-14 06:28:18 -0700 |
commit | b1514438f2cdefae817328ff69f8b6dc5f2d878b (patch) | |
tree | 0d268314ff5d17deb9785cb2a391b3b9cae00175 /arch/arm/mach-tegra/cpuquiet.c | |
parent | 61a9d84f74163c7f2dbc6868836b916903724f3c (diff) |
ARM: tegra: Ignore PmQos when disabled
The cpu hotplug drivers should only bother updating state or switching
to the G cluster if the driver is not disabled
Bug 1032096
Change-Id: Ice938b094bbf48fef47afa3915b1a48362fb256d
Signed-off-by: Sai Charan Gurrappadi <sgurrappadi@nvidia.com>
Reviewed-on: http://git-master/r/122859
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Diwakar Tundlam <dtundlam@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/cpuquiet.c')
-rw-r--r-- | arch/arm/mach-tegra/cpuquiet.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/cpuquiet.c b/arch/arm/mach-tegra/cpuquiet.c index ed197b1e6c6f..87aebfe7badb 100644 --- a/arch/arm/mach-tegra/cpuquiet.c +++ b/arch/arm/mach-tegra/cpuquiet.c @@ -188,6 +188,9 @@ static void min_max_constraints_workfunc(struct work_struct *work) int max_cpus = pm_qos_request(PM_QOS_MAX_ONLINE_CPUS) ? : 4; int min_cpus = pm_qos_request(PM_QOS_MIN_ONLINE_CPUS); + if (cpq_state == TEGRA_CPQ_DISABLED) + return; + if (is_lp_cluster()) return; @@ -219,10 +222,14 @@ static int min_cpus_notify(struct notifier_block *nb, unsigned long n, void *p) { bool g_cluster = false; + if (cpq_state == TEGRA_CPQ_DISABLED) + return NOTIFY_OK; + mutex_lock(tegra3_cpu_lock); if ((n >= 1) && is_lp_cluster()) { - /* make sure cpu rate is within g-mode range before switching */ + /* make sure cpu rate is within g-mode + * range before switching */ unsigned long speed = max((unsigned long)tegra_getspeed(0), clk_get_min_rate(cpu_g_clk) / 1000); tegra_update_cpu_speed(speed); @@ -244,6 +251,9 @@ static int min_cpus_notify(struct notifier_block *nb, unsigned long n, void *p) static int max_cpus_notify(struct notifier_block *nb, unsigned long n, void *p) { + if (cpq_state == TEGRA_CPQ_DISABLED) + return NOTIFY_OK; + if (n < num_online_cpus()) schedule_work(&minmax_work); |