8d722709cd
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. |
||
---|---|---|
.. | ||
adb.c | ||
cdcacm_desc.c | ||
cdcacm.c | ||
cdcacm.h | ||
cdcecm.c | ||
cdcecm.h | ||
composite_desc.c | ||
composite.c | ||
composite.h | ||
dfu.c | ||
Kconfig | ||
Make.defs | ||
pl2303.c | ||
rndis_std.h | ||
rndis.c | ||
usbdev_strings.c | ||
usbdev_trace.c | ||
usbdev_trprintf.c | ||
usbmsc_desc.c | ||
usbmsc_scsi.c | ||
usbmsc.c | ||
usbmsc.h |