From patchwork Wed Jul 24 17:43:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ravi Chandra Sadineni X-Patchwork-Id: 11057419 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1848F112C for ; Wed, 24 Jul 2019 17:44:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 059E328793 for ; Wed, 24 Jul 2019 17:44:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EDEBB287C6; Wed, 24 Jul 2019 17:44:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8717B28793 for ; Wed, 24 Jul 2019 17:44:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728689AbfGXRoG (ORCPT ); Wed, 24 Jul 2019 13:44:06 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:43856 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728643AbfGXRoF (ORCPT ); Wed, 24 Jul 2019 13:44:05 -0400 Received: by mail-pg1-f196.google.com with SMTP id f25so21568732pgv.10 for ; Wed, 24 Jul 2019 10:44:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=G9lU49cG6/hRnITUPOSlcSQtjOd+e+yyzQPDpfsDei4=; b=GpNZJR9U0PPJITNoGTIWWRn9Vn2XsEGbDyCmcGNwNF/sz55/o9KD0J2KYwqn17K2/R quDfeMA02NxFMytG/JlVYEjXXp9GoQDPu18Ip0y5OLR6w6RqdFSA+jaRvHGxFhYgGvBf Mp5SoOL8xgjx/tRjCjSDExhwsXBC9tIrox4TA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=G9lU49cG6/hRnITUPOSlcSQtjOd+e+yyzQPDpfsDei4=; b=lPxORwrnQ4H2YTeRotsnKauKtG+ikkJVmoCc7ZQ0vEgiHgKtloijOm/dQva8pingV6 SGIa77/H1PtN+0pqcdswplEf7gIq/+/mhxjcxCv1/RAgUk0BmFL2AfnAvmgigWxa8+yi nyS1qsmxlo3merqx0WyA9ddANSYkXuqJNRiUf3HTAPg4EuxStDEDq/gKpdcC3+Z9TVzS PAAer8xzzu/n+EUGQq32+Uq95RWMe3AuNunrAc5jNpGvfC/MgR2TZh1zTFodkioCxgD4 Cc52BuW2VkoYwPHqudekfUvaVamNf931tPZB3cuXGKqprW+D3c2eGs5zEChoKgWZuU/C hJKw== X-Gm-Message-State: APjAAAX3PSRXcqqnN/9iS/8H3wcdK3Ml54InRsYosqftuuvvbrcR/i1N iR17+vpPJKcsBBAcJJtN2lgt9A== X-Google-Smtp-Source: APXvYqynKJOgBLJ2ScfUkrL4/wbBb46E+bEiGcikbv9Bf0NuWSITesqAcKvvSAmBQ9OeNtScMC9nGQ== X-Received: by 2002:a17:90a:7148:: with SMTP id g8mr21874597pjs.51.1563990244431; Wed, 24 Jul 2019 10:44:04 -0700 (PDT) Received: from ravisadineni0.mtv.corp.google.com ([2620:15c:202:1:98d2:1663:78dd:3593]) by smtp.gmail.com with ESMTPSA id r6sm37620080pgl.74.2019.07.24.10.44.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jul 2019 10:44:03 -0700 (PDT) From: Ravi Chandra Sadineni To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, hpa@zytor.com, x86@kernel.org, rjw@rjwysocki.net, pavel@ucw.cz, len.brown@intel.com, gregkh@linuxfoundation.org, ravisadineni@chromium.org, bhe@redhat.com, dyoung@redhat.com, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, tbroch@chromium.org, trong@google.com Subject: [PATCH 1/2] power: sysfs: Add link to wakeup class device. Date: Wed, 24 Jul 2019 10:43:54 -0700 Message-Id: <20190724174355.255314-2-ravisadineni@chromium.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190724174355.255314-1-ravisadineni@chromium.org> References: <20190724174355.255314-1-ravisadineni@chromium.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP https://patchwork.kernel.org/patch/11045069/ creates a virtual device under wakeup class for each wake capable device exposing all related sysfs attributes. But there isn't a symlink from the actual device node to these virtual devices. This patch creates a symlink from the actual device to the corresponding wakeup_source device under wakeup class. Signed-off-by: Ravi Chandra Sadineni --- drivers/base/power/power.h | 2 ++ drivers/base/power/sysfs.c | 25 +++++++++++++++++++++++++ drivers/base/power/wakeup.c | 2 ++ 3 files changed, 29 insertions(+) diff --git a/drivers/base/power/power.h b/drivers/base/power/power.h index c511def48b48..32b0f5c080a9 100644 --- a/drivers/base/power/power.h +++ b/drivers/base/power/power.h @@ -67,6 +67,8 @@ extern void dpm_sysfs_remove(struct device *dev); extern void rpm_sysfs_remove(struct device *dev); extern int wakeup_sysfs_add(struct device *dev); extern void wakeup_sysfs_remove(struct device *dev); +extern void wakeup_source_sysfs_link_add(struct device *dev); +extern void wakeup_source_sysfs_link_remove(struct device *dev); extern int pm_qos_sysfs_add_resume_latency(struct device *dev); extern void pm_qos_sysfs_remove_resume_latency(struct device *dev); extern int pm_qos_sysfs_add_flags(struct device *dev); diff --git a/drivers/base/power/sysfs.c b/drivers/base/power/sysfs.c index d713738ce796..fbbdb7b16ac5 100644 --- a/drivers/base/power/sysfs.c +++ b/drivers/base/power/sysfs.c @@ -95,6 +95,7 @@ const char power_group_name[] = "power"; EXPORT_SYMBOL_GPL(power_group_name); +static const char wakeup_source_symlink_name[] = "wakeup_source"; static const char ctrl_auto[] = "auto"; static const char ctrl_on[] = "on"; @@ -679,6 +680,30 @@ int dpm_sysfs_add(struct device *dev) return rc; } +void wakeup_source_sysfs_link_add(struct device *dev) +{ + struct wakeup_source *ws; + int err; + + ws = dev->power.wakeup; + if (ws && ws->dev) { + err = sysfs_add_link_to_group(&dev->kobj, power_group_name, + &ws->dev->kobj, wakeup_source_symlink_name); + if (err) { + dev_err(dev, + "could not add %s symlink err %d\n", + wakeup_source_symlink_name, + err); + } + } +} + +void wakeup_source_sysfs_link_remove(struct device *dev) +{ + sysfs_remove_link_from_group(&dev->kobj, power_group_name, + wakeup_source_symlink_name); +} + int wakeup_sysfs_add(struct device *dev) { return sysfs_merge_group(&dev->kobj, &pm_wakeup_attr_group); diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c index fe779fe13a7f..87dfe401b035 100644 --- a/drivers/base/power/wakeup.c +++ b/drivers/base/power/wakeup.c @@ -270,6 +270,7 @@ static int device_wakeup_attach(struct device *dev, struct wakeup_source *ws) if (dev->power.wakeirq) device_wakeup_attach_irq(dev, dev->power.wakeirq); spin_unlock_irq(&dev->power.lock); + wakeup_source_sysfs_link_add(dev); return 0; } @@ -391,6 +392,7 @@ static struct wakeup_source *device_wakeup_detach(struct device *dev) ws = dev->power.wakeup; dev->power.wakeup = NULL; spin_unlock_irq(&dev->power.lock); + wakeup_source_sysfs_link_remove(dev); return ws; } From patchwork Wed Jul 24 17:43:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ravi Chandra Sadineni X-Patchwork-Id: 11057421 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6E121112C for ; Wed, 24 Jul 2019 17:44:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 59DFF28793 for ; Wed, 24 Jul 2019 17:44:14 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4B437287C6; Wed, 24 Jul 2019 17:44:14 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 657AD28793 for ; Wed, 24 Jul 2019 17:44:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728744AbfGXRoN (ORCPT ); Wed, 24 Jul 2019 13:44:13 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:37199 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728740AbfGXRoM (ORCPT ); Wed, 24 Jul 2019 13:44:12 -0400 Received: by mail-pl1-f196.google.com with SMTP id b3so22291483plr.4 for ; Wed, 24 Jul 2019 10:44:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=s/3YQsGCF6NcH7//5dLBEIyds71Voj/jHOMhbKfkGR4=; b=Kb8GVwAZza6hl3PZCnzUeA6hURNZbH3CVLF9QNPts0osPXZ/qQcCHLa11D2eSP3eom WvZIYX8BphU9gF1A19ypTMKgYAG1S1/LnmCgSn3dTDzfYOKHg4hxLcho0BKIMJpZBnsL 80JBEeef77z883yBAqjewhYvjeLZbT5tCkB/8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=s/3YQsGCF6NcH7//5dLBEIyds71Voj/jHOMhbKfkGR4=; b=fTADoSiqdMy4Nnv8QTTylTbR20f/QLc576aBSCkb8P6RkJo8AG0UCKtPU7zUTTt16v RdK+YVtaNwbHsadZxEuKRLmD3Zc3jE/cDKO95QE2ewKn6znfgTHWZiXsIGhsAXbNdLOV CH/vN9gE4YWY/qWpaIvJVU1qYzDrnTeva76ytso0L7+EAyGUt48kH8t9kk+GITCnXJsD kmEyMAkZ37fOKqh7KVAwGahYZtRKFQw7gI5YptdExaGECdmWr/SastPVc3NTKMpjB6DW 7sRdNrmsd9k8hk7M6SRpHrn29FHtMFQtqI9jd1EXJIXj0/pYd4dvKxtUXcEdo+ufFkC2 JWlw== X-Gm-Message-State: APjAAAVK+gRgo4U6q6Fl7Bgd6Yh6YMhZRv889UvsS75xxp+GMPp2Apvf Pgt6l/SJSWqtLHEdpTO1u4E83Q== X-Google-Smtp-Source: APXvYqwZwdbAwPGWjut8Is7iEGbkQyyvb+T46yB205plqWrKtD5lC6OdGPpoAeEgDzuwT0dUwJ4aEQ== X-Received: by 2002:a17:902:b905:: with SMTP id bf5mr81267550plb.342.1563990251878; Wed, 24 Jul 2019 10:44:11 -0700 (PDT) Received: from ravisadineni0.mtv.corp.google.com ([2620:15c:202:1:98d2:1663:78dd:3593]) by smtp.gmail.com with ESMTPSA id r6sm37620080pgl.74.2019.07.24.10.44.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jul 2019 10:44:11 -0700 (PDT) From: Ravi Chandra Sadineni To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, hpa@zytor.com, x86@kernel.org, rjw@rjwysocki.net, pavel@ucw.cz, len.brown@intel.com, gregkh@linuxfoundation.org, ravisadineni@chromium.org, bhe@redhat.com, dyoung@redhat.com, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, tbroch@chromium.org, trong@google.com Subject: [PATCH 2/2] power: sysfs: move wakeup related nodes in power dir to obselete. Date: Wed, 24 Jul 2019 10:43:55 -0700 Message-Id: <20190724174355.255314-3-ravisadineni@chromium.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190724174355.255314-1-ravisadineni@chromium.org> References: <20190724174355.255314-1-ravisadineni@chromium.org> MIME-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP As we have a new wakeup_source sub directory under power/ that exposes all the wakeup_source related attributes, move the documentation pointing to the existing attributes directly under power/ directory to obselete. Signed-off-by: Ravi Chandra Sadineni --- Documentation/ABI/obsolete/sysfs-device-power | 93 ++++++++++++++++ Documentation/ABI/testing/sysfs-devices-power | 102 ++---------------- 2 files changed, 101 insertions(+), 94 deletions(-) create mode 100644 Documentation/ABI/obsolete/sysfs-device-power diff --git a/Documentation/ABI/obsolete/sysfs-device-power b/Documentation/ABI/obsolete/sysfs-device-power new file mode 100644 index 000000000000..fd780cdcf2c3 --- /dev/null +++ b/Documentation/ABI/obsolete/sysfs-device-power @@ -0,0 +1,93 @@ +What: /sys/devices/.../power/wakeup_count +Date: September 2010 +Contact: Rafael J. Wysocki +Description: + The /sys/devices/.../wakeup_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 is empty. + +What: /sys/devices/.../power/wakeup_active_count +Date: September 2010 +Contact: Rafael J. Wysocki +Description: + The /sys/devices/.../wakeup_active_count attribute contains the + number of times the processing of wakeup events associated with + the device was completed (at the kernel level). 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 is empty. + +What: /sys/devices/.../power/wakeup_abort_count +Date: February 2012 +Contact: Rafael J. Wysocki +Description: + The /sys/devices/.../wakeup_abort_count attribute contains the + number of times the processing of a wakeup event associated with + the device might have aborted system transition into a sleep + state in progress. 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 is empty. + +What: /sys/devices/.../power/wakeup_expire_count +Date: February 2012 +Contact: Rafael J. Wysocki +Description: + The /sys/devices/.../wakeup_expire_count attribute contains the + number of times a wakeup event associated with the device has + been reported with a timeout that expired. 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 is empty. + +What: /sys/devices/.../power/wakeup_total_time_ms +Date: September 2010 +Contact: Rafael J. Wysocki +Description: + The /sys/devices/.../wakeup_total_time_ms attribute contains + the total time of processing wakeup events associated with the + device, in milliseconds. 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 is empty. + +What: /sys/devices/.../power/wakeup_max_time_ms +Date: September 2010 +Contact: Rafael J. Wysocki +Description: + The /sys/devices/.../wakeup_max_time_ms attribute contains + the maximum time of processing a single wakeup event associated + with the device, in milliseconds. 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 + is empty. + +What: /sys/devices/.../power/wakeup_last_time_ms +Date: September 2010 +Contact: Rafael J. Wysocki +Description: + The /sys/devices/.../wakeup_last_time_ms attribute contains + the value of the monotonic clock corresponding to the time of + signaling the last wakeup event associated with the device, in + milliseconds. This attribute is read-only. If the device is + not enabled 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 is empty. + +What: /sys/devices/.../power/wakeup_prevent_sleep_time_ms +Date: February 2012 +Contact: Rafael J. Wysocki +Description: + The /sys/devices/.../wakeup_prevent_sleep_time_ms attribute + contains the total time the device has been preventing + opportunistic transitions to sleep states from occurring. + 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 is empty. \ No newline at end of file diff --git a/Documentation/ABI/testing/sysfs-devices-power b/Documentation/ABI/testing/sysfs-devices-power index 80a00f7b6667..30aff73c1dbd 100644 --- a/Documentation/ABI/testing/sysfs-devices-power +++ b/Documentation/ABI/testing/sysfs-devices-power @@ -77,53 +77,6 @@ Description: device drivers and in that cases it should be safe to leave the default value. -What: /sys/devices/.../power/wakeup_count -Date: September 2010 -Contact: Rafael J. Wysocki -Description: - The /sys/devices/.../wakeup_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 is empty. - -What: /sys/devices/.../power/wakeup_active_count -Date: September 2010 -Contact: Rafael J. Wysocki -Description: - The /sys/devices/.../wakeup_active_count attribute contains the - number of times the processing of wakeup events associated with - the device was completed (at the kernel level). 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 is empty. - -What: /sys/devices/.../power/wakeup_abort_count -Date: February 2012 -Contact: Rafael J. Wysocki -Description: - The /sys/devices/.../wakeup_abort_count attribute contains the - number of times the processing of a wakeup event associated with - the device might have aborted system transition into a sleep - state in progress. 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 is empty. - -What: /sys/devices/.../power/wakeup_expire_count -Date: February 2012 -Contact: Rafael J. Wysocki -Description: - The /sys/devices/.../wakeup_expire_count attribute contains the - number of times a wakeup event associated with the device has - been reported with a timeout that expired. 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 is empty. - What: /sys/devices/.../power/wakeup_active Date: September 2010 Contact: Rafael J. Wysocki @@ -136,53 +89,6 @@ Description: enabled to wake up the system from sleep states, this attribute is empty. -What: /sys/devices/.../power/wakeup_total_time_ms -Date: September 2010 -Contact: Rafael J. Wysocki -Description: - The /sys/devices/.../wakeup_total_time_ms attribute contains - the total time of processing wakeup events associated with the - device, in milliseconds. 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 is empty. - -What: /sys/devices/.../power/wakeup_max_time_ms -Date: September 2010 -Contact: Rafael J. Wysocki -Description: - The /sys/devices/.../wakeup_max_time_ms attribute contains - the maximum time of processing a single wakeup event associated - with the device, in milliseconds. 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 - is empty. - -What: /sys/devices/.../power/wakeup_last_time_ms -Date: September 2010 -Contact: Rafael J. Wysocki -Description: - The /sys/devices/.../wakeup_last_time_ms attribute contains - the value of the monotonic clock corresponding to the time of - signaling the last wakeup event associated with the device, in - milliseconds. This attribute is read-only. If the device is - not enabled 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 is empty. - -What: /sys/devices/.../power/wakeup_prevent_sleep_time_ms -Date: February 2012 -Contact: Rafael J. Wysocki -Description: - The /sys/devices/.../wakeup_prevent_sleep_time_ms attribute - contains the total time the device has been preventing - opportunistic transitions to sleep states from occurring. - 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 is empty. - What: /sys/devices/.../power/autosuspend_delay_ms Date: September 2010 Contact: Alan Stern @@ -260,3 +166,11 @@ Description: This attribute has no effect on system-wide suspend/resume and hibernation. + +What: /sys/devices/.../power/wakeup_source +Date: July 2019 +Contact: Ravi Chandra Sadineni +Description: + The /sys/devices/.../power/wakeup_source directory contains + attributes allowing the user space to read several wakeup + related statistics of the device.