Loading drivers/pci/pci.c +5 −0 Original line number Diff line number Diff line Loading @@ -1744,6 +1744,11 @@ int pci_prepare_to_sleep(struct pci_dev *dev) if (target_state == PCI_POWER_ERROR) return -EIO; /* Some devices mustn't be in D3 during system sleep */ if (target_state == PCI_D3hot && (dev->dev_flags & PCI_DEV_FLAGS_NO_D3_DURING_SLEEP)) return 0; pci_enable_wake(dev, target_state, device_may_wakeup(&dev->dev)); error = pci_set_power_state(dev, target_state); Loading drivers/pci/quirks.c +26 −0 Original line number Diff line number Diff line Loading @@ -2929,6 +2929,32 @@ static void __devinit disable_igfx_irq(struct pci_dev *dev) DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0102, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); /* * The Intel 6 Series/C200 Series chipset's EHCI controllers on many * ASUS motherboards will cause memory corruption or a system crash * if they are in D3 while the system is put into S3 sleep. */ static void __devinit asus_ehci_no_d3(struct pci_dev *dev) { const char *sys_info; static const char good_Asus_board[] = "P8Z68-V"; if (dev->dev_flags & PCI_DEV_FLAGS_NO_D3_DURING_SLEEP) return; if (dev->subsystem_vendor != PCI_VENDOR_ID_ASUSTEK) return; sys_info = dmi_get_system_info(DMI_BOARD_NAME); if (sys_info && memcmp(sys_info, good_Asus_board, sizeof(good_Asus_board) - 1) == 0) return; dev_info(&dev->dev, "broken D3 during system sleep on ASUS\n"); dev->dev_flags |= PCI_DEV_FLAGS_NO_D3_DURING_SLEEP; device_set_wakeup_capable(&dev->dev, false); } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1c26, asus_ehci_no_d3); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1c2d, asus_ehci_no_d3); static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end) { Loading drivers/usb/class/cdc-wdm.c +9 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,15 @@ static const struct usb_device_id wdm_ids[] = { .bInterfaceSubClass = 1, .bInterfaceProtocol = 9, /* NOTE: CDC ECM control interface! */ }, { /* Vodafone/Huawei K5005 (12d1:14c8) and similar modems */ .match_flags = USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_INT_INFO, .idVendor = HUAWEI_VENDOR_ID, .bInterfaceClass = USB_CLASS_VENDOR_SPEC, .bInterfaceSubClass = 1, .bInterfaceProtocol = 57, /* NOTE: CDC ECM control interface! */ }, { } }; Loading drivers/usb/core/hcd-pci.c +0 −9 Original line number Diff line number Diff line Loading @@ -493,15 +493,6 @@ static int hcd_pci_suspend_noirq(struct device *dev) pci_save_state(pci_dev); /* * Some systems crash if an EHCI controller is in D3 during * a sleep transition. We have to leave such controllers in D0. */ if (hcd->broken_pci_sleep) { dev_dbg(dev, "Staying in PCI D0\n"); return retval; } /* If the root hub is dead rather than suspended, disallow remote * wakeup. usb_hc_died() should ensure that both hosts are marked as * dying, so we only need to check the primary roothub. Loading drivers/usb/gadget/atmel_usba_udc.c +0 −6 Original line number Diff line number Diff line Loading @@ -599,12 +599,6 @@ usba_ep_enable(struct usb_ep *_ep, const struct usb_endpoint_descriptor *desc) spin_lock_irqsave(&ep->udc->lock, flags); if (ep->ep.desc) { spin_unlock_irqrestore(&ep->udc->lock, flags); DBG(DBG_ERR, "ep%d already enabled\n", ep->index); return -EBUSY; } ep->ep.desc = desc; ep->ep.maxpacket = maxpacket; Loading Loading
drivers/pci/pci.c +5 −0 Original line number Diff line number Diff line Loading @@ -1744,6 +1744,11 @@ int pci_prepare_to_sleep(struct pci_dev *dev) if (target_state == PCI_POWER_ERROR) return -EIO; /* Some devices mustn't be in D3 during system sleep */ if (target_state == PCI_D3hot && (dev->dev_flags & PCI_DEV_FLAGS_NO_D3_DURING_SLEEP)) return 0; pci_enable_wake(dev, target_state, device_may_wakeup(&dev->dev)); error = pci_set_power_state(dev, target_state); Loading
drivers/pci/quirks.c +26 −0 Original line number Diff line number Diff line Loading @@ -2929,6 +2929,32 @@ static void __devinit disable_igfx_irq(struct pci_dev *dev) DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0102, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); /* * The Intel 6 Series/C200 Series chipset's EHCI controllers on many * ASUS motherboards will cause memory corruption or a system crash * if they are in D3 while the system is put into S3 sleep. */ static void __devinit asus_ehci_no_d3(struct pci_dev *dev) { const char *sys_info; static const char good_Asus_board[] = "P8Z68-V"; if (dev->dev_flags & PCI_DEV_FLAGS_NO_D3_DURING_SLEEP) return; if (dev->subsystem_vendor != PCI_VENDOR_ID_ASUSTEK) return; sys_info = dmi_get_system_info(DMI_BOARD_NAME); if (sys_info && memcmp(sys_info, good_Asus_board, sizeof(good_Asus_board) - 1) == 0) return; dev_info(&dev->dev, "broken D3 during system sleep on ASUS\n"); dev->dev_flags |= PCI_DEV_FLAGS_NO_D3_DURING_SLEEP; device_set_wakeup_capable(&dev->dev, false); } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1c26, asus_ehci_no_d3); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1c2d, asus_ehci_no_d3); static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end) { Loading
drivers/usb/class/cdc-wdm.c +9 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,15 @@ static const struct usb_device_id wdm_ids[] = { .bInterfaceSubClass = 1, .bInterfaceProtocol = 9, /* NOTE: CDC ECM control interface! */ }, { /* Vodafone/Huawei K5005 (12d1:14c8) and similar modems */ .match_flags = USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_INT_INFO, .idVendor = HUAWEI_VENDOR_ID, .bInterfaceClass = USB_CLASS_VENDOR_SPEC, .bInterfaceSubClass = 1, .bInterfaceProtocol = 57, /* NOTE: CDC ECM control interface! */ }, { } }; Loading
drivers/usb/core/hcd-pci.c +0 −9 Original line number Diff line number Diff line Loading @@ -493,15 +493,6 @@ static int hcd_pci_suspend_noirq(struct device *dev) pci_save_state(pci_dev); /* * Some systems crash if an EHCI controller is in D3 during * a sleep transition. We have to leave such controllers in D0. */ if (hcd->broken_pci_sleep) { dev_dbg(dev, "Staying in PCI D0\n"); return retval; } /* If the root hub is dead rather than suspended, disallow remote * wakeup. usb_hc_died() should ensure that both hosts are marked as * dying, so we only need to check the primary roothub. Loading
drivers/usb/gadget/atmel_usba_udc.c +0 −6 Original line number Diff line number Diff line Loading @@ -599,12 +599,6 @@ usba_ep_enable(struct usb_ep *_ep, const struct usb_endpoint_descriptor *desc) spin_lock_irqsave(&ep->udc->lock, flags); if (ep->ep.desc) { spin_unlock_irqrestore(&ep->udc->lock, flags); DBG(DBG_ERR, "ep%d already enabled\n", ep->index); return -EBUSY; } ep->ep.desc = desc; ep->ep.maxpacket = maxpacket; Loading