remove class_code/subclass/protocol from driver structure, add name for logging
This commit is contained in:
		| @@ -73,17 +73,17 @@ enum { DRVID_INVALID = 0xFFu }; | ||||
| //--------------------------------------------------------------------+ | ||||
| // Class Driver | ||||
| //--------------------------------------------------------------------+ | ||||
| #if CFG_TUSB_DEBUG >= 2 | ||||
|   #define DRIVER_NAME(_name)    .name = _name, | ||||
| #else | ||||
|   #define DRIVER_NAME(_name) | ||||
| #endif | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   uint8_t class_code; | ||||
|   uint8_t subclass; | ||||
|   uint8_t protocol; | ||||
|  | ||||
|   struct TU_ATTR_PACKED | ||||
|   { | ||||
|     uint8_t all_subclass : 1; | ||||
|     uint8_t all_protocol : 1; | ||||
|   }; | ||||
|   #if CFG_TUSB_DEBUG >= 2 | ||||
|   char const* name; | ||||
|   #endif | ||||
|  | ||||
|   void (* init             ) (void); | ||||
|   void (* reset            ) (uint8_t rhport); | ||||
| @@ -98,12 +98,7 @@ static usbd_class_driver_t const _usbd_driver[] = | ||||
| { | ||||
|   #if CFG_TUD_CDC | ||||
|   { | ||||
|       .class_code       = TUSB_CLASS_CDC, | ||||
|       .subclass         = CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL, | ||||
|       .protocol         = 0x00, | ||||
|       .all_subclass     = 0, | ||||
|       .all_protocol     = 1, | ||||
|  | ||||
|       DRIVER_NAME("CDC") | ||||
|       .init             = cdcd_init, | ||||
|       .reset            = cdcd_reset, | ||||
|       .open             = cdcd_open, | ||||
| @@ -116,12 +111,7 @@ static usbd_class_driver_t const _usbd_driver[] = | ||||
|  | ||||
|   #if CFG_TUD_MSC | ||||
|   { | ||||
|       .class_code       = TUSB_CLASS_MSC, | ||||
|       .subclass         = MSC_SUBCLASS_SCSI, | ||||
|       .protocol         = MSC_PROTOCOL_BOT, | ||||
|       .all_subclass     = 0, | ||||
|       .all_protocol     = 0, | ||||
|  | ||||
|       DRIVER_NAME("MSC") | ||||
|       .init             = mscd_init, | ||||
|       .reset            = mscd_reset, | ||||
|       .open             = mscd_open, | ||||
| @@ -134,12 +124,7 @@ static usbd_class_driver_t const _usbd_driver[] = | ||||
|  | ||||
|   #if CFG_TUD_HID | ||||
|   { | ||||
|       .class_code       = TUSB_CLASS_HID, | ||||
|       .subclass         = 0x00, | ||||
|       .protocol         = 0x00, | ||||
|       .all_subclass     = 1, | ||||
|       .all_protocol     = 1, | ||||
|  | ||||
|       DRIVER_NAME("HID") | ||||
|       .init             = hidd_init, | ||||
|       .reset            = hidd_reset, | ||||
|       .open             = hidd_open, | ||||
| @@ -152,12 +137,7 @@ static usbd_class_driver_t const _usbd_driver[] = | ||||
|  | ||||
|   #if CFG_TUD_MIDI | ||||
|   { | ||||
|       .class_code       = TUSB_CLASS_AUDIO, | ||||
|       .subclass         = AUDIO_SUBCLASS_CONTROL, | ||||
|       .protocol         = AUDIO_PROTOCOL_V1, | ||||
|       .all_subclass     = 0, | ||||
|       .all_protocol     = 0, | ||||
|  | ||||
|       DRIVER_NAME("MIDI") | ||||
|       .init             = midid_init, | ||||
|       .open             = midid_open, | ||||
|       .reset            = midid_reset, | ||||
| @@ -170,12 +150,7 @@ static usbd_class_driver_t const _usbd_driver[] = | ||||
|  | ||||
|   #if CFG_TUD_VENDOR | ||||
|   { | ||||
|       .class_code       = TUSB_CLASS_VENDOR_SPECIFIC, | ||||
|       .subclass         = 0x00, | ||||
|       .protocol         = 0x00, | ||||
|       .all_subclass     = 1, | ||||
|       .all_protocol     = 1, | ||||
|  | ||||
|       DRIVER_NAME("VENDOR") | ||||
|       .init             = vendord_init, | ||||
|       .reset            = vendord_reset, | ||||
|       .open             = vendord_open, | ||||
| @@ -188,12 +163,7 @@ static usbd_class_driver_t const _usbd_driver[] = | ||||
|  | ||||
|   #if CFG_TUD_USBTMC | ||||
|   { | ||||
|       .class_code       = TUSB_CLASS_APPLICATION_SPECIFIC, | ||||
|       .subclass         = APP_SUBCLASS_USBTMC, | ||||
|       .protocol         = 0x00, | ||||
|       .all_subclass     = 0, | ||||
|       .all_protocol     = 1, | ||||
|  | ||||
|       DRIVER_NAME("TMC") | ||||
|       .init             = usbtmcd_init_cb, | ||||
|       .reset            = usbtmcd_reset_cb, | ||||
|       .open             = usbtmcd_open_cb, | ||||
| @@ -206,12 +176,7 @@ static usbd_class_driver_t const _usbd_driver[] = | ||||
|  | ||||
|   #if CFG_TUD_DFU_RT | ||||
|   { | ||||
|       .class_code       = TUSB_CLASS_APPLICATION_SPECIFIC, | ||||
|       .subclass         = APP_SUBCLASS_DFU_RUNTIME, | ||||
|       .protocol         = DFU_PROTOCOL_RT, | ||||
|       .all_subclass     = 0, | ||||
|       .all_protocol     = 0, | ||||
|  | ||||
|       DRIVER_NAME("DFU-RT") | ||||
|       .init             = dfu_rtd_init, | ||||
|       .reset            = dfu_rtd_reset, | ||||
|       .open             = dfu_rtd_open, | ||||
| @@ -225,7 +190,12 @@ static usbd_class_driver_t const _usbd_driver[] = | ||||
|   #if CFG_TUD_NET | ||||
|   /* RNDIS management interface */ | ||||
|   { | ||||
|       .class_code       = TUD_RNDIS_ITF_CLASS, | ||||
| //      .class_code       = TUD_RNDIS_ITF_CLASS, | ||||
| //      .subclass         = TUD_RNDIS_ITF_SUBCLASS, | ||||
| //      .protocol         = TUD_RNDIS_ITF_PROTOCOL, | ||||
| //      .all_subclass     = 0, | ||||
| //      .all_protocol     = 0, | ||||
|       DRIVER_NAME("RNDIS") | ||||
|       .init             = netd_init, | ||||
|       .reset            = netd_reset, | ||||
|       .open             = netd_open, | ||||
| @@ -236,7 +206,13 @@ static usbd_class_driver_t const _usbd_driver[] = | ||||
|   }, | ||||
|   /* CDC-ECM management interface */ | ||||
|   { | ||||
|       .class_code       = TUSB_CLASS_CDC, | ||||
| //      .class_code       = TUSB_CLASS_CDC, | ||||
| //      .subclass         = CDC_COMM_SUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL, | ||||
| //      .protocol         = 0x00, | ||||
| //      .all_subclass     = 0, | ||||
| //      .all_protocol     = 0, | ||||
|  | ||||
|       DRIVER_NAME("CDC-ECM") | ||||
|       .init             = netd_init, | ||||
|       .reset            = netd_reset, | ||||
|       .open             = netd_open, | ||||
| @@ -247,7 +223,12 @@ static usbd_class_driver_t const _usbd_driver[] = | ||||
|   }, | ||||
|   /* RNDIS/CDC-ECM data interface */ | ||||
|   { | ||||
|       .class_code       = TUSB_CLASS_CDC_DATA, | ||||
| //      .class_code       = TUSB_CLASS_CDC_DATA, | ||||
| //      .subclass         = 0x00, | ||||
| //      .protocol         = 0x00, | ||||
| //      .all_subclass     = 0, | ||||
| //      .all_protocol     = 0, | ||||
|       DRIVER_NAME("CDC-DATA") | ||||
|       .init             = netd_init_data, | ||||
|       .reset            = NULL, | ||||
|       .open             = netd_open_data, | ||||
| @@ -303,35 +284,6 @@ static char const* const _usbd_event_str[DCD_EVENT_COUNT] = | ||||
|   "FUNC_CALL" | ||||
| }; | ||||
|  | ||||
| // must be same driver order as usbd_class_drivers[] | ||||
| static char const* const _usbd_driver_str[USBD_CLASS_DRIVER_COUNT] = | ||||
| { | ||||
|   #if CFG_TUD_CDC | ||||
|     "CDC", | ||||
|   #endif | ||||
|   #if CFG_TUD_MSC | ||||
|     "MSC", | ||||
|   #endif | ||||
|   #if CFG_TUD_HID | ||||
|     "HID", | ||||
|   #endif | ||||
|   #if CFG_TUD_MIDI | ||||
|     "MIDI", | ||||
|   #endif | ||||
|   #if CFG_TUD_VENDOR | ||||
|     "Vendor", | ||||
|   #endif | ||||
|   #if CFG_TUD_DFU_RT | ||||
|     "DFU Runtime", | ||||
|   #endif | ||||
|   #if CFG_TUD_USBTMC | ||||
|     "USBTMC" | ||||
|   #endif | ||||
|   #if CFG_TUD_NET | ||||
|     "NET" | ||||
|   #endif | ||||
| }; | ||||
|  | ||||
| static char const* const _tusb_std_request_str[] = | ||||
| { | ||||
|   "Get Status"        , | ||||
| @@ -388,7 +340,7 @@ bool tud_init (void) | ||||
|   // Init class drivers | ||||
|   for (uint8_t i = 0; i < USBD_CLASS_DRIVER_COUNT; i++) | ||||
|   { | ||||
|     TU_LOG2("%s init\r\n", _usbd_driver_str[i]); | ||||
|     TU_LOG2("%s init\r\n", _usbd_driver[i].name); | ||||
|     _usbd_driver[i].init(); | ||||
|   } | ||||
|  | ||||
| @@ -497,7 +449,7 @@ void tud_task (void) | ||||
|           uint8_t const drv_id = _usbd_dev.ep2drv[epnum][ep_dir]; | ||||
|           TU_ASSERT(drv_id < USBD_CLASS_DRIVER_COUNT,); | ||||
|  | ||||
|           TU_LOG2("  %s xfer callback\r\n", _usbd_driver_str[drv_id]); | ||||
|           TU_LOG2("  %s xfer callback\r\n", _usbd_driver[drv_id].name); | ||||
|           _usbd_driver[drv_id].xfer_cb(event.rhport, ep_addr, event.xfer_complete.result, event.xfer_complete.len); | ||||
|         } | ||||
|       } | ||||
| @@ -542,7 +494,7 @@ static bool invoke_class_control(uint8_t rhport, uint8_t drvid, tusb_control_req | ||||
|   TU_ASSERT(_usbd_driver[drvid].control_request); | ||||
|  | ||||
|   usbd_control_set_complete_callback(_usbd_driver[drvid].control_complete); | ||||
|   TU_LOG2("  %s control request\r\n", _usbd_driver_str[drvid]); | ||||
|   TU_LOG2("  %s control request\r\n", _usbd_driver[drvid].name); | ||||
|   return _usbd_driver[drvid].control_request(rhport, request); | ||||
| } | ||||
|  | ||||
| @@ -811,7 +763,7 @@ static bool process_set_config(uint8_t rhport, uint8_t cfg_num) | ||||
|       _usbd_dev.itf2drv[desc_itf->bInterfaceNumber] = drv_id; | ||||
|  | ||||
|       uint16_t itf_len=0; | ||||
|       TU_LOG2("  %s open\r\n", _usbd_driver_str[drv_id]); | ||||
|       TU_LOG2("  %s open\r\n", _usbd_driver[drv_id].name); | ||||
|       TU_ASSERT( _usbd_driver[drv_id].open(rhport, desc_itf, &itf_len) ); | ||||
|       TU_ASSERT( itf_len >= sizeof(tusb_desc_interface_t) ); | ||||
| #else | ||||
| @@ -827,9 +779,8 @@ static bool process_set_config(uint8_t rhport, uint8_t cfg_num) | ||||
|         { | ||||
|           // Interface number must not be used already TODO alternate interface | ||||
|           TU_ASSERT( DRVID_INVALID == _usbd_dev.itf2drv[desc_itf->bInterfaceNumber] ); | ||||
|           TU_LOG2("  %s open\r\n", _usbd_driver[drv_id].name); | ||||
|           _usbd_dev.itf2drv[desc_itf->bInterfaceNumber] = drv_id; | ||||
|  | ||||
|           TU_LOG2("  itf_len = %d \r\n", itf_len); | ||||
|           break; | ||||
|         } | ||||
|       } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 hathach
					hathach