diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2011-11-24 17:28:17 -0800 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2011-12-12 11:45:18 +0200 |
commit | 25fa70795bf11ef6f5b147f0b231a43880ba96ca (patch) | |
tree | e2231d479fc4659e3450a4d6d355258e3c3d1f21 /drivers/usb/renesas_usbhs | |
parent | 17f7f76940214af91bfefcf9a2ca156701d905e6 (diff) |
usb: renesas_usbhs: send packet in necessary timing.
Current renesas_usbhs driver always tries to send packet in end of recip handler.
But it breaks chapter 9 EndpointHalt test.
This patch fixup this issue.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/renesas_usbhs')
-rw-r--r-- | drivers/usb/renesas_usbhs/mod_gadget.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c index 812960ba95e1..16484060a24c 100644 --- a/drivers/usb/renesas_usbhs/mod_gadget.c +++ b/drivers/usb/renesas_usbhs/mod_gadget.c @@ -271,6 +271,8 @@ static int usbhsg_recip_handler_std_clear_endpoint(struct usbhs_priv *priv, usbhsg_recip_handler_std_control_done(priv, uep, ctrl); + usbhs_pkt_start(pipe); + return 0; } @@ -424,8 +426,7 @@ static int usbhsg_recip_run_handle(struct usbhs_priv *priv, pipe = usbhsg_uep_to_pipe(uep); if (!pipe) { dev_err(dev, "wrong recip request\n"); - ret = -EINVAL; - goto usbhsg_recip_run_handle_end; + return -EINVAL; } switch (recip) { @@ -452,9 +453,6 @@ static int usbhsg_recip_run_handle(struct usbhs_priv *priv, ret = func(priv, uep, ctrl); } -usbhsg_recip_run_handle_end: - usbhs_pkt_start(pipe); - return ret; } |