summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhathach <[email protected]>2020-04-15 11:06:35 +0700
committerhathach <[email protected]>2020-04-15 11:06:35 +0700
commitc74f7e708e055242f8a8e7492f7e1138fd5c5118 (patch)
tree7f3dd7d77623490952a8f3b7eae3644b9bea0d8d /src
parentf1a6f92fab471e64f0ab5c4d948bc64c9d1fe8c2 (diff)
remove class_code/subclass/protocol from driver structure, add name for logging
Diffstat (limited to 'src')
-rw-r--r--src/device/usbd.c129
1 files changed, 40 insertions, 89 deletions
diff --git a/src/device/usbd.c b/src/device/usbd.c
index f9c52d841..4db6cd671 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -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;
}
}