1
0
Fork 0
alistair23-linux/include/linux/usb
Alan Stern c2fb8a3fa2 USB: add NO_D3_DURING_SLEEP flag and revert 151b612847
This patch (as1558) fixes a problem affecting several ASUS computers:
The machine crashes or corrupts memory when going into suspend if the
ehci-hcd driver is bound to any controllers.  Users have been forced
to unbind or unload ehci-hcd before putting their systems to sleep.

After extensive testing, it was determined that the machines don't
like going into suspend when any EHCI controllers are in the PCI D3
power state.  Presumably this is a firmware bug, but there's nothing
we can do about it except to avoid putting the controllers in D3
during system sleep.

The patch adds a new flag to indicate whether the problem is present,
and avoids changing the controller's power state if the flag is set.
Runtime suspend is unaffected; this matters only for system suspend.
However as a side effect, the controller will not respond to remote
wakeup requests while the system is asleep.  Hence USB wakeup is not
functional -- but of course, this is already true in the current state
of affairs.

A similar patch has already been applied as commit
151b612847 (USB: EHCI: fix crash during
suspend on ASUS computers).  The patch supersedes that one and reverts
it.  There are two differences:

	The old patch added the flag at the USB level; this patch
	adds it at the PCI level.

	The old patch applied to all chipsets with the same vendor,
	subsystem vendor, and product IDs; this patch makes an
	exception for a known-good system (based on DMI information).

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Tested-by: Dâniel Fraga <fragabr@gmail.com>
Tested-by: Andrey Rahmatullin <wrar@wrar.name>
Tested-by: Steven Rostedt <rostedt@goodmis.org>
Cc: stable <stable@vger.kernel.org>
Reviewed-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-06-13 13:11:39 -07:00
..
Kbuild
association.h
atmel_usba_udc.h
audio-v2.h usb: uac2: Add ACHeader and FormatType descriptor 2012-02-15 10:10:11 +02:00
audio.h
c67x00.h
cdc-wdm.h usb: cdc-wdm: adding usb_cdc_wdm_register subdriver support 2012-03-08 13:06:48 -08:00
cdc.h
ch9.h USB: Add macros for interrupt endpoint types. 2012-05-18 15:42:02 -07:00
ch11.h USB: Add support to enable/disable USB3 link states. 2012-05-18 15:41:58 -07:00
chipidea.h usb: chipidea: add power_budget limit for ehci to platform data 2012-05-11 16:59:35 -07:00
composite.h usb: gadget: composite: add iSerialNumber to usb_composite_driver 2012-05-10 12:22:43 -07:00
ehci_def.h
ehci_pdriver.h USB: EHCI: Add a generic platform device driver 2012-03-15 12:42:07 -07:00
functionfs.h FunctionFS: enable multiple functions 2012-05-14 09:25:44 -07:00
g_hid.h
g_printer.h
gadget.h usb: gadget: add generic map/unmap request utilities 2012-02-28 14:48:23 +02:00
gadgetfs.h
gpio_vbus.h USB: gpio_vbus: wakeup support on GPIO VBUS interrupts 2012-05-17 11:20:34 -07:00
hcd.h USB: add NO_D3_DURING_SLEEP flag and revert 151b612847 2012-06-13 13:11:39 -07:00
input.h
intel_mid_otg.h usb: otg: Rename otg_transceiver to usb_phy 2012-02-13 13:34:36 +02:00
iowarrior.h
irda.h
isp116x.h
isp1301.h USB: Add driver for NXP ISP1301 USB transceiver 2012-05-01 13:33:02 -04:00
isp1362.h
isp1760.h
m66592.h
midi.h
msm_hsusb.h usb: otg: msm: Start using struct usb_otg 2012-02-13 13:35:38 +02:00
msm_hsusb_hw.h
musb.h
net2280.h
ohci_pdriver.h USB: OHCI: Add a generic platform device driver 2012-03-15 12:41:58 -07:00
otg.h usb: musb: wake the device before ulpi transfers 2012-04-10 19:11:48 +03:00
quirks.h
r8a66597.h usb: gadget: r8a66597-udc: add support for SUDMAC 2011-10-13 20:38:39 +03:00
renesas_usbhs.h usb: renesas_usbhs: add support for SUDMAC 2012-01-24 11:33:04 +02:00
rndis_host.h usb/net: rndis: break out <linux/rndis.h> defines 2012-05-12 15:02:22 -04:00
serial.h USB: serial: hook up reset_resume callback 2012-05-15 15:40:00 -07:00
sl811.h
storage.h usb/storage: remove Filler member from struct bulk_cs_wrap 2012-02-28 11:11:22 -08:00
tmc.h
uas.h usb/uas: add usb_pipe_usage_descriptor 2012-02-02 14:51:19 -08:00
ulpi.h usb: otg: ulpi: Start using struct usb_otg 2012-02-13 13:35:56 +02:00
usbnet.h usbnet: fix skb traversing races during unlink(v2) 2012-05-15 13:41:42 -04:00
video.h
wusb-wa.h
wusb.h