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

rename class driver close() to reset()

hathach 7 лет назад
Родитель
Сommit
dccb06ba7d

+ 1 - 1
src/class/cdc/cdc_device.c

@@ -232,7 +232,7 @@ tusb_error_t cdcd_open(uint8_t rhport, tusb_desc_interface_t const * p_interface
   return TUSB_ERROR_NONE;
   return TUSB_ERROR_NONE;
 }
 }
 
 
-void cdcd_close(uint8_t rhport)
+void cdcd_reset(uint8_t rhport)
 {
 {
   // no need to close opened pipe, dcd bus reset will put controller's endpoints to default state
   // no need to close opened pipe, dcd bus reset will put controller's endpoints to default state
   (void) rhport;
   (void) rhport;

+ 1 - 1
src/class/cdc/cdc_device.h

@@ -99,7 +99,7 @@ void         cdcd_init               (void);
 tusb_error_t cdcd_open               (uint8_t rhport, tusb_desc_interface_t const * p_interface_desc, uint16_t *p_length);
 tusb_error_t cdcd_open               (uint8_t rhport, tusb_desc_interface_t const * p_interface_desc, uint16_t *p_length);
 tusb_error_t cdcd_control_request_st (uint8_t rhport, tusb_control_request_t const * p_request);
 tusb_error_t cdcd_control_request_st (uint8_t rhport, tusb_control_request_t const * p_request);
 tusb_error_t cdcd_xfer_cb            (uint8_t rhport, uint8_t edpt_addr, tusb_event_t event, uint32_t xferred_bytes);
 tusb_error_t cdcd_xfer_cb            (uint8_t rhport, uint8_t edpt_addr, tusb_event_t event, uint32_t xferred_bytes);
-void         cdcd_close              (uint8_t rhport);
+void         cdcd_reset              (uint8_t rhport);
 
 
 #if CFG_TUD_CDC_FLUSH_ON_SOF
 #if CFG_TUD_CDC_FLUSH_ON_SOF
 void cdcd_sof(uint8_t rhport);
 void cdcd_sof(uint8_t rhport);

+ 1 - 1
src/class/custom/custom_device.c

@@ -97,7 +97,7 @@ tusb_error_t cusd_xfer_cb(uint8_t rhport, uint8_t edpt_addr, tusb_event_t event,
   return TUSB_ERROR_NONE;
   return TUSB_ERROR_NONE;
 }
 }
 
 
-void cusd_close(uint8_t rhport)
+void cusd_reset(uint8_t rhport)
 {
 {
 
 
 }
 }

+ 1 - 1
src/class/custom/custom_device.h

@@ -64,7 +64,7 @@ void cusd_init(void);
 tusb_error_t cusd_open(uint8_t rhport, tusb_desc_interface_t const * p_interface_desc, uint16_t *p_length);
 tusb_error_t cusd_open(uint8_t rhport, tusb_desc_interface_t const * p_interface_desc, uint16_t *p_length);
 tusb_error_t cusd_control_request_st(uint8_t rhport, tusb_control_request_t const * p_request);
 tusb_error_t cusd_control_request_st(uint8_t rhport, tusb_control_request_t const * p_request);
 tusb_error_t cusd_xfer_cb(uint8_t rhport, uint8_t edpt_addr, tusb_event_t event, uint32_t xferred_bytes);
 tusb_error_t cusd_xfer_cb(uint8_t rhport, uint8_t edpt_addr, tusb_event_t event, uint32_t xferred_bytes);
-void cusd_close(uint8_t rhport);
+void cusd_reset(uint8_t rhport);
 #endif
 #endif
 
 
 
 

+ 1 - 1
src/class/hid/hid_device.c

@@ -168,7 +168,7 @@ void hidd_init(void)
   }
   }
 }
 }
 
 
-void hidd_close(uint8_t rhport)
+void hidd_reset(uint8_t rhport)
 {
 {
   for(uint8_t i=0; i<HIDD_NUMBER_OF_SUBCLASS; i++)
   for(uint8_t i=0; i<HIDD_NUMBER_OF_SUBCLASS; i++)
   {
   {

+ 1 - 1
src/class/hid/hid_device.h

@@ -204,7 +204,7 @@ void hidd_init(void);
 tusb_error_t hidd_open(uint8_t rhport, tusb_desc_interface_t const * p_interface_desc, uint16_t *p_length);
 tusb_error_t hidd_open(uint8_t rhport, tusb_desc_interface_t const * p_interface_desc, uint16_t *p_length);
 tusb_error_t hidd_control_request_st(uint8_t rhport, tusb_control_request_t const * p_request);
 tusb_error_t hidd_control_request_st(uint8_t rhport, tusb_control_request_t const * p_request);
 tusb_error_t hidd_xfer_cb(uint8_t rhport, uint8_t edpt_addr, tusb_event_t event, uint32_t xferred_bytes);
 tusb_error_t hidd_xfer_cb(uint8_t rhport, uint8_t edpt_addr, tusb_event_t event, uint32_t xferred_bytes);
-void hidd_close(uint8_t rhport);
+void hidd_reset(uint8_t rhport);
 
 
 #endif
 #endif
 
 

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

@@ -153,7 +153,7 @@ void mscd_init(void)
   memclr_(&_mscd_itf, sizeof(mscd_interface_t));
   memclr_(&_mscd_itf, sizeof(mscd_interface_t));
 }
 }
 
 
-void mscd_close(uint8_t rhport)
+void mscd_reset(uint8_t rhport)
 {
 {
   memclr_(&_mscd_itf, sizeof(mscd_interface_t));
   memclr_(&_mscd_itf, sizeof(mscd_interface_t));
 }
 }

+ 1 - 1
src/class/msc/msc_device.h

@@ -146,7 +146,7 @@ void mscd_init(void);
 tusb_error_t mscd_open(uint8_t rhport, tusb_desc_interface_t const * p_interface_desc, uint16_t *p_length);
 tusb_error_t mscd_open(uint8_t rhport, tusb_desc_interface_t const * p_interface_desc, uint16_t *p_length);
 tusb_error_t mscd_control_request_st(uint8_t rhport, tusb_control_request_t const * p_request);
 tusb_error_t mscd_control_request_st(uint8_t rhport, tusb_control_request_t const * p_request);
 tusb_error_t mscd_xfer_cb(uint8_t rhport, uint8_t edpt_addr, tusb_event_t event, uint32_t xferred_bytes);
 tusb_error_t mscd_xfer_cb(uint8_t rhport, uint8_t edpt_addr, tusb_event_t event, uint32_t xferred_bytes);
-void mscd_close(uint8_t rhport);
+void mscd_reset(uint8_t rhport);
 
 
 #endif
 #endif
 
 

+ 12 - 6
src/device/usbd.c

@@ -81,7 +81,7 @@ typedef struct {
   tusb_error_t (* control_req_st ) (uint8_t rhport, tusb_control_request_t const *);
   tusb_error_t (* control_req_st ) (uint8_t rhport, tusb_control_request_t const *);
   tusb_error_t (* xfer_cb        ) (uint8_t rhport, uint8_t ep_addr, tusb_event_t, uint32_t);
   tusb_error_t (* xfer_cb        ) (uint8_t rhport, uint8_t ep_addr, tusb_event_t, uint32_t);
   void         (* sof            ) (uint8_t rhport);
   void         (* sof            ) (uint8_t rhport);
-  void         (* close          ) (uint8_t);
+  void         (* reset          ) (uint8_t);
 } usbd_class_driver_t;
 } usbd_class_driver_t;
 
 
 static usbd_class_driver_t const usbd_class_drivers[] =
 static usbd_class_driver_t const usbd_class_drivers[] =
@@ -94,7 +94,7 @@ static usbd_class_driver_t const usbd_class_drivers[] =
         .control_req_st = cdcd_control_request_st,
         .control_req_st = cdcd_control_request_st,
         .xfer_cb        = cdcd_xfer_cb,
         .xfer_cb        = cdcd_xfer_cb,
         .sof            = cdcd_sof,
         .sof            = cdcd_sof,
-        .close          = cdcd_close
+        .reset          = cdcd_reset
     },
     },
   #endif
   #endif
 
 
@@ -106,7 +106,7 @@ static usbd_class_driver_t const usbd_class_drivers[] =
         .control_req_st = hidd_control_request_st,
         .control_req_st = hidd_control_request_st,
         .xfer_cb        = hidd_xfer_cb,
         .xfer_cb        = hidd_xfer_cb,
         .sof            = NULL,
         .sof            = NULL,
-        .close          = hidd_close
+        .reset          = hidd_reset
     },
     },
   #endif
   #endif
 
 
@@ -118,7 +118,7 @@ static usbd_class_driver_t const usbd_class_drivers[] =
         .control_req_st = mscd_control_request_st,
         .control_req_st = mscd_control_request_st,
         .xfer_cb        = mscd_xfer_cb,
         .xfer_cb        = mscd_xfer_cb,
         .sof            = NULL,
         .sof            = NULL,
-        .close          = mscd_close
+        .reset          = mscd_reset
     },
     },
   #endif
   #endif
 
 
@@ -130,7 +130,7 @@ static usbd_class_driver_t const usbd_class_drivers[] =
         .control_req_st = cusd_control_request_st,
         .control_req_st = cusd_control_request_st,
         .xfer_cb        = cusd_xfer_cb,
         .xfer_cb        = cusd_xfer_cb,
         .sof            = NULL,
         .sof            = NULL,
-        .close          = cusd_close
+        .reset          = cusd_reset
     },
     },
   #endif
   #endif
 };
 };
@@ -525,6 +525,12 @@ void dcd_bus_event(uint8_t rhport, usbd_bus_event_type_t bus_event)
   switch(bus_event)
   switch(bus_event)
   {
   {
     case USBD_BUS_EVENT_RESET:
     case USBD_BUS_EVENT_RESET:
+      varclr_(&_usbd_dev);
+      for (uint8_t i = 0; i < USBD_CLASS_DRIVER_COUNT; i++)
+      {
+        if ( usbd_class_drivers[i].reset ) usbd_class_drivers[i].reset( rhport );
+      }
+
       osal_queue_flush(_usbd_q);
       osal_queue_flush(_usbd_q);
       osal_semaphore_reset_isr(_usbd_ctrl_sem);
       osal_semaphore_reset_isr(_usbd_ctrl_sem);
     break;
     break;
@@ -546,7 +552,7 @@ void dcd_bus_event(uint8_t rhport, usbd_bus_event_type_t bus_event)
       varclr_(&_usbd_dev);
       varclr_(&_usbd_dev);
       for (uint8_t i = 0; i < USBD_CLASS_DRIVER_COUNT; i++)
       for (uint8_t i = 0; i < USBD_CLASS_DRIVER_COUNT; i++)
       {
       {
-        if ( usbd_class_drivers[i].close ) usbd_class_drivers[i].close( rhport );
+        if ( usbd_class_drivers[i].reset ) usbd_class_drivers[i].reset( rhport );
       }
       }
 
 
       tud_umount_cb(); // invoke callback
       tud_umount_cb(); // invoke callback