diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-11 16:20:04 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-11 16:20:04 -0400 |
commit | eeb91e4f9d578a6a8cc25a9603d4d62f2ec00db5 (patch) | |
tree | 16301353dbdc0978ec9ab579168274dcfc8a7a0b /arch | |
parent | 40e9963e622cf28ecef258e3dddb04457b65681c (diff) | |
parent | 19ce7f3f31103d7a5b0e93ba9de3ebb4b9d66701 (diff) |
Merge tag 'pm+acpi-3.15-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull more ACPI and power management fixes and updates from Rafael Wysocki:
"This is PM and ACPI material that has emerged over the last two weeks
and one fix for a CPU hotplug regression introduced by the recent CPU
hotplug notifiers registration series.
Included are intel_idle and turbostat updates from Len Brown (these
have been in linux-next for quite some time), a new cpufreq driver for
powernv (that might spend some more time in linux-next, but BenH was
asking me so nicely to push it for 3.15 that I couldn't resist), some
cpufreq fixes and cleanups (including fixes for some silly breakage in
a couple of cpufreq drivers introduced during the 3.14 cycle),
assorted ACPI cleanups, wakeup framework documentation fixes, a new
sysfs attribute for cpuidle and a new command line argument for power
domains diagnostics.
Specifics:
- Fix for a recently introduced CPU hotplug regression in ARM KVM
from Ming Lei.
- Fixes for breakage in the at32ap, loongson2_cpufreq, and unicore32
cpufreq drivers introduced during the 3.14 cycle (-stable material)
from Chen Gang and Viresh Kumar.
- New powernv cpufreq driver from Vaidyanathan Srinivasan, with bits
from Gautham R Shenoy and Srivatsa S Bhat.
- Exynos cpufreq driver fix preventing it from being included into
multiplatform builds that aren't supported by it from Sachin Kamat.
- cpufreq cleanups related to the usage of the driver_data field in
struct cpufreq_frequency_table from Viresh Kumar.
- cpufreq ppc driver cleanup from Sachin Kamat.
- Intel BayTrail support for intel_idle and ACPI idle from Len Brown.
- Intel CPU model 54 (Atom N2000 series) support for intel_idle from
Jan Kiszka.
- intel_idle fix for Intel Ivy Town residency targets from Len Brown.
- turbostat updates (Intel Broadwell support and output cleanups)
from Len Brown.
- New cpuidle sysfs attribute for exporting C-states' target
residency information to user space from Daniel Lezcano.
- New kernel command line argument to prevent power domains enabled
by the bootloader from being turned off even if they are not in use
(for diagnostics purposes) from Tushar Behera.
- Fixes for wakeup sysfs attributes documentation from Geert
Uytterhoeven.
- New ACPI video blacklist entry for ThinkPad Helix from Stephen
Chandler Paul.
- Assorted ACPI cleanups and a Kconfig help update from Jonghwan
Choi, Zhihui Zhang, Hanjun Guo"
* tag 'pm+acpi-3.15-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (28 commits)
ACPI: Update the ACPI spec information in Kconfig
arm, kvm: fix double lock on cpu_add_remove_lock
cpuidle: sysfs: Export target residency information
cpufreq: ppc: Remove duplicate inclusion of fsl_soc.h
cpufreq: create another field .flags in cpufreq_frequency_table
cpufreq: use kzalloc() to allocate memory for cpufreq_frequency_table
cpufreq: don't print value of .driver_data from core
cpufreq: ia64: don't set .driver_data to index
cpufreq: powernv: Select CPUFreq related Kconfig options for powernv
cpufreq: powernv: Use cpufreq_frequency_table.driver_data to store pstate ids
cpufreq: powernv: cpufreq driver for powernv platform
cpufreq: at32ap: don't declare local variable as static
cpufreq: loongson2_cpufreq: don't declare local variable as static
cpufreq: unicore32: fix typo issue for 'clk'
cpufreq: exynos: Disable on multiplatform build
PM / wakeup: Correct presence vs. emptiness of wakeup_* attributes
PM / domains: Add pd_ignore_unused to keep power domains enabled
ACPI / dock: Drop dock_device_ids[] table
ACPI / video: Favor native backlight interface for ThinkPad Helix
ACPI / thermal: Fix wrong variable usage in debug statement
...
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/loongson/lemote-2f/clock.c | 20 | ||||
-rw-r--r-- | arch/powerpc/configs/pseries_defconfig | 1 | ||||
-rw-r--r-- | arch/powerpc/configs/pseries_le_defconfig | 1 | ||||
-rw-r--r-- | arch/powerpc/include/asm/reg.h | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/powernv/Kconfig | 6 | ||||
-rw-r--r-- | arch/x86/kernel/acpi/cstate.c | 4 |
6 files changed, 25 insertions, 11 deletions
diff --git a/arch/mips/loongson/lemote-2f/clock.c b/arch/mips/loongson/lemote-2f/clock.c index aed32b88576c..e1f427f4f5f3 100644 --- a/arch/mips/loongson/lemote-2f/clock.c +++ b/arch/mips/loongson/lemote-2f/clock.c | |||
@@ -28,16 +28,16 @@ enum { | |||
28 | }; | 28 | }; |
29 | 29 | ||
30 | struct cpufreq_frequency_table loongson2_clockmod_table[] = { | 30 | struct cpufreq_frequency_table loongson2_clockmod_table[] = { |
31 | {DC_RESV, CPUFREQ_ENTRY_INVALID}, | 31 | {0, DC_RESV, CPUFREQ_ENTRY_INVALID}, |
32 | {DC_ZERO, CPUFREQ_ENTRY_INVALID}, | 32 | {0, DC_ZERO, CPUFREQ_ENTRY_INVALID}, |
33 | {DC_25PT, 0}, | 33 | {0, DC_25PT, 0}, |
34 | {DC_37PT, 0}, | 34 | {0, DC_37PT, 0}, |
35 | {DC_50PT, 0}, | 35 | {0, DC_50PT, 0}, |
36 | {DC_62PT, 0}, | 36 | {0, DC_62PT, 0}, |
37 | {DC_75PT, 0}, | 37 | {0, DC_75PT, 0}, |
38 | {DC_87PT, 0}, | 38 | {0, DC_87PT, 0}, |
39 | {DC_DISABLE, 0}, | 39 | {0, DC_DISABLE, 0}, |
40 | {DC_RESV, CPUFREQ_TABLE_END}, | 40 | {0, DC_RESV, CPUFREQ_TABLE_END}, |
41 | }; | 41 | }; |
42 | EXPORT_SYMBOL_GPL(loongson2_clockmod_table); | 42 | EXPORT_SYMBOL_GPL(loongson2_clockmod_table); |
43 | 43 | ||
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig index 9ea8342bd219..a905063281cc 100644 --- a/arch/powerpc/configs/pseries_defconfig +++ b/arch/powerpc/configs/pseries_defconfig | |||
@@ -306,3 +306,4 @@ CONFIG_KVM_BOOK3S_64=m | |||
306 | CONFIG_KVM_BOOK3S_64_HV=y | 306 | CONFIG_KVM_BOOK3S_64_HV=y |
307 | CONFIG_TRANSPARENT_HUGEPAGE=y | 307 | CONFIG_TRANSPARENT_HUGEPAGE=y |
308 | CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y | 308 | CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y |
309 | CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y | ||
diff --git a/arch/powerpc/configs/pseries_le_defconfig b/arch/powerpc/configs/pseries_le_defconfig index 3c84f9d87980..58e3dbf43ca4 100644 --- a/arch/powerpc/configs/pseries_le_defconfig +++ b/arch/powerpc/configs/pseries_le_defconfig | |||
@@ -301,3 +301,4 @@ CONFIG_CRYPTO_LZO=m | |||
301 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 301 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
302 | CONFIG_CRYPTO_DEV_NX=y | 302 | CONFIG_CRYPTO_DEV_NX=y |
303 | CONFIG_CRYPTO_DEV_NX_ENCRYPT=m | 303 | CONFIG_CRYPTO_DEV_NX_ENCRYPT=m |
304 | CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y | ||
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h index 0dcc48af25a3..e5d2e0bc7e03 100644 --- a/arch/powerpc/include/asm/reg.h +++ b/arch/powerpc/include/asm/reg.h | |||
@@ -272,6 +272,10 @@ | |||
272 | #define SPRN_HSRR1 0x13B /* Hypervisor Save/Restore 1 */ | 272 | #define SPRN_HSRR1 0x13B /* Hypervisor Save/Restore 1 */ |
273 | #define SPRN_IC 0x350 /* Virtual Instruction Count */ | 273 | #define SPRN_IC 0x350 /* Virtual Instruction Count */ |
274 | #define SPRN_VTB 0x351 /* Virtual Time Base */ | 274 | #define SPRN_VTB 0x351 /* Virtual Time Base */ |
275 | #define SPRN_PMICR 0x354 /* Power Management Idle Control Reg */ | ||
276 | #define SPRN_PMSR 0x355 /* Power Management Status Reg */ | ||
277 | #define SPRN_PMCR 0x374 /* Power Management Control Register */ | ||
278 | |||
275 | /* HFSCR and FSCR bit numbers are the same */ | 279 | /* HFSCR and FSCR bit numbers are the same */ |
276 | #define FSCR_TAR_LG 8 /* Enable Target Address Register */ | 280 | #define FSCR_TAR_LG 8 /* Enable Target Address Register */ |
277 | #define FSCR_EBB_LG 7 /* Enable Event Based Branching */ | 281 | #define FSCR_EBB_LG 7 /* Enable Event Based Branching */ |
diff --git a/arch/powerpc/platforms/powernv/Kconfig b/arch/powerpc/platforms/powernv/Kconfig index 895e8a20a3fc..c252ee95bddf 100644 --- a/arch/powerpc/platforms/powernv/Kconfig +++ b/arch/powerpc/platforms/powernv/Kconfig | |||
@@ -11,6 +11,12 @@ config PPC_POWERNV | |||
11 | select PPC_UDBG_16550 | 11 | select PPC_UDBG_16550 |
12 | select PPC_SCOM | 12 | select PPC_SCOM |
13 | select ARCH_RANDOM | 13 | select ARCH_RANDOM |
14 | select CPU_FREQ | ||
15 | select CPU_FREQ_GOV_PERFORMANCE | ||
16 | select CPU_FREQ_GOV_POWERSAVE | ||
17 | select CPU_FREQ_GOV_USERSPACE | ||
18 | select CPU_FREQ_GOV_ONDEMAND | ||
19 | select CPU_FREQ_GOV_CONSERVATIVE | ||
14 | default y | 20 | default y |
15 | 21 | ||
16 | config PPC_POWERNV_RTAS | 22 | config PPC_POWERNV_RTAS |
diff --git a/arch/x86/kernel/acpi/cstate.c b/arch/x86/kernel/acpi/cstate.c index e69182fd01cf..4b28159e0421 100644 --- a/arch/x86/kernel/acpi/cstate.c +++ b/arch/x86/kernel/acpi/cstate.c | |||
@@ -87,7 +87,9 @@ static long acpi_processor_ffh_cstate_probe_cpu(void *_cx) | |||
87 | num_cstate_subtype = edx_part & MWAIT_SUBSTATE_MASK; | 87 | num_cstate_subtype = edx_part & MWAIT_SUBSTATE_MASK; |
88 | 88 | ||
89 | retval = 0; | 89 | retval = 0; |
90 | if (num_cstate_subtype < (cx->address & MWAIT_SUBSTATE_MASK)) { | 90 | /* If the HW does not support any sub-states in this C-state */ |
91 | if (num_cstate_subtype == 0) { | ||
92 | pr_warn(FW_BUG "ACPI MWAIT C-state 0x%x not supported by HW (0x%x)\n", cx->address, edx_part); | ||
91 | retval = -1; | 93 | retval = -1; |
92 | goto out; | 94 | goto out; |
93 | } | 95 | } |