cpufreq.c (3a3e9e06d0c11b8efa95933a88c9e67209fa4330) cpufreq.c (d5b73cd870e2b049ef566aec2791dbf5fd26a7ec)
1/*
2 * linux/drivers/cpufreq/cpufreq.c
3 *
4 * Copyright (C) 2001 Russell King
5 * (C) 2002 - 2003 Dominik Brodowski <linux@brodo.de>
6 * (C) 2013 Viresh Kumar <viresh.kumar@linaro.org>
7 *
8 * Oct 2005 - Ashok Raj <ashok.raj@intel.com>

--- 859 unchanged lines hidden (view full) ---

868 return ret;
869}
870
871static void cpufreq_init_policy(struct cpufreq_policy *policy)
872{
873 struct cpufreq_policy new_policy;
874 int ret = 0;
875
1/*
2 * linux/drivers/cpufreq/cpufreq.c
3 *
4 * Copyright (C) 2001 Russell King
5 * (C) 2002 - 2003 Dominik Brodowski <linux@brodo.de>
6 * (C) 2013 Viresh Kumar <viresh.kumar@linaro.org>
7 *
8 * Oct 2005 - Ashok Raj <ashok.raj@intel.com>

--- 859 unchanged lines hidden (view full) ---

868 return ret;
869}
870
871static void cpufreq_init_policy(struct cpufreq_policy *policy)
872{
873 struct cpufreq_policy new_policy;
874 int ret = 0;
875
876 memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
876 memcpy(&new_policy, policy, sizeof(*policy));
877 /* assure that the starting sequence is run in __cpufreq_set_policy */
878 policy->governor = NULL;
879
880 /* set default policy */
881 ret = __cpufreq_set_policy(policy, &new_policy);
882 policy->user_policy.policy = policy->policy;
883 policy->user_policy.governor = policy->governor;
884

--- 928 unchanged lines hidden (view full) ---

1813 struct cpufreq_policy *cpu_policy;
1814 if (!policy)
1815 return -EINVAL;
1816
1817 cpu_policy = cpufreq_cpu_get(cpu);
1818 if (!cpu_policy)
1819 return -EINVAL;
1820
877 /* assure that the starting sequence is run in __cpufreq_set_policy */
878 policy->governor = NULL;
879
880 /* set default policy */
881 ret = __cpufreq_set_policy(policy, &new_policy);
882 policy->user_policy.policy = policy->policy;
883 policy->user_policy.governor = policy->governor;
884

--- 928 unchanged lines hidden (view full) ---

1813 struct cpufreq_policy *cpu_policy;
1814 if (!policy)
1815 return -EINVAL;
1816
1817 cpu_policy = cpufreq_cpu_get(cpu);
1818 if (!cpu_policy)
1819 return -EINVAL;
1820
1821 memcpy(policy, cpu_policy, sizeof(struct cpufreq_policy));
1821 memcpy(policy, cpu_policy, sizeof(*policy));
1822
1823 cpufreq_cpu_put(cpu_policy);
1824 return 0;
1825}
1826EXPORT_SYMBOL(cpufreq_get_policy);
1827
1828/*
1829 * data : current policy.
1830 * policy : policy to be set.
1831 */
1832static int __cpufreq_set_policy(struct cpufreq_policy *policy,
1833 struct cpufreq_policy *new_policy)
1834{
1835 int ret = 0, failed = 1;
1836
1837 pr_debug("setting new policy for CPU %u: %u - %u kHz\n", new_policy->cpu,
1838 new_policy->min, new_policy->max);
1839
1822
1823 cpufreq_cpu_put(cpu_policy);
1824 return 0;
1825}
1826EXPORT_SYMBOL(cpufreq_get_policy);
1827
1828/*
1829 * data : current policy.
1830 * policy : policy to be set.
1831 */
1832static int __cpufreq_set_policy(struct cpufreq_policy *policy,
1833 struct cpufreq_policy *new_policy)
1834{
1835 int ret = 0, failed = 1;
1836
1837 pr_debug("setting new policy for CPU %u: %u - %u kHz\n", new_policy->cpu,
1838 new_policy->min, new_policy->max);
1839
1840 memcpy(&new_policy->cpuinfo, &policy->cpuinfo,
1841 sizeof(struct cpufreq_cpuinfo));
1840 memcpy(&new_policy->cpuinfo, &policy->cpuinfo, sizeof(policy->cpuinfo));
1842
1843 if (new_policy->min > policy->max || new_policy->max < policy->min) {
1844 ret = -EINVAL;
1845 goto error_out;
1846 }
1847
1848 /* verify the cpu speed can be set within this limit */
1849 ret = cpufreq_driver->verify(new_policy);

--- 102 unchanged lines hidden (view full) ---

1952 }
1953
1954 if (unlikely(lock_policy_rwsem_write(cpu))) {
1955 ret = -EINVAL;
1956 goto fail;
1957 }
1958
1959 pr_debug("updating policy for CPU %u\n", cpu);
1841
1842 if (new_policy->min > policy->max || new_policy->max < policy->min) {
1843 ret = -EINVAL;
1844 goto error_out;
1845 }
1846
1847 /* verify the cpu speed can be set within this limit */
1848 ret = cpufreq_driver->verify(new_policy);

--- 102 unchanged lines hidden (view full) ---

1951 }
1952
1953 if (unlikely(lock_policy_rwsem_write(cpu))) {
1954 ret = -EINVAL;
1955 goto fail;
1956 }
1957
1958 pr_debug("updating policy for CPU %u\n", cpu);
1960 memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
1959 memcpy(&new_policy, policy, sizeof(*policy));
1961 new_policy.min = policy->user_policy.min;
1962 new_policy.max = policy->user_policy.max;
1963 new_policy.policy = policy->user_policy.policy;
1964 new_policy.governor = policy->user_policy.governor;
1965
1966 /*
1967 * BIOS might change freq behind our back
1968 * -> ask driver for current freq and notify governors about a change

--- 182 unchanged lines hidden ---
1960 new_policy.min = policy->user_policy.min;
1961 new_policy.max = policy->user_policy.max;
1962 new_policy.policy = policy->user_policy.policy;
1963 new_policy.governor = policy->user_policy.governor;
1964
1965 /*
1966 * BIOS might change freq behind our back
1967 * -> ask driver for current freq and notify governors about a change

--- 182 unchanged lines hidden ---