Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5cb2c3bd authored by Vincent Guittot's avatar Vincent Guittot Committed by Dave Jones
Browse files

[CPUFREQ] calculate delay after dbs_check_cpu



calculate ondemand delay after dbs_check_cpu call because it can
modify rate_mult value

use freq_lo_jiffies value for the sub sample period of powersave_bias mode

Signed-off-by: default avatarVincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: default avatarDave Jones <davej@redhat.com>
parent 5b95364f
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -642,12 +642,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 +655,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);