aboutsummaryrefslogtreecommitdiff
path: root/lib/usb/usb_control.c
diff options
context:
space:
mode:
authorMartin Mueller2010-11-04 00:41:49 +0100
committerMartin Mueller2010-11-04 00:44:47 +0100
commitd6eacce827a8ebffb5e82b48d4c88eb097594c1e (patch)
treed8991b96fc575925ee6f632bf7e5925d46b5cfc3 /lib/usb/usb_control.c
parent6e090ccee16582f0c152c95238753562732788e3 (diff)
add standard request
Diffstat (limited to 'lib/usb/usb_control.c')
-rw-r--r--lib/usb/usb_control.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/usb/usb_control.c b/lib/usb/usb_control.c
index d656a0c..950e491 100644
--- a/lib/usb/usb_control.c
+++ b/lib/usb/usb_control.c
@@ -106,6 +106,10 @@ static void usb_control_setup_nodata(struct usb_setup_data *req)
{
int result = 0;
+ /* Buffer unused */
+ control_state.ctrl_buf = _usbd_device.ctrl_buf;
+ control_state.ctrl_len = 0;
+
/* Call user command hook function */
if(_usbd_device.user_callback_control_command)
result = _usbd_device.user_callback_control_command(req,
@@ -113,7 +117,9 @@ static void usb_control_setup_nodata(struct usb_setup_data *req)
/* Try standard command if not already handled */
if(!result)
- result = _usbd_standard_request_command(req);
+ result = _usbd_standard_request(req,
+ &control_state.ctrl_buf,
+ &control_state.ctrl_len);
if(result) {
/* Go to status stage if handled */
@@ -141,7 +147,7 @@ static void usb_control_setup_read(struct usb_setup_data *req)
/* Try standard request if not already handled */
if(!result)
- result = _usbd_standard_request_read(req,
+ result = _usbd_standard_request(req,
&control_state.ctrl_buf,
&control_state.ctrl_len);
@@ -218,10 +224,10 @@ void _usbd_control_out(uint8_t ea)
&control_state.complete);
if(!result)
- result = _usbd_standard_request_write(
+ result = _usbd_standard_request(
&control_state.req,
- control_state.ctrl_buf,
- control_state.ctrl_len);
+ &control_state.ctrl_buf,
+ &control_state.ctrl_len);
if(result) {
usbd_ep_write_packet(0, NULL, 0);