summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2013-03-23 11:34:51 +0700
committerhathach <[email protected]>2013-03-23 11:34:51 +0700
commitd7ba86c85eb8cb5b15de53e503e75d04bf0cc836 (patch)
tree085acba58b74380a569184840bfd1eb100a98044
parent0c6d406ddf68ae144982132d21349880896c2f74 (diff)
refractor
- rename usbh_device_info_t.status to state - rename enum TUSB_DEVICE_STATUS_* to TUSB_DEVICE_STATE_*
-rw-r--r--tests/test/host/ehci/test_ehci_usbh_hcd_integration.c6
-rw-r--r--tests/test/host/ehci/test_pipe_interrupt_open.c24
-rw-r--r--tests/test/host/test_enum_task.c2
-rw-r--r--tests/test/host/test_hid_host_keyboard.c20
-rw-r--r--tests/test/host/test_usbh.c14
-rw-r--r--tinyusb/class/hid_host.c4
-rw-r--r--tinyusb/host/hcd.h5
-rw-r--r--tinyusb/host/usbh.c15
-rw-r--r--tinyusb/host/usbh.h10
-rw-r--r--tinyusb/host/usbh_hcd.h2
10 files changed, 65 insertions, 37 deletions
diff --git a/tests/test/host/ehci/test_ehci_usbh_hcd_integration.c b/tests/test/host/ehci/test_ehci_usbh_hcd_integration.c
index fbfdea6fd..b123fb351 100644
--- a/tests/test/host/ehci/test_ehci_usbh_hcd_integration.c
+++ b/tests/test/host/ehci/test_ehci_usbh_hcd_integration.c
@@ -78,7 +78,7 @@ void setUp(void)
usbh_device_info_pool[i].hub_addr = hub_addr;
usbh_device_info_pool[i].hub_port = hub_port;
usbh_device_info_pool[i].speed = TUSB_SPEED_HIGH;
- usbh_device_info_pool[i].status = TUSB_DEVICE_STATUS_READY;
+ usbh_device_info_pool[i].state = TUSB_DEVICE_STATE_READY;
}
regs = get_operational_register(hostid);
@@ -184,10 +184,10 @@ void test_device_unplugged_status(void)
{
ehci_controller_device_unplug(hostid);
hcd_isr(hostid);
- TEST_ASSERT_EQUAL(TUSB_DEVICE_STATUS_REMOVING, usbh_device_info_pool[dev_addr].status);
+ TEST_ASSERT_EQUAL(TUSB_DEVICE_STATE_REMOVING, usbh_device_info_pool[dev_addr].state);
regs->usb_sts_bit.async_advance = 1;
hcd_isr(hostid); // async advance
- TEST_ASSERT_EQUAL(TUSB_DEVICE_STATUS_UNPLUG, usbh_device_info_pool[dev_addr].status);
+ TEST_ASSERT_EQUAL(TUSB_DEVICE_STATE_UNPLUG, usbh_device_info_pool[dev_addr].state);
}
diff --git a/tests/test/host/ehci/test_pipe_interrupt_open.c b/tests/test/host/ehci/test_pipe_interrupt_open.c
index 0ae65b2ab..b04e68192 100644
--- a/tests/test/host/ehci/test_pipe_interrupt_open.c
+++ b/tests/test/host/ehci/test_pipe_interrupt_open.c
@@ -108,7 +108,7 @@ void verify_open_qhd(ehci_qhd_t *p_qhd, uint8_t endpoint_addr, uint16_t max_pack
}
//--------------------------------------------------------------------+
-// INTERRUPT PIPE
+// PIPE OPEN
//--------------------------------------------------------------------+
tusb_descriptor_endpoint_t const desc_ept_interrupt_out =
{
@@ -176,3 +176,25 @@ void test_open_interrupt_qhd_non_hs(void)
TEST_ASSERT_EQUAL(1, p_qhd->interrupt_smask);
TEST_ASSERT_EQUAL(0x1c, p_qhd->non_hs_interrupt_cmask);
}
+
+//--------------------------------------------------------------------+
+// PIPE CLOSE
+//--------------------------------------------------------------------+
+void test_interrupt_close(void)
+{
+ ehci_qhd_t *p_qhd;
+ pipe_handle_t pipe_hdl;
+
+ pipe_hdl = hcd_pipe_open(dev_addr, &desc_ept_interrupt_out, TUSB_CLASS_HID);
+ p_qhd = qhd_get_from_pipe_handle(pipe_hdl);
+
+ //------------- Code Under TEST -------------//
+ hcd_pipe_close(pipe_hdl);
+
+ TEST_IGNORE(); // check operation removing interrupt head
+
+// TEST_ASSERT(p_qhd->is_removing);
+// TEST_ASSERT( align32(period_head) != (uint32_t) p_qhd );
+// TEST_ASSERT_EQUAL_HEX( (uint32_t) get_async_head(hostid), align32(p_qhd->next.address ) );
+
+}
diff --git a/tests/test/host/test_enum_task.c b/tests/test/host/test_enum_task.c
index 00df47833..9800e6f8e 100644
--- a/tests/test/host/test_enum_task.c
+++ b/tests/test/host/test_enum_task.c
@@ -194,7 +194,7 @@ void test_enum_failed_get_full_dev_desc(void)
usbh_enumeration_task();
- TEST_ASSERT_EQUAL(TUSB_DEVICE_STATUS_ADDRESSED, usbh_device_info_pool[1].status);
+ TEST_ASSERT_EQUAL(TUSB_DEVICE_STATE_ADDRESSED, usbh_device_info_pool[1].state);
TEST_ASSERT_EQUAL(TUSB_SPEED_FULL, usbh_device_info_pool[1].speed);
TEST_ASSERT_EQUAL(enum_connect.core_id, usbh_device_info_pool[1].core_id);
TEST_ASSERT_EQUAL(enum_connect.hub_addr, usbh_device_info_pool[1].hub_addr);
diff --git a/tests/test/host/test_hid_host_keyboard.c b/tests/test/host/test_hid_host_keyboard.c
index ccecf3501..41882d407 100644
--- a/tests/test/host/test_hid_host_keyboard.c
+++ b/tests/test/host/test_hid_host_keyboard.c
@@ -100,11 +100,11 @@ void test_keyboard_no_instances_invalid_para(void)
void test_keyboard_install_ok(void)
{
- tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATUS_READY);
+ tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATE_READY);
TEST_ASSERT_EQUAL(0, tusbh_hid_keyboard_no_instances(device_hdl));
TEST_ASSERT_EQUAL(TUSB_ERROR_NONE, hidh_keyboard_install(device_hdl, (uint8_t*) &kbd_descriptor));
- tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATUS_READY);
+ tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATE_READY);
TEST_ASSERT_EQUAL(1, tusbh_hid_keyboard_no_instances(device_hdl));
}
@@ -150,7 +150,7 @@ pipe_status_t pipe_status_get_stub(pipe_handle_t pipe_hdl, int num_call)
void test_keyboard_get_invalid_para()
{
- tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATUS_READY);
+ tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATE_READY);
TEST_ASSERT_EQUAL(TUSB_ERROR_INVALID_PARA, tusbh_hid_keyboard_get(0, 0, NULL));
tusbh_device_status_get_IgnoreAndReturn(0);
@@ -162,18 +162,18 @@ void test_keyboard_get_invalid_para()
void test_keyboard_get_class_not_supported()
{
- tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATUS_READY);
+ tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATE_READY);
keyboard_info_pool[device_hdl].instance[0].pipe_in = (pipe_handle_t) { 0 };
TEST_ASSERT_EQUAL(TUSB_ERROR_CLASS_DEVICE_DONT_SUPPORT, tusbh_hid_keyboard_get(device_hdl, instance_num, &report));
}
void test_keyboard_get_report_not_available()
{
- tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATUS_READY);
+ tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATE_READY);
usbh_pipe_status_get_IgnoreAndReturn(PIPE_STATUS_BUSY);
TEST_ASSERT_EQUAL(TUSB_ERROR_CLASS_DATA_NOT_AVAILABLE, tusbh_hid_keyboard_get(device_hdl, instance_num, &report));
- tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATUS_READY);
+ tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATE_READY);
usbh_pipe_status_get_IgnoreAndReturn(PIPE_STATUS_AVAILABLE);
TEST_ASSERT_EQUAL(TUSB_ERROR_CLASS_DATA_NOT_AVAILABLE, tusbh_hid_keyboard_get(device_hdl, instance_num, &report));
}
@@ -182,16 +182,16 @@ void test_keyboard_get_ok()
{
usbh_pipe_status_get_StubWithCallback(pipe_status_get_stub);
- tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATUS_READY);
+ tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATE_READY);
TEST_ASSERT_EQUAL(TUSB_ERROR_NONE, tusbh_hid_keyboard_get(device_hdl, instance_num, &report));
TEST_ASSERT_EQUAL_MEMORY(&sample_key[0], &report, sizeof(tusb_keyboard_report_t));
- tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATUS_READY);
+ tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATE_READY);
TEST_ASSERT_EQUAL(TUSB_ERROR_CLASS_DATA_NOT_AVAILABLE, tusbh_hid_keyboard_get(device_hdl, instance_num, &report));
- tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATUS_READY);
+ tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATE_READY);
TEST_ASSERT_EQUAL(TUSB_ERROR_CLASS_DATA_NOT_AVAILABLE, tusbh_hid_keyboard_get(device_hdl, instance_num, &report));
- tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATUS_READY);
+ tusbh_device_status_get_IgnoreAndReturn(TUSB_DEVICE_STATE_READY);
TEST_ASSERT_EQUAL(TUSB_ERROR_NONE, tusbh_hid_keyboard_get(device_hdl, instance_num, &report));
TEST_ASSERT_EQUAL_MEMORY(&sample_key[1], &report, sizeof(tusb_keyboard_report_t));
}
diff --git a/tests/test/host/test_usbh.c b/tests/test/host/test_usbh.c
index f9f1c5ac8..a7d44814d 100644
--- a/tests/test/host/test_usbh.c
+++ b/tests/test/host/test_usbh.c
@@ -63,16 +63,16 @@ void tearDown(void)
//--------------------------------------------------------------------+
void test_usbh_status_get_fail(void)
{
- usbh_device_info_pool[dev_hdl].status = 0;
+ usbh_device_info_pool[dev_hdl].state = 0;
TEST_ASSERT_EQUAL( 0, tusbh_device_status_get(TUSB_CFG_HOST_DEVICE_MAX+1) );
- TEST_ASSERT_EQUAL( TUSB_DEVICE_STATUS_UNPLUG, tusbh_device_status_get(dev_hdl) );
+ TEST_ASSERT_EQUAL( TUSB_DEVICE_STATE_UNPLUG, tusbh_device_status_get(dev_hdl) );
}
void test_usbh_status_get_succeed(void)
{
- usbh_device_info_pool[dev_hdl].status = TUSB_DEVICE_STATUS_READY;
- TEST_ASSERT_EQUAL( TUSB_DEVICE_STATUS_READY, tusbh_device_status_get(dev_hdl) );
+ usbh_device_info_pool[dev_hdl].state = TUSB_DEVICE_STATE_READY;
+ TEST_ASSERT_EQUAL( TUSB_DEVICE_STATE_READY, tusbh_device_status_get(dev_hdl) );
}
//--------------------------------------------------------------------+
@@ -167,7 +167,7 @@ void test_usbh_device_unplugged_isr_device_not_previously_mounted(void)
{
uint8_t dev_addr = 1;
- usbh_device_info_pool[dev_addr].status = TUSB_DEVICE_STATUS_UNPLUG;
+ usbh_device_info_pool[dev_addr].state = TUSB_DEVICE_STATE_UNPLUG;
usbh_device_info_pool[dev_addr].core_id = 0;
usbh_device_info_pool[dev_addr].hub_addr = 0;
usbh_device_info_pool[dev_addr].hub_port = 0;
@@ -179,7 +179,7 @@ void test_usbh_device_unplugged_isr(void)
{
uint8_t dev_addr = 1;
- usbh_device_info_pool[dev_addr].status = TUSB_DEVICE_STATUS_READY;
+ usbh_device_info_pool[dev_addr].state = TUSB_DEVICE_STATE_READY;
usbh_device_info_pool[dev_addr].core_id = 0;
usbh_device_info_pool[dev_addr].hub_addr = 0;
usbh_device_info_pool[dev_addr].hub_port = 0;
@@ -190,5 +190,5 @@ void test_usbh_device_unplugged_isr(void)
//------------- Code Under Test -------------//
usbh_device_unplugged_isr(0);
- TEST_ASSERT_EQUAL(TUSB_DEVICE_STATUS_REMOVING, usbh_device_info_pool[dev_addr].status);
+ TEST_ASSERT_EQUAL(TUSB_DEVICE_STATE_REMOVING, usbh_device_info_pool[dev_addr].state);
}
diff --git a/tinyusb/class/hid_host.c b/tinyusb/class/hid_host.c
index 5d7218ac8..3309e19eb 100644
--- a/tinyusb/class/hid_host.c
+++ b/tinyusb/class/hid_host.c
@@ -65,7 +65,7 @@ tusb_error_t tusbh_hid_keyboard_get(tusb_handle_device_t const device_hdl, uint8
{
keyboard_interface_t *p_kbd;
- ASSERT_INT(TUSB_DEVICE_STATUS_READY, tusbh_device_status_get(device_hdl), TUSB_ERROR_DEVICE_NOT_READY);
+ ASSERT_INT(TUSB_DEVICE_STATE_READY, tusbh_device_status_get(device_hdl), TUSB_ERROR_DEVICE_NOT_READY);
ASSERT_PTR(report, TUSB_ERROR_INVALID_PARA);
ASSERT(instance_num < TUSB_CFG_HOST_HID_KEYBOARD_NO_INSTANCES_PER_DEVICE, TUSB_ERROR_INVALID_PARA);
@@ -82,7 +82,7 @@ tusb_error_t tusbh_hid_keyboard_get(tusb_handle_device_t const device_hdl, uint8
uint8_t tusbh_hid_keyboard_no_instances(tusb_handle_device_t const device_hdl)
{
- ASSERT_INT(TUSB_DEVICE_STATUS_READY, tusbh_device_status_get(device_hdl), 0);
+ ASSERT_INT(TUSB_DEVICE_STATE_READY, tusbh_device_status_get(device_hdl), 0);
return keyboard_info_pool[device_hdl].instance_count;
}
diff --git a/tinyusb/host/hcd.h b/tinyusb/host/hcd.h
index 98b5e5c5c..129a4640f 100644
--- a/tinyusb/host/hcd.h
+++ b/tinyusb/host/hcd.h
@@ -66,6 +66,11 @@ typedef struct {
uint8_t index;
} pipe_handle_t;
+typedef enum {
+ BUS_XFER_COMPLETE,
+ BUS_XFER_ERROR
+}usb_bus_event_t;
+
//--------------------------------------------------------------------+
// USBH-HCD API
//--------------------------------------------------------------------+
diff --git a/tinyusb/host/usbh.c b/tinyusb/host/usbh.c
index dbc0c2765..542089748 100644
--- a/tinyusb/host/usbh.c
+++ b/tinyusb/host/usbh.c
@@ -101,7 +101,7 @@ static inline uint8_t get_configure_number_for_device(tusb_descriptor_device_t*
tusbh_device_status_t tusbh_device_status_get (tusb_handle_device_t const device_hdl)
{
ASSERT(device_hdl <= TUSB_CFG_HOST_DEVICE_MAX, 0);
- return usbh_device_info_pool[device_hdl].status;
+ return usbh_device_info_pool[device_hdl].state;
}
//--------------------------------------------------------------------+
@@ -135,6 +135,7 @@ tusb_error_t usbh_init(void)
return TUSB_ERROR_NONE;
}
+//------------- USBH control transfer -------------//
// function called within a task, requesting os blocking services, subtask input parameter must be static/global variables
tusb_error_t usbh_control_xfer_subtask(uint8_t dev_addr, tusb_std_request_t const* p_request, uint8_t* data)
{
@@ -207,7 +208,7 @@ void usbh_device_unplugged_isr(uint8_t hostid)
!(usbh_device_info_pool[dev_addr].core_id == hostid &&
usbh_device_info_pool[dev_addr].hub_addr == 0 &&
usbh_device_info_pool[dev_addr].hub_port == 0 &&
- usbh_device_info_pool[dev_addr].status != TUSB_DEVICE_STATUS_UNPLUG
+ usbh_device_info_pool[dev_addr].state != TUSB_DEVICE_STATE_UNPLUG
)
)
{
@@ -226,13 +227,13 @@ void usbh_device_unplugged_isr(uint8_t hostid)
usbh_pipe_control_close(dev_addr);
// set to REMOVING to end wait for HCD to clean up its cached data for this device
- usbh_device_info_pool[dev_addr].status = TUSB_DEVICE_STATUS_REMOVING;
+ usbh_device_info_pool[dev_addr].state = TUSB_DEVICE_STATE_REMOVING;
}
// HCD cleaned up cached data for this device
void usbh_device_hcd_data_cleaned_up_cb(uint8_t dev_addr)
{
- usbh_device_info_pool[dev_addr].status = TUSB_DEVICE_STATUS_UNPLUG;
+ usbh_device_info_pool[dev_addr].state = TUSB_DEVICE_STATE_UNPLUG;
}
//--------------------------------------------------------------------+
@@ -298,7 +299,7 @@ OSAL_TASK_DECLARE(usbh_enumeration_task)
usbh_device_info_pool[new_addr].hub_addr = usbh_device_info_pool[0].hub_addr;
usbh_device_info_pool[new_addr].hub_port = usbh_device_info_pool[0].hub_port;
usbh_device_info_pool[new_addr].speed = usbh_device_info_pool[0].speed;
- usbh_device_info_pool[new_addr].status = TUSB_DEVICE_STATUS_ADDRESSED;
+ usbh_device_info_pool[new_addr].state = TUSB_DEVICE_STATE_ADDRESSED;
usbh_pipe_control_close(0);
// hcd_port_reset( usbh_device_info_pool[new_addr].core_id ); TODO verified
@@ -408,7 +409,7 @@ OSAL_TASK_DECLARE(usbh_enumeration_task)
)
);
- usbh_device_info_pool[new_addr].status = TUSB_DEVICE_STATUS_READY;
+ usbh_device_info_pool[new_addr].state = TUSB_DEVICE_STATE_READY;
tusbh_device_mount_succeed_cb(new_addr);
// TODO invoke mounted callback
@@ -431,7 +432,7 @@ static inline uint8_t get_new_address(void)
uint8_t addr;
for (addr=1; addr <= TUSB_CFG_HOST_DEVICE_MAX; addr++)
{
- if (usbh_device_info_pool[addr].status == TUSB_DEVICE_STATUS_UNPLUG)
+ if (usbh_device_info_pool[addr].state == TUSB_DEVICE_STATE_UNPLUG)
break;
}
return addr;
diff --git a/tinyusb/host/usbh.h b/tinyusb/host/usbh.h
index e0a1bc0e7..77a6ebe5d 100644
--- a/tinyusb/host/usbh.h
+++ b/tinyusb/host/usbh.h
@@ -95,13 +95,13 @@
/// Device Status
enum tusbh_device_status_{
- TUSB_DEVICE_STATUS_UNPLUG = 0,
- TUSB_DEVICE_STATUS_ADDRESSED,
+ TUSB_DEVICE_STATE_UNPLUG = 0,
+ TUSB_DEVICE_STATE_ADDRESSED,
- TUSB_DEVICE_STATUS_READY, /* Configured */
+ TUSB_DEVICE_STATE_READY, /* Configured */
- TUSB_DEVICE_STATUS_REMOVING,
- TUSB_DEVICE_STATUS_SAFE_REMOVE,
+ TUSB_DEVICE_STATE_REMOVING,
+ TUSB_DEVICE_STATE_SAFE_REMOVE,
};
typedef enum {
diff --git a/tinyusb/host/usbh_hcd.h b/tinyusb/host/usbh_hcd.h
index 47f1b32d4..7722fbf21 100644
--- a/tinyusb/host/usbh_hcd.h
+++ b/tinyusb/host/usbh_hcd.h
@@ -90,7 +90,7 @@ typedef struct { // TODO internal structure, re-order members
//------------- configuration descriptor info -------------//
uint8_t interface_count; // bNumInterfaces alias
- uint8_t status; // value from enum tusbh_device_status_
+ uint8_t state; // value from enum tusbh_device_status_
tusb_std_request_t control_request;
OSAL_SEM_DEF(semaphore);