]> git.gag.com Git - fw/altos/commit
altos/stm: Always check for idle IN buffer before sending
authorKeith Packard <keithp@keithp.com>
Sun, 24 Mar 2013 22:04:57 +0000 (15:04 -0700)
committerKeith Packard <keithp@keithp.com>
Sun, 24 Mar 2013 22:04:57 +0000 (15:04 -0700)
commita041c04238991124058f8c4839883547a5a04566
tree382dfd8f0095b8e23c7ddd45a83f0209c2a89816
parent00e5d8e336a4256d2ce80af3ef610f7af9dedbb6
altos/stm: Always check for idle IN buffer before sending

Unlike the AVR and CC1111 USB drivers, the STM usb driver queues IN
bytes in a local buffer instead of in the driver; this means that the
driver is queuing bytes while the previous IN packet is queued for the
host, which allows for overlapping execution.

It also means that when the local buffer is full, we must check to see
if the host has picked up the previous IN packet before trying to
queue another IN packet for transmission. This is done by always
waiting for the IN buffer to be ready before sending data.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/stm/ao_usb_stm.c