power: wakelock: Print active wakelocks when has_wake_lock() is called
When DEBUG_SUSPEND is enabled print active wakelocks when we check if there are any active wakelocks. In print_active_locks(), print expired wakelocks if DEBUG_EXPIRE is enabled Change-Id: Ib1cb795555e71ff23143a2bac7c8a58cbce16547 Signed-off-by: Mike Chan <mike@android.com> (cherry picked from commit af62b25adba1fe01c91aa88c95d1584371ab2bf9)
This commit is contained in:
@@ -214,20 +214,23 @@ static void expire_wake_lock(struct wake_lock *lock)
|
||||
/* Caller must acquire the list_lock spinlock */
|
||||
static void print_active_locks(int type)
|
||||
{
|
||||
unsigned long irqflags;
|
||||
struct wake_lock *lock;
|
||||
bool print_expired = true;
|
||||
|
||||
BUG_ON(type >= WAKE_LOCK_TYPE_COUNT);
|
||||
list_for_each_entry(lock, &active_wake_locks[type], link) {
|
||||
if (lock->flags & WAKE_LOCK_AUTO_EXPIRE) {
|
||||
long timeout = lock->expires - jiffies;
|
||||
if (timeout <= 0)
|
||||
pr_info("wake lock %s, expired\n", lock->name);
|
||||
else
|
||||
if (timeout > 0)
|
||||
pr_info("active wake lock %s, time left %ld\n",
|
||||
lock->name, timeout);
|
||||
} else
|
||||
else if (print_expired)
|
||||
pr_info("wake lock %s, expired\n", lock->name);
|
||||
} else {
|
||||
pr_info("active wake lock %s\n", lock->name);
|
||||
if (!debug_mask & DEBUG_EXPIRE)
|
||||
print_expired = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,6 +259,8 @@ long has_wake_lock(int type)
|
||||
unsigned long irqflags;
|
||||
spin_lock_irqsave(&list_lock, irqflags);
|
||||
ret = has_wake_lock_locked(type);
|
||||
if (ret && (debug_mask & DEBUG_SUSPEND) && type == WAKE_LOCK_SUSPEND)
|
||||
print_active_locks(type);
|
||||
spin_unlock_irqrestore(&list_lock, irqflags);
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user