休眠.
2.唤醒方式
当我们休眠时,如果想唤醒,则需要添加中断唤醒源,使得在休眠时,这些中断是设为开启的,当有中断来,则会退出唤醒,常见的中断源有按键,USB等.
3.以按键驱动为例(基于内核3.10.14...接下来开始分析platform_driver(位于driver/input/keyboard/gpio.keys.c),看看是如何注册按键和实现唤醒的.
4.分析driver/input/keyboard...(struct device *dev);
休眠函数,休眠之前会被调用
static int gpio_keys_resume(struct device *dev);
唤醒函数,唤醒之前被调用
static...,就会根据dev->power.can_wakeup和dev->power.should_wakeup来做不同的操作
4.4 其中gpio_keys_suspend()休眠函数定义如下所示:
static...:
休眠时:
enable_irq_wake (bdata->irq);
//将要睡眠的中断号屏蔽掉,实现休眠时保持中断唤醒
唤醒后:
disable_irq_wake(bdata