| From ccdb6be9ec6580ef69f68949ebe26e0fb58a6fb0 Mon Sep 17 00:00:00 2001 |
| From: Alan Stern <stern@rowland.harvard.edu> |
| Date: Fri, 21 Oct 2016 16:49:07 -0400 |
| Subject: USB: UHCI: report non-PME wakeup signalling for Intel hardware |
| |
| From: Alan Stern <stern@rowland.harvard.edu> |
| |
| commit ccdb6be9ec6580ef69f68949ebe26e0fb58a6fb0 upstream. |
| |
| The UHCI controllers in Intel chipsets rely on a platform-specific non-PME |
| mechanism for wakeup signalling. They can generate wakeup signals even |
| though they don't support PME. |
| |
| We need to let the USB core know this so that it will enable runtime |
| suspend for UHCI controllers. |
| |
| Signed-off-by: Alan Stern <stern@rowland.harvard.edu> |
| Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> |
| Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/usb/host/uhci-pci.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/drivers/usb/host/uhci-pci.c |
| +++ b/drivers/usb/host/uhci-pci.c |
| @@ -129,6 +129,10 @@ static int uhci_pci_init(struct usb_hcd |
| if (to_pci_dev(uhci_dev(uhci))->vendor == PCI_VENDOR_ID_HP) |
| uhci->wait_for_hp = 1; |
| |
| + /* Intel controllers use non-PME wakeup signalling */ |
| + if (to_pci_dev(uhci_dev(uhci))->vendor == PCI_VENDOR_ID_INTEL) |
| + device_set_run_wake(uhci_dev(uhci), 1); |
| + |
| /* Set up pointers to PCI-specific functions */ |
| uhci->reset_hc = uhci_pci_reset_hc; |
| uhci->check_and_reset_hc = uhci_pci_check_and_reset_hc; |