From 756987050fe1dd82eadebea3a8e890767252df36 Mon Sep 17 00:00:00 2001 From: Zhihong Chen Date: Thu, 22 Feb 2024 18:23:32 +0800 Subject: [PATCH] class: msc: stage change should be before usbd_ep_start_write() - stage change should be before usbd_ep_start_write() Signed-off-by: Zhihong Chen --- class/msc/usbd_msc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/class/msc/usbd_msc.c b/class/msc/usbd_msc.c index 5599690b..055cdc4e 100644 --- a/class/msc/usbd_msc.c +++ b/class/msc/usbd_msc.c @@ -679,8 +679,6 @@ static bool SCSI_processRead(uint8_t busid) return false; } - usbd_ep_start_write(busid, mass_ep_data[busid][MSD_IN_EP_IDX].ep_addr, g_usbd_msc[busid].block_buffer, transfer_len); - g_usbd_msc[busid].start_sector += (transfer_len / g_usbd_msc[busid].scsi_blk_size[g_usbd_msc[busid].cbw.bLUN]); g_usbd_msc[busid].nsectors -= (transfer_len / g_usbd_msc[busid].scsi_blk_size[g_usbd_msc[busid].cbw.bLUN]); g_usbd_msc[busid].csw.dDataResidue -= transfer_len; @@ -689,6 +687,8 @@ static bool SCSI_processRead(uint8_t busid) g_usbd_msc[busid].stage = MSC_SEND_CSW; } + usbd_ep_start_write(busid, mass_ep_data[busid][MSD_IN_EP_IDX].ep_addr, g_usbd_msc[busid].block_buffer, transfer_len); + return true; }