usb: Cleaned up a little in the control endpoint implementation
This commit is contained in:
committed by
Piotr Esden-Tempski
parent
61ed913de9
commit
e135b9000d
@@ -235,27 +235,25 @@ static void usb_control_setup_write(usbd_device *usbd_dev,
|
|||||||
/* Do not appear to belong to the API, so are omitted from docs */
|
/* Do not appear to belong to the API, so are omitted from docs */
|
||||||
/**@}*/
|
/**@}*/
|
||||||
|
|
||||||
void _usbd_control_setup(usbd_device *usbd_dev, uint8_t ea)
|
void _usbd_control_setup(usbd_device *usbd_dev, uint8_t ep)
|
||||||
{
|
{
|
||||||
struct usb_setup_data *req = &usbd_dev->control_state.req;
|
struct usb_setup_data *req = &usbd_dev->control_state.req;
|
||||||
(void)ea;
|
(void)ep;
|
||||||
|
|
||||||
usbd_dev->control_state.complete = NULL;
|
usbd_dev->control_state.complete = NULL;
|
||||||
|
|
||||||
usbd_ep_nak_set(usbd_dev, 0, 1);
|
usbd_ep_nak_set(usbd_dev, 0, 1);
|
||||||
|
|
||||||
if (req->wLength == 0) {
|
if (req->wLength == 0 || (req->bmRequestType & USB_REQ_TYPE_DIRECTION) == USB_REQ_TYPE_IN) {
|
||||||
usb_control_setup_read(usbd_dev, req);
|
|
||||||
} else if (req->bmRequestType & 0x80) {
|
|
||||||
usb_control_setup_read(usbd_dev, req);
|
usb_control_setup_read(usbd_dev, req);
|
||||||
} else {
|
} else {
|
||||||
usb_control_setup_write(usbd_dev, req);
|
usb_control_setup_write(usbd_dev, req);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _usbd_control_out(usbd_device *usbd_dev, uint8_t ea)
|
void _usbd_control_out(usbd_device *usbd_dev, uint8_t ep)
|
||||||
{
|
{
|
||||||
(void)ea;
|
(void)ep;
|
||||||
|
|
||||||
switch (usbd_dev->control_state.state) {
|
switch (usbd_dev->control_state.state) {
|
||||||
case DATA_OUT:
|
case DATA_OUT:
|
||||||
|
|||||||
@@ -305,12 +305,11 @@ usb_standard_set_address(usbd_device *usbd_dev,
|
|||||||
struct usb_setup_data *req, uint8_t **buf,
|
struct usb_setup_data *req, uint8_t **buf,
|
||||||
uint16_t *len)
|
uint16_t *len)
|
||||||
{
|
{
|
||||||
(void)req;
|
|
||||||
(void)buf;
|
(void)buf;
|
||||||
(void)len;
|
(void)len;
|
||||||
|
|
||||||
/* The actual address is only latched at the STATUS IN stage. */
|
/* The actual address is only latched at the STATUS IN stage. */
|
||||||
if ((req->bmRequestType != 0) || (req->wValue >= 128)) {
|
if (req->bmRequestType != 0 || req->wValue >= 128) {
|
||||||
return USBD_REQ_NOTSUPP;
|
return USBD_REQ_NOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -336,7 +335,6 @@ usb_standard_set_configuration(usbd_device *usbd_dev,
|
|||||||
int found_index = -1;
|
int found_index = -1;
|
||||||
const struct usb_config_descriptor *cfg;
|
const struct usb_config_descriptor *cfg;
|
||||||
|
|
||||||
(void)req;
|
|
||||||
(void)buf;
|
(void)buf;
|
||||||
(void)len;
|
(void)len;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user