summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhathach <[email protected]>2020-04-15 11:41:26 +0700
committerhathach <[email protected]>2020-04-15 11:41:26 +0700
commit1faa3b2768f625ffcc06429b7266c88e11605bfc (patch)
tree5e4e87809682b788876314e2aea5c3b8c893d347 /src
parentc74f7e708e055242f8a8e7492f7e1138fd5c5118 (diff)
tested usbnet, completely remove class code
Diffstat (limited to 'src')
-rw-r--r--src/class/net/net_device.c17
-rw-r--r--src/device/usbd.c18
2 files changed, 16 insertions, 19 deletions
diff --git a/src/class/net/net_device.c b/src/class/net/net_device.c
index 777d0da98..8d0cb5d37 100644
--- a/src/class/net/net_device.c
+++ b/src/class/net/net_device.c
@@ -130,13 +130,22 @@ void netd_reset(uint8_t rhport)
bool netd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length)
{
- // sanity check the descriptor
- _netd_itf.ecm_mode = (CDC_COMM_SUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL == itf_desc->bInterfaceSubClass);
- TU_VERIFY ( (TUD_RNDIS_ITF_SUBCLASS == itf_desc->bInterfaceSubClass) || _netd_itf.ecm_mode );
+ bool const is_rndis = (TUD_RNDIS_ITF_CLASS == itf_desc->bInterfaceClass &&
+ TUD_RNDIS_ITF_SUBCLASS == itf_desc->bInterfaceSubClass &&
+ TUD_RNDIS_ITF_PROTOCOL == itf_desc->bInterfaceProtocol);
+
+ bool const is_ecm = (TUSB_CLASS_CDC == itf_desc->bInterfaceClass &&
+ CDC_COMM_SUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL == itf_desc->bInterfaceSubClass &&
+ 0x00 == itf_desc->bInterfaceProtocol);
+
+ TU_VERIFY ( is_rndis || is_ecm );
// confirm interface hasn't already been allocated
TU_ASSERT(0 == _netd_itf.ep_notif);
+ // sanity check the descriptor
+ _netd_itf.ecm_mode = is_ecm;
+
//------------- Management Interface -------------//
_netd_itf.itf_num = itf_desc->bInterfaceNumber;
@@ -165,6 +174,8 @@ bool netd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t
bool netd_open_data(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length)
{
+ TU_VERIFY(TUSB_CLASS_CDC_DATA == itf_desc->bInterfaceClass);
+
// confirm interface hasn't already been allocated
TU_ASSERT(0 == _netd_itf.ep_in);
diff --git a/src/device/usbd.c b/src/device/usbd.c
index 4db6cd671..0f60117ee 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -190,11 +190,6 @@ static usbd_class_driver_t const _usbd_driver[] =
#if CFG_TUD_NET
/* RNDIS management interface */
{
-// .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,
@@ -204,14 +199,9 @@ static usbd_class_driver_t const _usbd_driver[] =
.xfer_cb = netd_xfer_cb,
.sof = NULL,
},
+
/* CDC-ECM management interface */
{
-// .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,
@@ -221,13 +211,9 @@ static usbd_class_driver_t const _usbd_driver[] =
.xfer_cb = netd_xfer_cb,
.sof = NULL,
},
+
/* RNDIS/CDC-ECM data interface */
{
-// .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,