
Hi,
2010/11/2 Anatolij Gustschin agust@denx.de:
Checking the status field of the qTD token in the current code do not take into acount cases where endpoint stall (halted) bit is set together with XactErr status bit. As a result clearing stall on an endpoint won't be done if this status bit was also set. Check for halted bit and report USB_ST_STALLED status if the host controller also indicates endpoit stall condition.
Signed-off-by: Anatolij Gustschin agust@denx.de
drivers/usb/host/ehci-hcd.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 982f96e..c7fba10 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -491,6 +491,8 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer, break; default: dev->status = USB_ST_CRC_ERR;
- if ((token & 0x40) == 0x40)
- dev->status |= USB_ST_STALLED;
break; } dev->act_len = length - ((token >> 16) & 0x7fff);
Applied to u-boot-usb
Thanks.
Remy