summaryrefslogtreecommitdiff
path: root/src/usbh_driver_hub.c
diff options
context:
space:
mode:
authorAmir Hammad <amir.hammad@hotmail.com>2016-07-30 12:24:20 +0200
committerAmir Hammad <amir.hammad@hotmail.com>2016-07-30 12:24:20 +0200
commit3e95b389c37046759cbe9df2e671240ec5666ad8 (patch)
treebca91eed95fab4b392426f6b8fa2efd8a0758a29 /src/usbh_driver_hub.c
parent0c1bd8ff76fbe191b7eb136d371ef30fc83c8eb0 (diff)
downloadsecure-hid-3e95b389c37046759cbe9df2e671240ec5666ad8.tar.gz
secure-hid-3e95b389c37046759cbe9df2e671240ec5666ad8.tar.bz2
secure-hid-3e95b389c37046759cbe9df2e671240ec5666ad8.zip
add option to pass data to control writes
Signed-off-by: Amir Hammad <amir.hammad@hotmail.com>
Diffstat (limited to 'src/usbh_driver_hub.c')
-rw-r--r--src/usbh_driver_hub.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/usbh_driver_hub.c b/src/usbh_driver_hub.c
index 9f061b5..a26d7d0 100644
--- a/src/usbh_driver_hub.c
+++ b/src/usbh_driver_hub.c
@@ -204,7 +204,7 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
hub->current_port = port;
LOG_PRINTF("\n\nPORT FOUND: %d\n", port);
- device_xfer_control_write(&setup_data, sizeof(setup_data), event, dev);
+ device_xfer_control_write_setup(&setup_data, sizeof(setup_data), event, dev);
}
break;
@@ -265,7 +265,7 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
setup_data.wLength = hub->desc_len;
hub->state++;
- device_xfer_control_write(&setup_data, sizeof(setup_data), event, dev);
+ device_xfer_control_write_setup(&setup_data, sizeof(setup_data), event, dev);
LOG_PRINTF("DO Need to get HUB DESC\n");
}
break;
@@ -316,7 +316,7 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
setup_data.wLength = hub->desc_len;
hub->state = 4;
- device_xfer_control_write(&setup_data, sizeof(setup_data), event, dev);
+ device_xfer_control_write_setup(&setup_data, sizeof(setup_data), event, dev);
break;
} else if (hub_descriptor->head.bDescLength == hub->desc_len) {
hub->ports_num = hub_descriptor->head.bNbrPorts;
@@ -382,7 +382,7 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
hub->state_after_empty_read = hub->state;
hub->state = EMPTY_PACKET_READ_STATE;
- device_xfer_control_write(&setup_data, sizeof(setup_data), event, dev);
+ device_xfer_control_write_setup(&setup_data, sizeof(setup_data), event, dev);
} else {
hub->state++;
// TODO:
@@ -419,7 +419,7 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
setup_data.wLength = 4;
hub->state++;
- device_xfer_control_write(&setup_data, sizeof(setup_data), event, dev);
+ device_xfer_control_write_setup(&setup_data, sizeof(setup_data), event, dev);
}
break;
@@ -449,6 +449,7 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
}
}
break;
+
case 9:
{
switch (cb_data.status) {
@@ -464,7 +465,7 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
hub->state++;
- device_xfer_control_write(&setup_data, sizeof(setup_data), event, dev);
+ device_xfer_control_write_setup(&setup_data, sizeof(setup_data), event, dev);
}
break;
@@ -476,6 +477,7 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
}
}
break;
+
case 10:
{
switch (cb_data.status) {
@@ -492,6 +494,7 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
}
}
break;
+
case 11:
{
switch (cb_data.status) {
@@ -582,7 +585,7 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
hub->state_after_empty_read = 33;
hub->state = EMPTY_PACKET_READ_STATE;
- device_xfer_control_write(&setup_data, sizeof(setup_data), event, dev);
+ device_xfer_control_write_setup(&setup_data, sizeof(setup_data), event, dev);
} else if(stc & (1<<HUB_FEATURE_PORT_RESET)) {
// clear feature C_PORT_RESET
@@ -599,7 +602,7 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
hub->state = EMPTY_PACKET_READ_STATE;
LOG_PRINTF("RESET");
- device_xfer_control_write(&setup_data, sizeof(setup_data), event, dev);
+ device_xfer_control_write_setup(&setup_data, sizeof(setup_data), event, dev);
} else {
LOG_PRINTF("another STC %d\n", stc);
}
@@ -643,7 +646,7 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
LOG_PRINTF("CONN");
hub->busy = 1;
- device_xfer_control_write(&setup_data, sizeof(setup_data), event, dev);
+ device_xfer_control_write_setup(&setup_data, sizeof(setup_data), event, dev);
}
} else {
LOG_PRINTF("\t\t\t\tDISCONNECT EVENT\n");
@@ -707,7 +710,7 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
hub->state = EMPTY_PACKET_READ_STATE;
hub->current_port = CURRENT_PORT_NONE;
- device_xfer_control_write(&setup_data, sizeof(setup_data), event, dev);
+ device_xfer_control_write_setup(&setup_data, sizeof(setup_data), event, dev);
} else if (!(sts & (1<<(HUB_FEATURE_PORT_LOWSPEED))) &&
!(sts & (1<<(HUB_FEATURE_PORT_HIGHSPEED)))) {
hub->device[port]->speed = USBH_SPEED_FULL;
@@ -799,7 +802,7 @@ static void poll(void *drvdata, uint32_t time_curr_us)
hub->state = EMPTY_PACKET_READ_STATE;
hub->state_after_empty_read = 3;
- device_xfer_control_write(&setup_data, sizeof(setup_data), event, dev);
+ device_xfer_control_write_setup(&setup_data, sizeof(setup_data), event, dev);
}
break;