Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9320f95c authored by xing wei's avatar xing wei Committed by Rafael J. Wysocki
Browse files

PM / sleep: Print active wakeup sources when blocking on wakeup_count reads



If there are any wakeup events being processed, read operation
on /sys/power/wakeup_count will be blocked, so print the names
of all active wakeup sources to help to find out who is preventing
system suspend from triggering.

While at it change pr_info() in pm_print_active_wakeup_sources()
to pr_debug() to avoid excessive log noise.

Signed-off-by: default avatarxing wei <xing.wei@intel.com>
[ rjw: Subject & changelog ]
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent b53f40db
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -811,7 +811,7 @@ void pm_print_active_wakeup_sources(void)
	rcu_read_lock();
	list_for_each_entry_rcu(ws, &wakeup_sources, entry) {
		if (ws->active) {
			pr_info("active wakeup source: %s\n", ws->name);
			pr_debug("active wakeup source: %s\n", ws->name);
			active = 1;
		} else if (!active &&
			   (!last_activity_ws ||
@@ -822,7 +822,7 @@ void pm_print_active_wakeup_sources(void)
	}

	if (!active && last_activity_ws)
		pr_info("last active wakeup source: %s\n",
		pr_debug("last active wakeup source: %s\n",
			last_activity_ws->name);
	rcu_read_unlock();
}
@@ -905,7 +905,7 @@ bool pm_get_wakeup_count(unsigned int *count, bool block)
			split_counters(&cnt, &inpr);
			if (inpr == 0 || signal_pending(current))
				break;

			pm_print_active_wakeup_sources();
			schedule();
		}
		finish_wait(&wakeup_count_wait_queue, &wait);