On Sun, Jan 5, 2020 at 9:24 AM Samuel Holland <[email protected]> wrote: > > The USB power supply input can be used as a wakeup source. Hook up the > VBUS_PLUGIN IRQ to trigger wakeup based on userspace configuration. > > To do this, we must remember the list of IRQs for the life of the > device. To know how much space to allocate for the flexible array > member, we switch from using a NULL sentinel to using an array length. > > Because we now depend on the specific order of the IRQs (we assume > VBUS_PLUGIN is first and always present), failing to acquire an IRQ > during probe must be a fatal error. > > To avoid spuriously waking up the system when the USB power supply is > not configured as a wakeup source, we must explicitly disable all non- > wake IRQs during system suspend. This is because the SoC's NMI input is > shared among all IRQs on the AXP PMIC. Due to the use of regmap-irq, the > individual IRQs within the PMIC are nested threaded interrupts, and are > therefore not automatically disabled during system suspend. > > The upshot is that if any other device within the MFD (such as the power > key) is an enabled wakeup source, all enabled IRQs within the PMIC will > cause wakeup. We still need to call enable_irq_wake() when we *do* want > wakeup, in case those other wakeup sources on the PMIC are all disabled. > > Signed-off-by: Samuel Holland <[email protected]>
Reviewed-by: Chen-Yu Tsai <[email protected]> -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/CAGb2v641_yfJ8nE2soPcUhcOGp5vDmcPUpmN%3DVr1RrB5RNQkbw%40mail.gmail.com.
