lkml.org 
[lkml]   [2008]   [Apr]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH 35/37] Input: bf54x-keys - add infrastructure for keypad wakeups
    From
    Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
    Signed-off-by: Bryan Wu <cooloney@kernel.org>
    Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
    ---
    drivers/input/keyboard/bf54x-keys.c | 35 ++++++++++++++++++++++++++++++++---
    1 files changed, 32 insertions(+), 3 deletions(-)

    diff --git a/drivers/input/keyboard/bf54x-keys.c b/drivers/input/keyboard/bf54x-keys.c
    index d87ac33..54ed8e2 100644
    --- a/drivers/input/keyboard/bf54x-keys.c
    +++ b/drivers/input/keyboard/bf54x-keys.c
    @@ -312,6 +312,8 @@ static int __devinit bfin_kpad_probe(struct platform_device *pdev)

    bfin_write_KPAD_CTL(bfin_read_KPAD_CTL() | KPAD_EN);

    + device_init_wakeup(&pdev->dev, 1);
    +
    printk(KERN_ERR DRV_NAME
    ": Blackfin BF54x Keypad registered IRQ %d\n", bf54x_kpad->irq);

    @@ -354,13 +356,40 @@ static int __devexit bfin_kpad_remove(struct platform_device *pdev)
    return 0;
    }

    +#ifdef CONFIG_PM
    +static int bfin_kpad_suspend(struct platform_device *pdev, pm_message_t state)
    +{
    + struct bf54x_kpad *bf54x_kpad = platform_get_drvdata(pdev);
    +
    + if (device_may_wakeup(&pdev->dev))
    + enable_irq_wake(bf54x_kpad->irq);
    +
    + return 0;
    +}
    +
    +static int bfin_kpad_resume(struct platform_device *pdev)
    +{
    + struct bf54x_kpad *bf54x_kpad = platform_get_drvdata(pdev);
    +
    + if (device_may_wakeup(&pdev->dev))
    + disable_irq_wake(bf54x_kpad->irq);
    +
    + return 0;
    +}
    +#else
    +# define bfin_kpad_suspend NULL
    +# define bfin_kpad_resume NULL
    +#endif
    +
    struct platform_driver bfin_kpad_device_driver = {
    - .probe = bfin_kpad_probe,
    - .remove = __devexit_p(bfin_kpad_remove),
    .driver = {
    .name = DRV_NAME,
    .owner = THIS_MODULE,
    - }
    + },
    + .probe = bfin_kpad_probe,
    + .remove = __devexit_p(bfin_kpad_remove),
    + .suspend = bfin_kpad_suspend,
    + .resume = bfin_kpad_resume,
    };

    static int __init bfin_kpad_init(void)
    --
    1.5.5.rc2.6.gf58d



    \
     
     \ /
      Last update: 2008-04-21 15:33    [W:0.044 / U:33.356 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site