Esempio n. 1
0
static ssize_t
cpufreq_ceiling_store(struct kobject *kobj, struct kobj_attribute *attr,
		const char *buf, size_t n)
{
	int val, ret = -EINVAL;

	if (sscanf(buf, "%d", &val) > 0) {
		if (val == 11 && !is_perf_lock_active(&user_cpu_ceiling_lock)) {
			perf_lock(&user_cpu_ceiling_lock);
			ret = n;
		} else if (val == 10 && is_perf_lock_active(&user_cpu_ceiling_lock)) {
			perf_unlock(&user_cpu_ceiling_lock);
			ret = n;
		} else {
			switch (val){
			ceiling_level_wrapper(0, 1, PERF_LOCK_LOWEST);
			ceiling_level_wrapper(2, 3, PERF_LOCK_LOW);
			ceiling_level_wrapper(4, 5, PERF_LOCK_MEDIUM);
			ceiling_level_wrapper(6, 7, PERF_LOCK_HIGH);
			ceiling_level_wrapper(8, 9, PERF_LOCK_HIGHEST);
			default:
				
				break;
			}
			ret = n;
		}
	}

	return ret;
}
Esempio n. 2
0
static ssize_t
cpufreq_ceiling_store(struct kobject *kobj, struct kobj_attribute *attr,
		const char *buf, size_t n)
{
	int val;

	if (sscanf(buf, "%d", &val) > 0) {
		switch (val){
		ceiling_level_wrapper(0, 1, CEILING_LEVEL_HIGHEST);
		ceiling_level_wrapper(2, 3, CEILING_LEVEL_HIGH);
		ceiling_level_wrapper(4, 5, CEILING_LEVEL_MEDIUM);
		default:
			/* no matching level found */
			break;
		}
		return n;
	}

	return -EINVAL;
}