summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2009-08-13 18:50:43 +0000
committerFrank Gevaerts <frank@gevaerts.be>2009-08-13 18:50:43 +0000
commite98c198fd8ffd62dfa7b4d388b4fcf6c90b966e0 (patch)
treebd045210372e88ba01bf68a9069edb8131aa9844 /firmware/target/arm
parent3ebf602968d12e08244ce1e7e4a6928f575a5e7e (diff)
downloadrockbox-e98c198fd8ffd62dfa7b4d388b4fcf6c90b966e0.tar.gz
rockbox-e98c198fd8ffd62dfa7b4d388b4fcf6c90b966e0.zip
don't treat extremely quick transfers as errors
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22294 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm')
-rw-r--r--firmware/target/arm/usb-drv-arc.c13
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 */