mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-01-26 12:35:25 +00:00
use 0 (never) for incoming transfers - fixes lost packets, decrease polling interval for non-pollfds to 3 ms to achieve same throughput as pollfds on Bluetooth 2.1+EDR
This commit is contained in:
parent
9e427613ca
commit
3d188d63f7
@ -92,7 +92,7 @@ static libusb_device * dev;
|
||||
static libusb_device_handle * handle;
|
||||
|
||||
#define ASYNC_BUFFERS 4
|
||||
#define AYSNC_POLLING_INTERVAL_MS 10
|
||||
#define AYSNC_POLLING_INTERVAL_MS 3
|
||||
|
||||
static struct libusb_transfer *event_in_transfer[ASYNC_BUFFERS];
|
||||
static struct libusb_transfer *bulk_in_transfer[ASYNC_BUFFERS];
|
||||
@ -194,10 +194,10 @@ static void queue_completed_transfer(struct libusb_transfer *transfer){
|
||||
temp->user_data = transfer;
|
||||
}
|
||||
|
||||
static void LIBUSB_CALL async_callback(struct libusb_transfer *transfer)
|
||||
static void async_callback(struct libusb_transfer *transfer)
|
||||
{
|
||||
int r;
|
||||
log_info("begin async_callback endpoint %x, status %x, actual length %u", transfer->endpoint, transfer->status, transfer->actual_length );
|
||||
// log_info("begin async_callback endpoint %x, status %x, actual length %u", transfer->endpoint, transfer->status, transfer->actual_length );
|
||||
|
||||
if (transfer->status == LIBUSB_TRANSFER_COMPLETED ||
|
||||
(transfer->status == LIBUSB_TRANSFER_TIMED_OUT && transfer->actual_length > 0)) {
|
||||
@ -213,7 +213,7 @@ static void LIBUSB_CALL async_callback(struct libusb_transfer *transfer)
|
||||
}
|
||||
}
|
||||
}
|
||||
log_info("end async_callback");
|
||||
// log_info("end async_callback");
|
||||
}
|
||||
|
||||
static int usb_process_ds(struct data_source *ds) {
|
||||
@ -418,7 +418,7 @@ static int usb_open(void *transport_config){
|
||||
for (c = 0 ; c < ASYNC_BUFFERS ; c++) {
|
||||
// configure event_in handlers
|
||||
libusb_fill_interrupt_transfer(event_in_transfer[c], handle, event_in_addr,
|
||||
hci_event_in_buffer[c], HCI_ACL_BUFFER_SIZE, async_callback, NULL, 2000) ;
|
||||
hci_event_in_buffer[c], HCI_ACL_BUFFER_SIZE, async_callback, NULL, 0) ;
|
||||
|
||||
r = libusb_submit_transfer(event_in_transfer[c]);
|
||||
if (r) {
|
||||
@ -429,7 +429,7 @@ static int usb_open(void *transport_config){
|
||||
|
||||
// configure bulk_in handlers
|
||||
libusb_fill_bulk_transfer(bulk_in_transfer[c], handle, acl_in_addr,
|
||||
hci_bulk_in_buffer[c], HCI_ACL_BUFFER_SIZE, async_callback, NULL, 2000) ;
|
||||
hci_bulk_in_buffer[c], HCI_ACL_BUFFER_SIZE, async_callback, NULL, 0) ;
|
||||
|
||||
r = libusb_submit_transfer(bulk_in_transfer[c]);
|
||||
if (r) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user