incubator-nuttx/drivers/usbdev
Yuichi Nakamura 8d722709cd usbmsc: Add USBMSC_NOT_STALL_BULKEP for RP2040 workaround
The new configuration CONFIG_USBMSC_NOT_STALL_BULKEP avoids to go into
stall state when :
- Receiving SCSI_CMD_INQUIRY with flags or pagecode != 0
- Receiving SCSI_CMD_MODESENSE6 and return the result data shorter than
  the requested data size.
Instead of stall, it just ignores the error condition.

Originally the usb driver goes into the stall under the conditions
mentioned above to inform to the USB host that the requested SCSI feature
is not supported, or the result data is shorter than the requested data
size.
But, at this moment, RP2040 USB device driver cannot handle entering and
leaving stall state of the bulk endpoints well.  Once stalls, the host -
device communication stops and cannot be resumed.

I have investigated to solve the issue and found that the existing
RP2040 USB device driver implementation, TinyUSB
(https://github.com/hathach/tinyusb) mass-storage class driver doesn't
enter the stall state like the treatment of this patch.

So, I introduce this new configuration as the RP2040 workaround.
In the future, when the RP2040 USB device driver is fixed and can handle
the bulk endpoint stall correctly, this patch should be reverted.
2021-06-14 09:05:19 -03:00
..
Kconfig usbmsc: Add USBMSC_NOT_STALL_BULKEP for RP2040 workaround 2021-06-14 09:05:19 -03:00
Make.defs drivers: Author Gregory Nutt: update licenses to Apache 2021-03-04 18:32:27 -08:00
adb.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
cdcacm.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
cdcacm.h drivers: nxstyle fixes 2021-03-04 18:32:27 -08:00
cdcacm_desc.c drivers: nxstyle fixes 2021-03-04 18:32:27 -08:00
cdcecm.c drivers: update licenses to Apache 2021-05-31 02:58:08 -05:00
cdcecm.h arm: stm32xx: Michael Jung: update licenses to Apache 2021-04-01 12:13:12 -05:00
composite.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
composite.h drivers: nxstyle fixes 2021-03-04 18:32:27 -08:00
composite_desc.c drivers: nxstyle fixes 2021-03-04 18:32:27 -08:00
dfu.c Don't include debug.h from public header file 2021-06-01 06:42:02 +09:00
pl2303.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
rndis.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
rndis_std.h drivers: update licenses to Apache 2021-05-31 02:58:08 -05:00
usbdev_strings.c drivers: nxstyle fixes 2021-03-04 18:32:27 -08:00
usbdev_trace.c drivers: Author Gregory Nutt: update licenses to Apache 2021-03-04 18:32:27 -08:00
usbdev_trprintf.c drivers: nxstyle fixes 2021-03-04 18:32:27 -08:00
usbmsc.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
usbmsc.h drivers: nxstyle fixes 2021-03-04 18:32:27 -08:00
usbmsc_desc.c NuttX: Fix nxtyle errors 2021-04-03 04:20:31 -07:00
usbmsc_scsi.c usbmsc: Add USBMSC_NOT_STALL_BULKEP for RP2040 workaround 2021-06-14 09:05:19 -03:00