mirror of
https://github.com/hathach/tinyusb.git
synced 2025-03-25 23:38:06 +00:00
remove class_code/subclass/protocol from driver structure, add name for logging
This commit is contained in:
parent
f1a6f92fab
commit
c74f7e708e
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user