Skip to content

Commit 032e2c2

Browse files
committed
add CFG_TUH_INTERFACE_MAX config
1 parent e08a875 commit 032e2c2

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/host/usbh.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@
4141
#define CFG_TUH_TASK_QUEUE_SZ 16
4242
#endif
4343

44+
#ifndef CFG_TUH_INTERFACE_MAX
45+
#define CFG_TUH_INTERFACE_MAX 8
46+
#endif
47+
4448
// Debug level of USBD
4549
#define USBH_DBG_LVL 2
4650

@@ -96,7 +100,7 @@ typedef struct {
96100
//------------- device -------------//
97101
volatile uint8_t state; // device state, value from enum tusbh_device_state_t
98102

99-
uint8_t itf2drv[8]; // map interface number to driver (0xff is invalid)
103+
uint8_t itf2drv[CFG_TUH_INTERFACE_MAX]; // map interface number to driver (0xff is invalid)
100104
uint8_t ep2drv[CFG_TUH_ENDPOINT_MAX][2]; // map endpoint to driver ( 0xff is invalid )
101105

102106
struct TU_ATTR_PACKED
@@ -665,7 +669,7 @@ void usbh_driver_set_config_complete(uint8_t dev_addr, uint8_t itf_num)
665669
{
666670
usbh_device_t* dev = get_device(dev_addr);
667671

668-
for(itf_num++; itf_num < sizeof(dev->itf2drv); itf_num++)
672+
for(itf_num++; itf_num < CFG_TUH_INTERFACE_MAX; itf_num++)
669673
{
670674
// continue with next valid interface
671675
// TODO skip IAD binding interface such as CDCs
@@ -680,7 +684,7 @@ void usbh_driver_set_config_complete(uint8_t dev_addr, uint8_t itf_num)
680684
}
681685

682686
// all interface are configured
683-
if (itf_num == sizeof(dev->itf2drv))
687+
if (itf_num == CFG_TUH_INTERFACE_MAX)
684688
{
685689
// Invoke callback if available
686690
if (tuh_mount_cb) tuh_mount_cb(dev_addr);

0 commit comments

Comments
 (0)