[PATCH v6 17/25] gpio/omap: use pm-runtime framework

DebBarma, Tarun Kanti tarun.kanti at ti.com
Fri Sep 9 08:32:33 EDT 2011


[...]
>>
>> +static const struct dev_pm_ops gpio_pm_ops = {
>> +     .suspend                = omap_gpio_suspend,
>> +     .resume                 = omap_gpio_resume,
>> +};
>
> Please use SET_SYSTEM_SLEEP_PM_OPS().  See <linux/pm.h>
We can use following macro to initialize .suspend and .resume callbacks.
But how do we initialize .runtime_suspend and .runtime_resume callbacks?

#define SIMPLE_DEV_PM_OPS(name, suspend_fn, resume_fn) \
const struct dev_pm_ops name = { \
        SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \
}

Do we have something similar to following where we can assign separate
pair of callbacks?
The following macro on the other hand assigns the same set of
callbacks to both and this not what I want!!!

#define UNIVERSAL_DEV_PM_OPS(name, suspend_fn, resume_fn, idle_fn) \
const struct dev_pm_ops name = { \
        SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \
        SET_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) \
}
--
Tarun

>
>>  static struct platform_driver omap_gpio_driver = {
>>       .probe          = omap_gpio_probe,
>>       .driver         = {
>>               .name   = "omap_gpio",
>> +             .pm     = &gpio_pm_ops,
>>       },
>>  };
[...]



More information about the linux-arm-kernel mailing list