From 30e188cf07da22d9cfebdc0209bc79f1e4c34da6 Mon Sep 17 00:00:00 2001 From: Gareth McMullin Date: Sat, 12 Nov 2011 21:44:37 +1300 Subject: Only allow one packet in TX fifos. This fixes a problem where packets were written too quickly. The hardware disabled the endpoint after the fist packet is sent, and others just waited in the queue. --- lib/usb/usb_f107.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/usb/usb_f107.c b/lib/usb/usb_f107.c index 8f03571..ecadded 100644 --- a/lib/usb/usb_f107.c +++ b/lib/usb/usb_f107.c @@ -245,7 +245,7 @@ static u16 stm32f107_ep_write_packet(u8 addr, const void *buf, u16 len) addr &= 0x7F; /* Return if endpoint is already enabled. */ - if(OTG_FS_DTXFSTS(addr) < (len >> 2)) + if(OTG_FS_DIEPTSIZ(addr) & OTG_FS_DIEPSIZ0_PKTCNT) return 0; /* Enable endpoint for transmission */ -- cgit v1.2.3