summaryrefslogtreecommitdiff
path: root/tinyusb
diff options
context:
space:
mode:
Diffstat (limited to 'tinyusb')
-rw-r--r--tinyusb/class/hid_host.c19
-rw-r--r--tinyusb/class/hid_host.h4
-rw-r--r--tinyusb/class/msc_host.h6
-rw-r--r--tinyusb/host/usbh.c5
-rw-r--r--tinyusb/host/usbh.h2
5 files changed, 17 insertions, 19 deletions
diff --git a/tinyusb/class/hid_host.c b/tinyusb/class/hid_host.c
index 00ef1848c..c14b497c4 100644
--- a/tinyusb/class/hid_host.c
+++ b/tinyusb/class/hid_host.c
@@ -40,7 +40,6 @@
#if (MODE_HOST_SUPPORTED && defined HOST_CLASS_HID)
#define _TINY_USB_SOURCE_FILE_
-
//--------------------------------------------------------------------+
// INCLUDE
//--------------------------------------------------------------------+
@@ -80,7 +79,6 @@ void hidh_init(void)
#endif
}
-
tusb_error_t hidh_keyboard_open_subtask(uint8_t dev_addr, uint8_t const *descriptor, uint16_t *p_length)
{
hidh_keyboard_info_t *p_keyboard = get_kbd_data(dev_addr);
@@ -110,34 +108,33 @@ tusb_error_t hidh_keyboard_open_subtask(uint8_t dev_addr, uint8_t const *descrip
return TUSB_ERROR_NONE;
}
-tusb_error_t hidh_open_subtask(uint8_t dev_addr, uint8_t const *descriptor, uint16_t *p_length)
+tusb_error_t hidh_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t const *p_interface_desc, uint16_t *p_length)
{
- tusb_descriptor_interface_t* p_interface = (tusb_descriptor_interface_t*) descriptor;
- if (p_interface->bInterfaceSubClass == HID_SUBCLASS_BOOT)
+ uint8_t const *p_desc = (uint8_t const *) p_interface_desc;
+ if (p_interface_desc->bInterfaceSubClass == HID_SUBCLASS_BOOT)
{
- switch(p_interface->bInterfaceProtocol)
+ switch(p_interface_desc->bInterfaceProtocol)
{
#if TUSB_CFG_HOST_HID_KEYBOARD
case HID_PROTOCOL_KEYBOARD:
-
- return hidh_keyboard_open_subtask(dev_addr, descriptor, p_length);
+ return hidh_keyboard_open_subtask(dev_addr, p_desc, p_length);
break;
#endif
#if TUSB_CFG_HOST_HID_MOUSE
case HID_PROTOCOL_MOUSE:
- return hidh_keyboard_open_subtask(dev_addr, descriptor, p_length);
+ return hidh_keyboard_open_subtask(dev_addr, p_desc, p_length);
break;
#endif
default: // unknown protocol --> skip this interface
- *p_length = p_interface->bLength;
+ *p_length = p_interface_desc->bLength;
return TUSB_ERROR_NONE;
}
}else
{
// open generic
- *p_length = p_interface->bLength;
+ *p_length = p_interface_desc->bLength;
return TUSB_ERROR_NONE;
}
}
diff --git a/tinyusb/class/hid_host.h b/tinyusb/class/hid_host.h
index 87c38b7c7..482c3213d 100644
--- a/tinyusb/class/hid_host.h
+++ b/tinyusb/class/hid_host.h
@@ -67,7 +67,7 @@ typedef struct {
uint16_t report_size;
}hidh_keyboard_info_t;
-bool tusbh_hid_keyboard_is_supported(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RESULT;
+bool tusbh_hid_keyboard_is_supported(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RESULT;
tusb_error_t tusbh_hid_keyboard_get_report(uint8_t dev_addr, uint8_t instance_num, tusb_keyboard_report_t * const report) ATTR_WARN_UNUSED_RESULT;
pipe_status_t tusbh_hid_keyboard_status(uint8_t dev_addr, uint8_t instance_num) ATTR_WARN_UNUSED_RESULT;
@@ -85,7 +85,7 @@ pipe_status_t tusbh_hid_keyboard_status(uint8_t dev_addr, uint8_t instance_num)
#ifdef _TINY_USB_SOURCE_FILE_
void hidh_init(void);
-tusb_error_t hidh_open_subtask(uint8_t dev_addr, uint8_t const *descriptor, uint16_t *p_length) ATTR_WARN_UNUSED_RESULT;
+tusb_error_t hidh_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t const *p_interface_desc, uint16_t *p_length) ATTR_WARN_UNUSED_RESULT;
void hidh_isr(pipe_handle_t pipe_hdl, tusb_bus_event_t event);
void hidh_close(uint8_t dev_addr);
diff --git a/tinyusb/class/msc_host.h b/tinyusb/class/msc_host.h
index ff41a9e34..5d0a87a65 100644
--- a/tinyusb/class/msc_host.h
+++ b/tinyusb/class/msc_host.h
@@ -69,9 +69,9 @@
#ifdef _TINY_USB_SOURCE_FILE_
void msch_init(void) ATTR_WEAK;
-tusb_error_t msch_open_subtask(uint8_t dev_addr, uint8_t const *descriptor, uint16_t *p_length) ATTR_WEAK ATTR_WARN_UNUSED_RESULT;
-void msch_isr(pipe_handle_t pipe_hdl, tusb_bus_event_t event) ATTR_WEAK;
-void msch_close(uint8_t dev_addr) ATTR_WEAK;
+tusb_error_t msch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t const *descriptor, uint16_t *p_length) ATTR_WEAK ATTR_WARN_UNUSED_RESULT;
+void msch_isr(pipe_handle_t pipe_hdl, tusb_bus_event_t event) ATTR_WEAK;
+void msch_close(uint8_t dev_addr) ATTR_WEAK;
#endif
#ifdef __cplusplus
diff --git a/tinyusb/host/usbh.c b/tinyusb/host/usbh.c
index 208139276..6717b2c70 100644
--- a/tinyusb/host/usbh.c
+++ b/tinyusb/host/usbh.c
@@ -386,7 +386,7 @@ OSAL_TASK_DECLARE(usbh_enumeration_task)
// parse each interfaces
while( p_desc < enum_data_buffer + ((tusb_descriptor_configuration_t*)enum_data_buffer)->wTotalLength )
{
- TASK_ASSERT( TUSB_DESC_INTERFACE == ((tusb_descriptor_interface_t*) p_desc)->bDescriptorType ); // TODO should we skip this descriptor and advance
+ TASK_ASSERT( TUSB_DESC_INTERFACE == p_desc[DESCRIPTOR_OFFSET_TYPE] ); // TODO should we skip this descriptor and advance
uint8_t class_code = ((tusb_descriptor_interface_t*) p_desc)->bInterfaceClass;
if (class_code == 0)
@@ -398,7 +398,8 @@ OSAL_TASK_DECLARE(usbh_enumeration_task)
{
uint16_t length=0;
OSAL_SUBTASK_INVOKED_AND_WAIT ( // parameters in task/sub_task must be static storage (static or global)
- usbh_class_drivers[ ((tusb_descriptor_interface_t*) p_desc)->bInterfaceClass ].open_subtask(new_addr, p_desc, &length) );
+ usbh_class_drivers[ ((tusb_descriptor_interface_t*) p_desc)->bInterfaceClass ].open_subtask(
+ new_addr, (tusb_descriptor_interface_t*) p_desc, &length) );
// TODO check class_open_subtask status
usbh_devices[new_addr].flag_supported_class |= BIT_(((tusb_descriptor_interface_t*) p_desc)->bInterfaceClass);
diff --git a/tinyusb/host/usbh.h b/tinyusb/host/usbh.h
index 00edf712a..1e1653e8c 100644
--- a/tinyusb/host/usbh.h
+++ b/tinyusb/host/usbh.h
@@ -72,7 +72,7 @@ typedef enum pipe_status_{
typedef struct {
void (* const init) (void);
- tusb_error_t (* const open_subtask)(uint8_t, uint8_t const *, uint16_t*);
+ tusb_error_t (* const open_subtask)(uint8_t, tusb_descriptor_interface_t const *, uint16_t*);
void (* const isr) (pipe_handle_t, tusb_bus_event_t);
void (* const close) (uint8_t);
} host_class_driver_t;