ChangeSet 1.924.3.8, 2002/11/30 22:09:07-08:00, whitney@math.berkeley.edu [PATCH] uhci-hcd.c shouldn't halt control endpoints uhci-hcd.c currently calls usb_endpoint_halt() in the td_error: path of uhci_result_control(). David Brownell told me that "control endpoints don't halt" and that this is wrong. The patch below fixes this and allows my Belkin Universal UPS to work. [Although it still prints lots of "drivers/usb/input/hid-core.c: ctrl urb status -32 received" messages.] Greg K-H, could you merge this if it looks right? David mentioned that the same bug exists in 2.4.x. diff -Nru a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c --- a/drivers/usb/host/uhci-hcd.c Sun Dec 1 23:06:01 2002 +++ b/drivers/usb/host/uhci-hcd.c Sun Dec 1 23:06:01 2002 @@ -1051,10 +1051,6 @@ td_error: ret = uhci_map_status(status, uhci_packetout(td_token(td))); - if (ret == -EPIPE) - /* endpoint has stalled - mark it halted */ - usb_endpoint_halt(urb->dev, uhci_endpoint(td_token(td)), - uhci_packetout(td_token(td))); err: if ((debug == 1 && ret != -EPIPE) || debug > 1) {