Skip to content

Commit

Permalink
usb: renesas_usbhs: modify fifo clear timing
Browse files Browse the repository at this point in the history
Pipe buffer should be cleaned before using it,
but should NOT be cleaned in pipe "prepare" function.
Because the pipe might be working in such timing.
This patch fixup this issue.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Kuninori Morimoto authored and Greg Kroah-Hartman committed Apr 30, 2011
1 parent a0c25c2 commit 45e13e6
Showing 1 changed file with 4 additions and 10 deletions.
14 changes: 4 additions & 10 deletions drivers/usb/renesas_usbhs/pipe.c
Original file line number Diff line number Diff line change
Expand Up @@ -369,15 +369,7 @@ static int usbhsp_fifo_select(struct usbhs_pipe *pipe, int write)

int usbhs_fifo_prepare_write(struct usbhs_pipe *pipe)
{
int ret;

ret = usbhsp_fifo_select(pipe, 1);
if (ret < 0)
return ret;

usbhsp_fifo_clear(pipe);

return ret;
return usbhsp_fifo_select(pipe, 1);
}

int usbhs_fifo_write(struct usbhs_pipe *pipe, u8 *buf, int len)
Expand All @@ -392,7 +384,7 @@ int usbhs_fifo_write(struct usbhs_pipe *pipe, u8 *buf, int len)
if (ret < 0)
return ret;

ret = usbhs_fifo_prepare_write(pipe);
ret = usbhsp_fifo_select(pipe, 1);
if (ret < 0)
return ret;

Expand Down Expand Up @@ -750,6 +742,8 @@ void usbhs_pipe_init(struct usbhs_priv *priv)

usbhsp_flags_init(pipe);
pipe->mod_private = NULL;

usbhsp_fifo_clear(pipe);
}
}

Expand Down

0 comments on commit 45e13e6

Please sign in to comment.