From a1e467aaa075150ce3b2d22fd3c3d87ac3e2119a Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Tue, 28 Apr 2015 20:41:07 +0200 Subject: [PATCH] Fixes #2154: USB mass storage problem with cards bigger than 4GB --- .../Class/msc/src/usbd_msc_scsi.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/radio/src/thirdparty/STM32_USB-Host-Device_Lib_V2.1.0/Libraries/STM32_USB_Device_Library/Class/msc/src/usbd_msc_scsi.c b/radio/src/thirdparty/STM32_USB-Host-Device_Lib_V2.1.0/Libraries/STM32_USB_Device_Library/Class/msc/src/usbd_msc_scsi.c index 95f27c962..1a7ccf6bc 100644 --- a/radio/src/thirdparty/STM32_USB-Host-Device_Lib_V2.1.0/Libraries/STM32_USB_Device_Library/Class/msc/src/usbd_msc_scsi.c +++ b/radio/src/thirdparty/STM32_USB-Host-Device_Lib_V2.1.0/Libraries/STM32_USB_Device_Library/Class/msc/src/usbd_msc_scsi.c @@ -511,7 +511,6 @@ static int8_t SCSI_Read10(uint8_t lun , uint8_t *params) } MSC_BOT_State = BOT_DATA_IN; - SCSI_blk_addr *= SCSI_blk_size; SCSI_blk_len *= SCSI_blk_size; /* cases 4,5 : Hi <> Dn */ @@ -583,7 +582,6 @@ static int8_t SCSI_Write10 (uint8_t lun , uint8_t *params) return -1; /* error */ } - SCSI_blk_addr *= SCSI_blk_size; SCSI_blk_len *= SCSI_blk_size; /* cases 3,11,13 : Hn,Ho <> D0 */ @@ -672,7 +670,7 @@ static int8_t SCSI_ProcessRead (uint8_t lun) if( USBD_STORAGE_fops->Read(lun , MSC_BOT_Data, - SCSI_blk_addr / SCSI_blk_size, + SCSI_blk_addr, len / SCSI_blk_size) < 0) { @@ -687,7 +685,7 @@ static int8_t SCSI_ProcessRead (uint8_t lun) len); - SCSI_blk_addr += len; + SCSI_blk_addr += len / SCSI_blk_size; SCSI_blk_len -= len; /* case 6 : Hi = Di */ @@ -715,7 +713,7 @@ static int8_t SCSI_ProcessWrite (uint8_t lun) if(USBD_STORAGE_fops->Write(lun , MSC_BOT_Data, - SCSI_blk_addr / SCSI_blk_size, + SCSI_blk_addr, len / SCSI_blk_size) < 0) { SCSI_SenseCode(lun, HARDWARE_ERROR, WRITE_FAULT); @@ -723,7 +721,7 @@ static int8_t SCSI_ProcessWrite (uint8_t lun) } - SCSI_blk_addr += len; + SCSI_blk_addr += len / SCSI_blk_size; SCSI_blk_len -= len; /* case 12 : Ho = Do */