Commit 522533f3 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

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
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/acpi.h> #include <linux/acpi.h>
#include <asm/mwait.h> #include <asm/mwait.h>
#include <xen/xen.h>
#define ACPI_PROCESSOR_AGGREGATOR_CLASS "acpi_pad" #define ACPI_PROCESSOR_AGGREGATOR_CLASS "acpi_pad"
#define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator" #define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
...@@ -477,6 +478,10 @@ static struct acpi_driver acpi_pad_driver = { ...@@ -477,6 +478,10 @@ static struct acpi_driver acpi_pad_driver = {
static int __init acpi_pad_init(void) 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(); power_saving_mwait_init();
if (power_saving_mwait_eax == 0) if (power_saving_mwait_eax == 0)
return -EINVAL; return -EINVAL;
......
...@@ -526,6 +526,7 @@ static void acpi_ec_enable_event(struct acpi_ec *ec) ...@@ -526,6 +526,7 @@ static void acpi_ec_enable_event(struct acpi_ec *ec)
acpi_ec_clear(ec); acpi_ec_clear(ec);
} }
#ifdef CONFIG_PM_SLEEP
static bool acpi_ec_query_flushed(struct acpi_ec *ec) static bool acpi_ec_query_flushed(struct acpi_ec *ec)
{ {
bool flushed; bool flushed;
...@@ -557,6 +558,7 @@ static void acpi_ec_disable_event(struct acpi_ec *ec) ...@@ -557,6 +558,7 @@ static void acpi_ec_disable_event(struct acpi_ec *ec)
spin_unlock_irqrestore(&ec->lock, flags); spin_unlock_irqrestore(&ec->lock, flags);
__acpi_ec_flush_event(ec); __acpi_ec_flush_event(ec);
} }
#endif /* CONFIG_PM_SLEEP */
static bool acpi_ec_guard_event(struct acpi_ec *ec) 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) ...@@ -129,8 +129,18 @@ static int fan_get_state_acpi4(struct acpi_device *device, unsigned long *state)
control = obj->package.elements[1].integer.value; control = obj->package.elements[1].integer.value;
for (i = 0; i < fan->fps_count; i++) { 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; break;
} else if (control == fan->fps[i].control) {
break;
}
} }
if (i == fan->fps_count) { if (i == fan->fps_count) {
dev_dbg(&device->dev, "Invalid control value returned\n"); dev_dbg(&device->dev, "Invalid control value returned\n");
......
...@@ -162,11 +162,18 @@ void acpi_os_vprintf(const char *fmt, va_list args) ...@@ -162,11 +162,18 @@ void acpi_os_vprintf(const char *fmt, va_list args)
if (acpi_in_debugger) { if (acpi_in_debugger) {
kdb_printf("%s", buffer); kdb_printf("%s", buffer);
} else { } else {
printk(KERN_CONT "%s", buffer); if (printk_get_level(buffer))
printk("%s", buffer);
else
printk(KERN_CONT "%s", buffer);
} }
#else #else
if (acpi_debugger_write_log(buffer) < 0) if (acpi_debugger_write_log(buffer) < 0) {
printk(KERN_CONT "%s", buffer); if (printk_get_level(buffer))
printk("%s", buffer);
else
printk(KERN_CONT "%s", buffer);
}
#endif #endif
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment