本文轉載自:https://blog.csdn.net/wuyb2011/article/details/78542233?locationNum=11&fps=1
#include <linux/wakelock.h>
#include <linux/jiffies.h>
struct wake_lock wlock;
初始化(一般放在probe或者register函數里):
wake_lock_init(&wlock, WAKE_LOCK_SUSPEND, "wlock name");
判斷是否已加鎖,釋放鎖
if (wake_lock_active(&pon->wlock)) {
wake_unlock(&pon->wlock);
}
判斷是否已加鎖,加鎖
if (!wake_lock_active(&pon->wlock)) {
wake_lock(&pon->wlock);
}
銷毀鎖(一般放在remove或者unregister函數里)
wake_lock_destroy(&pon->wlock);
超時鎖
wake_lock_timeout(&pon->wlock, msecs_to_jiffies(N)); //N ms之后自動釋放鎖
