mirror of
https://github.com/armbian/linux-cix.git
synced 2026-01-06 12:30:45 -08:00
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
...
This commit is contained in:
@@ -83,8 +83,10 @@ Contact: Rafael J. Wysocki <rjw@rjwysocki.net>
|
||||
Description:
|
||||
The /sys/devices/.../wakeup_count attribute contains the number
|
||||
of signaled wakeup events associated with the device. This
|
||||
attribute is read-only. If the device is not enabled to wake up
|
||||
attribute is read-only. If the device is not capable to wake up
|
||||
the system from sleep states, this attribute is not present.
|
||||
If the device is not enabled to wake up the system from sleep
|
||||
states, this attribute is empty.
|
||||
|
||||
What: /sys/devices/.../power/wakeup_active_count
|
||||
Date: September 2010
|
||||
@@ -93,8 +95,10 @@ Description:
|
||||
The /sys/devices/.../wakeup_active_count attribute contains the
|
||||
number of times the processing of wakeup events associated with
|
||||
the device was completed (at the kernel level). This attribute
|
||||
is read-only. If the device is not enabled to wake up the
|
||||
system from sleep states, this attribute is not present.
|
||||
is read-only. If the device is not capable to wake up the
|
||||
system from sleep states, this attribute is not present. If
|
||||
the device is not enabled to wake up the system from sleep
|
||||
states, this attribute is empty.
|
||||
|
||||
What: /sys/devices/.../power/wakeup_abort_count
|
||||
Date: February 2012
|
||||
@@ -104,8 +108,9 @@ Description:
|
||||
number of times the processing of a wakeup event associated with
|
||||
the device might have aborted system transition into a sleep
|
||||
state in progress. This attribute is read-only. If the device
|
||||
is not enabled to wake up the system from sleep states, this
|
||||
attribute is not present.
|
||||
is not capable to wake up the system from sleep states, this
|
||||
attribute is not present. If the device is not enabled to wake
|
||||
up the system from sleep states, this attribute is empty.
|
||||
|
||||
What: /sys/devices/.../power/wakeup_expire_count
|
||||
Date: February 2012
|
||||
@@ -114,8 +119,10 @@ Description:
|
||||
The /sys/devices/.../wakeup_expire_count attribute contains the
|
||||
number of times a wakeup event associated with the device has
|
||||
been reported with a timeout that expired. This attribute is
|
||||
read-only. If the device is not enabled to wake up the system
|
||||
from sleep states, this attribute is not present.
|
||||
read-only. If the device is not capable to wake up the system
|
||||
from sleep states, this attribute is not present. If the
|
||||
device is not enabled to wake up the system from sleep states,
|
||||
this attribute is empty.
|
||||
|
||||
What: /sys/devices/.../power/wakeup_active
|
||||
Date: September 2010
|
||||
@@ -124,8 +131,10 @@ Description:
|
||||
The /sys/devices/.../wakeup_active attribute contains either 1,
|
||||
or 0, depending on whether or not a wakeup event associated with
|
||||
the device is being processed (1). This attribute is read-only.
|
||||
If the device is not enabled to wake up the system from sleep
|
||||
states, this attribute is not present.
|
||||
If the device is not capable to wake up the system from sleep
|
||||
states, this attribute is not present. If the device is not
|
||||
enabled to wake up the system from sleep states, this attribute
|
||||
is empty.
|
||||
|
||||
What: /sys/devices/.../power/wakeup_total_time_ms
|
||||
Date: September 2010
|
||||
@@ -134,8 +143,9 @@ Description:
|
||||
The /sys/devices/.../wakeup_total_time_ms attribute contains
|
||||
the total time of processing wakeup events associated with the
|
||||
device, in milliseconds. This attribute is read-only. If the
|
||||
device is not enabled to wake up the system from sleep states,
|
||||
this attribute is not present.
|
||||
device is not capable to wake up the system from sleep states,
|
||||
this attribute is not present. If the device is not enabled to
|
||||
wake up the system from sleep states, this attribute is empty.
|
||||
|
||||
What: /sys/devices/.../power/wakeup_max_time_ms
|
||||
Date: September 2010
|
||||
@@ -144,8 +154,10 @@ Description:
|
||||
The /sys/devices/.../wakeup_max_time_ms attribute contains
|
||||
the maximum time of processing a single wakeup event associated
|
||||
with the device, in milliseconds. This attribute is read-only.
|
||||
If the device is not enabled to wake up the system from sleep
|
||||
states, this attribute is not present.
|
||||
If the device is not capable to wake up the system from sleep
|
||||
states, this attribute is not present. If the device is not
|
||||
enabled to wake up the system from sleep states, this attribute
|
||||
is empty.
|
||||
|
||||
What: /sys/devices/.../power/wakeup_last_time_ms
|
||||
Date: September 2010
|
||||
@@ -156,7 +168,8 @@ Description:
|
||||
signaling the last wakeup event associated with the device, in
|
||||
milliseconds. This attribute is read-only. If the device is
|
||||
not enabled to wake up the system from sleep states, this
|
||||
attribute is not present.
|
||||
attribute is not present. If the device is not enabled to wake
|
||||
up the system from sleep states, this attribute is empty.
|
||||
|
||||
What: /sys/devices/.../power/wakeup_prevent_sleep_time_ms
|
||||
Date: February 2012
|
||||
@@ -165,9 +178,10 @@ Description:
|
||||
The /sys/devices/.../wakeup_prevent_sleep_time_ms attribute
|
||||
contains the total time the device has been preventing
|
||||
opportunistic transitions to sleep states from occurring.
|
||||
This attribute is read-only. If the device is not enabled to
|
||||
This attribute is read-only. If the device is not capable to
|
||||
wake up the system from sleep states, this attribute is not
|
||||
present.
|
||||
present. If the device is not enabled to wake up the system
|
||||
from sleep states, this attribute is empty.
|
||||
|
||||
What: /sys/devices/.../power/autosuspend_delay_ms
|
||||
Date: September 2010
|
||||
|
||||
@@ -2563,6 +2563,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
|
||||
pcmv= [HW,PCMCIA] BadgePAD 4
|
||||
|
||||
pd_ignore_unused
|
||||
[PM]
|
||||
Keep all power-domains already enabled by bootloader on,
|
||||
even if no driver has claimed them. This is useful
|
||||
for debug and development, but should not be
|
||||
needed on a platform with proper driver support.
|
||||
|
||||
pd. [PARIDE]
|
||||
See Documentation/blockdev/paride.txt.
|
||||
|
||||
|
||||
@@ -28,16 +28,16 @@ enum {
|
||||
};
|
||||
|
||||
struct cpufreq_frequency_table loongson2_clockmod_table[] = {
|
||||
{DC_RESV, CPUFREQ_ENTRY_INVALID},
|
||||
{DC_ZERO, CPUFREQ_ENTRY_INVALID},
|
||||
{DC_25PT, 0},
|
||||
{DC_37PT, 0},
|
||||
{DC_50PT, 0},
|
||||
{DC_62PT, 0},
|
||||
{DC_75PT, 0},
|
||||
{DC_87PT, 0},
|
||||
{DC_DISABLE, 0},
|
||||
{DC_RESV, CPUFREQ_TABLE_END},
|
||||
{0, DC_RESV, CPUFREQ_ENTRY_INVALID},
|
||||
{0, DC_ZERO, CPUFREQ_ENTRY_INVALID},
|
||||
{0, DC_25PT, 0},
|
||||
{0, DC_37PT, 0},
|
||||
{0, DC_50PT, 0},
|
||||
{0, DC_62PT, 0},
|
||||
{0, DC_75PT, 0},
|
||||
{0, DC_87PT, 0},
|
||||
{0, DC_DISABLE, 0},
|
||||
{0, DC_RESV, CPUFREQ_TABLE_END},
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(loongson2_clockmod_table);
|
||||
|
||||
|
||||
@@ -306,3 +306,4 @@ CONFIG_KVM_BOOK3S_64=m
|
||||
CONFIG_KVM_BOOK3S_64_HV=y
|
||||
CONFIG_TRANSPARENT_HUGEPAGE=y
|
||||
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
||||
|
||||
@@ -301,3 +301,4 @@ CONFIG_CRYPTO_LZO=m
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRYPTO_DEV_NX=y
|
||||
CONFIG_CRYPTO_DEV_NX_ENCRYPT=m
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
||||
|
||||
@@ -272,6 +272,10 @@
|
||||
#define SPRN_HSRR1 0x13B /* Hypervisor Save/Restore 1 */
|
||||
#define SPRN_IC 0x350 /* Virtual Instruction Count */
|
||||
#define SPRN_VTB 0x351 /* Virtual Time Base */
|
||||
#define SPRN_PMICR 0x354 /* Power Management Idle Control Reg */
|
||||
#define SPRN_PMSR 0x355 /* Power Management Status Reg */
|
||||
#define SPRN_PMCR 0x374 /* Power Management Control Register */
|
||||
|
||||
/* HFSCR and FSCR bit numbers are the same */
|
||||
#define FSCR_TAR_LG 8 /* Enable Target Address Register */
|
||||
#define FSCR_EBB_LG 7 /* Enable Event Based Branching */
|
||||
|
||||
@@ -11,6 +11,12 @@ config PPC_POWERNV
|
||||
select PPC_UDBG_16550
|
||||
select PPC_SCOM
|
||||
select ARCH_RANDOM
|
||||
select CPU_FREQ
|
||||
select CPU_FREQ_GOV_PERFORMANCE
|
||||
select CPU_FREQ_GOV_POWERSAVE
|
||||
select CPU_FREQ_GOV_USERSPACE
|
||||
select CPU_FREQ_GOV_ONDEMAND
|
||||
select CPU_FREQ_GOV_CONSERVATIVE
|
||||
default y
|
||||
|
||||
config PPC_POWERNV_RTAS
|
||||
|
||||
@@ -87,7 +87,9 @@ static long acpi_processor_ffh_cstate_probe_cpu(void *_cx)
|
||||
num_cstate_subtype = edx_part & MWAIT_SUBSTATE_MASK;
|
||||
|
||||
retval = 0;
|
||||
if (num_cstate_subtype < (cx->address & MWAIT_SUBSTATE_MASK)) {
|
||||
/* If the HW does not support any sub-states in this C-state */
|
||||
if (num_cstate_subtype == 0) {
|
||||
pr_warn(FW_BUG "ACPI MWAIT C-state 0x%x not supported by HW (0x%x)\n", cx->address, edx_part);
|
||||
retval = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -31,10 +31,14 @@ menuconfig ACPI
|
||||
ACPI CA, see:
|
||||
<http://acpica.org/>
|
||||
|
||||
ACPI is an open industry specification co-developed by
|
||||
Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba.
|
||||
ACPI is an open industry specification originally co-developed by
|
||||
Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
|
||||
it is developed by the ACPI Specification Working Group (ASWG) under
|
||||
the UEFI Forum and any UEFI member can join the ASWG and contribute
|
||||
to the ACPI specification.
|
||||
The specification is available at:
|
||||
<http://www.acpi.info>
|
||||
<http://www.uefi.org/acpi/specs>
|
||||
|
||||
if ACPI
|
||||
|
||||
|
||||
@@ -51,12 +51,6 @@ MODULE_PARM_DESC(immediate_undock, "1 (default) will cause the driver to "
|
||||
" the driver to wait for userspace to write the undock sysfs file "
|
||||
" before undocking");
|
||||
|
||||
static const struct acpi_device_id dock_device_ids[] = {
|
||||
{"LNXDOCK", 0},
|
||||
{"", 0},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(acpi, dock_device_ids);
|
||||
|
||||
struct dock_station {
|
||||
acpi_handle handle;
|
||||
unsigned long last_dock_time;
|
||||
|
||||
@@ -1219,10 +1219,9 @@ acpi_os_create_semaphore(u32 max_units, u32 initial_units, acpi_handle * handle)
|
||||
{
|
||||
struct semaphore *sem = NULL;
|
||||
|
||||
sem = acpi_os_allocate(sizeof(struct semaphore));
|
||||
sem = acpi_os_allocate_zeroed(sizeof(struct semaphore));
|
||||
if (!sem)
|
||||
return AE_NO_MEMORY;
|
||||
memset(sem, 0, sizeof(struct semaphore));
|
||||
|
||||
sema_init(sem, initial_units);
|
||||
|
||||
|
||||
@@ -344,7 +344,7 @@ static int acpi_thermal_trips_update(struct acpi_thermal *tz, int flag)
|
||||
tz->trips.hot.flags.valid = 1;
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||
"Found hot threshold [%lu]\n",
|
||||
tz->trips.critical.temperature));
|
||||
tz->trips.hot.temperature));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -164,11 +164,10 @@ acpi_extract_package(union acpi_object *package,
|
||||
* Validate output buffer.
|
||||
*/
|
||||
if (buffer->length == ACPI_ALLOCATE_BUFFER) {
|
||||
buffer->pointer = ACPI_ALLOCATE(size_required);
|
||||
buffer->pointer = ACPI_ALLOCATE_ZEROED(size_required);
|
||||
if (!buffer->pointer)
|
||||
return AE_NO_MEMORY;
|
||||
buffer->length = size_required;
|
||||
memset(buffer->pointer, 0, size_required);
|
||||
} else {
|
||||
if (buffer->length < size_required) {
|
||||
buffer->length = size_required;
|
||||
|
||||
@@ -487,6 +487,14 @@ static struct dmi_system_id video_dmi_table[] __initdata = {
|
||||
DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo IdeaPad Yoga 13"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.callback = video_set_use_native_backlight,
|
||||
.ident = "Thinkpad Helix",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
|
||||
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad Helix"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.callback = video_set_use_native_backlight,
|
||||
.ident = "Dell Inspiron 7520",
|
||||
|
||||
@@ -705,6 +705,14 @@ static int pm_genpd_runtime_resume(struct device *dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool pd_ignore_unused;
|
||||
static int __init pd_ignore_unused_setup(char *__unused)
|
||||
{
|
||||
pd_ignore_unused = true;
|
||||
return 1;
|
||||
}
|
||||
__setup("pd_ignore_unused", pd_ignore_unused_setup);
|
||||
|
||||
/**
|
||||
* pm_genpd_poweroff_unused - Power off all PM domains with no devices in use.
|
||||
*/
|
||||
@@ -712,6 +720,11 @@ void pm_genpd_poweroff_unused(void)
|
||||
{
|
||||
struct generic_pm_domain *genpd;
|
||||
|
||||
if (pd_ignore_unused) {
|
||||
pr_warn("genpd: Not disabling unused power domains\n");
|
||||
return;
|
||||
}
|
||||
|
||||
mutex_lock(&gpd_list_lock);
|
||||
|
||||
list_for_each_entry(genpd, &gpd_list, gpd_list_node)
|
||||
|
||||
@@ -30,7 +30,7 @@ config ARM_EXYNOS_CPUFREQ
|
||||
|
||||
config ARM_EXYNOS4210_CPUFREQ
|
||||
bool "SAMSUNG EXYNOS4210"
|
||||
depends on CPU_EXYNOS4210
|
||||
depends on CPU_EXYNOS4210 && !ARCH_MULTIPLATFORM
|
||||
default y
|
||||
select ARM_EXYNOS_CPUFREQ
|
||||
help
|
||||
@@ -41,7 +41,7 @@ config ARM_EXYNOS4210_CPUFREQ
|
||||
|
||||
config ARM_EXYNOS4X12_CPUFREQ
|
||||
bool "SAMSUNG EXYNOS4x12"
|
||||
depends on (SOC_EXYNOS4212 || SOC_EXYNOS4412)
|
||||
depends on (SOC_EXYNOS4212 || SOC_EXYNOS4412) && !ARCH_MULTIPLATFORM
|
||||
default y
|
||||
select ARM_EXYNOS_CPUFREQ
|
||||
help
|
||||
@@ -52,7 +52,7 @@ config ARM_EXYNOS4X12_CPUFREQ
|
||||
|
||||
config ARM_EXYNOS5250_CPUFREQ
|
||||
bool "SAMSUNG EXYNOS5250"
|
||||
depends on SOC_EXYNOS5250
|
||||
depends on SOC_EXYNOS5250 && !ARCH_MULTIPLATFORM
|
||||
default y
|
||||
select ARM_EXYNOS_CPUFREQ
|
||||
help
|
||||
|
||||
@@ -54,3 +54,11 @@ config PPC_PASEMI_CPUFREQ
|
||||
help
|
||||
This adds the support for frequency switching on PA Semi
|
||||
PWRficient processors.
|
||||
|
||||
config POWERNV_CPUFREQ
|
||||
tristate "CPU frequency scaling for IBM POWERNV platform"
|
||||
depends on PPC_POWERNV
|
||||
default y
|
||||
help
|
||||
This adds support for CPU frequency switching on IBM POWERNV
|
||||
platform
|
||||
|
||||
@@ -86,6 +86,7 @@ obj-$(CONFIG_PPC_CORENET_CPUFREQ) += ppc-corenet-cpufreq.o
|
||||
obj-$(CONFIG_CPU_FREQ_PMAC) += pmac32-cpufreq.o
|
||||
obj-$(CONFIG_CPU_FREQ_PMAC64) += pmac64-cpufreq.o
|
||||
obj-$(CONFIG_PPC_PASEMI_CPUFREQ) += pasemi-cpufreq.o
|
||||
obj-$(CONFIG_POWERNV_CPUFREQ) += powernv-cpufreq.o
|
||||
|
||||
##################################################################################
|
||||
# Other platform drivers
|
||||
|
||||
@@ -754,7 +754,7 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
|
||||
goto err_unreg;
|
||||
}
|
||||
|
||||
data->freq_table = kmalloc(sizeof(*data->freq_table) *
|
||||
data->freq_table = kzalloc(sizeof(*data->freq_table) *
|
||||
(perf->state_count+1), GFP_KERNEL);
|
||||
if (!data->freq_table) {
|
||||
result = -ENOMEM;
|
||||
|
||||
@@ -52,7 +52,7 @@ static int at32_set_target(struct cpufreq_policy *policy, unsigned int index)
|
||||
static int at32_cpufreq_driver_init(struct cpufreq_policy *policy)
|
||||
{
|
||||
unsigned int frequency, rate, min_freq;
|
||||
static struct clk *cpuclk;
|
||||
struct clk *cpuclk;
|
||||
int retval, steps, i;
|
||||
|
||||
if (policy->cpu != 0)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user