@@ -89,6 +89,17 @@ Description:
attribute is not present. If the device is not enabled to wake
up the system from sleep states, this attribute is empty.
+What: /sys/devices/.../power/wakeup_event_count
+Date: July 2019
+Contact: Ravi Chandra sadineni <ravisadineni@chromium.org>
+Description:
+ The /sys/devices/.../wakeup_event_count attribute contains the
+ number of signaled wakeup events associated with the device.
+ This attribute is read-only. If the device is not capable to
+ wake up the system from sleep states, this attribute is not
+ present. If the device is not enabled to wake up the system
+ from sleep states, this attribute returns an empty line.
+
What: /sys/devices/.../power/wakeup_active_count
Date: September 2010
Contact: Rafael J. Wysocki <rjw@rjwysocki.net>
@@ -357,6 +357,26 @@ static ssize_t wakeup_count_show(struct device *dev,
static DEVICE_ATTR_RO(wakeup_count);
+static ssize_t wakeup_event_count_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ unsigned long count = 0;
+ bool enabled = false;
+
+ spin_lock_irq(&dev->power.lock);
+ if (dev->power.wakeup) {
+ count = dev->power.wakeup->event_count;
+ enabled = true;
+ }
+ spin_unlock_irq(&dev->power.lock);
+ if (enabled)
+ return sprintf(buf, "%lu\n", count);
+ else
+ return sprintf(buf, "\n");
+}
+
+static DEVICE_ATTR_RO(wakeup_event_count);
+
static ssize_t wakeup_active_count_show(struct device *dev,
struct device_attribute *attr,
char *buf)
@@ -561,6 +581,7 @@ static struct attribute *wakeup_attrs[] = {
#ifdef CONFIG_PM_SLEEP
&dev_attr_wakeup.attr,
&dev_attr_wakeup_count.attr,
+ &dev_attr_wakeup_event_count.attr,
&dev_attr_wakeup_active_count.attr,
&dev_attr_wakeup_expire_count.attr,
&dev_attr_wakeup_active.attr,
Device level event_count can help user level daemon to track if a praticular device has seen an wake interrupt during a suspend resume cycle. Thus expose it via sysfs. Signed-off-by: Ravi Chandra Sadineni <ravisadineni@chromium.org> --- V2: Address comments from patchset 1. Documentation/ABI/testing/sysfs-devices-power | 11 ++++++++++ drivers/base/power/sysfs.c | 21 +++++++++++++++++++ 2 files changed, 32 insertions(+)