diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/cpufreq/cpufreq.c | 21 | ||||
| -rw-r--r-- | drivers/cpufreq/cpufreq_ondemand.c | 2 | ||||
| -rw-r--r-- | drivers/cpuidle/governors/menu.c | 128 | ||||
| -rw-r--r-- | drivers/modem/shrm/shrm_protocol.c | 7 |
4 files changed, 22 insertions, 136 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index b1bcd16d421..0a5bea9e358 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -368,27 +368,6 @@ show_one(scaling_cur_freq, cur); static int __cpufreq_set_policy(struct cpufreq_policy *data, struct cpufreq_policy *policy); -int cpufreq_update_freq(int cpu, unsigned int min, unsigned int max) -{ - int ret; - struct cpufreq_policy new_policy; - struct cpufreq_policy *policy = cpufreq_cpu_get(cpu); - - ret = cpufreq_get_policy(&new_policy, cpu); - if (ret) - return -EINVAL; - - new_policy.min = min; - new_policy.max = max; - - ret = __cpufreq_set_policy(policy, &new_policy); - policy->user_policy.min = policy->min; - policy->user_policy.max = policy->max; - - return ret; -} -EXPORT_SYMBOL(cpufreq_update_freq); - /** * cpufreq_per_cpu_attr_write() / store_##file_name() - sysfs write access */ diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c index a5bbbf60ae8..891360edecd 100644 --- a/drivers/cpufreq/cpufreq_ondemand.c +++ b/drivers/cpufreq/cpufreq_ondemand.c @@ -30,7 +30,7 @@ #define DEF_FREQUENCY_DOWN_DIFFERENTIAL (10) #define DEF_FREQUENCY_UP_THRESHOLD (80) -#define DEF_SAMPLING_DOWN_FACTOR (10) +#define DEF_SAMPLING_DOWN_FACTOR (1) #define MAX_SAMPLING_DOWN_FACTOR (100000) #define MICRO_FREQUENCY_DOWN_DIFFERENTIAL (3) #define MICRO_FREQUENCY_UP_THRESHOLD (95) diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c index ed28f774ca4..c47f3d09c1e 100644 --- a/drivers/cpuidle/governors/menu.c +++ b/drivers/cpuidle/governors/menu.c @@ -19,8 +19,6 @@ #include <linux/tick.h> #include <linux/sched.h> #include <linux/math64.h> -#include <linux/cpu.h> -#include <linux/sysfs.h> #define BUCKETS 12 #define INTERVALS 8 @@ -123,8 +121,6 @@ struct menu_device { int interval_ptr; }; -static int tune_multiplier = 1024; -static int forced_state; #define LOAD_INT(x) ((x) >> FSHIFT) #define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100) @@ -174,9 +170,6 @@ static inline int performance_multiplier(void) { int mult = 1; - if (tune_multiplier <= 1) - return tune_multiplier; - /* for higher loadavg, we are more reluctant */ mult += 2 * get_loadavg(); @@ -184,9 +177,6 @@ static inline int performance_multiplier(void) /* for IO wait tasks (per cpu!) we add 5x each */ mult += 10 * nr_iowait_cpu(smp_processor_id()); - if (tune_multiplier != 1024) - mult = (tune_multiplier * mult) / 1024; - return mult; } @@ -291,34 +281,26 @@ static int menu_select(struct cpuidle_device *dev) if (data->expected_us > 5) data->last_state_idx = CPUIDLE_DRIVER_STATE_START; - WARN((forced_state >= dev->state_count), \ - "Forced state value out of range.\n"); - - if ((forced_state != 0) && (forced_state < dev->state_count)) { - data->exit_us = dev->states[forced_state].exit_latency; - data->last_state_idx = forced_state; - } else { - /* - * Find the idle state with the lowest power while satisfying - * our constraints. - */ - for (i = CPUIDLE_DRIVER_STATE_START; i < dev->state_count; i++) { - struct cpuidle_state *s = &dev->states[i]; - - if (s->flags & CPUIDLE_FLAG_IGNORE) - continue; - if (s->target_residency > data->predicted_us) - continue; - if (s->exit_latency > latency_req) - continue; - if (s->exit_latency * multiplier > data->predicted_us) - continue; - - if (s->power_usage < power_usage) { - power_usage = s->power_usage; - data->last_state_idx = i; - data->exit_us = s->exit_latency; - } + /* + * Find the idle state with the lowest power while satisfying + * our constraints. + */ + for (i = CPUIDLE_DRIVER_STATE_START; i < dev->state_count; i++) { + struct cpuidle_state *s = &dev->states[i]; + + if (s->flags & CPUIDLE_FLAG_IGNORE) + continue; + if (s->target_residency > data->predicted_us) + continue; + if (s->exit_latency > latency_req) + continue; + if (s->exit_latency * multiplier > data->predicted_us) + continue; + + if (s->power_usage < power_usage) { + power_usage = s->power_usage; + data->last_state_idx = i; + data->exit_us = s->exit_latency; } } @@ -399,63 +381,6 @@ static void menu_update(struct cpuidle_device *dev) data->interval_ptr = 0; } -int cpuidle_set_multiplier(unsigned int value) -{ - - if (value > 1024) - tune_multiplier = 1024; - else - tune_multiplier = value; - - return 0; -} -EXPORT_SYMBOL(cpuidle_set_multiplier); - -/* Writing 0 will remove the forced state. */ -int cpuidle_force_state(unsigned int state) -{ - forced_state = state; - - return 0; -} -EXPORT_SYMBOL(cpuidle_force_state); - -static ssize_t show_multiplier(struct sysdev_class *class, - struct sysdev_class_attribute *attr, - char *buf) -{ - return sprintf(buf, "%d\n", tune_multiplier); -} - -static ssize_t store_multiplier(struct sysdev_class *class, - struct sysdev_class_attribute *attr, - const char *buf, size_t count) -{ - unsigned int input; - int ret; - ret = sscanf(buf, "%u", &input); - - if (ret != 1) - return -EINVAL; - - cpuidle_set_multiplier(input); - - return count; -} - - -static SYSDEV_CLASS_ATTR(multiplier, 0644, show_multiplier, store_multiplier); - -static struct attribute *dbs_attributes[] = { - &attr_multiplier.attr, - NULL -}; - -static struct attribute_group dbs_attr_group = { - .attrs = dbs_attributes, - .name = "cpuidle", -}; - /** * menu_enable_device - scans a CPU's states and does setup * @dev: the CPU @@ -483,15 +408,7 @@ static struct cpuidle_governor menu_governor = { */ static int __init init_menu(void) { - int ret; - - ret = cpuidle_register_governor(&menu_governor); - - sysfs_merge_group(&(cpu_sysdev_class.kset.kobj), - &dbs_attr_group); - - return ret; - + return cpuidle_register_governor(&menu_governor); } /** @@ -499,9 +416,6 @@ static int __init init_menu(void) */ static void __exit exit_menu(void) { - sysfs_unmerge_group(&(cpu_sysdev_class.kset.kobj), - &dbs_attr_group); - cpuidle_unregister_governor(&menu_governor); } diff --git a/drivers/modem/shrm/shrm_protocol.c b/drivers/modem/shrm/shrm_protocol.c index 883c46b4f8f..3b7abf7da61 100644 --- a/drivers/modem/shrm/shrm_protocol.c +++ b/drivers/modem/shrm/shrm_protocol.c @@ -18,7 +18,6 @@ #include <linux/modem/modem_client.h> #include <mach/prcmu.h> #include <mach/prcmu-regs.h> -#include <mach/suspend.h> #include <mach/reboot_reasons.h> #define L2_HEADER_ISI 0x0 @@ -449,9 +448,6 @@ void shm_ca_sleep_req_work(struct work_struct *work) hrtimer_start(&timer, ktime_set(0, 10*NSEC_PER_MSEC), HRTIMER_MODE_REL); -#ifdef CONFIG_UX500_SUSPEND - suspend_unblock_sleep(); -#endif atomic_dec(&ac_sleep_disable_count); } @@ -559,9 +555,6 @@ static irqreturn_t shrm_prcmu_irq_handler(int irq, void *data) switch (irq) { case IRQ_PRCMU_CA_WAKE: -#ifdef CONFIG_UX500_SUSPEND - suspend_block_sleep(); -#endif if (shrm->msr_flag) atomic_set(&ac_sleep_disable_count, 0); atomic_inc(&ac_sleep_disable_count); |
