diff --git a/src/ersky9x/libraries/usb/device/massstorage/MSDDStateMachine.c b/src/ersky9x/libraries/usb/device/massstorage/MSDDStateMachine.c index bc69a4963..a024e26de 100644 --- a/src/ersky9x/libraries/usb/device/massstorage/MSDDStateMachine.c +++ b/src/ersky9x/libraries/usb/device/massstorage/MSDDStateMachine.c @@ -144,6 +144,8 @@ static unsigned char MSDD_PreProcessCommand(MSDDriver *pMsdDriver) } else if(deviceType == MSDD_DEVICE_TO_HOST) { + TRACE_ERROR("cmd=0x%0x h=%d d=%d", cbw->pCommand[0], hostLength, deviceLength); + if(hostLength > deviceLength) { // Case 5 (Hi > Di) diff --git a/src/ersky9x/libraries/usb/device/massstorage/SBCMethods.c b/src/ersky9x/libraries/usb/device/massstorage/SBCMethods.c index c8ced638b..856bd2e87 100644 --- a/src/ersky9x/libraries/usb/device/massstorage/SBCMethods.c +++ b/src/ersky9x/libraries/usb/device/massstorage/SBCMethods.c @@ -1430,6 +1430,7 @@ unsigned char SBC_GetCommandInformation(void *command, //------------------------------------ case SBC_PREVENT_ALLOW_MEDIUM_REMOVAL: + case 0x1B: //------------------------------------ (*type) = MSDD_NO_TRANSFER; break; @@ -1589,23 +1590,28 @@ unsigned char SBC_ProcessCommand(MSDLun *lun, //------------------------------------ case SBC_PREVENT_ALLOW_MEDIUM_REMOVAL: + case 0x1B: //------------------------------------ TRACE_INFO_WP("PrevAllowRem "); // Check parameter result = command->mediumRemoval.bPrevent ? MSDD_STATUS_PARAMETER : MSDD_STATUS_SUCCESS; + result = MSDD_STATUS_SUCCESS; break; + #if 0 //------------------------------------ case SBC_READ_FORMAT_CAPACITIES: //------------------------------------ TRACE_INFO_WP("RdFmtCap "); - if (!SBCLunIsReady(lun)) { + result = MSDD_STATUS_RW; + break; + /* TODO BSS Added if (!SBCLunIsReady(lun)) { result = MSDD_STATUS_RW; break; - } + } */ #endif //------ default: