From d19b4efa2e96ee793da7109a804e619254ea4649 Mon Sep 17 00:00:00 2001 From: Mike Walters Date: Mon, 25 Jul 2016 22:57:13 +0100 Subject: [PATCH] Only transfer one block per re-tune --- firmware/hackrf_usb/usb_api_scan.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/firmware/hackrf_usb/usb_api_scan.c b/firmware/hackrf_usb/usb_api_scan.c index 9b160dec..60e4b7c6 100644 --- a/firmware/hackrf_usb/usb_api_scan.c +++ b/firmware/hackrf_usb/usb_api_scan.c @@ -77,13 +77,14 @@ void scan_mode(void) { if ( usb_bulk_buffer_offset >= 16384 && phase == 1 && transceiver_mode() != TRANSCEIVER_MODE_OFF) { - usb_transfer_schedule_block( - (transceiver_mode() == TRANSCEIVER_MODE_RX) - ? &usb_endpoint_bulk_in : &usb_endpoint_bulk_out, - &usb_bulk_buffer[0x0000], - 0x4000, - NULL, NULL - ); + if (blocks_queued == 2) + 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; blocks_queued++; } @@ -92,13 +93,14 @@ void scan_mode(void) { if ( usb_bulk_buffer_offset < 16384 && phase == 0 && transceiver_mode() != TRANSCEIVER_MODE_OFF) { - usb_transfer_schedule_block( - (transceiver_mode() == TRANSCEIVER_MODE_RX) - ? &usb_endpoint_bulk_in : &usb_endpoint_bulk_out, - &usb_bulk_buffer[0x4000], - 0x4000, - NULL, NULL - ); + if (blocks_queued == 2) + usb_transfer_schedule_block( + (transceiver_mode() == TRANSCEIVER_MODE_RX) + ? &usb_endpoint_bulk_in : &usb_endpoint_bulk_out, + &usb_bulk_buffer[0x4000], + 0x4000, + NULL, NULL + ); phase = 1; blocks_queued++; }