On Sun, Dec 8, 2013 at 5:40 AM, Chao Xu <caesarxuchao@xxxxxxxxx> wrote: > From: Felipe Balbi <balbi@xxxxxx> > > try to keep gpio block suspended as much as possible. > > Tested with pandaboard and a sysfs exported gpio. > > Signed-off-by: Felipe Balbi <balbi at ti.com> > > [caesarxuchao@xxxxxxxxx : Refreshed against v3.12-rc5, and added > revision check to enable aggressive pm_runtime on OMAP4-only. Because > am33xx_gpio_sysc.idlemodes seems to be wrongly marked as > SIDLE_SMART_WKUP, which might cause missed interrupts with this patch. > Tested on Pandaboard rev A2.] > Signed-off-by: Chao Xu <caesarxuchao@xxxxxxxxx> > --- > changes since v2: > *add wrapper function to avoid 'is_aggressive_pm' check everywhere, as > suggested by Santosh Shilimkar > *fix format issue in commit log I'm dropping this until you convince Kevin/Tony that this is the way to go. One thing caught my eye, you add: > +static void _aggressive_pm_runtime_get_sync(struct gpio_bank *bank) > +static void _aggressive_pm_runtime_put(struct gpio_bank *bank) (..) Then everywhere: > + _aggressive_pm_runtime_get_sync(bank); (...) > + _aggressive_pm_runtime_put(bank); Aggressive, argh, runtime PM is agressive by definition. If you want to switch this on and off use the compile option to enable/disable runtime PM altogether and do not wrap it like this. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html