lkml.org 
[lkml]   [2008]   [Aug]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 1/1] libata: Blackfin Pata Driver: Add proper PM operation into ATAPI driver.
    On Wed, 27 Aug 2008 11:51:18 +0800 Bryan Wu <cooloney@kernel.org> wrote:

    > From: Sonic Zhang <sonic.zhang@analog.com>
    >
    > Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
    > Signed-off-by: Bryan Wu <cooloney@kernel.org>
    > ---
    > drivers/ata/pata_bf54x.c | 29 ++++++++++++++++++++++++-----
    > 1 files changed, 24 insertions(+), 5 deletions(-)
    >
    > diff --git a/drivers/ata/pata_bf54x.c b/drivers/ata/pata_bf54x.c
    > index d393290..60f4872 100644
    > --- a/drivers/ata/pata_bf54x.c
    > +++ b/drivers/ata/pata_bf54x.c
    > @@ -1632,6 +1632,8 @@ static int __devinit bfin_atapi_probe(struct platform_device *pdev)
    > return -ENODEV;
    > }
    >
    > + dev_set_drvdata(&pdev->dev, host);
    > +
    > return 0;
    > }
    >
    > @@ -1648,6 +1650,7 @@ static int __devexit bfin_atapi_remove(struct platform_device *pdev)
    > struct ata_host *host = dev_get_drvdata(dev);
    >
    > ata_host_detach(host);
    > + dev_set_drvdata(&pdev->dev, NULL);
    >
    > peripheral_free_list(atapi_io_port);
    >
    > @@ -1657,11 +1660,27 @@ static int __devexit bfin_atapi_remove(struct platform_device *pdev)
    > #ifdef CONFIG_PM
    > int bfin_atapi_suspend(struct platform_device *pdev, pm_message_t state)
    > {
    > - return 0;
    > + struct ata_host *host = dev_get_drvdata(&pdev->dev);
    > + if (host)
    > + return ata_host_suspend(host, state);
    > + else
    > + return 0;
    > }
    >
    > int bfin_atapi_resume(struct platform_device *pdev)
    > {
    > + struct ata_host *host = dev_get_drvdata(&pdev->dev);
    > + int ret;
    > +
    > + if (host) {
    > + ret = bfin_reset_controller(host);
    > + if (ret) {
    > + printk(KERN_ERR DRV_NAME ": Error during HW init\n");
    > + return ret;
    > + }
    > + ata_host_resume(host);
    > + }
    > +
    > return 0;
    > }
    > #endif
    > @@ -1669,13 +1688,13 @@ int bfin_atapi_resume(struct platform_device *pdev)
    > static struct platform_driver bfin_atapi_driver = {
    > .probe = bfin_atapi_probe,
    > .remove = __devexit_p(bfin_atapi_remove),
    > +#ifdef CONFIG_PM
    > + .suspend = bfin_atapi_suspend,
    > + .resume = bfin_atapi_resume,
    > +#endif
    > .driver = {
    > .name = DRV_NAME,
    > .owner = THIS_MODULE,
    > -#ifdef CONFIG_PM
    > - .suspend = bfin_atapi_suspend,
    > - .resume = bfin_atapi_resume,
    > -#endif
    > },
    > };

    I think we can make these fixes while we're there?

    From: Andrew Morton <akpm@linux-foundation.org>

    - remove the ifdefs using the usual pattern

    - make things static

    Cc: Bryan Wu <cooloney@kernel.org>
    Cc: Jeff Garzik <jeff@garzik.org>
    Cc: Sonic Zhang <sonic.zhang@analog.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    ---

    drivers/ata/pata_bf54x.c | 9 +++++----
    1 file changed, 5 insertions(+), 4 deletions(-)

    diff -puN drivers/ata/pata_bf54x.c~libata-blackfin-pata-driver-add-proper-pm-operation-into-atapi-driver-fix drivers/ata/pata_bf54x.c
    --- a/drivers/ata/pata_bf54x.c~libata-blackfin-pata-driver-add-proper-pm-operation-into-atapi-driver-fix
    +++ a/drivers/ata/pata_bf54x.c
    @@ -1658,7 +1658,7 @@ static int __devexit bfin_atapi_remove(s
    }

    #ifdef CONFIG_PM
    -int bfin_atapi_suspend(struct platform_device *pdev, pm_message_t state)
    +static int bfin_atapi_suspend(struct platform_device *pdev, pm_message_t state)
    {
    struct ata_host *host = dev_get_drvdata(&pdev->dev);
    if (host)
    @@ -1667,7 +1667,7 @@ int bfin_atapi_suspend(struct platform_d
    return 0;
    }

    -int bfin_atapi_resume(struct platform_device *pdev)
    +static int bfin_atapi_resume(struct platform_device *pdev)
    {
    struct ata_host *host = dev_get_drvdata(&pdev->dev);
    int ret;
    @@ -1683,15 +1683,16 @@ int bfin_atapi_resume(struct platform_de

    return 0;
    }
    +#else
    +#define bfin_atapi_suspend NULL
    +#define bfin_atapi_resume NULL
    #endif

    static struct platform_driver bfin_atapi_driver = {
    .probe = bfin_atapi_probe,
    .remove = __devexit_p(bfin_atapi_remove),
    -#ifdef CONFIG_PM
    .suspend = bfin_atapi_suspend,
    .resume = bfin_atapi_resume,
    -#endif
    .driver = {
    .name = DRV_NAME,
    .owner = THIS_MODULE,
    _


    \
     
     \ /
      Last update: 2008-08-28 05:55    [W:2.990 / U:1.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site