From fbed3dc18e83eb9160b010c94a83421f06ce1d65 Mon Sep 17 00:00:00 2001 From: Alan Stern Date: Mon, 10 Sep 2007 11:31:43 -0400 Subject: [PATCH] --- yaml --- r: 67892 b: refs/heads/master c: 5ad4f71e2f19a06f738463da1f09ea7fda3a3db2 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/usb/core/driver.c | 9 +-------- trunk/drivers/usb/core/generic.c | 5 +++++ 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index ab661ffcd844..30cfb8e45db7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7477120e34eef65a530cfb3fea5fe612c89669e5 +refs/heads/master: 5ad4f71e2f19a06f738463da1f09ea7fda3a3db2 diff --git a/trunk/drivers/usb/core/driver.c b/trunk/drivers/usb/core/driver.c index 8da4801bb922..ca43a6f824ab 100644 --- a/trunk/drivers/usb/core/driver.c +++ b/trunk/drivers/usb/core/driver.c @@ -1088,15 +1088,8 @@ static int usb_suspend_both(struct usb_device *udev, pm_message_t msg) break; } } - if (status == 0) { - - /* Non-root devices don't need to do anything for FREEZE - * or PRETHAW. */ - if (udev->parent && (msg.event == PM_EVENT_FREEZE || - msg.event == PM_EVENT_PRETHAW)) - goto done; + if (status == 0) status = usb_suspend_device(udev, msg); - } /* If the suspend failed, resume interfaces that did get suspended */ if (status != 0) { diff --git a/trunk/drivers/usb/core/generic.c b/trunk/drivers/usb/core/generic.c index 9148b69785c5..c1cb94e9f242 100644 --- a/trunk/drivers/usb/core/generic.c +++ b/trunk/drivers/usb/core/generic.c @@ -206,8 +206,13 @@ static int generic_suspend(struct usb_device *udev, pm_message_t msg) */ if (!udev->parent) rc = hcd_bus_suspend(udev); + + /* Non-root devices don't need to do anything for FREEZE or PRETHAW */ + else if (msg.event == PM_EVENT_FREEZE || msg.event == PM_EVENT_PRETHAW) + rc = 0; else rc = usb_port_suspend(udev); + return rc; }