Explorar el Código

Merge pull request #254 from majbthrd/multi-setconfig

gracefully handle multiple SET_CONFIGURATION requests
Ha Thach hace 6 años
padre
commit
d6a8d42bd6
Se han modificado 1 ficheros con 3 adiciones y 1 borrados
  1. 3 1
      src/device/usbd.c

+ 3 - 1
src/device/usbd.c

@@ -519,9 +519,11 @@ static bool process_control_request(uint8_t rhport, tusb_control_request_t const
           uint8_t const cfg_num = (uint8_t) p_request->wValue;
           uint8_t const cfg_num = (uint8_t) p_request->wValue;
 
 
           dcd_set_config(rhport, cfg_num);
           dcd_set_config(rhport, cfg_num);
+
+          if ( !_usbd_dev.configured && cfg_num ) TU_ASSERT( process_set_config(rhport, cfg_num) );
+
           _usbd_dev.configured = cfg_num ? 1 : 0;
           _usbd_dev.configured = cfg_num ? 1 : 0;
 
 
-          if ( cfg_num ) TU_ASSERT( process_set_config(rhport, cfg_num) );
           tud_control_status(rhport, p_request);
           tud_control_status(rhport, p_request);
         }
         }
         break;
         break;