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:
parent
69f5165ebe
commit
d9fa298f21
@ -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");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user