]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/cpufreq/cpufreq_ondemand.c
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
[mv-sheeva.git] / drivers / cpufreq / cpufreq_ondemand.c
index 58aa85ea5ec63528c05989cb80828f02c0b42758..891360edecdd218fcd200e5c1e47f28f3ff07d52 100644 (file)
@@ -99,8 +99,7 @@ static DEFINE_PER_CPU(struct cpu_dbs_info_s, od_cpu_dbs_info);
 static unsigned int dbs_enable;        /* number of CPUs using this policy */
 
 /*
- * dbs_mutex protects data in dbs_tuners_ins from concurrent changes on
- * different CPUs. It protects dbs_enable in governor start/stop.
+ * dbs_mutex protects dbs_enable in governor start/stop.
  */
 static DEFINE_MUTEX(dbs_mutex);
 
@@ -235,21 +234,12 @@ static void ondemand_powersave_bias_init(void)
 
 /************************** sysfs interface ************************/
 
-static ssize_t show_sampling_rate_max(struct kobject *kobj,
-                                     struct attribute *attr, char *buf)
-{
-       printk_once(KERN_INFO "CPUFREQ: ondemand sampling_rate_max "
-              "sysfs file is deprecated - used by: %s\n", current->comm);
-       return sprintf(buf, "%u\n", -1U);
-}
-
 static ssize_t show_sampling_rate_min(struct kobject *kobj,
                                      struct attribute *attr, char *buf)
 {
        return sprintf(buf, "%u\n", min_sampling_rate);
 }
 
-define_one_global_ro(sampling_rate_max);
 define_one_global_ro(sampling_rate_min);
 
 /* cpufreq_ondemand Governor Tunables */
@@ -266,32 +256,6 @@ show_one(sampling_down_factor, sampling_down_factor);
 show_one(ignore_nice_load, ignore_nice);
 show_one(powersave_bias, powersave_bias);
 
-/*** delete after deprecation time ***/
-
-#define DEPRECATION_MSG(file_name)                                     \
-       printk_once(KERN_INFO "CPUFREQ: Per core ondemand sysfs "       \
-                   "interface is deprecated - " #file_name "\n");
-
-#define show_one_old(file_name)                                                \
-static ssize_t show_##file_name##_old                                  \
-(struct cpufreq_policy *unused, char *buf)                             \
-{                                                                      \
-       printk_once(KERN_INFO "CPUFREQ: Per core ondemand sysfs "       \
-                   "interface is deprecated - " #file_name "\n");      \
-       return show_##file_name(NULL, NULL, buf);                       \
-}
-show_one_old(sampling_rate);
-show_one_old(up_threshold);
-show_one_old(ignore_nice_load);
-show_one_old(powersave_bias);
-show_one_old(sampling_rate_min);
-show_one_old(sampling_rate_max);
-
-cpufreq_freq_attr_ro_old(sampling_rate_min);
-cpufreq_freq_attr_ro_old(sampling_rate_max);
-
-/*** delete after deprecation time ***/
-
 static ssize_t store_sampling_rate(struct kobject *a, struct attribute *b,
                                   const char *buf, size_t count)
 {
@@ -300,11 +264,7 @@ static ssize_t store_sampling_rate(struct kobject *a, struct attribute *b,
        ret = sscanf(buf, "%u", &input);
        if (ret != 1)
                return -EINVAL;
-
-       mutex_lock(&dbs_mutex);
        dbs_tuners_ins.sampling_rate = max(input, min_sampling_rate);
-       mutex_unlock(&dbs_mutex);
-
        return count;
 }
 
@@ -317,11 +277,7 @@ static ssize_t store_io_is_busy(struct kobject *a, struct attribute *b,
        ret = sscanf(buf, "%u", &input);
        if (ret != 1)
                return -EINVAL;
-
-       mutex_lock(&dbs_mutex);
        dbs_tuners_ins.io_is_busy = !!input;
-       mutex_unlock(&dbs_mutex);
-
        return count;
 }
 
@@ -336,11 +292,7 @@ static ssize_t store_up_threshold(struct kobject *a, struct attribute *b,
                        input < MIN_FREQUENCY_UP_THRESHOLD) {
                return -EINVAL;
        }
-
-       mutex_lock(&dbs_mutex);
        dbs_tuners_ins.up_threshold = input;
-       mutex_unlock(&dbs_mutex);
-
        return count;
 }
 
@@ -353,7 +305,6 @@ static ssize_t store_sampling_down_factor(struct kobject *a,
 
        if (ret != 1 || input > MAX_SAMPLING_DOWN_FACTOR || input < 1)
                return -EINVAL;
-       mutex_lock(&dbs_mutex);
        dbs_tuners_ins.sampling_down_factor = input;
 
        /* Reset down sampling multiplier in case it was active */
@@ -362,8 +313,6 @@ static ssize_t store_sampling_down_factor(struct kobject *a,
                dbs_info = &per_cpu(od_cpu_dbs_info, j);
                dbs_info->rate_mult = 1;
        }
-       mutex_unlock(&dbs_mutex);
-
        return count;
 }
 
@@ -382,9 +331,7 @@ static ssize_t store_ignore_nice_load(struct kobject *a, struct attribute *b,
        if (input > 1)
                input = 1;
 
-       mutex_lock(&dbs_mutex);
        if (input == dbs_tuners_ins.ignore_nice) { /* nothing to do */
-               mutex_unlock(&dbs_mutex);
                return count;
        }
        dbs_tuners_ins.ignore_nice = input;
@@ -399,8 +346,6 @@ static ssize_t store_ignore_nice_load(struct kobject *a, struct attribute *b,
                        dbs_info->prev_cpu_nice = kstat_cpu(j).cpustat.nice;
 
        }
-       mutex_unlock(&dbs_mutex);
-
        return count;
 }
 
@@ -417,11 +362,8 @@ static ssize_t store_powersave_bias(struct kobject *a, struct attribute *b,
        if (input > 1000)
                input = 1000;
 
-       mutex_lock(&dbs_mutex);
        dbs_tuners_ins.powersave_bias = input;
        ondemand_powersave_bias_init();
-       mutex_unlock(&dbs_mutex);
-
        return count;
 }
 
@@ -433,7 +375,6 @@ define_one_global_rw(ignore_nice_load);
 define_one_global_rw(powersave_bias);
 
 static struct attribute *dbs_attributes[] = {
-       &sampling_rate_max.attr,
        &sampling_rate_min.attr,
        &sampling_rate.attr,
        &up_threshold.attr,
@@ -449,43 +390,6 @@ static struct attribute_group dbs_attr_group = {
        .name = "ondemand",
 };
 
-/*** delete after deprecation time ***/
-
-#define write_one_old(file_name)                                       \
-static ssize_t store_##file_name##_old                                 \
-(struct cpufreq_policy *unused, const char *buf, size_t count)         \
-{                                                                      \
-       printk_once(KERN_INFO "CPUFREQ: Per core ondemand sysfs "       \
-                  "interface is deprecated - " #file_name "\n");       \
-       return store_##file_name(NULL, NULL, buf, count);               \
-}
-write_one_old(sampling_rate);
-write_one_old(up_threshold);
-write_one_old(ignore_nice_load);
-write_one_old(powersave_bias);
-
-cpufreq_freq_attr_rw_old(sampling_rate);
-cpufreq_freq_attr_rw_old(up_threshold);
-cpufreq_freq_attr_rw_old(ignore_nice_load);
-cpufreq_freq_attr_rw_old(powersave_bias);
-
-static struct attribute *dbs_attributes_old[] = {
-       &sampling_rate_max_old.attr,
-       &sampling_rate_min_old.attr,
-       &sampling_rate_old.attr,
-       &up_threshold_old.attr,
-       &ignore_nice_load_old.attr,
-       &powersave_bias_old.attr,
-       NULL
-};
-
-static struct attribute_group dbs_attr_group_old = {
-       .attrs = dbs_attributes_old,
-       .name = "ondemand",
-};
-
-/*** delete after deprecation time ***/
-
 /************************** sysfs end ************************/
 
 static void dbs_freq_increase(struct cpufreq_policy *p, unsigned int freq)
@@ -642,12 +546,7 @@ static void do_dbs_timer(struct work_struct *work)
        unsigned int cpu = dbs_info->cpu;
        int sample_type = dbs_info->sample_type;
 
-       /* We want all CPUs to do sampling nearly on same jiffy */
-       int delay = usecs_to_jiffies(dbs_tuners_ins.sampling_rate
-               * dbs_info->rate_mult);
-
-       if (num_online_cpus() > 1)
-               delay -= jiffies % delay;
+       int delay;
 
        mutex_lock(&dbs_info->timer_mutex);
 
@@ -660,10 +559,20 @@ static void do_dbs_timer(struct work_struct *work)
                        /* Setup timer for SUB_SAMPLE */
                        dbs_info->sample_type = DBS_SUB_SAMPLE;
                        delay = dbs_info->freq_hi_jiffies;
+               } else {
+                       /* We want all CPUs to do sampling nearly on
+                        * same jiffy
+                        */
+                       delay = usecs_to_jiffies(dbs_tuners_ins.sampling_rate
+                               * dbs_info->rate_mult);
+
+                       if (num_online_cpus() > 1)
+                               delay -= jiffies % delay;
                }
        } else {
                __cpufreq_driver_target(dbs_info->cur_policy,
                        dbs_info->freq_lo, CPUFREQ_RELATION_H);
+               delay = dbs_info->freq_lo_jiffies;
        }
        schedule_delayed_work_on(cpu, &dbs_info->work, delay);
        mutex_unlock(&dbs_info->timer_mutex);
@@ -727,12 +636,6 @@ static int cpufreq_governor_dbs(struct cpufreq_policy *policy,
 
                mutex_lock(&dbs_mutex);
 
-               rc = sysfs_create_group(&policy->kobj, &dbs_attr_group_old);
-               if (rc) {
-                       mutex_unlock(&dbs_mutex);
-                       return rc;
-               }
-
                dbs_enable++;
                for_each_cpu(j, policy->cpus) {
                        struct cpu_dbs_info_s *j_dbs_info;
@@ -785,7 +688,6 @@ static int cpufreq_governor_dbs(struct cpufreq_policy *policy,
                dbs_timer_exit(this_dbs_info);
 
                mutex_lock(&dbs_mutex);
-               sysfs_remove_group(&policy->kobj, &dbs_attr_group_old);
                mutex_destroy(&this_dbs_info->timer_mutex);
                dbs_enable--;
                mutex_unlock(&dbs_mutex);