Cleanup scan_mode usb transfer logic
This commit is contained in:
@ -70,35 +70,34 @@ void scan_mode(void) {
|
|||||||
unsigned int blocks_queued = 0;
|
unsigned int blocks_queued = 0;
|
||||||
unsigned int phase = 0;
|
unsigned int phase = 0;
|
||||||
|
|
||||||
|
uint8_t *buffer;
|
||||||
|
bool transfer = false;
|
||||||
|
|
||||||
while(transceiver_mode() != TRANSCEIVER_MODE_OFF) {
|
while(transceiver_mode() != TRANSCEIVER_MODE_OFF) {
|
||||||
// Set up IN transfer of buffer 0.
|
// Set up IN transfer of buffer 0.
|
||||||
if ( usb_bulk_buffer_offset >= 16384
|
if ( usb_bulk_buffer_offset >= 16384 && phase == 1) {
|
||||||
&& phase == 1
|
transfer = true;
|
||||||
&& transceiver_mode() != TRANSCEIVER_MODE_OFF) {
|
buffer = &usb_bulk_buffer[0x0000];
|
||||||
usb_transfer_schedule_block(
|
|
||||||
(transceiver_mode() == TRANSCEIVER_MODE_RX)
|
|
||||||
? &usb_endpoint_bulk_in : &usb_endpoint_bulk_out,
|
|
||||||
&usb_bulk_buffer[0x0000],
|
|
||||||
0x4000,
|
|
||||||
NULL, NULL
|
|
||||||
);
|
|
||||||
phase = 0;
|
phase = 0;
|
||||||
blocks_queued++;
|
blocks_queued++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set up IN transfer of buffer 1.
|
// Set up IN transfer of buffer 1.
|
||||||
if ( usb_bulk_buffer_offset < 16384
|
if ( usb_bulk_buffer_offset < 16384 && phase == 0) {
|
||||||
&& phase == 0
|
transfer = true;
|
||||||
&& transceiver_mode() != TRANSCEIVER_MODE_OFF) {
|
buffer = &usb_bulk_buffer[0x4000];
|
||||||
|
phase = 1;
|
||||||
|
blocks_queued++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (transfer) {
|
||||||
usb_transfer_schedule_block(
|
usb_transfer_schedule_block(
|
||||||
(transceiver_mode() == TRANSCEIVER_MODE_RX)
|
&usb_endpoint_bulk_in,
|
||||||
? &usb_endpoint_bulk_in : &usb_endpoint_bulk_out,
|
buffer,
|
||||||
&usb_bulk_buffer[0x4000],
|
|
||||||
0x4000,
|
0x4000,
|
||||||
NULL, NULL
|
NULL, NULL
|
||||||
);
|
);
|
||||||
phase = 1;
|
transfer = false;
|
||||||
blocks_queued++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (blocks_queued > 2) {
|
if (blocks_queued > 2) {
|
||||||
|
Reference in New Issue
Block a user