|
9 | 9 | #include "usb_scsi.h" |
10 | 10 | #if defined(CONFIG_USBDEV_MSC_THREAD) |
11 | 11 | #include "usb_osal.h" |
12 | | -#elif defined(CONFIG_USBDEV_MSC_POLLING) |
13 | | -#include "chry_ringbuffer.h" |
14 | 12 | #endif |
15 | 13 |
|
16 | 14 | #define MSD_OUT_EP_IDX 0 |
@@ -53,8 +51,7 @@ USB_NOCACHE_RAM_SECTION struct usbd_msc_priv { |
53 | 51 | usb_osal_thread_t usbd_msc_thread; |
54 | 52 | uint32_t nbytes; |
55 | 53 | #elif defined(CONFIG_USBDEV_MSC_POLLING) |
56 | | - chry_ringbuffer_t msc_rb; |
57 | | - uint8_t msc_rb_pool[2]; |
| 54 | + uint32_t event; |
58 | 55 | uint32_t nbytes; |
59 | 56 | #endif |
60 | 57 | } g_usbd_msc[CONFIG_USBDEV_MAX_BUS]; |
@@ -114,7 +111,7 @@ void msc_storage_notify_handler(uint8_t busid, uint8_t event, void *arg) |
114 | 111 | USB_LOG_ERR("No memory to alloc for g_usbd_msc[busid].usbd_msc_thread\r\n"); |
115 | 112 | } |
116 | 113 | #elif defined(CONFIG_USBDEV_MSC_POLLING) |
117 | | - chry_ringbuffer_init(&g_usbd_msc[busid].msc_rb, g_usbd_msc[busid].msc_rb_pool, sizeof(g_usbd_msc[busid].msc_rb_pool)); |
| 114 | + g_usbd_msc[busid].event = 0; |
118 | 115 | #endif |
119 | 116 | break; |
120 | 117 | case USBD_EVENT_DEINIT: |
@@ -539,7 +536,7 @@ static bool SCSI_read10(uint8_t busid, uint8_t **data, uint32_t *len) |
539 | 536 | usb_osal_mq_send(g_usbd_msc[busid].usbd_msc_mq, MSC_DATA_IN); |
540 | 537 | return true; |
541 | 538 | #elif defined(CONFIG_USBDEV_MSC_POLLING) |
542 | | - chry_ringbuffer_write_byte(&g_usbd_msc[busid].msc_rb, MSC_DATA_IN); |
| 539 | + g_usbd_msc[busid].event = MSC_DATA_IN; |
543 | 540 | return true; |
544 | 541 | #else |
545 | 542 | return SCSI_processRead(busid); |
@@ -577,7 +574,7 @@ static bool SCSI_read12(uint8_t busid, uint8_t **data, uint32_t *len) |
577 | 574 | usb_osal_mq_send(g_usbd_msc[busid].usbd_msc_mq, MSC_DATA_IN); |
578 | 575 | return true; |
579 | 576 | #elif defined(CONFIG_USBDEV_MSC_POLLING) |
580 | | - chry_ringbuffer_write_byte(&g_usbd_msc[busid].msc_rb, MSC_DATA_IN); |
| 577 | + g_usbd_msc[busid].event = MSC_DATA_IN; |
581 | 578 | return true; |
582 | 579 | #else |
583 | 580 | return SCSI_processRead(busid); |
@@ -852,7 +849,7 @@ void mass_storage_bulk_out(uint8_t busid, uint8_t ep, uint32_t nbytes) |
852 | 849 | usb_osal_mq_send(g_usbd_msc[busid].usbd_msc_mq, MSC_DATA_OUT); |
853 | 850 | #elif defined(CONFIG_USBDEV_MSC_POLLING) |
854 | 851 | g_usbd_msc[busid].nbytes = nbytes; |
855 | | - chry_ringbuffer_write_byte(&g_usbd_msc[busid].msc_rb, MSC_DATA_OUT); |
| 852 | + g_usbd_msc[busid].event = MSC_DATA_OUT; |
856 | 853 | #else |
857 | 854 | if (SCSI_processWrite(busid, nbytes) == false) { |
858 | 855 | usbd_msc_send_csw(busid, CSW_STATUS_CMD_FAILED); /* send fail status to host,and the host will retry*/ |
@@ -881,7 +878,7 @@ void mass_storage_bulk_in(uint8_t busid, uint8_t ep, uint32_t nbytes) |
881 | 878 | #if defined(CONFIG_USBDEV_MSC_THREAD) |
882 | 879 | usb_osal_mq_send(g_usbd_msc[busid].usbd_msc_mq, MSC_DATA_IN); |
883 | 880 | #elif defined(CONFIG_USBDEV_MSC_POLLING) |
884 | | - chry_ringbuffer_write_byte(&g_usbd_msc[busid].msc_rb, MSC_DATA_IN); |
| 881 | + g_usbd_msc[busid].event = MSC_DATA_IN; |
885 | 882 | #else |
886 | 883 | if (SCSI_processRead(busid) == false) { |
887 | 884 | usbd_msc_send_csw(busid, CSW_STATUS_CMD_FAILED); /* send fail status to host,and the host will retry*/ |
@@ -940,7 +937,10 @@ void usbd_msc_polling(uint8_t busid) |
940 | 937 | { |
941 | 938 | uint8_t event; |
942 | 939 |
|
943 | | - if (chry_ringbuffer_read_byte(&g_usbd_msc[busid].msc_rb, &event)) { |
| 940 | + event = g_usbd_msc[busid].event; |
| 941 | + |
| 942 | + if (event != 0) { |
| 943 | + g_usbd_msc[busid].event = 0; |
944 | 944 | USB_LOG_DBG("event:%d\r\n", event); |
945 | 945 | if (event == MSC_DATA_OUT) { |
946 | 946 | if (SCSI_processWrite(busid, g_usbd_msc[busid].nbytes) == false) { |
@@ -979,7 +979,8 @@ struct usbd_interface *usbd_msc_init_intf(uint8_t busid, struct usbd_interface * |
979 | 979 |
|
980 | 980 | if (CONFIG_USBDEV_MSC_MAX_BUFSIZE % g_usbd_msc[busid].scsi_blk_size[i]) { |
981 | 981 | USB_LOG_ERR("CONFIG_USBDEV_MSC_MAX_BUFSIZE must be a multiple of block size\r\n"); |
982 | | - while(1){} |
| 982 | + while (1) { |
| 983 | + } |
983 | 984 | } |
984 | 985 | } |
985 | 986 |
|
|
0 commit comments