On Fri, Apr 9, 2021 at 10:36 AM Chunfeng Yun <chunfeng.yun@xxxxxxxxxxxx> wrote: > > On Fri, 2021-04-09 at 08:39 +0300, Tony Lindgren wrote: > > * Chunfeng Yun <chunfeng.yun@xxxxxxxxxxxx> [210409 01:54]: > > > On Thu, 2021-04-08 at 19:41 +0200, Rafael J. Wysocki wrote: > > > > On Thu, Apr 8, 2021 at 11:35 AM Chunfeng Yun <chunfeng.yun@xxxxxxxxxxxx> wrote: > > > > > > > > > > When the dedicated wake irq is level trigger, enable it before > > > > > calling runtime_suspend, will trigger an interrupt. > > > > > > > > > > e.g. > > > > > for a low level trigger type, it's low level at running time (0), > > > > > and becomes high level when enters suspend (runtime_suspend (1) is > > > > > called), a wakeup signal at (2) make it become low level, wake irq > > > > > will be triggered. > > > > > > > > > > ------------------ > > > > > | ^ ^| > > > > > ---------------- | | -------------- > > > > > |<---(0)--->|<--(1)--| (3) (2) (4) > > > > > > > > > > if we enable the wake irq before calling runtime_suspend during (0), > > > > > an interrupt will arise, it causes resume immediately; > > > > > > > > But that's necessary to avoid missing a wakeup interrupt, isn't it? > > > That's also what I worry about. > > > > Yeah sounds like this patch will lead into missed wakeirqs. > If miss level trigger wakeirqs, that means HW doesn't latch it? is it HW > limitation? If it's level-triggered, it won't be missed, but then it is just pointless to suspend the device when wakeup is being signaled in the first place. I'm not sure if I understand the underlying problem correctly. Is it about addressing spurious wakeups?