From 568e99b2f679cb2cd21fbd0ea4a21751b5d4d7e2 Mon Sep 17 00:00:00 2001 From: David Brownell Date: Tue, 27 Sep 2005 10:38:54 -0700 Subject: [PATCH] --- yaml --- r: 10775 b: refs/heads/master c: b13296c6617f22e8c0174a7af32780617db0e680 h: refs/heads/master i: 10773: bef9ba6c26ae7a332914bd68e106a114de151195 10771: 6801eaa69ed57c51cbe81899ff64196e8f101f64 10767: d53ed5689a316f08bcb0368572566b15f64a3020 v: v3 --- [refs] | 2 +- trunk/drivers/usb/core/hcd.c | 28 ++++++++++++---------------- trunk/drivers/usb/core/urb.c | 3 ++- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/[refs] b/[refs] index 35c118384803..4c2a9e9031cf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5edbfb7c8af0577097dae87cdd4dfdba82bb9579 +refs/heads/master: b13296c6617f22e8c0174a7af32780617db0e680 diff --git a/trunk/drivers/usb/core/hcd.c b/trunk/drivers/usb/core/hcd.c index de59bb515315..b7bb8dd1894a 100644 --- a/trunk/drivers/usb/core/hcd.c +++ b/trunk/drivers/usb/core/hcd.c @@ -458,22 +458,18 @@ static int rh_call_control (struct usb_hcd *hcd, struct urb *urb) default: /* non-generic request */ - if (HC_IS_SUSPENDED (hcd->state)) - status = -EAGAIN; - else { - switch (typeReq) { - case GetHubStatus: - case GetPortStatus: - len = 4; - break; - case GetHubDescriptor: - len = sizeof (struct usb_hub_descriptor); - break; - } - status = hcd->driver->hub_control (hcd, - typeReq, wValue, wIndex, - tbuf, wLength); + switch (typeReq) { + case GetHubStatus: + case GetPortStatus: + len = 4; + break; + case GetHubDescriptor: + len = sizeof (struct usb_hub_descriptor); + break; } + status = hcd->driver->hub_control (hcd, + typeReq, wValue, wIndex, + tbuf, wLength); break; error: /* "protocol stall" on error */ @@ -487,7 +483,7 @@ static int rh_call_control (struct usb_hcd *hcd, struct urb *urb) "CTRL: TypeReq=0x%x val=0x%x " "idx=0x%x len=%d ==> %d\n", typeReq, wValue, wIndex, - wLength, urb->status); + wLength, status); } } if (len) { diff --git a/trunk/drivers/usb/core/urb.c b/trunk/drivers/usb/core/urb.c index b32898e0a27d..f2a1fed2a802 100644 --- a/trunk/drivers/usb/core/urb.c +++ b/trunk/drivers/usb/core/urb.c @@ -237,7 +237,8 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags) (dev->state < USB_STATE_DEFAULT) || (!dev->bus) || (dev->devnum <= 0)) return -ENODEV; - if (dev->state == USB_STATE_SUSPENDED) + if (dev->bus->controller->power.power_state.event != PM_EVENT_ON + || dev->state == USB_STATE_SUSPENDED) return -EHOSTUNREACH; if (!(op = dev->bus->op) || !op->submit_urb) return -ENODEV;