> -----Original Message----- > From: Thomas Gleixner [mailto:t...@linutronix.de] > Sent: 2015年8月25日 15:16 > To: Wang Shenwei-B38339 > Cc: Sudeep Holla; shawn....@linaro.org; ja...@lakedaemon.net; Huang > Yongcai-B20788; linux-kernel@vger.kernel.org; > linux-arm-ker...@lists.infradead.org > Subject: RE: [PATCH v9 1/1] irqchip: imx-gpcv2: IMX GPCv2 driver for wakeup > sources > > On Tue, 25 Aug 2015, Shenwei Wang wrote: > > > From: Thomas Gleixner [mailto:t...@linutronix.de] > > > > IRQCHIP_MASK_ON_SUSPEND flag is for the hardware that has no > > > > wakeup source capability. This GPCv2 block is designed to manage > > > > the wakeup source, so the flag does not make any sense. > > > > > > You have no seperate wakeup source mechanism. All you do is to mask > > > all non wakeup sources and keep the wakeup sources unmask. > > > > > > That's what happens in gpcv2_wakeup_source_save() > > > > > > writel_relaxed(cd->wakeup_sources[i], reg); > > > > > > So it's the same as letting the core mask all non wakeup sources and > > > leave the wakeup sources unmask. > > > > Does it mean an unexpected interrupt may activate the system, and the > > core will let the system go into suspend again if the core determines > > it not a wakeup source? The current design is to ignore all the > > unexpected interrupts in the hardware level. Only the presetting > > wakeup sources can activate the platform. Here power consumption is > > more important. > > Did you actually read, what I wrote? > > The core does in case of MASK_ON_SUSPEND > > for_each_irq() { > if (!irq->wakeupsource) > mask(irq) > } > > That's identical to what you are doing. You just do it differently by saving > the > active wakeup sources in your own data structure and then write that info to > the > mask register, which leaves only the wakeup sources unmasked.
Sorry. I just took a study on the two flags: MASK_ON_SUSPEND and IRQCHIP_SKIP_SET_WAKE. MASK_ON_SUSPEND flag does simply the implementation. IRQCHIP_SKIP_SET_WAKE flag can't be used here because the wakeup sources are required for power management. I will send out a subsequent patch to simply the implementation by using this idea. Thank you Sudeep for the insightful review! Thanks, Shenwei > Thanks, > > tglx