dect
/
linux-2.6
Archived
13
0
Fork 0

usb: renesas_usbhs: gadget: usbhsg_ep_disable() care pipe settings

Current usbhsg_ep_disable() didn't care
uep->pipe and pipe->mod_private variable which is used on usbhsg_ep_enable().
It breaks renesas_usbhs gadget when resume.
This patch fixes it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
Kuninori Morimoto 2012-12-10 22:44:07 -08:00 committed by Felipe Balbi
parent 69f5165ebe
commit d9fa298f21
1 changed files with 8 additions and 3 deletions

View File

@ -601,7 +601,12 @@ static int usbhsg_ep_disable(struct usb_ep *ep)
{
struct usbhsg_uep *uep = usbhsg_ep_to_uep(ep);
return usbhsg_pipe_disable(uep);
usbhsg_pipe_disable(uep);
uep->pipe->mod_private = NULL;
uep->pipe = NULL;
return 0;
}
static struct usb_request *usbhsg_ep_alloc_request(struct usb_ep *ep,
@ -753,7 +758,7 @@ static int usbhsg_try_start(struct usbhs_priv *priv, u32 status)
usbhsg_dma_map_ctrl);
usbhs_fifo_init(priv);
/* dcp init */
/* dcp init instead of usbhsg_ep_enable() */
dcp->pipe = usbhs_dcp_malloc(priv);
dcp->pipe->mod_private = dcp;
usbhs_pipe_config_update(dcp->pipe, 0, 0, 64);
@ -815,7 +820,7 @@ static int usbhsg_try_stop(struct usbhs_priv *priv, u32 status)
usbhs_sys_set_test_mode(priv, 0);
usbhs_sys_function_ctrl(priv, 0);
usbhsg_pipe_disable(dcp);
usbhsg_ep_disable(&dcp->ep);
dev_dbg(dev, "stop gadget\n");