From 1eda4433d4dbcfa649924db92214a11d82f3ca36 Mon Sep 17 00:00:00 2001 From: Sarah Sharp Date: Thu, 30 Dec 2010 13:27:36 -0800 Subject: [PATCH] --- yaml --- r: 235447 b: refs/heads/master c: 0c9ffe0f6286a02bf82f8d7fb7274aec2ad977f1 h: refs/heads/master i: 235445: 8b3b68ed272df899d655587f82c8d653ce43286b 235443: 8693f2720be21aef7d03e2169a173ba2c87f9d48 235439: 1b27a416a211e3ada59ecadd511861b931cd0e71 v: v3 --- [refs] | 2 +- trunk/drivers/usb/core/hub.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 1f8adb28807a..d24335bfc647 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 131dec344d5e41f01e4791aa4c80eb4bdb1e5274 +refs/heads/master: 0c9ffe0f6286a02bf82f8d7fb7274aec2ad977f1 diff --git a/trunk/drivers/usb/core/hub.c b/trunk/drivers/usb/core/hub.c index 13aafd1b45e5..0968157f3beb 100644 --- a/trunk/drivers/usb/core/hub.c +++ b/trunk/drivers/usb/core/hub.c @@ -1290,8 +1290,14 @@ static int hub_probe(struct usb_interface *intf, const struct usb_device_id *id) desc = intf->cur_altsetting; hdev = interface_to_usbdev(intf); - /* Hubs have proper suspend/resume support */ - usb_enable_autosuspend(hdev); + /* Hubs have proper suspend/resume support. USB 3.0 device suspend is + * different from USB 2.0/1.1 device suspend, and unfortunately we + * don't support it yet. So leave autosuspend disabled for USB 3.0 + * external hubs for now. Enable autosuspend for USB 3.0 roothubs, + * since that isn't a "real" hub. + */ + if (!hub_is_superspeed(hdev) || !hdev->parent) + usb_enable_autosuspend(hdev); if (hdev->level == MAX_TOPO_LEVEL) { dev_err(&intf->dev,