lkml.org 
[lkml]   [2009]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 06/07] usb: rework musb suspend()/resume_early()
    From: Magnus Damm <damm@igel.co.jp>

    This patch reworks platform driver power management code
    for musb from legacy callbacks to dev_pm_ops.

    The callbacks are converted for CONFIG_SUSPEND like this:
    suspend() -> suspend()
    resume_early() -> resume_noirq()

    Signed-off-by: Magnus Damm <damm@igel.co.jp>
    ---

    Untested but compiles fine.

    drivers/i2c/busses/i2c-pxa.c | 25 +++++++++++++++++--------
    1 file changed, 17 insertions(+), 8 deletions(-)

    --- 0001/drivers/usb/musb/musb_core.c
    +++ work/drivers/usb/musb/musb_core.c 2009-06-01 15:27:12.000000000 +0900
    @@ -2168,8 +2168,9 @@ static int __devexit musb_remove(struct

    #ifdef CONFIG_PM

    -static int musb_suspend(struct platform_device *pdev, pm_message_t message)
    +static int musb_suspend(struct device *dev)
    {
    + struct platform_device *pdev = to_platform_device(dev);
    unsigned long flags;
    struct musb *musb = dev_to_musb(&pdev->dev);

    @@ -2196,8 +2197,9 @@ static int musb_suspend(struct platform_
    return 0;
    }

    -static int musb_resume_early(struct platform_device *pdev)
    +static int musb_resume_noirq(struct device *dev)
    {
    + struct platform_device *pdev = to_platform_device(dev);
    struct musb *musb = dev_to_musb(&pdev->dev);

    if (!musb->clock)
    @@ -2215,9 +2217,14 @@ static int musb_resume_early(struct plat
    return 0;
    }

    +static struct dev_pm_ops musb_dev_pm_ops = {
    + .suspend = musb_suspend,
    + .resume_noirq = musb_resume_noirq,
    +};
    +
    +#define MUSB_DEV_PM_OPS (&musb_dev_pm_ops)
    #else
    -#define musb_suspend NULL
    -#define musb_resume_early NULL
    +#define MUSB_DEV_PM_OPS NULL
    #endif

    static struct platform_driver musb_driver = {
    @@ -2225,11 +2232,10 @@ static struct platform_driver musb_drive
    .name = (char *)musb_driver_name,
    .bus = &platform_bus_type,
    .owner = THIS_MODULE,
    + .pm = MUSB_DEV_PM_OPS,
    },
    .remove = __devexit_p(musb_remove),
    .shutdown = musb_shutdown,
    - .suspend = musb_suspend,
    - .resume_early = musb_resume_early,
    };

    /*-------------------------------------------------------------------------*/

    \
     
     \ /
      Last update: 2009-06-24 11:31    [W:0.022 / U:67.664 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site