File tree Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -1522,7 +1522,7 @@ static bool _parse_configuration_descriptor(uint8_t dev_addr, tusb_desc_configur
15221522
15231523#if CFG_TUH_MIDI
15241524 // MIDI has 2 interfaces (Audio Control v1 + MIDIStreaming) but does not have IAD
1525- // manually increase the associated count
1525+ // manually force associated count = 2
15261526 if (1 == assoc_itf_count &&
15271527 TUSB_CLASS_AUDIO == desc_itf -> bInterfaceClass &&
15281528 AUDIO_SUBCLASS_CONTROL == desc_itf -> bInterfaceSubClass &&
@@ -1532,6 +1532,17 @@ static bool _parse_configuration_descriptor(uint8_t dev_addr, tusb_desc_configur
15321532 }
15331533#endif
15341534
1535+ #if CFG_TUH_CDC
1536+ // Some legacy CDC device does not use IAD but rather use device class as hint to combine 2 interfaces
1537+ // manually force associated count = 2
1538+ if (1 == assoc_itf_count &&
1539+ TUSB_CLASS_CDC == desc_itf -> bInterfaceClass &&
1540+ CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL == desc_itf -> bInterfaceSubClass )
1541+ {
1542+ assoc_itf_count = 2 ;
1543+ }
1544+ #endif
1545+
15351546 uint16_t const drv_len = tu_desc_get_interface_total_len (desc_itf , assoc_itf_count , (uint16_t ) (desc_end - p_desc ));
15361547 TU_ASSERT (drv_len >= sizeof (tusb_desc_interface_t ));
15371548
You can’t perform that action at this time.
0 commit comments