RE: [PATCH][RFC] ACPI / PM: Fix incorrect wakeup irq setting before suspend-to-idle
From: "Chen, Yu C" <yu.c.chen@intel.com>
Date: 2015-09-26 14:37:26
Also in:
lkml
Hi, Rafael,
-----Original Message----- From: linux-pm-owner@vger.kernel.org [mailto:linux-pm- owner@vger.kernel.org] On Behalf Of Rafael J. Wysocki Sent: Friday, September 25, 2015 9:57 PM To: Chen, Yu C Cc: Wysocki, Rafael J; jiang.liu@linux.intel.com; Zhang, Rui; Brown, Len; linux- kernel@vger.kernel.org; linux-pm@vger.kernel.org Subject: Re: [PATCH][RFC] ACPI / PM: Fix incorrect wakeup irq setting before suspend-to-idle On Friday, September 25, 2015 06:42:41 AM Chen, Yu C wrote:quoted
Hi,Rafael, thanks a lot for your review, will resend v2 version.quoted
-----Original Message----- From: Rafael J. Wysocki [mailto:rjw@rjwysocki.net] Sent: Friday, September 25, 2015 9:24 AM To: Chen, Yu C Cc: Wysocki, Rafael J; jiang.liu@linux.intel.com; Zhang, Rui; Brown, Len; linux- kernel@vger.kernel.org; linux-pm@vger.kernel.org Subject: Re: [PATCH][RFC] ACPI / PM: Fix incorrect wakeup irq setting before suspend-to-idle On Monday, August 10, 2015 10:11:26 AM Chen Yu wrote:quoted
+#ifdef CONFIG_SUSPEND + set_wake_irq_freeze(irq); +#endifAlternatively, you can define an empty static inline stub of set_wake_irq_freeze() for CONFIG_SUSPEND and avoid using IS_ENABLED() even. But I'd rather define a global acpi_irq variable, store irq in it and access it directly from acpi_freeze_prepare(). And it doesn't have to depend on CONFIG_SUSPEND as it is just the IRQ number actually used by ACPI.
OK, I've convert it to a global variable acpi_inuse_irq.
BTW, I wonder if there are other places using acpi_gbl_FADT.sci_interrupt directly which they shouldn't do?
I searched the code and found there are two other potential misuse of acpi_gbl_FADT.sci_interrupt, they are in acpi_os_remove_interrupt_handler and acpi_os_wait_events_complete, so I sent out a version 2 patch for them.
quoted
Oh, do you mean the naming for this variable is un-suitable? OK, I'll change it to acpi_freeze_wake_irqNo. What I mean is that in theory there may be multiple ACPI interrupts. But you need not care about this case because of the if (gsi != acpi_gbl_FADT.sci_interrupt) return AE_BAD_PARAMETER; check in acpi_os_install_interrupt_handler().
OK, thanks! Best Regards, Yu