1
linux/drivers/acpi
Stefan Bader 9855d8ce41 ACPI: Check MSR valid bit before using P-state frequencies
To fix incorrect P-state frequencies which can happen on
some AMD systems f594065faf
   "ACPI: Add fixups for AMD P-state figures"
introduced a quirk to obtain the correct values by reading
from AMD specific MSRs.

This did cause a regression when running a kernel using that
quirk under Xen which does (currently) not pass through MSR
reads to the HW. Instead the guest gets a 0 in return.
And this seems to cause a failure to initialize the ondemand
governour (hard to say for sure as all P-states appear to run
at the same frequency).

While this should also be fixed in the hypervisor (to allow
a guest to read that MSR), this patch is intended to work
around the issue in the meantime. In discussion it turned out
that indeed real HW/BIOSes may choose to not set the valid bit
and thus mark the P-state as invalid. So this could be considered
a fix for broken BIOSes that also works around the issue on Xen.

Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
Cc: 3.7+ <stable@vger.kernel.org>
Acked-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2013-01-22 13:37:21 +01:00
..
acpica ACPICA: Remove useless mini-C library. 2013-01-03 13:09:10 +01:00
apei ACPI, APEI: Fixup incorrect 64-bit access width firmware bug 2013-01-19 01:34:43 +01:00
ac.c ACPI / PM: Fix unused function warnings for CONFIG_PM_SLEEP 2012-08-10 13:35:32 +02:00
acpi_i2c.c i2c / ACPI: add ACPI enumeration support 2012-11-23 12:23:40 +01:00
acpi_ipmi.c
acpi_memhotplug.c ACPI / memhotplug: remove redundant logic of acpi memory hotadd 2013-01-03 13:10:21 +01:00
acpi_pad.c ACPI: strict_strtoul() and printk() cleanup in acpi_pad 2012-11-15 00:16:00 +01:00
acpi_platform.c ACPI / platform: include missed header into acpi_platform.c 2012-11-27 13:44:58 +01:00
battery.c ACPI / battery: Correct battery capacity values on Thinkpads 2012-11-16 22:28:58 +01:00
bgrt.c efi: Fix the ACPI BGRT driver for images located in EFI boot services memory 2012-09-29 12:21:03 -07:00
blacklist.c
bus.c ACPI / PM: Add check preventing transitioning to non-D0 state from D3. 2012-11-16 02:46:28 +01:00
button.c ACPI/button: convert to module_acpi_driver() 2012-09-21 13:38:29 -04:00
cm_sbs.c
container.c ACPI: Update Container hotplug error messages 2012-11-21 23:20:23 +01:00
custom_method.c
debugfs.c
device_pm.c ACPI / PM: Do not apply ACPI_SUCCESS() to acpi_bus_get_device() result 2013-01-03 13:10:21 +01:00
dock.c ACPI: Update Dock hotplug error messages 2012-11-21 23:20:23 +01:00
ec_sys.c
ec.c ACPI / EC: Don't count a SCI interrupt as a false one 2012-11-15 00:15:59 +01:00
event.c
fan.c ACPI/fan: convert to module_acpi_driver() 2012-09-21 13:39:03 -04:00
glue.c ACPI / glue: Fix build with ACPI_GLUE_DEBUG set 2013-01-12 14:00:06 +01:00
hed.c Driver core updates for 3.8-rc1 2012-12-11 13:13:55 -08:00
internal.h Merge branch 'acpi-general' 2012-11-29 21:43:06 +01:00
Kconfig Merge branch 'x86-acpi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-12-14 10:03:23 -08:00
Makefile Merge branch 'acpi-dev-pm' into acpi-enumeration 2012-11-27 13:42:42 +01:00
numa.c ACPI: Only count valid srat memory structures 2012-08-03 00:15:53 -04:00
nvs.c
osl.c Merge branch 'x86-acpi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-12-14 10:03:23 -08:00
pci_bind.c Merge branch 'pci/misc' into next 2012-11-13 14:34:06 -07:00
pci_irq.c PCI changes for the v3.8 merge window: 2012-12-13 12:14:47 -08:00
pci_link.c
pci_root.c PCI changes for the v3.8 merge window: 2012-12-13 12:14:47 -08:00
pci_slot.c PCI/ACPI: Use acpi_pci_root info rather than looking it up again 2012-09-24 15:29:40 -06:00
power.c ACPI / power: Remove useless message from device registering routine 2013-01-03 13:10:22 +01:00
proc.c ACPI: drop unnecessary local variable from acpi_system_write_wakeup_device() 2012-11-22 23:20:31 +01:00
processor_core.c cpufreq / ACPI: Fix not loading acpi-cpufreq driver regression 2012-07-12 22:39:32 +02:00
processor_driver.c ACPI: Update CPU hotplug error messages 2012-11-21 23:20:22 +01:00
processor_idle.c ACPI / processor: Get power info before updating the C-states 2013-01-19 00:28:22 +01:00
processor_perflib.c ACPI: Check MSR valid bit before using P-state frequencies 2013-01-22 13:37:21 +01:00
processor_thermal.c
processor_throttling.c
reboot.c
resource.c ACPI: remove unnecessary INIT_LIST_HEAD 2012-11-27 13:49:36 +01:00
sbs.c ACPI / PM: Fix unused function warnings for CONFIG_PM_SLEEP 2012-08-10 13:35:32 +02:00
sbshc.c ACPI/sbshc: convert to module_acpi_driver() 2012-09-21 13:39:40 -04:00
sbshc.h
scan.c ACPI / scan: Do not use dummy HID for system bus ACPI nodes 2013-01-04 23:00:54 +01:00
sleep.c Merge branch 'acpi-general' 2012-12-04 13:46:08 +01:00
sleep.h
sysfs.c ACPICA: Fix AcpiSrc caused divergences. 2012-11-15 00:31:23 +01:00
tables.c ACPI: Harden acpi_table_parse_entries() against BIOS bug 2012-10-06 15:51:49 -04:00
thermal.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2012-12-12 07:57:13 -08:00
utils.c ACPI: Add acpi_handle_<level>() interfaces 2012-11-21 23:20:22 +01:00
video_detect.c ACPI / video: Add "Asus UL30VT" to ACPI video detect blacklist 2012-11-30 13:02:50 +01:00
video.c ACPI / video: ignore BIOS initial backlight value for HP Folio 13-2000 2012-12-04 23:30:19 +01:00
wakeup.c