Просмотр исходного кода

add back edpt check before cbw, since bot reset can occurred any time

hathach 4 лет назад
Родитель
Сommit
15fa2f447b
1 измененных файлов с 5 добавлено и 1 удалено
  1. 5 1
      src/class/msc/msc_device.c

+ 5 - 1
src/class/msc/msc_device.c

@@ -323,7 +323,11 @@ bool mscd_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_request_t
         if ( p_msc->stage == MSC_STAGE_CMD )
         {
           // part of reset recovery (probably due to invalid CBW) -> prepare for new command
-          TU_ASSERT( prepare_cbw(rhport, p_msc) );
+          // Note: skip if already queued previously
+          if ( usbd_edpt_ready(rhport, p_msc->ep_out) )
+          {
+            TU_ASSERT( prepare_cbw(rhport, p_msc) );
+          }
         }
       }
     }