只要还有wake_lock没有被释放,内核就不会进入休眠状态。所以要想让内核不进入休眠,其实只需要增加一个wake_lock且不释放她就可以了。
修改代码如下:
初始化wake_lock:
struct wake_lock wake_lock;
加锁:
wake_lock_init(&di->wake_lock, WAKE_LOCK_SUSPEND,
"wake_lock");
wake_lock(&di->wake_lock);
如果需要释放锁,执行代码:
wake_unlock(&di->wake_lock);