diff options
| author | sakumisu <[email protected]> | 2025-11-24 20:34:58 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2025-11-25 14:18:36 +0800 |
| commit | af519ac42ca731da8955f562cb34ad8b6ecb06ff (patch) | |
| tree | 76d1dffa6c0b69bdc8a1e26c2cf0979a50b0802a | |
| parent | c34cbc5bfbc91bc7a75c9316d2caececd064cae8 (diff) | |
feat(class): support more match flags for cdc acm & rndis
Signed-off-by: sakumisu <[email protected]>
| -rw-r--r-- | class/cdc/usbh_cdc_acm.c | 15 | ||||
| -rw-r--r-- | class/wireless/usbh_rndis.c | 9 |
2 files changed, 21 insertions, 3 deletions
diff --git a/class/cdc/usbh_cdc_acm.c b/class/cdc/usbh_cdc_acm.c index 2fc54eed..3adf189b 100644 --- a/class/cdc/usbh_cdc_acm.c +++ b/class/cdc/usbh_cdc_acm.c @@ -266,11 +266,20 @@ const struct usbh_class_driver cdc_data_class_driver = { .disconnect = usbh_cdc_data_disconnect }; -CLASS_INFO_DEFINE const struct usbh_class_info cdc_acm_class_info = { - .match_flags = USB_CLASS_MATCH_INTF_CLASS | USB_CLASS_MATCH_INTF_SUBCLASS, +CLASS_INFO_DEFINE const struct usbh_class_info cdc_acm_none_class_info = { + .match_flags = USB_CLASS_MATCH_INTF_CLASS | USB_CLASS_MATCH_INTF_SUBCLASS | USB_CLASS_MATCH_INTF_PROTOCOL, .bInterfaceClass = USB_DEVICE_CLASS_CDC, .bInterfaceSubClass = CDC_ABSTRACT_CONTROL_MODEL, - .bInterfaceProtocol = 0x00, + .bInterfaceProtocol = CDC_COMMON_PROTOCOL_NONE, + .id_table = NULL, + .class_driver = &cdc_acm_class_driver +}; + +CLASS_INFO_DEFINE const struct usbh_class_info cdc_acm_at_class_info = { + .match_flags = USB_CLASS_MATCH_INTF_CLASS | USB_CLASS_MATCH_INTF_SUBCLASS | USB_CLASS_MATCH_INTF_PROTOCOL, + .bInterfaceClass = USB_DEVICE_CLASS_CDC, + .bInterfaceSubClass = CDC_ABSTRACT_CONTROL_MODEL, + .bInterfaceProtocol = CDC_COMMON_PROTOCOL_AT_COMMANDS, .id_table = NULL, .class_driver = &cdc_acm_class_driver }; diff --git a/class/wireless/usbh_rndis.c b/class/wireless/usbh_rndis.c index cb00651f..b39cb470 100644 --- a/class/wireless/usbh_rndis.c +++ b/class/wireless/usbh_rndis.c @@ -602,3 +602,12 @@ CLASS_INFO_DEFINE const struct usbh_class_info rndis_class_info = { .id_table = NULL, .class_driver = &rndis_class_driver }; + +CLASS_INFO_DEFINE const struct usbh_class_info rndis_cdcacm_class_info = { + .match_flags = USB_CLASS_MATCH_INTF_CLASS | USB_CLASS_MATCH_INTF_SUBCLASS | USB_CLASS_MATCH_INTF_PROTOCOL, + .bInterfaceClass = USB_DEVICE_CLASS_CDC, + .bInterfaceSubClass = CDC_ABSTRACT_CONTROL_MODEL, + .bInterfaceProtocol = 0xff, + .id_table = NULL, + .class_driver = &rndis_class_driver +}; |
