|
|
@@ -37,6 +37,10 @@
|
|
|
#define CFG_TUD_TASK_QUEUE_SZ 16
|
|
|
#endif
|
|
|
|
|
|
+#ifndef CFG_TUD_EP_MAX
|
|
|
+#define CFG_TUD_EP_MAX 9
|
|
|
+#endif
|
|
|
+
|
|
|
//--------------------------------------------------------------------+
|
|
|
// Device Data
|
|
|
//--------------------------------------------------------------------+
|
|
|
@@ -57,7 +61,7 @@ typedef struct
|
|
|
uint8_t speed;
|
|
|
|
|
|
uint8_t itf2drv[16]; // map interface number to driver (0xff is invalid)
|
|
|
- uint8_t ep2drv[8][2]; // map endpoint to driver ( 0xff is invalid )
|
|
|
+ uint8_t ep2drv[CFG_TUD_EP_MAX][2]; // map endpoint to driver ( 0xff is invalid )
|
|
|
|
|
|
struct TU_ATTR_PACKED
|
|
|
{
|
|
|
@@ -66,7 +70,7 @@ typedef struct
|
|
|
volatile bool claimed : 1;
|
|
|
|
|
|
// TODO merge ep2drv here, 4-bit should be sufficient
|
|
|
- }ep_status[8][2];
|
|
|
+ }ep_status[CFG_TUD_EP_MAX][2];
|
|
|
|
|
|
}usbd_device_t;
|
|
|
|
|
|
@@ -249,7 +253,7 @@ static osal_mutex_t _usbd_mutex;
|
|
|
//--------------------------------------------------------------------+
|
|
|
// Prototypes
|
|
|
//--------------------------------------------------------------------+
|
|
|
-static void mark_interface_endpoint(uint8_t ep2drv[8][2], uint8_t const* p_desc, uint16_t desc_len, uint8_t driver_id);
|
|
|
+static void mark_interface_endpoint(uint8_t ep2drv[][2], uint8_t const* p_desc, uint16_t desc_len, uint8_t driver_id);
|
|
|
static bool process_control_request(uint8_t rhport, tusb_control_request_t const * p_request);
|
|
|
static bool process_set_config(uint8_t rhport, uint8_t cfg_num);
|
|
|
static bool process_get_descriptor(uint8_t rhport, tusb_control_request_t const * p_request);
|
|
|
@@ -842,7 +846,7 @@ static bool process_set_config(uint8_t rhport, uint8_t cfg_num)
|
|
|
}
|
|
|
|
|
|
// Helper marking endpoint of interface belongs to class driver
|
|
|
-static void mark_interface_endpoint(uint8_t ep2drv[8][2], uint8_t const* p_desc, uint16_t desc_len, uint8_t driver_id)
|
|
|
+static void mark_interface_endpoint(uint8_t ep2drv[][2], uint8_t const* p_desc, uint16_t desc_len, uint8_t driver_id)
|
|
|
{
|
|
|
uint16_t len = 0;
|
|
|
|