[PATCH] USB: ehci-pci: Check and enable wakeup capability

September 13th, 2011 - 07:20 pm ET by Sameer Nanda | Report spam
If the PORTWAK register is implemented and at least one of the physical
ports is enabled for wakeup, enable wakeup for the ehci-pci device.

Signed-off-by: Sameer Nanda <snanda@chromium.org>

drivers/usb/host/ehci-pci.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
index 1102ce6..ce6f784 100644
a/drivers/usb/host/ehci-pci.c
+++ b/drivers/usb/host/ehci-pci.c
@@ -285,6 +285,16 @@ static int ehci_pci_setup(struct usb_hcd *hcd)
dev_warn(&pdev->dev, "Enabling legacy PCI PM");
device_set_wakeup_capable(&pdev->dev, 1);
}
+ } else {
+ u16 port_wake;
+
+ pci_read_config_word(pdev, 0x62, &port_wake);
+
+ /* If PORTWAK register is implemented and at least one USB
+ * port is enabled for wakeup, enable wakeup.
+ */
+ if (port_wake & 0x0001 && port_wake & 0xfffe)
+ device_set_wakeup_enable(&pdev->dev, 1);
}

#ifdef CONFIG_USB_SUSPEND
1.7.3.1

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
email Follow the discussionReplies 1 replyReplies Make a reply

Replies

#1 Alan Stern
September 14th, 2011 - 11:10 am ET | Report spam
On Tue, 13 Sep 2011, Sameer Nanda wrote:

If the PORTWAK register is implemented and at least one of the physical
ports is enabled for wakeup, enable wakeup for the ehci-pci device.



NAK. Our current policy is that devices do not get enabled for wakeup
by default unless users expect it (things like keyboards and power
buttons, maybe LAN interfaces).

One certainly can question this policy. It might make sense to enable
wakeup for devices that don't generate wakeup events on their own but
merely act as bridges for other devices. By this reasoning, all USB
host controllers should always be enabled for wakeup by default -- not
just some of the PCI-based controllers. But this is a separate matter
and should be discussed on the mailing list.

Alan Stern

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Similar topics