在Android中暂停/恢复

时间:2014-02-24 07:17:34

标签: android c device-driver

我正在尝试开发一个在android中注册了GPIO中断的驱动程序。在这里,我需要通过GPIO中断唤醒器件。我已经在我的驱动程序中使用设备驱动程序PM结构注册了暂停/恢复回调。我的代码片段是

static int my_suspend(struct device *dev)
{
    struct i2c_client *client = to_i2c_client(dev);
    disable_irq(client->irq);
    if (device_may_wakeup(&client->dev)) 
    enable_irq_wake(client->irq);
    return 0;
}

static int my_resume(struct device *dev)
{
    struct i2c_client *client = to_i2c_client(dev);
    if (device_may_wakeup(&client->dev))
    disable_irq_wake(client->irq);
    enable_irq(client->irq);
    return 0;
}

static const struct dev_pm_ops i2c_pm_ops = {
    .suspend    = my_suspend,
    .resume     = my_resume,
};

struct device_driver lcd_driver = {
    ....
    .pm = &i2c_pm_ops,
    ....
}

但系统暂停操作时不会调用我的挂起函数。

0 个答案:

没有答案