diff options
Diffstat (limited to 'patches.tizen/1279-cpufreq-LAB-ondemand-Ondemand-governor-adjustments-n.patch')
-rw-r--r-- | patches.tizen/1279-cpufreq-LAB-ondemand-Ondemand-governor-adjustments-n.patch | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/patches.tizen/1279-cpufreq-LAB-ondemand-Ondemand-governor-adjustments-n.patch b/patches.tizen/1279-cpufreq-LAB-ondemand-Ondemand-governor-adjustments-n.patch new file mode 100644 index 00000000000..09aab2e2750 --- /dev/null +++ b/patches.tizen/1279-cpufreq-LAB-ondemand-Ondemand-governor-adjustments-n.patch @@ -0,0 +1,89 @@ +From 6cbc26d24b93e3607a66525df06eaf4cf8691d26 Mon Sep 17 00:00:00 2001 +From: Lukasz Majewski <l.majewski@samsung.com> +Date: Wed, 26 Feb 2014 13:42:04 +0100 +Subject: [PATCH 1279/1302] cpufreq:LAB:ondemand: Ondemand governor adjustments + necessary for correct LAB operation + +Ondemand code needs to be slightly modified for LAB governor operation. +The biggest problem is with the update_sampling_rate function, which shall +not be executed with wrong governor. + +Change-Id: I149204bda15b11546c57a77a75a51c4f4f8522b8 +Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> +Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> +--- + drivers/cpufreq/cpufreq_governor.h | 3 +++ + drivers/cpufreq/cpufreq_ondemand.c | 14 +++++++++++--- + 2 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/drivers/cpufreq/cpufreq_governor.h b/drivers/cpufreq/cpufreq_governor.h +index a3cf7a8..256c50d4 100644 +--- a/drivers/cpufreq/cpufreq_governor.h ++++ b/drivers/cpufreq/cpufreq_governor.h +@@ -290,6 +290,9 @@ void od_unregister_powersave_bias_handler(void); + void od_dbs_timer(struct work_struct *work); + int od_init(struct dbs_data *dbs_data); + void od_exit(struct dbs_data *dbs_data); ++void od_check_cpu(int cpu, unsigned int load_freq); ++void update_sampling_rate(struct dbs_data *dbs_data, ++ unsigned int new_rate); + + extern struct od_ops od_ops; + +diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c +index d49855d..85c4f56 100644 +--- a/drivers/cpufreq/cpufreq_ondemand.c ++++ b/drivers/cpufreq/cpufreq_ondemand.c +@@ -37,7 +37,7 @@ + #define MIN_FREQUENCY_UP_THRESHOLD (11) + #define MAX_FREQUENCY_UP_THRESHOLD (100) + +-static DEFINE_PER_CPU(struct od_cpu_dbs_info_s, od_cpu_dbs_info); ++DEFINE_PER_CPU(struct od_cpu_dbs_info_s, od_cpu_dbs_info); + + struct od_ops od_ops; + +@@ -162,7 +162,7 @@ static void dbs_freq_increase(struct cpufreq_policy *p, unsigned int freq) + * (default), then we try to increase frequency. Else, we adjust the frequency + * proportional to load. + */ +-static void od_check_cpu(int cpu, unsigned int load) ++void od_check_cpu(int cpu, unsigned int load) + { + struct od_cpu_dbs_info_s *dbs_info = &per_cpu(od_cpu_dbs_info, cpu); + struct cpufreq_policy *policy = dbs_info->cdbs.cur_policy; +@@ -247,6 +247,9 @@ max_delay: + /************************** sysfs interface ************************/ + static struct common_dbs_data od_dbs_cdata; + ++#ifdef CONFIG_CPU_FREQ_GOV_LAB ++extern struct cpufreq_governor cpufreq_gov_lab; ++#endif + /** + * update_sampling_rate - update sampling rate effective immediately if needed. + * @new_rate: new sampling rate +@@ -260,7 +263,7 @@ static struct common_dbs_data od_dbs_cdata; + * reducing the sampling rate, we need to make the new value effective + * immediately. + */ +-static void update_sampling_rate(struct dbs_data *dbs_data, ++void update_sampling_rate(struct dbs_data *dbs_data, + unsigned int new_rate) + { + struct od_dbs_tuners *od_tuners = dbs_data->tuners; +@@ -277,7 +280,12 @@ static void update_sampling_rate(struct dbs_data *dbs_data, + policy = cpufreq_cpu_get(cpu); + if (!policy) + continue; ++#ifdef CONFIG_CPU_FREQ_GOV_LAB ++ if (policy->governor != &cpufreq_gov_ondemand && ++ policy->governor != &cpufreq_gov_lab) { ++#else + if (policy->governor != &cpufreq_gov_ondemand) { ++#endif + cpufreq_cpu_put(policy); + continue; + } +-- +1.8.3.2 + |