usb: renesas_usbhs: gadget: fix re-enabling pipe without re-connecting
authorYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Wed, 9 Jul 2014 11:30:13 +0000 (20:30 +0900)
committerSimon Horman <horms@verge.net.au>
Fri, 5 Dec 2014 00:24:19 +0000 (09:24 +0900)
commit10e27e0446dba2862d7f1f8b45ea35522de08b0b
treeda56400a3168f9f2c828a2baaa6fa7e69667af34
parent3516e390f20515fdccf23a0aafa573443ed79dec
usb: renesas_usbhs: gadget: fix re-enabling pipe without re-connecting

This patch fixes an issue that the renesas_usbhs driver in gadget mode
cannot work correctly even if I disabled DMAC of the driver when I used
the g_zero driver and the testusb tool.

When a usb cable is re-connected, the renesas_usbhs driver calls the
usbhsp_flags_init() (via usbhs_hotplug() --> usbhs_mod_call(start) -->
usbhsg_try_start() --> usbhs_pipe_init()). However, the driver doesn't
call the usbhsp_flags_init() when usbhsg_ep_disable() is called.
So, if a gadget driver calls usb_ep_enable() and usb_ep_disable() again
and again, the renesas_usbhs driver will output the following log:

  renesas_usbhs renesas_usbhs: can't get pipe (BULK)
  renesas_usbhs renesas_usbhs: wrong recip request

Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit dfb87b8bfe09f933abaf387693992089f6f9053e)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
drivers/usb/renesas_usbhs/mod_gadget.c
drivers/usb/renesas_usbhs/pipe.c
drivers/usb/renesas_usbhs/pipe.h