Skip to content

Commit

Permalink
Merge tag 'acpi-6.5-rc1-2' of git://git.kernel.org/pub/scm/linux/kern…
Browse files Browse the repository at this point in the history
…el/git/rafael/linux-pm

Pull ACPI fix from Rafael Wysocki:
 "Fix suspend-to-idle breakage on multiple systems introduced by one of
  the recent commits that may cause the affected systems to overheat
  while suspended"

* tag 'acpi-6.5-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPI: EC: Fix acpi_ec_dispatch_gpe()
  • Loading branch information
Linus Torvalds committed Jun 30, 2023
2 parents 06697ca + b5539eb commit 2eb15b4
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions drivers/acpi/ec.c
Original file line number Diff line number Diff line change
@@ -1267,12 +1267,8 @@ static void acpi_ec_event_handler(struct work_struct *work)
spin_unlock_irq(&ec->lock);
}

static void acpi_ec_handle_interrupt(struct acpi_ec *ec)
static void clear_gpe_and_advance_transaction(struct acpi_ec *ec, bool interrupt)
{
unsigned long flags;

spin_lock_irqsave(&ec->lock, flags);

/*
* Clear GPE_STS upfront to allow subsequent hardware GPE_STS 0->1
* changes to always trigger a GPE interrupt.
@@ -1289,6 +1285,16 @@ static void acpi_ec_handle_interrupt(struct acpi_ec *ec)
acpi_clear_gpe(NULL, ec->gpe);

advance_transaction(ec, true);
}

static void acpi_ec_handle_interrupt(struct acpi_ec *ec)
{
unsigned long flags;

spin_lock_irqsave(&ec->lock, flags);

clear_gpe_and_advance_transaction(ec, true);

spin_unlock_irqrestore(&ec->lock, flags);
}

@@ -2083,7 +2089,7 @@ bool acpi_ec_dispatch_gpe(void)
if (acpi_ec_gpe_status_set(first_ec)) {
pm_pr_dbg("ACPI EC GPE status set\n");

advance_transaction(first_ec, false);
clear_gpe_and_advance_transaction(first_ec, false);
work_in_progress = acpi_ec_work_in_progress(first_ec);
}

0 comments on commit 2eb15b4

Please sign in to comment.