Lines Matching +full:disable +full:- +full:hi +full:- +full:speed
1 // SPDX-License-Identifier: GPL-2.0-only
3 * (C) 2001-2004 Dave Jones.
13 * Present in Samuel 2 (steppings 1-7 only) (C5B), and Ezra (C5C).
16 * It is present in Ezra-T (C5M), Nehemiah (C5X) and above.
90 static char *print_speed(int speed) in print_speed() argument
92 if (speed < 1000) { in print_speed()
93 snprintf(speedbuffer, sizeof(speedbuffer), "%dMHz", speed); in print_speed()
97 if (speed%1000 == 0) in print_speed()
99 "%dGHz", speed/1000); in print_speed()
102 "%d.%dGHz", speed/1000, (speed%1000)/100); in print_speed()
121 unsigned long invalue = 0, lo, hi; in longhaul_get_cpu_mult() local
123 rdmsr(MSR_IA32_EBL_CR_POWERON, lo, hi); in longhaul_get_cpu_mult()
152 /* Disable software clock multiplier */ in do_longhaul1()
192 /* Dummy op - must do something useless after P_LVL3 in do_powersaver()
210 /* Dummy op - must do something useless after P_LVL3 read */ in do_powersaver()
213 /* Disable bus ratio bit */ in do_powersaver()
229 /* Dummy op - must do something useless after P_LVL3 in do_powersaver()
249 int speed, mult; in longhaul_setstate() local
260 if (mult == -1) in longhaul_setstate()
261 return -EINVAL; in longhaul_setstate()
263 speed = calc_speed(mult); in longhaul_setstate()
264 if ((speed > highest_speed) || (speed < lowest_speed)) in longhaul_setstate()
265 return -EINVAL; in longhaul_setstate()
272 freqs.new = speed; in longhaul_setstate()
275 fsb, mult/10, mult%10, print_speed(speed/1000)); in longhaul_setstate()
287 || ((pr != NULL) && pr->flags.bm_control))) { in longhaul_setstate()
292 bm_timeout--; in longhaul_setstate()
299 /* Disable AGP and PCI arbiters */ in longhaul_setstate()
301 } else if ((pr != NULL) && pr->flags.bm_control) { in longhaul_setstate()
302 /* Disable bus master arbitration */ in longhaul_setstate()
316 * Longhaul v2 appears in Samuel2 Steppings 1->7 [C5B] and Ezra [C5C] in longhaul_setstate()
318 * Longhaul v3 (aka Powersaver). (Ezra-T [C5M] & Nehemiah [C5N]) in longhaul_setstate()
327 do_powersaver(cx->address, mults_index, dir); in longhaul_setstate()
337 } else if ((pr != NULL) && pr->flags.bm_control) { in longhaul_setstate()
349 if (unlikely(freqs.new != speed)) { in longhaul_setstate()
389 return -EBUSY; in longhaul_setstate()
408 int speed = cpu_khz / 1000; in guess_fsb() local
416 f_min = f_max - ROUNDING; in guess_fsb()
417 if ((speed <= f_max) && (speed >= f_min)) in guess_fsb()
432 if (mult == -1) { in longhaul_get_ranges()
434 return -EINVAL; in longhaul_get_ranges()
439 return -EINVAL; in longhaul_get_ranges()
441 /* Get max multiplier - as we always did. in longhaul_get_ranges()
463 pr_debug("FSB:%dMHz Lowest speed: %s Highest speed:%s\n", fsb, in longhaul_get_ranges()
469 return -EINVAL; in longhaul_get_ranges()
474 return -EINVAL; in longhaul_get_ranges()
480 return -ENOMEM; in longhaul_get_ranges()
484 if (ratio == -1) in longhaul_get_ranges()
494 return -ENODEV; in longhaul_get_ranges()
497 for (j = 0; j < k - 1; j++) { in longhaul_get_ranges()
533 unsigned int j, speed, pos, kHz_step, numvscales; in longhaul_setup_voltagescaling() local
558 pr_info("Bogus values Min:%d.%03d Max:%d.%03d - Voltage scaling disabled\n", in longhaul_setup_voltagescaling()
565 …pr_info("Claims to support voltage scaling but min & max are both %d.%03d - Voltage scaling disabl… in longhaul_setup_voltagescaling()
571 numvscales = maxvid.pos - minvid.pos + 1; in longhaul_setup_voltagescaling()
582 if (min_vid_speed == -1) in longhaul_setup_voltagescaling()
600 kHz_step = (highest_speed - min_vid_speed) / numvscales; in longhaul_setup_voltagescaling()
603 speed = freq_pos->frequency; in longhaul_setup_voltagescaling()
604 if (speed > min_vid_speed) in longhaul_setup_voltagescaling()
605 pos = (speed - min_vid_speed) / kHz_step + minvid.pos; in longhaul_setup_voltagescaling()
608 freq_pos->driver_data |= mV_vrm_table[pos] << 8; in longhaul_setup_voltagescaling()
611 speed, j, vid.mV); in longhaul_setup_voltagescaling()
650 i--; in longhaul_target()
701 /* Find CN400 V-Link host bridge */ in enable_arbiter_disable()
764 u32 lo, hi; in longhaul_cpu_init() local
767 switch (c->x86_model) { in longhaul_cpu_init()
777 switch (c->x86_stepping) { in longhaul_cpu_init()
789 if (c->x86_stepping < 8) { in longhaul_cpu_init()
804 cpuname = "C3 'Ezra-T' [C5M]"; in longhaul_cpu_init()
816 switch (c->x86_stepping) { in longhaul_cpu_init()
838 rdmsr(MSR_VIA_LONGHAUL, lo, hi); in longhaul_cpu_init()
839 if (lo == 0 && hi == 0) in longhaul_cpu_init()
865 cx = &pr->power.states[ACPI_STATE_C3]; in longhaul_cpu_init()
866 if (cx->address > 0 && cx->latency <= 1000) in longhaul_cpu_init()
869 /* Disable if it isn't working */ in longhaul_cpu_init()
876 /* Check ACPI support for bus master arbiter disable */ in longhaul_cpu_init()
879 && ((pr == NULL) || !(pr->flags.bm_control))) { in longhaul_cpu_init()
881 return -ENODEV; in longhaul_cpu_init()
896 policy->transition_delay_us = 200000; /* usec */ in longhaul_cpu_init()
897 policy->freq_table = longhaul_table; in longhaul_cpu_init()
922 return -ENODEV; in longhaul_init()
925 pr_err("Option \"enable\" not set - Aborting\n"); in longhaul_init()
926 return -ENODEV; in longhaul_init()
931 return -ENODEV; in longhaul_init()
937 return -ENODEV; in longhaul_init()
940 switch (c->x86_model) { in longhaul_init()
944 pr_err("Use acpi-cpufreq driver for VIA C7\n"); in longhaul_init()
947 return -ENODEV; in longhaul_init()
960 freqs.old = policy->cur; in longhaul_exit()