diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2013-05-14 08:50:47 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2013-05-14 08:50:47 +0000 |
commit | 1c4c762c0a5796e21a9b628b9bf5ac1e94bd791f (patch) | |
tree | 6476fb14e5a57bab3283a7001dd52298eee2a202 /os | |
parent | 16de43cd0240d02a35dad104bc71a454fc8dd63a (diff) | |
download | ChibiOS-1c4c762c0a5796e21a9b628b9bf5ac1e94bd791f.tar.gz ChibiOS-1c4c762c0a5796e21a9b628b9bf5ac1e94bd791f.tar.bz2 ChibiOS-1c4c762c0a5796e21a9b628b9bf5ac1e94bd791f.zip |
Fixed bug #410.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5734 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os')
-rw-r--r-- | os/hal/platforms/STM32/USBv1/usb_lld.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/os/hal/platforms/STM32/USBv1/usb_lld.c b/os/hal/platforms/STM32/USBv1/usb_lld.c index eac014de0..22af59866 100644 --- a/os/hal/platforms/STM32/USBv1/usb_lld.c +++ b/os/hal/platforms/STM32/USBv1/usb_lld.c @@ -350,13 +350,11 @@ CH_IRQ_HANDLER(STM32_USB1_LP_HANDLER) { transmitted = (size_t)USB_GET_DESCRIPTOR(ep)->TXCOUNT0;
epcp->in_state->txcnt += transmitted;
- epcp->in_state->txsize -= transmitted;
- if (epcp->in_state->txsize > 0) {
+ n = epcp->in_state->txsize - epcp->in_state->txcnt;
+ if (n > 0) {
/* Transfer not completed, there are more packets to send.*/
- if (epcp->in_state->txsize > epcp->in_maxsize)
+ if (n > epcp->in_maxsize)
n = epcp->in_maxsize;
- else
- n = epcp->in_state->txsize;
if (epcp->in_state->txqueued)
usb_packet_write_from_queue(USB_GET_DESCRIPTOR(ep),
|