From: Zhao Yakui <yakui.zhao@intel.com>
To: David Brownell <david-b@pacbell.net>
Cc: linux-pm@lists.linux-foundation.org,
Thomas Renninger <trenn@suse.de>,
linux-acpi@vger.kernel.org
Subject: Re: [patch 2.6.25-rc6 5/7] ACPI sets up device.power.can_wakeup flags
Date: Fri, 21 Mar 2008 15:43:06 +0800 [thread overview]
Message-ID: <1206085386.4109.34.camel@localhost.localdomain> (raw)
In-Reply-To: <200803201420.40660.david-b@pacbell.net>
On Thu, 2008-03-20 at 14:20 -0700, David Brownell wrote:
> This exports the "acpi_device.wakeup.flags.valid" flag to the driver
> model as "device.power.can_wakeup". That is, each "ACPI device" in
> the /proc/acpi/wakeup file that corresponds to a "real" device will
> initialize the can_wakeup flag to true.
>
For the button device it is good to set the wakeup flag.
Good. When the acpi device supports the _PRW object, the wakeup flag bit
is set.( Can_wakeup; should_wakeup).
> A separate patch is needed to make ACPI pay attention to the userspace
> input: devices that can_wakeup have a should_wakeup flag, initially
> true, which is settable via sysfs and tested using device_may_wakeup().
> That's intended to be the primary policy input to the system, not the
> ACPI-specific /proc/acpi/wakeup file.
> Note also that the ACPI tables list only motherboard devices, but many
> systems include more peripherals than those. While the USB framework
> handles USB peripherals, nothing in Linux currently sets those flags
> for wakeup-capable devices on other expansion busses (like PCI).
>
> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
> ---
> drivers/acpi/button.c | 3 +++
> drivers/acpi/glue.c | 1 +
> drivers/acpi/power.c | 4 ++++
> 3 files changed, 8 insertions(+)
>
> --- g26.orig/drivers/acpi/button.c 2008-03-20 03:02:45.000000000 -0700
> +++ g26/drivers/acpi/button.c 2008-03-20 03:27:24.000000000 -0700
> @@ -476,6 +476,9 @@ static int acpi_button_add(struct acpi_d
> if (button->type == ACPI_BUTTON_TYPE_LID)
> acpi_lid_send_state(button);
>
> + /* for these devices the ACPI node *IS* the "physical" device */
> + device_init_wakeup(&device->dev, device->wakeup.flags.valid);
> +
> if (device->wakeup.flags.valid) {
> /* Button's GPE is run-wake GPE */
> acpi_set_gpe_type(device->wakeup.gpe_device,
> --- g26.orig/drivers/acpi/glue.c 2008-03-20 03:27:11.000000000 -0700
> +++ g26/drivers/acpi/glue.c 2008-03-20 03:27:25.000000000 -0700
> @@ -162,6 +162,7 @@ static int acpi_bind_one(struct device *
> if (!ACPI_FAILURE(status)) {
> int ret;
>
> + device_init_wakeup(dev, acpi_dev->wakeup.flags.valid);
> ret = sysfs_create_link(&dev->kobj, &acpi_dev->dev.kobj,
> "firmware_node");
> if (ret != 0)
> --- g26.orig/drivers/acpi/power.c 2008-03-20 03:02:45.000000000 -0700
> +++ g26/drivers/acpi/power.c 2008-03-20 03:27:25.000000000 -0700
> @@ -313,6 +313,7 @@ int acpi_enable_wakeup_device_power(stru
> ret = acpi_power_on(dev->wakeup.resources.handles[i], dev);
> if (ret) {
> printk(KERN_ERR PREFIX "Transition power state\n");
> + device_init_wakeup(&dev->dev, 0);
> dev->wakeup.flags.valid = 0;
> return -1;
> }
> @@ -322,6 +323,7 @@ int acpi_enable_wakeup_device_power(stru
> status = acpi_evaluate_object(dev->handle, "_PSW", &arg_list, NULL);
> if (ACPI_FAILURE(status) && (status != AE_NOT_FOUND)) {
> printk(KERN_ERR PREFIX "Evaluate _PSW\n");
> + device_init_wakeup(&dev->dev, 0);
> dev->wakeup.flags.valid = 0;
> ret = -1;
> }
> @@ -351,6 +353,7 @@ int acpi_disable_wakeup_device_power(str
> status = acpi_evaluate_object(dev->handle, "_PSW", &arg_list, NULL);
> if (ACPI_FAILURE(status) && (status != AE_NOT_FOUND)) {
> printk(KERN_ERR PREFIX "Evaluate _PSW\n");
> + device_init_wakeup(&dev->dev, 0);
> dev->wakeup.flags.valid = 0;
> return -1;
> }
> @@ -360,6 +363,7 @@ int acpi_disable_wakeup_device_power(str
> ret = acpi_power_off_device(dev->wakeup.resources.handles[i], dev);
> if (ret) {
> printk(KERN_ERR PREFIX "Transition power state\n");
> + device_init_wakeup(&dev->dev, 0);
> dev->wakeup.flags.valid = 0;
> return -1;
> }
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2008-03-21 7:55 UTC|newest]
Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-20 21:08 [patch 2.6.25-rc6 0/7] misc pm wake patches David Brownell
2008-03-20 21:09 ` [patch 2.6.25-rc6 1/7] crosslink ACPI and "real" device nodes David Brownell
2008-03-21 6:43 ` Zhao Yakui
2008-03-21 6:43 ` Zhao Yakui
2008-03-21 7:31 ` David Brownell
2008-03-21 8:34 ` Zhao Yakui
2008-03-21 9:04 ` David Brownell
2008-03-21 9:04 ` David Brownell
2008-03-21 8:34 ` Zhao Yakui
2008-03-21 7:31 ` David Brownell
2008-03-20 21:09 ` David Brownell
2008-03-20 21:10 ` [patch 2.6.25-rc6 2/7] acpi_pm_device_sleep_state() cleanup David Brownell
2008-03-20 21:10 ` David Brownell
2008-03-24 16:30 ` Pavel Machek
2008-03-24 16:30 ` [linux-pm] " Pavel Machek
2008-04-19 4:11 ` [RESEND patch 2.6.25] " David Brownell
2008-04-29 20:33 ` [RE-RESEND patch 2.6.25-git] " David Brownell
2008-04-29 20:33 ` David Brownell
2008-04-29 21:49 ` Rafael J. Wysocki
2008-04-29 22:12 ` David Brownell
2008-04-30 12:07 ` Rafael J. Wysocki
2008-04-30 12:07 ` Rafael J. Wysocki
2008-04-29 22:12 ` David Brownell
2008-04-29 21:49 ` Rafael J. Wysocki
2008-03-20 21:12 ` [patch 2.6.25-rc6 3/7] pci_choose_state() cleanup and fixes David Brownell
2008-03-20 21:12 ` David Brownell
2008-03-20 22:37 ` Rafael J. Wysocki
2008-03-20 23:03 ` David Brownell
2008-03-21 0:22 ` Rafael J. Wysocki
2008-03-21 0:55 ` [linux-pm] " Alan Stern
2008-03-21 1:47 ` Rafael J. Wysocki
2008-03-21 1:47 ` [linux-pm] " Rafael J. Wysocki
2008-03-21 8:15 ` David Brownell
2008-03-21 8:15 ` [linux-pm] " David Brownell
2008-03-21 16:23 ` Rafael J. Wysocki
2008-03-21 16:23 ` [linux-pm] " Rafael J. Wysocki
2008-03-22 17:55 ` David Brownell
2008-03-22 17:55 ` [linux-pm] " David Brownell
2008-03-22 18:11 ` Rafael J. Wysocki
2008-03-22 18:11 ` [linux-pm] " Rafael J. Wysocki
2008-03-22 18:29 ` David Brownell
2008-03-22 18:29 ` David Brownell
2008-03-21 0:55 ` Alan Stern
2008-03-21 7:53 ` David Brownell
2008-03-21 16:38 ` Rafael J. Wysocki
2008-03-22 17:49 ` David Brownell
2008-03-22 17:49 ` David Brownell
2008-03-22 18:34 ` Rafael J. Wysocki
2008-04-14 4:59 ` David Brownell
2008-04-14 4:59 ` David Brownell
2008-03-22 18:34 ` Rafael J. Wysocki
2008-03-21 16:38 ` Rafael J. Wysocki
2008-03-21 7:53 ` David Brownell
2008-03-21 0:22 ` Rafael J. Wysocki
2008-03-20 23:03 ` David Brownell
2008-03-20 22:37 ` Rafael J. Wysocki
2008-03-20 21:15 ` [patch 2.6.25-rc6 4/7] USB uses pci_choose_state() David Brownell
2008-03-20 21:15 ` David Brownell
2008-03-20 21:20 ` [patch 2.6.25-rc6 5/7] ACPI sets up device.power.can_wakeup flags David Brownell
2008-03-20 21:20 ` David Brownell
2008-03-21 7:43 ` Zhao Yakui
2008-03-21 7:43 ` Zhao Yakui [this message]
2008-04-19 4:14 ` [RESEND patch 2.6.25] " David Brownell
2008-04-22 2:48 ` Zhang Rui
2008-04-22 2:48 ` Zhang Rui
2008-04-19 4:14 ` David Brownell
2008-03-20 21:22 ` [patch 2.6.25-rc6 6/7] ACPI uses device_may_wakeup() policy inputs David Brownell
2008-03-20 21:22 ` David Brownell
2008-04-19 4:18 ` [RESEND patch 2.6.25] " David Brownell
2008-04-22 2:42 ` Zhang Rui
2008-04-22 2:42 ` Zhang Rui
2008-04-26 19:29 ` David Brownell
2008-04-26 19:29 ` David Brownell
2008-04-22 13:30 ` Zhao Yakui
2008-04-26 19:37 ` David Brownell
2008-04-28 12:48 ` Zhao Yakui
2008-04-28 12:48 ` Zhao Yakui
2008-04-28 8:50 ` Zhang Rui
2008-04-28 13:43 ` Alan Stern
2008-04-28 13:43 ` [linux-pm] " Alan Stern
2008-04-29 23:38 ` David Brownell
2008-04-29 23:38 ` [linux-pm] " David Brownell
2008-04-30 13:58 ` Alan Stern
2008-05-14 14:56 ` Pavel Machek
2008-05-14 14:56 ` Pavel Machek
2008-04-30 13:58 ` Alan Stern
2008-04-28 22:28 ` David Brownell
2008-04-28 22:28 ` David Brownell
2008-04-28 8:50 ` Zhang Rui
2008-04-28 21:35 ` Henrique de Moraes Holschuh
2008-04-28 22:20 ` David Brownell
2008-04-28 22:54 ` Henrique de Moraes Holschuh
2008-04-28 22:54 ` Henrique de Moraes Holschuh
2008-04-29 0:20 ` David Brownell
2008-04-29 0:20 ` David Brownell
2008-04-29 20:32 ` David Brownell
2008-04-29 20:32 ` David Brownell
2008-04-28 22:20 ` David Brownell
2008-04-28 21:35 ` Henrique de Moraes Holschuh
2008-04-28 22:24 ` David Brownell
2008-04-28 22:24 ` David Brownell
2008-04-28 22:26 ` David Brownell
2008-04-28 22:26 ` David Brownell
2008-04-26 19:37 ` David Brownell
2008-04-22 13:30 ` Zhao Yakui
2008-03-20 21:25 ` [patch 2.6.25-rc6 7/7] PCI set up device.power.can_wakeup flags David Brownell
2008-03-20 21:53 ` [linux-pm] " Alan Stern
2008-03-20 22:22 ` David Brownell
2008-03-20 22:22 ` David Brownell
2008-03-20 21:53 ` Alan Stern
2008-03-20 21:25 ` David Brownell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1206085386.4109.34.camel@localhost.localdomain \
--to=yakui.zhao@intel.com \
--cc=david-b@pacbell.net \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=trenn@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.