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

Kevin Hilman khilman at ti.com
Fri Sep 9 17:00:28 EDT 2011


"DebBarma, Tarun Kanti" <tarun.kanti at ti.com> writes:

> On Fri, Sep 9, 2011 at 11:34 PM, Kevin Hilman <khilman at ti.com> wrote:
>> "DebBarma, Tarun Kanti" <tarun.kanti at ti.com> writes:
>>
>>> [...]
>>>>>
>>>>> +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?
>>
>> SET_RUNTIME_PM_OPS()
> Yes, I have done this way:
>
> static const struct dev_pm_ops gpio_pm_ops = {
>         SET_SYSTEM_SLEEP_PM_OPS(omap_gpio_suspend, omap_gpio_resume)
>         SET_RUNTIME_PM_OPS(omap_gpio_runtime_suspend, omap_gpio_runtime_resume,
>                                                                         NULL)

Perfect.

Kevin



More information about the linux-arm-kernel mailing list