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

lpc17xx move set configdevice into set address

for removing dcd_set_config()
hathach 6 лет назад
Родитель
Сommit
f4df829399
2 измененных файлов с 4 добавлено и 3 удалено
  1. 0 2
      src/device/usbd.c
  2. 4 1
      src/portable/nxp/lpc17_40/dcd_lpc17_40.c

+ 0 - 2
src/device/usbd.c

@@ -542,8 +542,6 @@ static bool process_control_request(uint8_t rhport, tusb_control_request_t const
         {
           uint8_t const cfg_num = (uint8_t) p_request->wValue;
 
-          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;

+ 4 - 1
src/portable/nxp/lpc17_40/dcd_lpc17_40.c

@@ -205,13 +205,15 @@ void dcd_set_address(uint8_t rhport, uint8_t dev_addr)
   dcd_edpt_xfer(rhport, tu_edpt_addr(0, TUSB_DIR_IN), NULL, 0);
 
   sie_write(SIE_CMDCODE_SET_ADDRESS, 1, 0x80 | dev_addr); // 7th bit is : device_enable
+
+  // Also Set Configure Device to enable non-control endpoint response
+  sie_write(SIE_CMDCODE_CONFIGURE_DEVICE, 1, 1);
 }
 
 void dcd_set_config(uint8_t rhport, uint8_t config_num)
 {
   (void) rhport;
   (void) config_num;
-  sie_write(SIE_CMDCODE_CONFIGURE_DEVICE, 1, 1);
 }
 
 void dcd_remote_wakeup(uint8_t rhport)
@@ -273,6 +275,7 @@ static uint8_t control_ep_read(void * buffer, uint8_t len)
 //--------------------------------------------------------------------+
 // DCD Endpoint Port
 //--------------------------------------------------------------------+
+
 bool dcd_edpt_open(uint8_t rhport, tusb_desc_endpoint_t const * p_endpoint_desc)
 {
   (void) rhport;