Lines Matching +full:max +full:- +full:freq

1 // SPDX-License-Identifier: GPL-2.0-only
3 * (C) 2004-2009 Dominik Brodowski <linux@dominikbrodowski.de>
25 {"max", required_argument, NULL, 'u'},
27 {"freq", required_argument, NULL, 'f'},
35 "- Do you have proper administration rights? (super-user?)\n" in print_error()
36 "- Is the governor you requested available and modprobed?\n" in print_error()
37 "- Trying to set an invalid policy?\n" in print_error()
38 "- Trying to set a specific frequency, but userspace governor is not available,\n" in print_error()
49 {"hz", -3},
68 unsigned long freq; in string_to_frequency() local
83 for (unit = def_units; unit->str_unit; unit++) { in string_to_frequency()
85 scan[i] && tolower(scan[i]) == unit->str_unit[i]; in string_to_frequency()
91 power = unit->power_of_ten; in string_to_frequency()
102 while (power > -1 && isdigit(str[cp+1])) { in string_to_frequency()
104 power--; in string_to_frequency()
107 if (power >= -1) { /* not enough => pad */ in string_to_frequency()
114 if (cp <= 0 || cp + pad > NORM_FREQ_LEN - 1) in string_to_frequency()
128 match_count = (normalized[i-1] >= '5'); in string_to_frequency()
130 normalized[i-1] = 0; /* cp > 0 && pad >= 0 ==> i > 0 */ in string_to_frequency()
134 freq = strtoul(normalized, &end, 10); in string_to_frequency()
138 if (match_count && freq != ULONG_MAX) in string_to_frequency()
139 freq++; in string_to_frequency()
140 return freq; in string_to_frequency()
151 return -EINVAL; in do_new_policy()
154 if (!new_pol->min) in do_new_policy()
155 new_pol->min = cur_pol->min; in do_new_policy()
157 if (!new_pol->max) in do_new_policy()
158 new_pol->max = cur_pol->max; in do_new_policy()
160 if (!new_pol->governor) in do_new_policy()
161 new_pol->governor = cur_pol->governor; in do_new_policy()
172 unsigned long freq, unsigned int pc) in do_one_cpu() argument
176 return cpufreq_set_frequency(cpu, freq); in do_one_cpu()
182 if (new_pol->min) in do_one_cpu()
183 return cpufreq_modify_policy_min(cpu, new_pol->min); in do_one_cpu()
184 else if (new_pol->max) in do_one_cpu()
185 return cpufreq_modify_policy_max(cpu, new_pol->max); in do_one_cpu()
186 else if (new_pol->governor) in do_one_cpu()
188 new_pol->governor); in do_one_cpu()
202 unsigned long freq = 0; in cmd_freq_set() local
208 .max = 0, in cmd_freq_set()
218 return -EINVAL; in cmd_freq_set()
219 case -1: in cmd_freq_set()
234 return -EINVAL; in cmd_freq_set()
238 if (new_pol.max) in cmd_freq_set()
241 new_pol.max = string_to_frequency(optarg); in cmd_freq_set()
242 if (new_pol.max == 0) { in cmd_freq_set()
244 return -EINVAL; in cmd_freq_set()
248 if (freq) in cmd_freq_set()
250 freq = string_to_frequency(optarg); in cmd_freq_set()
251 if (freq == 0) { in cmd_freq_set()
253 return -EINVAL; in cmd_freq_set()
262 return -EINVAL; in cmd_freq_set()
266 return -EINVAL; in cmd_freq_set()
276 return -EINVAL; in cmd_freq_set()
279 if (freq && policychange) { in cmd_freq_set()
280 printf(_("the -f/--freq parameter cannot be combined with -d/--min, -u/--max or\n" in cmd_freq_set()
281 "-g/--governor parameters\n")); in cmd_freq_set()
282 return -EINVAL; in cmd_freq_set()
285 if (!freq && !policychange) { in cmd_freq_set()
286 printf(_("At least one parameter out of -f/--freq, -d/--min, -u/--max, and\n" in cmd_freq_set()
287 "-g/--governor must be passed\n")); in cmd_freq_set()
288 return -EINVAL; in cmd_freq_set()
295 /* Also set frequency settings for related CPUs if -r is passed */ in cmd_freq_set()
308 while (cpus->next) { in cmd_freq_set()
309 bitmask_setbit(cpus_chosen, cpus->cpu); in cmd_freq_set()
310 cpus = cpus->next; in cmd_freq_set()
313 bitmask_setbit(cpus_chosen, cpus->cpu); in cmd_freq_set()
329 ret = do_one_cpu(cpu, &new_pol, freq, policychange); in cmd_freq_set()