aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/usb/zaurus.c
diff options
context:
space:
mode:
authorSarah Sharp <[email protected]>2012-04-23 17:08:51 +0000
committerSarah Sharp <[email protected]>2012-05-18 22:42:55 +0000
commite1f12eb6ba6f1e74007eb01ed26fad7c5239d62b (patch)
tree4c6753fc5091cd31b8cc0029e41f86f4f8c3b195 /drivers/net/usb/zaurus.c
parentxhci: Add Intel U1/U2 timeout policy. (diff)
downloadkernel-e1f12eb6ba6f1e74007eb01ed26fad7c5239d62b.tar.gz
kernel-e1f12eb6ba6f1e74007eb01ed26fad7c5239d62b.zip
USB: Disable hub-initiated LPM for comms devices.
Hub-initiated LPM is not good for USB communications devices. Comms devices should be able to tell when their link can go into a lower power state, because they know when an incoming transmission is finished. Ideally, these devices would slam their links into a lower power state, using the device-initiated LPM, after finishing the last packet of their data transfer. If we enable the idle timeouts for the parent hubs to enable hub-initiated LPM, we will get a lot of useless LPM packets on the bus as the devices reject LPM transitions when they're in the middle of receiving data. Worse, some devices might blindly accept the hub-initiated LPM and power down their radios while they're in the middle of receiving a transmission. The Intel Windows folks are disabling hub-initiated LPM for all USB communications devices under a xHCI USB 3.0 host. In order to keep the Linux behavior as close as possible to Windows, we need to do the same in Linux. Set the disable_hub_initiated_lpm flag for for all USB communications drivers. I know there aren't currently any USB 3.0 devices that implement these class specifications, but we should be ready if they do. Signed-off-by: Sarah Sharp <[email protected]> Cc: Marcel Holtmann <[email protected]> Cc: Gustavo Padovan <[email protected]> Cc: Johan Hedberg <[email protected]> Cc: Hansjoerg Lipp <[email protected]> Cc: Tilman Schmidt <[email protected]> Cc: Karsten Keil <[email protected]> Cc: Peter Korsgaard <[email protected]> Cc: Jan Dumon <[email protected]> Cc: Petko Manolov <[email protected]> Cc: Steve Glendinning <[email protected]> Cc: "John W. Linville" <[email protected]> Cc: Kalle Valo <[email protected]> Cc: "Luis R. Rodriguez" <[email protected]> Cc: Jouni Malinen <[email protected]> Cc: Vasanthakumar Thiagarajan <[email protected]> Cc: Senthil Balasubramanian <[email protected]> Cc: Christian Lamparter <[email protected]> Cc: Brett Rudley <[email protected]> Cc: Roland Vossen <[email protected]> Cc: Arend van Spriel <[email protected]> Cc: "Franky (Zhenhui) Lin" <[email protected]> Cc: Kan Yan <[email protected]> Cc: Dan Williams <[email protected]> Cc: Jussi Kivilinna <[email protected]> Cc: Ivo van Doorn <[email protected]> Cc: Gertjan van Wingerde <[email protected]> Cc: Helmut Schaa <[email protected]> Cc: Herton Ronaldo Krzesinski <[email protected]> Cc: Hin-Tak Leung <[email protected]> Cc: Larry Finger <[email protected]> Cc: Chaoming Li <[email protected]> Cc: Daniel Drake <[email protected]> Cc: Ulrich Kunitz <[email protected]> Signed-off-by: Sarah Sharp <[email protected]>
Diffstat (limited to 'drivers/net/usb/zaurus.c')
-rw-r--r--drivers/net/usb/zaurus.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/usb/zaurus.c b/drivers/net/usb/zaurus.c
index 34db195fb8b0..35c90307d473 100644
--- a/drivers/net/usb/zaurus.c
+++ b/drivers/net/usb/zaurus.c
@@ -377,6 +377,7 @@ static struct usb_driver zaurus_driver = {
.disconnect = usbnet_disconnect,
.suspend = usbnet_suspend,
.resume = usbnet_resume,
+ .disable_hub_initiated_lpm = 1,
};
module_usb_driver(zaurus_driver);