correct assoc_itf_count for bth driver

This commit is contained in:
hathach 2021-09-15 00:51:01 +07:00
parent b474522245
commit a23944035d
2 changed files with 12 additions and 0 deletions

View File

@ -921,6 +921,17 @@ static bool process_set_config(uint8_t rhport, uint8_t cfg_num)
}
#endif
#if CFG_TUD_BTH && CFG_TUD_BTH_ISO_ALT_COUNT
// BTH implementation currently does not use IAD. TODO should also use IAD for composite device
if (1 == assoc_itf_count &&
TUD_BT_APP_CLASS == desc_itf->bInterfaceClass &&
TUD_BT_APP_SUBCLASS == desc_itf->bInterfaceSubClass &&
TUD_BT_PROTOCOL_PRIMARY_CONTROLLER == desc_itf->bInterfaceProtocol)
{
assoc_itf_count = 2;
}
#endif
uint16_t const drv_len = tu_desc_get_interface_total_len(desc_itf, assoc_itf_count, desc_end-p_desc);
TU_ASSERT(drv_len >= sizeof(tusb_desc_interface_t));

View File

@ -777,6 +777,7 @@ TU_ATTR_WEAK bool tud_vendor_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb
// BT Primary controller descriptor
// Interface number, string index, attributes, event endpoint, event endpoint size, interval, data in, data out, data endpoint size, iso endpoint sizes
// TODO BTH should also use IAD like CDC for composite device
#define TUD_BTH_DESCRIPTOR(_itfnum, _stridx, _ep_evt, _ep_evt_size, _ep_evt_interval, _ep_in, _ep_out, _ep_size,...) \
TUD_BTH_PRI_ITF(_itfnum, _stridx, _ep_evt, _ep_evt_size, _ep_evt_interval, _ep_in, _ep_out, _ep_size) \
TUD_BTH_ISO_ITFS(_itfnum + 1, _ep_in + 1, _ep_out + 1, __VA_ARGS__)