mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
Merge branches 'acpi-fan', 'acpi-ec', 'acpi-drivers' and 'acpi-osl'
* acpi-fan: ACPI / fan: Fix error reading cur_state * acpi-ec: ACPI / EC: Fix unused function warning when CONFIG_PM_SLEEP=n * acpi-drivers: ACPI / PAD: don't register acpi_pad driver if running as Xen dom0 * acpi-osl: acpi_os_vprintf: Use printk_get_level() to avoid unnecessary KERN_CONT
This commit is contained in:
commit
522533f338
@ -26,6 +26,7 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/acpi.h>
|
||||
#include <asm/mwait.h>
|
||||
#include <xen/xen.h>
|
||||
|
||||
#define ACPI_PROCESSOR_AGGREGATOR_CLASS "acpi_pad"
|
||||
#define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
|
||||
@ -477,6 +478,10 @@ static struct acpi_driver acpi_pad_driver = {
|
||||
|
||||
static int __init acpi_pad_init(void)
|
||||
{
|
||||
/* Xen ACPI PAD is used when running as Xen Dom0. */
|
||||
if (xen_initial_domain())
|
||||
return -ENODEV;
|
||||
|
||||
power_saving_mwait_init();
|
||||
if (power_saving_mwait_eax == 0)
|
||||
return -EINVAL;
|
||||
|
@ -526,6 +526,7 @@ static void acpi_ec_enable_event(struct acpi_ec *ec)
|
||||
acpi_ec_clear(ec);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static bool acpi_ec_query_flushed(struct acpi_ec *ec)
|
||||
{
|
||||
bool flushed;
|
||||
@ -557,6 +558,7 @@ static void acpi_ec_disable_event(struct acpi_ec *ec)
|
||||
spin_unlock_irqrestore(&ec->lock, flags);
|
||||
__acpi_ec_flush_event(ec);
|
||||
}
|
||||
#endif /* CONFIG_PM_SLEEP */
|
||||
|
||||
static bool acpi_ec_guard_event(struct acpi_ec *ec)
|
||||
{
|
||||
|
@ -129,8 +129,18 @@ static int fan_get_state_acpi4(struct acpi_device *device, unsigned long *state)
|
||||
|
||||
control = obj->package.elements[1].integer.value;
|
||||
for (i = 0; i < fan->fps_count; i++) {
|
||||
if (control == fan->fps[i].control)
|
||||
/*
|
||||
* When Fine Grain Control is set, return the state
|
||||
* corresponding to maximum fan->fps[i].control
|
||||
* value compared to the current speed. Here the
|
||||
* fan->fps[] is sorted array with increasing speed.
|
||||
*/
|
||||
if (fan->fif.fine_grain_ctrl && control < fan->fps[i].control) {
|
||||
i = (i > 0) ? i - 1 : 0;
|
||||
break;
|
||||
} else if (control == fan->fps[i].control) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == fan->fps_count) {
|
||||
dev_dbg(&device->dev, "Invalid control value returned\n");
|
||||
|
@ -162,11 +162,18 @@ void acpi_os_vprintf(const char *fmt, va_list args)
|
||||
if (acpi_in_debugger) {
|
||||
kdb_printf("%s", buffer);
|
||||
} else {
|
||||
printk(KERN_CONT "%s", buffer);
|
||||
if (printk_get_level(buffer))
|
||||
printk("%s", buffer);
|
||||
else
|
||||
printk(KERN_CONT "%s", buffer);
|
||||
}
|
||||
#else
|
||||
if (acpi_debugger_write_log(buffer) < 0)
|
||||
printk(KERN_CONT "%s", buffer);
|
||||
if (acpi_debugger_write_log(buffer) < 0) {
|
||||
if (printk_get_level(buffer))
|
||||
printk("%s", buffer);
|
||||
else
|
||||
printk(KERN_CONT "%s", buffer);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user