diff options
Diffstat (limited to 'firmware/target')
-rw-r--r-- | firmware/target/arm/usb-drv-arc.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/firmware/target/arm/usb-drv-arc.c b/firmware/target/arm/usb-drv-arc.c index 973a227423..3d17cc56c2 100644 --- a/firmware/target/arm/usb-drv-arc.c +++ b/firmware/target/arm/usb-drv-arc.c | |||
@@ -748,9 +748,16 @@ static int prime_transfer(int ep_num, void* ptr, int len, bool send, bool wait) | |||
748 | } | 748 | } |
749 | 749 | ||
750 | if (!(REG_ENDPTSTATUS & mask)) { | 750 | if (!(REG_ENDPTSTATUS & mask)) { |
751 | logf("no prime! %d %d %x", ep_num, pipe, qh->dtd.size_ioc_sts & 0xff); | 751 | if(REG_ENDPTCOMPLETE & mask) |
752 | rc = -3; | 752 | { |
753 | goto pt_error; | 753 | logf("endpoint completed fast! %d %d %x", ep_num, pipe, qh->dtd.size_ioc_sts & 0xff); |
754 | } | ||
755 | else | ||
756 | { | ||
757 | logf("no prime! %d %d %x", ep_num, pipe, qh->dtd.size_ioc_sts & 0xff); | ||
758 | rc = -3; | ||
759 | goto pt_error; | ||
760 | } | ||
754 | } | 761 | } |
755 | if(ep_num == EP_CONTROL && (REG_ENDPTSETUPSTAT & EPSETUP_STATUS_EP0)) { | 762 | if(ep_num == EP_CONTROL && (REG_ENDPTSETUPSTAT & EPSETUP_STATUS_EP0)) { |
756 | /* 32.14.3.2.2 */ | 763 | /* 32.14.3.2.2 */ |