From 548953623b8b87670c97c2bfd5531a290eee9830 Mon Sep 17 00:00:00 2001 From: bsongis Date: Sat, 15 Sep 2012 17:38:45 +0000 Subject: [PATCH] [sky9x] Massstorage: command 0x1B added (quick & dirty) --- .../usb/device/massstorage/MSDDStateMachine.c | 2 ++ .../libraries/usb/device/massstorage/SBCMethods.c | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) 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: