mirror of
https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
synced 2025-11-01 16:48:51 +01:00
Fixed MTP to work with TWRP
This commit is contained in:
commit
f6dfaef42e
50820 changed files with 20846062 additions and 0 deletions
208
tools/power/cpupower/lib/cpufreq.c
Normal file
208
tools/power/cpupower/lib/cpufreq.c
Normal file
|
|
@ -0,0 +1,208 @@
|
|||
/*
|
||||
* (C) 2004-2009 Dominik Brodowski <linux@dominikbrodowski.de>
|
||||
*
|
||||
* Licensed under the terms of the GNU GPL License version 2.
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "cpufreq.h"
|
||||
#include "sysfs.h"
|
||||
|
||||
int cpufreq_cpu_exists(unsigned int cpu)
|
||||
{
|
||||
return sysfs_cpu_exists(cpu);
|
||||
}
|
||||
|
||||
unsigned long cpufreq_get_freq_kernel(unsigned int cpu)
|
||||
{
|
||||
return sysfs_get_freq_kernel(cpu);
|
||||
}
|
||||
|
||||
unsigned long cpufreq_get_freq_hardware(unsigned int cpu)
|
||||
{
|
||||
return sysfs_get_freq_hardware(cpu);
|
||||
}
|
||||
|
||||
unsigned long cpufreq_get_transition_latency(unsigned int cpu)
|
||||
{
|
||||
return sysfs_get_freq_transition_latency(cpu);
|
||||
}
|
||||
|
||||
int cpufreq_get_hardware_limits(unsigned int cpu,
|
||||
unsigned long *min,
|
||||
unsigned long *max)
|
||||
{
|
||||
if ((!min) || (!max))
|
||||
return -EINVAL;
|
||||
return sysfs_get_freq_hardware_limits(cpu, min, max);
|
||||
}
|
||||
|
||||
char *cpufreq_get_driver(unsigned int cpu)
|
||||
{
|
||||
return sysfs_get_freq_driver(cpu);
|
||||
}
|
||||
|
||||
void cpufreq_put_driver(char *ptr)
|
||||
{
|
||||
if (!ptr)
|
||||
return;
|
||||
free(ptr);
|
||||
}
|
||||
|
||||
struct cpufreq_policy *cpufreq_get_policy(unsigned int cpu)
|
||||
{
|
||||
return sysfs_get_freq_policy(cpu);
|
||||
}
|
||||
|
||||
void cpufreq_put_policy(struct cpufreq_policy *policy)
|
||||
{
|
||||
if ((!policy) || (!policy->governor))
|
||||
return;
|
||||
|
||||
free(policy->governor);
|
||||
policy->governor = NULL;
|
||||
free(policy);
|
||||
}
|
||||
|
||||
struct cpufreq_available_governors *cpufreq_get_available_governors(unsigned
|
||||
int cpu)
|
||||
{
|
||||
return sysfs_get_freq_available_governors(cpu);
|
||||
}
|
||||
|
||||
void cpufreq_put_available_governors(struct cpufreq_available_governors *any)
|
||||
{
|
||||
struct cpufreq_available_governors *tmp, *next;
|
||||
|
||||
if (!any)
|
||||
return;
|
||||
|
||||
tmp = any->first;
|
||||
while (tmp) {
|
||||
next = tmp->next;
|
||||
if (tmp->governor)
|
||||
free(tmp->governor);
|
||||
free(tmp);
|
||||
tmp = next;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
struct cpufreq_available_frequencies
|
||||
*cpufreq_get_available_frequencies(unsigned int cpu)
|
||||
{
|
||||
return sysfs_get_available_frequencies(cpu);
|
||||
}
|
||||
|
||||
void cpufreq_put_available_frequencies(struct cpufreq_available_frequencies
|
||||
*any) {
|
||||
struct cpufreq_available_frequencies *tmp, *next;
|
||||
|
||||
if (!any)
|
||||
return;
|
||||
|
||||
tmp = any->first;
|
||||
while (tmp) {
|
||||
next = tmp->next;
|
||||
free(tmp);
|
||||
tmp = next;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
struct cpufreq_affected_cpus *cpufreq_get_affected_cpus(unsigned int cpu)
|
||||
{
|
||||
return sysfs_get_freq_affected_cpus(cpu);
|
||||
}
|
||||
|
||||
void cpufreq_put_affected_cpus(struct cpufreq_affected_cpus *any)
|
||||
{
|
||||
struct cpufreq_affected_cpus *tmp, *next;
|
||||
|
||||
if (!any)
|
||||
return;
|
||||
|
||||
tmp = any->first;
|
||||
while (tmp) {
|
||||
next = tmp->next;
|
||||
free(tmp);
|
||||
tmp = next;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
struct cpufreq_affected_cpus *cpufreq_get_related_cpus(unsigned int cpu)
|
||||
{
|
||||
return sysfs_get_freq_related_cpus(cpu);
|
||||
}
|
||||
|
||||
void cpufreq_put_related_cpus(struct cpufreq_affected_cpus *any)
|
||||
{
|
||||
cpufreq_put_affected_cpus(any);
|
||||
}
|
||||
|
||||
|
||||
int cpufreq_set_policy(unsigned int cpu, struct cpufreq_policy *policy)
|
||||
{
|
||||
if (!policy || !(policy->governor))
|
||||
return -EINVAL;
|
||||
|
||||
return sysfs_set_freq_policy(cpu, policy);
|
||||
}
|
||||
|
||||
|
||||
int cpufreq_modify_policy_min(unsigned int cpu, unsigned long min_freq)
|
||||
{
|
||||
return sysfs_modify_freq_policy_min(cpu, min_freq);
|
||||
}
|
||||
|
||||
|
||||
int cpufreq_modify_policy_max(unsigned int cpu, unsigned long max_freq)
|
||||
{
|
||||
return sysfs_modify_freq_policy_max(cpu, max_freq);
|
||||
}
|
||||
|
||||
|
||||
int cpufreq_modify_policy_governor(unsigned int cpu, char *governor)
|
||||
{
|
||||
if ((!governor) || (strlen(governor) > 19))
|
||||
return -EINVAL;
|
||||
|
||||
return sysfs_modify_freq_policy_governor(cpu, governor);
|
||||
}
|
||||
|
||||
int cpufreq_set_frequency(unsigned int cpu, unsigned long target_frequency)
|
||||
{
|
||||
return sysfs_set_frequency(cpu, target_frequency);
|
||||
}
|
||||
|
||||
struct cpufreq_stats *cpufreq_get_stats(unsigned int cpu,
|
||||
unsigned long long *total_time)
|
||||
{
|
||||
return sysfs_get_freq_stats(cpu, total_time);
|
||||
}
|
||||
|
||||
void cpufreq_put_stats(struct cpufreq_stats *any)
|
||||
{
|
||||
struct cpufreq_stats *tmp, *next;
|
||||
|
||||
if (!any)
|
||||
return;
|
||||
|
||||
tmp = any->first;
|
||||
while (tmp) {
|
||||
next = tmp->next;
|
||||
free(tmp);
|
||||
tmp = next;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned long cpufreq_get_transitions(unsigned int cpu)
|
||||
{
|
||||
return sysfs_get_freq_transitions(cpu);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue