Lines Matching defs:levels

57  * Number of levels we can handle.  Levels are synthesized from settings
58 * so for M settings and N drivers, there may be M*N levels.
106 static int cf_levels_method(device_t dev, struct cf_level *levels,
141 "Don't provide levels below this frequency.");
194 cpufreq_levels_sysctl, "A", "CPU frequency levels");
197 * Queue a one-shot broadcast that levels have changed.
254 /* We are going to change levels so notify the pre-change handler. */
306 /* Reject levels that are below our specified threshold. */
403 * We changed levels (or attempted to) so notify the post-change
417 struct cf_level *levels;
426 levels = NULL;
443 levels = malloc(count * sizeof(*levels), M_TEMP, M_NOWAIT);
444 if (levels == NULL)
446 error = CPUFREQ_LEVELS(sc->dev, levels, &count);
450 free(levels, M_TEMP);
455 free(levels, M_TEMP);
474 if (set.freq == levels[i].total_set.freq) {
475 sc->curr_level = levels[i];
499 diff = abs(levels[i].total_set.freq - rate);
502 sc->curr_level = levels[i];
512 if (levels)
513 free(levels, M_TEMP);
518 cf_levels_method(device_t dev, struct cf_level *levels, int *count)
530 if (levels == NULL || count == NULL)
592 * If there are no absolute levels, create a fake one at 100%. We
617 /* Create a combined list of absolute + relative levels. */
628 /* Finally, output the list of levels. */
632 /* Skip levels that have a frequency that is too low. */
638 levels[i] = *lev;
645 /* Clear all levels since we regenerate them each time. */
663 * Create levels for an array of absolute settings and insert them in
706 * Expand a group of relative settings, creating derived levels from them.
718 * Walk the set of all existing levels in reverse. This is so we
824 KASSERT(!TAILQ_EMPTY(list), ("all levels list empty in dup set"));
863 struct cf_level *levels;
869 levels = sc->levels_buf;
871 error = CPUFREQ_GET(sc->dev, &levels[0]);
874 freq = levels[0].total_set.freq;
881 * CPUs have equal levels), we call cpufreq_set() on all CPUs.
889 error = CPUFREQ_LEVELS(devs[n], levels, &count);
899 diff = abs(levels[i].total_set.freq - freq);
905 error = CPUFREQ_SET(devs[n], &levels[best], CPUFREQ_PRIO_USER);
918 struct cf_level *levels;
928 levels = sc->levels_buf;
929 if (levels == NULL) {
933 error = CPUFREQ_LEVELS(sc->dev, levels, &count);
941 set = &levels[i].total_set;
1005 * must offer the same levels and be switched at the same time.