mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
ACPI: scan: Use the acpi_match_acpi_device() helper
Instead of doing two pass parsing of the table, replace acpi_match_device_ids() with acpi_match_acpi_device(). Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
bf6067a6ca
commit
59e8d4bb8d
@ -929,26 +929,29 @@ static int acpi_bus_extract_wakeup_device_power_package(struct acpi_device *dev)
|
||||
return err;
|
||||
}
|
||||
|
||||
/* Do not use a button for S5 wakeup */
|
||||
#define ACPI_AVOID_WAKE_FROM_S5 BIT(0)
|
||||
|
||||
static bool acpi_wakeup_gpe_init(struct acpi_device *device)
|
||||
{
|
||||
static const struct acpi_device_id button_device_ids[] = {
|
||||
{"PNP0C0C", 0}, /* Power button */
|
||||
{"PNP0C0D", 0}, /* Lid */
|
||||
{"PNP0C0E", 0}, /* Sleep button */
|
||||
{"PNP0C0C", 0}, /* Power button */
|
||||
{"PNP0C0D", ACPI_AVOID_WAKE_FROM_S5}, /* Lid */
|
||||
{"PNP0C0E", ACPI_AVOID_WAKE_FROM_S5}, /* Sleep button */
|
||||
{"", 0},
|
||||
};
|
||||
struct acpi_device_wakeup *wakeup = &device->wakeup;
|
||||
const struct acpi_device_id *match;
|
||||
acpi_status status;
|
||||
|
||||
wakeup->flags.notifier_present = 0;
|
||||
|
||||
/* Power button, Lid switch always enable wakeup */
|
||||
if (!acpi_match_device_ids(device, button_device_ids)) {
|
||||
if (!acpi_match_device_ids(device, &button_device_ids[1])) {
|
||||
/* Do not use Lid/sleep button for S5 wakeup */
|
||||
if (wakeup->sleep_state == ACPI_STATE_S5)
|
||||
wakeup->sleep_state = ACPI_STATE_S4;
|
||||
}
|
||||
match = acpi_match_acpi_device(button_device_ids, device);
|
||||
if (match) {
|
||||
if ((match->driver_data & ACPI_AVOID_WAKE_FROM_S5) &&
|
||||
wakeup->sleep_state == ACPI_STATE_S5)
|
||||
wakeup->sleep_state = ACPI_STATE_S4;
|
||||
acpi_mark_gpe_for_wake(wakeup->gpe_device, wakeup->gpe_number);
|
||||
device_set_wakeup_capable(&device->dev, true);
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user