/* * Generic routine to verify policy & frequency table, requires driver to call * cpufreq_frequency_table_get_attr() prior to it. */ int cpufreq_generic_frequency_table_verify(struct cpufreq_policy *policy) { struct cpufreq_frequency_table *table = cpufreq_frequency_get_table(policy->cpu); if (!table) return -ENODEV; return cpufreq_frequency_table_verify(policy, table); }
static int tegra_verify_speed(struct cpufreq_policy *policy) { #if defined(CONFIG_USE_FAKE_SHMOO) return cpufreq_frequency_table_verify(policy, freq_table); #else cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq, policy->cpuinfo.max_freq); return 0; #endif }
static int powernow_cpufreq_verify(struct cpufreq_policy *policy) { struct acpi_cpufreq_data *data; struct processor_performance *perf; if (!policy || !(data = cpufreq_drv_data[policy->cpu]) || !processor_pminfo[policy->cpu]) return -EINVAL; perf = &processor_pminfo[policy->cpu]->perf; cpufreq_verify_within_limits(policy, 0, perf->states[perf->platform_limit].core_frequency * 1000); return cpufreq_frequency_table_verify(policy, data->freq_table); }
static int davinci_verify_speed(struct cpufreq_policy *policy) { struct davinci_cpufreq_config *pdata = cpufreq.dev->platform_data; struct cpufreq_frequency_table *freq_table = pdata->freq_table; struct clk *armclk = cpufreq.armclk; if (freq_table) return cpufreq_frequency_table_verify(policy, freq_table); if (policy->cpu) return -EINVAL; cpufreq_verify_within_cpu_limits(policy); policy->min = clk_round_rate(armclk, policy->min * 1000) / 1000; policy->max = clk_round_rate(armclk, policy->max * 1000) / 1000; cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq, policy->cpuinfo.max_freq); return 0; }
static s32 balong_cpufreq_verify(struct cpufreq_policy *policy) { return cpufreq_frequency_table_verify(policy, &balong_clockrate_table[0]); }