On Tue, Sep 13, 2022 at 1:28 AM Wolfram Sang [off-list ref] wrote:
On Mon, Sep 12, 2022 at 04:13:11PM -0600, Raul E Rangel wrote:
quoted
Device tree already has a mechanism to pass the wake_irq. It does this
by looking for the wakeup-source property and setting the
I2C_CLIENT_WAKE flag. This CL adds the ACPI equivalent. It uses the
ACPI interrupt wake flag to determine if the interrupt can be used to
wake the system. Previously the i2c drivers had to make assumptions and
blindly enable the wake IRQ. This can cause spurious wake events. e.g.,
If there is a device with an Active Low interrupt and the device gets
powered off while suspending, the interrupt line will go low since it's
no longer powered and wakes the system. For this reason we should
respect the board designers wishes and honor the wake bit defined on the
interrupt.
I'll let the I2C ACPI maintainers deal with the technical details
because they are the experts here, yet one minor thing hits my eye:
quoted
+ irq_ctx.irq = acpi_dev_gpio_irq_get_wake(
+ adev, 0, &irq_ctx.wake_capable);
That line split looks weird with the open parens at the end of line 1.
Ah, looks like I missed `clang-format` on that line. I can fix it in
the next revision.
Thanks