mirror of
https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
synced 2025-10-30 07:38:52 +01:00
Fixed MTP to work with TWRP
This commit is contained in:
commit
f6dfaef42e
50820 changed files with 20846062 additions and 0 deletions
95
tools/power/cpupower/utils/cpupower-set.c
Normal file
95
tools/power/cpupower/utils/cpupower-set.c
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
/*
|
||||
* (C) 2011 Thomas Renninger <trenn@suse.de>, Novell Inc.
|
||||
*
|
||||
* Licensed under the terms of the GNU GPL License version 2.
|
||||
*/
|
||||
|
||||
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <getopt.h>
|
||||
|
||||
#include <cpufreq.h>
|
||||
#include "helpers/helpers.h"
|
||||
#include "helpers/sysfs.h"
|
||||
#include "helpers/bitmask.h"
|
||||
|
||||
static struct option set_opts[] = {
|
||||
{ .name = "perf-bias", .has_arg = required_argument, .flag = NULL, .val = 'b'},
|
||||
{ },
|
||||
};
|
||||
|
||||
static void print_wrong_arg_exit(void)
|
||||
{
|
||||
printf(_("invalid or unknown argument\n"));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
int cmd_set(int argc, char **argv)
|
||||
{
|
||||
extern char *optarg;
|
||||
extern int optind, opterr, optopt;
|
||||
unsigned int cpu;
|
||||
|
||||
union {
|
||||
struct {
|
||||
int perf_bias:1;
|
||||
};
|
||||
int params;
|
||||
} params;
|
||||
int perf_bias = 0;
|
||||
int ret = 0;
|
||||
|
||||
setlocale(LC_ALL, "");
|
||||
textdomain(PACKAGE);
|
||||
|
||||
params.params = 0;
|
||||
/* parameter parsing */
|
||||
while ((ret = getopt_long(argc, argv, "b:",
|
||||
set_opts, NULL)) != -1) {
|
||||
switch (ret) {
|
||||
case 'b':
|
||||
if (params.perf_bias)
|
||||
print_wrong_arg_exit();
|
||||
perf_bias = atoi(optarg);
|
||||
if (perf_bias < 0 || perf_bias > 15) {
|
||||
printf(_("--perf-bias param out "
|
||||
"of range [0-%d]\n"), 15);
|
||||
print_wrong_arg_exit();
|
||||
}
|
||||
params.perf_bias = 1;
|
||||
break;
|
||||
default:
|
||||
print_wrong_arg_exit();
|
||||
}
|
||||
};
|
||||
|
||||
if (!params.params)
|
||||
print_wrong_arg_exit();
|
||||
|
||||
/* Default is: set all CPUs */
|
||||
if (bitmask_isallclear(cpus_chosen))
|
||||
bitmask_setall(cpus_chosen);
|
||||
|
||||
/* loop over CPUs */
|
||||
for (cpu = bitmask_first(cpus_chosen);
|
||||
cpu <= bitmask_last(cpus_chosen); cpu++) {
|
||||
|
||||
if (!bitmask_isbitset(cpus_chosen, cpu) ||
|
||||
cpufreq_cpu_exists(cpu))
|
||||
continue;
|
||||
|
||||
if (params.perf_bias) {
|
||||
ret = msr_intel_set_perf_bias(cpu, perf_bias);
|
||||
if (ret) {
|
||||
fprintf(stderr, _("Error setting perf-bias "
|
||||
"value on CPU %d\n"), cpu);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue