diff options
author | Aidan MacDonald <amachronic@protonmail.com> | 2021-09-19 10:54:26 +0100 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2021-09-20 22:41:29 +0100 |
commit | 672bbe434b12d4730cf270f7245753fb98cf162d (patch) | |
tree | 3fdaa08ddc41f942336c968bb169e8806c7c3fa8 | |
parent | 99f333c64f13c3f9a62b9f5e184ae87f053bf65a (diff) | |
download | rockbox-672bbe434b12d4730cf270f7245753fb98cf162d.tar.gz rockbox-672bbe434b12d4730cf270f7245753fb98cf162d.zip |
usb: rename usb_drv_recv() to usb_recv_recv_nonblocking()
IMHO the current name is somewhat misleading:
- usb_drv_send() is blocking and we have usb_drv_send_nonblocking()
for the non-blocking case. This inconsistent naming can only
promote confusion. (And what would we call a blocking receive?)
- Other hardware abstraction APIs in Rockbox are usually blocking:
storage, LCD, backlight, audio... in other words, blocking is the
default expected behavior, with non-blocking calls being a rarity.
Change-Id: I05b41088d09eab582697674f4f06fdca0c8950af
-rw-r--r-- | firmware/drivers/isp1583.c | 4 | ||||
-rw-r--r-- | firmware/drivers/m66591.c | 2 | ||||
-rw-r--r-- | firmware/drivers/usb-designware.c | 2 | ||||
-rw-r--r-- | firmware/export/usb_drv.h | 3 | ||||
-rw-r--r-- | firmware/target/arm/as3525/usb-drv-as3525.c | 7 | ||||
-rw-r--r-- | firmware/target/arm/rk27xx/usb-drv-rk27xx.c | 2 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c | 8 | ||||
-rw-r--r-- | firmware/target/arm/usb-drv-arc.c | 2 | ||||
-rw-r--r-- | firmware/target/arm/usb-s3c6400x.c | 2 | ||||
-rw-r--r-- | firmware/target/arm/usb-tcc.c | 2 | ||||
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/usb-jz4740.c | 2 | ||||
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/usb-jz4760.c | 2 | ||||
-rw-r--r-- | firmware/usbstack/usb_core.c | 12 | ||||
-rw-r--r-- | firmware/usbstack/usb_hid.c | 6 | ||||
-rw-r--r-- | firmware/usbstack/usb_serial.c | 8 | ||||
-rw-r--r-- | firmware/usbstack/usb_storage.c | 10 |
16 files changed, 36 insertions, 38 deletions
diff --git a/firmware/drivers/isp1583.c b/firmware/drivers/isp1583.c index c028d2fa01..18a4e9c720 100644 --- a/firmware/drivers/isp1583.c +++ b/firmware/drivers/isp1583.c | |||
@@ -531,9 +531,9 @@ static void in_callback(int ep, unsigned char *buf, int len) | |||
531 | usb_core_transfer_complete(ep, false, 0, len); | 531 | usb_core_transfer_complete(ep, false, 0, len); |
532 | } | 532 | } |
533 | 533 | ||
534 | int usb_drv_recv(int ep, void* ptr, int length) | 534 | int usb_drv_recv_nonblocking(int ep, void* ptr, int length) |
535 | { | 535 | { |
536 | logf("usb_drv_recv(%d, 0x%x, %d)", ep, (int)ptr, length); | 536 | logf("usb_drv_recv_nonblocking(%d, 0x%x, %d)", ep, (int)ptr, length); |
537 | if(ep == EP_CONTROL && length == 0 && ptr == NULL) | 537 | if(ep == EP_CONTROL && length == 0 && ptr == NULL) |
538 | { | 538 | { |
539 | usb_status_ack(ep, DIR_TX); | 539 | usb_status_ack(ep, DIR_TX); |
diff --git a/firmware/drivers/m66591.c b/firmware/drivers/m66591.c index d09b269f33..5da1908290 100644 --- a/firmware/drivers/m66591.c +++ b/firmware/drivers/m66591.c | |||
@@ -869,7 +869,7 @@ int usb_drv_send(int endpoint, void* ptr, int length) | |||
869 | /* This function begins a receive (on an OUT endpoint), it should not block | 869 | /* This function begins a receive (on an OUT endpoint), it should not block |
870 | * so the actual receive is done in the interrupt handler. | 870 | * so the actual receive is done in the interrupt handler. |
871 | */ | 871 | */ |
872 | int usb_drv_recv(int endpoint, void* ptr, int length) | 872 | int usb_drv_recv_nonblocking(int endpoint, void* ptr, int length) |
873 | { | 873 | { |
874 | return mxx_queue(endpoint, ptr, length, false, false); | 874 | return mxx_queue(endpoint, ptr, length, false, false); |
875 | } | 875 | } |
diff --git a/firmware/drivers/usb-designware.c b/firmware/drivers/usb-designware.c index 375fd8be74..ab4c6037b5 100644 --- a/firmware/drivers/usb-designware.c +++ b/firmware/drivers/usb-designware.c | |||
@@ -1333,7 +1333,7 @@ void usb_drv_release_endpoint(int endpoint) | |||
1333 | usb_dw_target_enable_irq(); | 1333 | usb_dw_target_enable_irq(); |
1334 | } | 1334 | } |
1335 | 1335 | ||
1336 | int usb_drv_recv(int endpoint, void* ptr, int length) | 1336 | int usb_drv_recv_nonblocking(int endpoint, void* ptr, int length) |
1337 | { | 1337 | { |
1338 | int epnum = EP_NUM(endpoint); | 1338 | int epnum = EP_NUM(endpoint); |
1339 | struct usb_dw_ep* dw_ep = usb_dw_get_ep(epnum, USB_DW_EPDIR_OUT); | 1339 | struct usb_dw_ep* dw_ep = usb_dw_get_ep(epnum, USB_DW_EPDIR_OUT); |
diff --git a/firmware/export/usb_drv.h b/firmware/export/usb_drv.h index 7ef7c8b7ee..01535c2786 100644 --- a/firmware/export/usb_drv.h +++ b/firmware/export/usb_drv.h | |||
@@ -68,8 +68,7 @@ void usb_drv_stall(int endpoint, bool stall,bool in); | |||
68 | bool usb_drv_stalled(int endpoint,bool in); | 68 | bool usb_drv_stalled(int endpoint,bool in); |
69 | int usb_drv_send(int endpoint, void* ptr, int length); | 69 | int usb_drv_send(int endpoint, void* ptr, int length); |
70 | int usb_drv_send_nonblocking(int endpoint, void* ptr, int length); | 70 | int usb_drv_send_nonblocking(int endpoint, void* ptr, int length); |
71 | int usb_drv_recv(int endpoint, void* ptr, int length); | 71 | int usb_drv_recv_nonblocking(int endpoint, void* ptr, int length); |
72 | void usb_drv_ack(struct usb_ctrlrequest* req); | ||
73 | void usb_drv_set_address(int address); | 72 | void usb_drv_set_address(int address); |
74 | void usb_drv_reset_endpoint(int endpoint, bool send); | 73 | void usb_drv_reset_endpoint(int endpoint, bool send); |
75 | bool usb_drv_powered(void); | 74 | bool usb_drv_powered(void); |
diff --git a/firmware/target/arm/as3525/usb-drv-as3525.c b/firmware/target/arm/as3525/usb-drv-as3525.c index 01fae5f0ab..8369edc400 100644 --- a/firmware/target/arm/as3525/usb-drv-as3525.c +++ b/firmware/target/arm/as3525/usb-drv-as3525.c | |||
@@ -412,12 +412,12 @@ void usb_drv_cancel_all_transfers(void) | |||
412 | restore_irq(flags); | 412 | restore_irq(flags); |
413 | } | 413 | } |
414 | 414 | ||
415 | int usb_drv_recv(int ep, void *ptr, int len) | 415 | int usb_drv_recv_nonblocking(int ep, void *ptr, int len) |
416 | { | 416 | { |
417 | struct usb_dev_dma_desc *uc_desc = endpoints[ep][1].uc_desc; | 417 | struct usb_dev_dma_desc *uc_desc = endpoints[ep][1].uc_desc; |
418 | 418 | ||
419 | ep &= 0x7f; | 419 | ep &= 0x7f; |
420 | logf("usb_drv_recv(%d,%x,%d)\n", ep, (int)ptr, len); | 420 | logf("usb_drv_recv_nonblocking(%d,%x,%d)\n", ep, (int)ptr, len); |
421 | 421 | ||
422 | if (len > USB_DMA_DESC_RXTX_BYTES) | 422 | if (len > USB_DMA_DESC_RXTX_BYTES) |
423 | panicf("usb_recv: len=%d > %d", len, USB_DMA_DESC_RXTX_BYTES); | 423 | panicf("usb_recv: len=%d > %d", len, USB_DMA_DESC_RXTX_BYTES); |
@@ -674,7 +674,8 @@ static void handle_out_ep(int ep) | |||
674 | * The usb_storage buffer is 63KB, but Linux sends 120KB. | 674 | * The usb_storage buffer is 63KB, but Linux sends 120KB. |
675 | * We get the first part, but upon re-enabling receive dma we | 675 | * We get the first part, but upon re-enabling receive dma we |
676 | * get a 'buffer not available' error from the hardware, since | 676 | * get a 'buffer not available' error from the hardware, since |
677 | * we haven't gotten the next usb_drv_recv() from the stack yet. | 677 | * we haven't gotten the next usb_drv_recv_nonblocking() from |
678 | * the stack yet. | ||
678 | * It seems the NAK bit is ignored here and the HW tries to dma | 679 | * It seems the NAK bit is ignored here and the HW tries to dma |
679 | * the incoming data anyway. | 680 | * the incoming data anyway. |
680 | * In theory I think the BNA error should be recoverable, but | 681 | * In theory I think the BNA error should be recoverable, but |
diff --git a/firmware/target/arm/rk27xx/usb-drv-rk27xx.c b/firmware/target/arm/rk27xx/usb-drv-rk27xx.c index 057ecf6ebc..aac271c47a 100644 --- a/firmware/target/arm/rk27xx/usb-drv-rk27xx.c +++ b/firmware/target/arm/rk27xx/usb-drv-rk27xx.c | |||
@@ -355,7 +355,7 @@ int usb_drv_send_nonblocking(int endpoint, void *ptr, int length) | |||
355 | } | 355 | } |
356 | 356 | ||
357 | /* Setup a receive transfer. (non blocking) */ | 357 | /* Setup a receive transfer. (non blocking) */ |
358 | int usb_drv_recv(int endpoint, void* ptr, int length) | 358 | int usb_drv_recv_nonblocking(int endpoint, void* ptr, int length) |
359 | { | 359 | { |
360 | logf("udc: recv(%x)", endpoint); | 360 | logf("udc: recv(%x)", endpoint); |
361 | struct endpoint_t *ep; | 361 | struct endpoint_t *ep; |
diff --git a/firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c b/firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c index 5563a40814..f1acc9c964 100644 --- a/firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c +++ b/firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c | |||
@@ -1026,8 +1026,8 @@ static bool tnetv_handle_cppi(void) | |||
1026 | if (rx_intstatus || tx_intstatus || rcv_sched) | 1026 | if (rx_intstatus || tx_intstatus || rcv_sched) |
1027 | { | 1027 | { |
1028 | /* Request calling again after short delay | 1028 | /* Request calling again after short delay |
1029 | * Needed when for example when OUT endpoint has pending | 1029 | * Needed when for example when OUT endpoint has pending data |
1030 | * data but the USB task did not call usb_drv_recv() yet. | 1030 | * but the USB task did not call usb_drv_recv_nonblocking() yet. |
1031 | */ | 1031 | */ |
1032 | return true; | 1032 | return true; |
1033 | } | 1033 | } |
@@ -1371,7 +1371,7 @@ int usb_drv_send_nonblocking(int endpoint, void* ptr, int length) | |||
1371 | return _usb_drv_send(endpoint, ptr, length, false); | 1371 | return _usb_drv_send(endpoint, ptr, length, false); |
1372 | } | 1372 | } |
1373 | 1373 | ||
1374 | int usb_drv_recv(int endpoint, void* ptr, int length) | 1374 | int usb_drv_recv_nonblocking(int endpoint, void* ptr, int length) |
1375 | { | 1375 | { |
1376 | int epn = EP_NUM(endpoint); | 1376 | int epn = EP_NUM(endpoint); |
1377 | struct ep_runtime_t *ep; | 1377 | struct ep_runtime_t *ep; |
@@ -1388,8 +1388,6 @@ int usb_drv_recv(int endpoint, void* ptr, int length) | |||
1388 | return 0; | 1388 | return 0; |
1389 | } | 1389 | } |
1390 | 1390 | ||
1391 | void usb_drv_ack(struct usb_ctrlrequest* req); | ||
1392 | |||
1393 | void usb_drv_set_address(int address) | 1391 | void usb_drv_set_address(int address) |
1394 | { | 1392 | { |
1395 | UsbCtrlType usbCtrl; | 1393 | UsbCtrlType usbCtrl; |
diff --git a/firmware/target/arm/usb-drv-arc.c b/firmware/target/arm/usb-drv-arc.c index b19b635923..4c53108f12 100644 --- a/firmware/target/arm/usb-drv-arc.c +++ b/firmware/target/arm/usb-drv-arc.c | |||
@@ -593,7 +593,7 @@ int usb_drv_send(int endpoint, void* ptr, int length) | |||
593 | return prime_transfer(EP_NUM(endpoint), ptr, length, true, true); | 593 | return prime_transfer(EP_NUM(endpoint), ptr, length, true, true); |
594 | } | 594 | } |
595 | 595 | ||
596 | int usb_drv_recv(int endpoint, void* ptr, int length) | 596 | int usb_drv_recv_nonblocking(int endpoint, void* ptr, int length) |
597 | { | 597 | { |
598 | //logf("usbrecv(%x, %d)", ptr, length); | 598 | //logf("usbrecv(%x, %d)", ptr, length); |
599 | return prime_transfer(EP_NUM(endpoint), ptr, length, false, false); | 599 | return prime_transfer(EP_NUM(endpoint), ptr, length, false, false); |
diff --git a/firmware/target/arm/usb-s3c6400x.c b/firmware/target/arm/usb-s3c6400x.c index 920d1a6286..71d04e6f2a 100644 --- a/firmware/target/arm/usb-s3c6400x.c +++ b/firmware/target/arm/usb-s3c6400x.c | |||
@@ -166,7 +166,7 @@ int usb_drv_send_nonblocking(int endpoint, void *ptr, int length) | |||
166 | return 0; | 166 | return 0; |
167 | } | 167 | } |
168 | 168 | ||
169 | int usb_drv_recv(int endpoint, void* ptr, int length) | 169 | int usb_drv_recv_nonblocking(int endpoint, void* ptr, int length) |
170 | { | 170 | { |
171 | ep_transfer(EP_NUM(endpoint), ptr, length, true); | 171 | ep_transfer(EP_NUM(endpoint), ptr, length, true); |
172 | return 0; | 172 | return 0; |
diff --git a/firmware/target/arm/usb-tcc.c b/firmware/target/arm/usb-tcc.c index 1b5f16c223..8ce75b6764 100644 --- a/firmware/target/arm/usb-tcc.c +++ b/firmware/target/arm/usb-tcc.c | |||
@@ -609,7 +609,7 @@ int usb_drv_send_nonblocking(int endpoint, void *ptr, int length) | |||
609 | return rc; | 609 | return rc; |
610 | } | 610 | } |
611 | 611 | ||
612 | int usb_drv_recv(int endpoint, void* ptr, int length) | 612 | int usb_drv_recv_nonblocking(int endpoint, void* ptr, int length) |
613 | { | 613 | { |
614 | volatile struct tcc_ep *tcc_ep = &tcc_endpoints[endpoint & 0x7f]; | 614 | volatile struct tcc_ep *tcc_ep = &tcc_endpoints[endpoint & 0x7f]; |
615 | int flags; | 615 | int flags; |
diff --git a/firmware/target/mips/ingenic_jz47xx/usb-jz4740.c b/firmware/target/mips/ingenic_jz47xx/usb-jz4740.c index 162aeec97a..8d04c54a68 100644 --- a/firmware/target/mips/ingenic_jz47xx/usb-jz4740.c +++ b/firmware/target/mips/ingenic_jz47xx/usb-jz4740.c | |||
@@ -743,7 +743,7 @@ int usb_drv_send(int endpoint, void* ptr, int length) | |||
743 | return 0; | 743 | return 0; |
744 | } | 744 | } |
745 | 745 | ||
746 | int usb_drv_recv(int endpoint, void* ptr, int length) | 746 | int usb_drv_recv_nonblocking(int endpoint, void* ptr, int length) |
747 | { | 747 | { |
748 | int flags; | 748 | int flags; |
749 | struct usb_endpoint *ep; | 749 | struct usb_endpoint *ep; |
diff --git a/firmware/target/mips/ingenic_jz47xx/usb-jz4760.c b/firmware/target/mips/ingenic_jz47xx/usb-jz4760.c index 37df1b3bb6..5dbf9455e3 100644 --- a/firmware/target/mips/ingenic_jz47xx/usb-jz4760.c +++ b/firmware/target/mips/ingenic_jz47xx/usb-jz4760.c | |||
@@ -1118,7 +1118,7 @@ int usb_drv_send(int endpoint, void* ptr, int length) | |||
1118 | return -1; | 1118 | return -1; |
1119 | } | 1119 | } |
1120 | 1120 | ||
1121 | int usb_drv_recv(int endpoint, void* ptr, int length) | 1121 | int usb_drv_recv_nonblocking(int endpoint, void* ptr, int length) |
1122 | { | 1122 | { |
1123 | int flags; | 1123 | int flags; |
1124 | struct usb_endpoint *ep; | 1124 | struct usb_endpoint *ep; |
diff --git a/firmware/usbstack/usb_core.c b/firmware/usbstack/usb_core.c index b291dc7655..bf73c58abc 100644 --- a/firmware/usbstack/usb_core.c +++ b/firmware/usbstack/usb_core.c | |||
@@ -674,7 +674,7 @@ static void request_handler_device_get_descriptor(struct usb_ctrlrequest* req) | |||
674 | if (ptr != response_data) | 674 | if (ptr != response_data) |
675 | memcpy(response_data, ptr, length); | 675 | memcpy(response_data, ptr, length); |
676 | 676 | ||
677 | usb_drv_recv(EP_CONTROL, NULL, 0); | 677 | usb_drv_recv_nonblocking(EP_CONTROL, NULL, 0); |
678 | usb_drv_send(EP_CONTROL, response_data, length); | 678 | usb_drv_send(EP_CONTROL, response_data, length); |
679 | } | 679 | } |
680 | } | 680 | } |
@@ -725,7 +725,7 @@ static void request_handler_device(struct usb_ctrlrequest* req) | |||
725 | case USB_REQ_GET_CONFIGURATION: { | 725 | case USB_REQ_GET_CONFIGURATION: { |
726 | logf("usb_core: GET_CONFIG"); | 726 | logf("usb_core: GET_CONFIG"); |
727 | response_data[0] = (usb_state == ADDRESS ? 0 : 1); | 727 | response_data[0] = (usb_state == ADDRESS ? 0 : 1); |
728 | usb_drv_recv(EP_CONTROL, NULL, 0); | 728 | usb_drv_recv_nonblocking(EP_CONTROL, NULL, 0); |
729 | usb_drv_send(EP_CONTROL, response_data, 1); | 729 | usb_drv_send(EP_CONTROL, response_data, 1); |
730 | break; | 730 | break; |
731 | } | 731 | } |
@@ -759,7 +759,7 @@ static void request_handler_device(struct usb_ctrlrequest* req) | |||
759 | case USB_REQ_GET_STATUS: | 759 | case USB_REQ_GET_STATUS: |
760 | response_data[0] = 0; | 760 | response_data[0] = 0; |
761 | response_data[1] = 0; | 761 | response_data[1] = 0; |
762 | usb_drv_recv(EP_CONTROL, NULL, 0); | 762 | usb_drv_recv_nonblocking(EP_CONTROL, NULL, 0); |
763 | usb_drv_send(EP_CONTROL, response_data, 2); | 763 | usb_drv_send(EP_CONTROL, response_data, 2); |
764 | break; | 764 | break; |
765 | default: | 765 | default: |
@@ -781,7 +781,7 @@ static void request_handler_interface_standard(struct usb_ctrlrequest* req) | |||
781 | case USB_REQ_GET_INTERFACE: | 781 | case USB_REQ_GET_INTERFACE: |
782 | logf("usb_core: GET_INTERFACE"); | 782 | logf("usb_core: GET_INTERFACE"); |
783 | response_data[0] = 0; | 783 | response_data[0] = 0; |
784 | usb_drv_recv(EP_CONTROL, NULL, 0); | 784 | usb_drv_recv_nonblocking(EP_CONTROL, NULL, 0); |
785 | usb_drv_send(EP_CONTROL, response_data, 1); | 785 | usb_drv_send(EP_CONTROL, response_data, 1); |
786 | break; | 786 | break; |
787 | case USB_REQ_CLEAR_FEATURE: | 787 | case USB_REQ_CLEAR_FEATURE: |
@@ -791,7 +791,7 @@ static void request_handler_interface_standard(struct usb_ctrlrequest* req) | |||
791 | case USB_REQ_GET_STATUS: | 791 | case USB_REQ_GET_STATUS: |
792 | response_data[0] = 0; | 792 | response_data[0] = 0; |
793 | response_data[1] = 0; | 793 | response_data[1] = 0; |
794 | usb_drv_recv(EP_CONTROL, NULL, 0); | 794 | usb_drv_recv_nonblocking(EP_CONTROL, NULL, 0); |
795 | usb_drv_send(EP_CONTROL, response_data, 2); | 795 | usb_drv_send(EP_CONTROL, response_data, 2); |
796 | break; | 796 | break; |
797 | default: | 797 | default: |
@@ -860,7 +860,7 @@ static void request_handler_endpoint_standard(struct usb_ctrlrequest* req) | |||
860 | response_data[0] = usb_drv_stalled(EP_NUM(req->wIndex), | 860 | response_data[0] = usb_drv_stalled(EP_NUM(req->wIndex), |
861 | EP_DIR(req->wIndex)); | 861 | EP_DIR(req->wIndex)); |
862 | 862 | ||
863 | usb_drv_recv(EP_CONTROL, NULL, 0); | 863 | usb_drv_recv_nonblocking(EP_CONTROL, NULL, 0); |
864 | usb_drv_send(EP_CONTROL, response_data, 2); | 864 | usb_drv_send(EP_CONTROL, response_data, 2); |
865 | break; | 865 | break; |
866 | default: | 866 | default: |
diff --git a/firmware/usbstack/usb_hid.c b/firmware/usbstack/usb_hid.c index 885ae4c24a..16dddb7db1 100644 --- a/firmware/usbstack/usb_hid.c +++ b/firmware/usbstack/usb_hid.c | |||
@@ -693,7 +693,7 @@ static int usb_hid_set_report(struct usb_ctrlrequest *req) | |||
693 | } | 693 | } |
694 | 694 | ||
695 | memset(buf, 0, length); | 695 | memset(buf, 0, length); |
696 | usb_drv_recv(EP_CONTROL, buf, length); | 696 | usb_drv_recv_nonblocking(EP_CONTROL, buf, length); |
697 | 697 | ||
698 | #ifdef LOGF_ENABLE | 698 | #ifdef LOGF_ENABLE |
699 | if (buf[1] & 0x01) | 699 | if (buf[1] & 0x01) |
@@ -772,7 +772,7 @@ bool usb_hid_control_request(struct usb_ctrlrequest *req, unsigned char *dest) | |||
772 | 772 | ||
773 | if (dest != orig_dest) | 773 | if (dest != orig_dest) |
774 | { | 774 | { |
775 | usb_drv_recv(EP_CONTROL, NULL, 0); /* ack */ | 775 | usb_drv_recv_nonblocking(EP_CONTROL, NULL, 0); /* ack */ |
776 | usb_drv_send(EP_CONTROL, orig_dest, dest - orig_dest); | 776 | usb_drv_send(EP_CONTROL, orig_dest, dest - orig_dest); |
777 | return true; | 777 | return true; |
778 | } | 778 | } |
@@ -809,7 +809,7 @@ bool usb_hid_control_request(struct usb_ctrlrequest *req, unsigned char *dest) | |||
809 | 809 | ||
810 | if (dest != orig_dest) | 810 | if (dest != orig_dest) |
811 | { | 811 | { |
812 | usb_drv_recv(EP_CONTROL, NULL, 0); /* ack */ | 812 | usb_drv_recv_nonblocking(EP_CONTROL, NULL, 0); /* ack */ |
813 | usb_drv_send(EP_CONTROL, orig_dest, dest - orig_dest); | 813 | usb_drv_send(EP_CONTROL, orig_dest, dest - orig_dest); |
814 | } | 814 | } |
815 | else | 815 | else |
diff --git a/firmware/usbstack/usb_serial.c b/firmware/usbstack/usb_serial.c index a08394c0a8..c96936f1d4 100644 --- a/firmware/usbstack/usb_serial.c +++ b/firmware/usbstack/usb_serial.c | |||
@@ -294,7 +294,7 @@ bool usb_serial_control_request(struct usb_ctrlrequest* req, unsigned char* dest | |||
294 | if (req->wLength == sizeof(line_coding)) | 294 | if (req->wLength == sizeof(line_coding)) |
295 | { | 295 | { |
296 | /* Receive line coding into local copy */ | 296 | /* Receive line coding into local copy */ |
297 | usb_drv_recv(EP_CONTROL, &line_coding, sizeof(line_coding)); | 297 | usb_drv_recv_nonblocking(EP_CONTROL, &line_coding, sizeof(line_coding)); |
298 | usb_drv_send(EP_CONTROL, NULL, 0); /* ack */ | 298 | usb_drv_send(EP_CONTROL, NULL, 0); /* ack */ |
299 | handled = true; | 299 | handled = true; |
300 | } | 300 | } |
@@ -316,7 +316,7 @@ bool usb_serial_control_request(struct usb_ctrlrequest* req, unsigned char* dest | |||
316 | if (req->wLength == sizeof(line_coding)) | 316 | if (req->wLength == sizeof(line_coding)) |
317 | { | 317 | { |
318 | /* Send back line coding so host is happy */ | 318 | /* Send back line coding so host is happy */ |
319 | usb_drv_recv(EP_CONTROL, NULL, 0); /* ack */ | 319 | usb_drv_recv_nonblocking(EP_CONTROL, NULL, 0); /* ack */ |
320 | usb_drv_send(EP_CONTROL, &line_coding, sizeof(line_coding)); | 320 | usb_drv_send(EP_CONTROL, &line_coding, sizeof(line_coding)); |
321 | handled = true; | 321 | handled = true; |
322 | } | 322 | } |
@@ -329,7 +329,7 @@ bool usb_serial_control_request(struct usb_ctrlrequest* req, unsigned char* dest | |||
329 | void usb_serial_init_connection(void) | 329 | void usb_serial_init_connection(void) |
330 | { | 330 | { |
331 | /* prime rx endpoint */ | 331 | /* prime rx endpoint */ |
332 | usb_drv_recv(ep_out, receive_buffer, sizeof receive_buffer); | 332 | usb_drv_recv_nonblocking(ep_out, receive_buffer, sizeof receive_buffer); |
333 | 333 | ||
334 | /* we come here too after a bus reset, so reset some data */ | 334 | /* we come here too after a bus reset, so reset some data */ |
335 | buffer_transitlength = 0; | 335 | buffer_transitlength = 0; |
@@ -420,7 +420,7 @@ void usb_serial_transfer_complete(int ep,int dir, int status, int length) | |||
420 | /* Data received. TODO : Do something with it ? */ | 420 | /* Data received. TODO : Do something with it ? */ |
421 | 421 | ||
422 | /* Get the next bit */ | 422 | /* Get the next bit */ |
423 | usb_drv_recv(ep_out, receive_buffer, sizeof receive_buffer); | 423 | usb_drv_recv_nonblocking(ep_out, receive_buffer, sizeof receive_buffer); |
424 | break; | 424 | break; |
425 | 425 | ||
426 | case USB_DIR_IN: | 426 | case USB_DIR_IN: |
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c index 8e1b507ac4..947006c1ec 100644 --- a/firmware/usbstack/usb_storage.c +++ b/firmware/usbstack/usb_storage.c | |||
@@ -470,7 +470,7 @@ void usb_storage_init_connection(void) | |||
470 | ramdisk_buffer = tb.transfer_buffer + ALLOCATE_BUFFER_SIZE; | 470 | ramdisk_buffer = tb.transfer_buffer + ALLOCATE_BUFFER_SIZE; |
471 | #endif | 471 | #endif |
472 | #endif | 472 | #endif |
473 | usb_drv_recv(ep_out, cbw_buffer, MAX_CBW_SIZE); | 473 | usb_drv_recv_nonblocking(ep_out, cbw_buffer, MAX_CBW_SIZE); |
474 | 474 | ||
475 | int i; | 475 | int i; |
476 | for(i=0;i<storage_num_drives();i++) { | 476 | for(i=0;i<storage_num_drives();i++) { |
@@ -685,7 +685,7 @@ bool usb_storage_control_request(struct usb_ctrlrequest* req, unsigned char* des | |||
685 | if(skip_first) (*tb.max_lun) --; | 685 | if(skip_first) (*tb.max_lun) --; |
686 | #endif | 686 | #endif |
687 | logf("ums: getmaxlun"); | 687 | logf("ums: getmaxlun"); |
688 | usb_drv_recv(EP_CONTROL, NULL, 0); /* ack */ | 688 | usb_drv_recv_nonblocking(EP_CONTROL, NULL, 0); /* ack */ |
689 | usb_drv_send(EP_CONTROL, tb.max_lun, 1); | 689 | usb_drv_send(EP_CONTROL, tb.max_lun, 1); |
690 | handled = true; | 690 | handled = true; |
691 | break; | 691 | break; |
@@ -1187,14 +1187,14 @@ static void send_command_failed_result(void) | |||
1187 | #if CONFIG_RTC | 1187 | #if CONFIG_RTC |
1188 | static void receive_time(void) | 1188 | static void receive_time(void) |
1189 | { | 1189 | { |
1190 | usb_drv_recv(ep_out, tb.transfer_buffer, 12); | 1190 | usb_drv_recv_nonblocking(ep_out, tb.transfer_buffer, 12); |
1191 | state = RECEIVING_TIME; | 1191 | state = RECEIVING_TIME; |
1192 | } | 1192 | } |
1193 | #endif /* CONFIG_RTC */ | 1193 | #endif /* CONFIG_RTC */ |
1194 | 1194 | ||
1195 | static void receive_block_data(void *data,int size) | 1195 | static void receive_block_data(void *data,int size) |
1196 | { | 1196 | { |
1197 | usb_drv_recv(ep_out, data, size); | 1197 | usb_drv_recv_nonblocking(ep_out, data, size); |
1198 | state = RECEIVING_BLOCKS; | 1198 | state = RECEIVING_BLOCKS; |
1199 | } | 1199 | } |
1200 | 1200 | ||
@@ -1210,7 +1210,7 @@ static void send_csw(int status) | |||
1210 | state = WAITING_FOR_CSW_COMPLETION_OR_COMMAND; | 1210 | state = WAITING_FOR_CSW_COMPLETION_OR_COMMAND; |
1211 | //logf("CSW: %X",status); | 1211 | //logf("CSW: %X",status); |
1212 | /* Already start waiting for the next command */ | 1212 | /* Already start waiting for the next command */ |
1213 | usb_drv_recv(ep_out, cbw_buffer, MAX_CBW_SIZE); | 1213 | usb_drv_recv_nonblocking(ep_out, cbw_buffer, MAX_CBW_SIZE); |
1214 | /* The next completed transfer will be either the CSW one | 1214 | /* The next completed transfer will be either the CSW one |
1215 | * or the new command */ | 1215 | * or the new command */ |
1216 | 1216 | ||