On Thu, Dec 12, 2013 at 07:19:35PM +0100, Linus Walleij wrote: > 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. heh, OMAP doesn't work without pm_runtime. -- balbi
Attachment:
signature.asc
Description: Digital signature