当前位置: 代码迷 >> 驱动开发 >> android 休眠与唤醒解决办法
  详细解决方案

android 休眠与唤醒解决办法

热度:46   发布时间:2016-04-28 10:17:31.0
android 休眠与唤醒
s3c6410 android 总有一个非限时锁阻止进入suspend

在内核中添加打印的:
has_wake_lock_locked()中添加 
static long has_wake_lock_locked(int type)
{
struct wake_lock *lock, *n;
long max_timeout = 0;

BUG_ON(type >= WAKE_LOCK_TYPE_COUNT);
list_for_each_entry_safe(lock, n, &active_wake_locks[type], link) {
if (lock->flags & WAKE_LOCK_AUTO_EXPIRE) {//超时锁
long timeout = lock->expires - jiffies;
if (timeout <= 0)
expire_wake_lock(lock);
else if (timeout > max_timeout)
max_timeout = timeout;
} else
{
printk("lockname = %s,lockflag = ox%x\n, type= %d\n",lock->name,lock->flags,type); return -1;
}
}
return max_timeout;
}

红色的为添加的,
结果打印信息为:
lockname = PowerManagerService,lockflag = ox300
系统中存在非限时锁,阻止系统进入suspend,请问这个 PowerManagerService锁怎么解锁呢?
------解决方案--------------------
那肯定是有什么地方设了锁,仔细找找设锁的地方吧。
  相关解决方案