Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6124607a authored by Yoshihiro Shimoda's avatar Yoshihiro Shimoda Committed by Felipe Balbi
Browse files

usb: renesas_usbhs: fix the BCLR setting condition for non-DCP pipe



This patch fixes an issue that the driver sets the BCLR bit of
{C,Dn}FIFOCTR register to 1 even when it's non-DCP pipe and
the FRDY bit of {C,Dn}FIFOCTR register is set to 1.

Fixes: e8d548d5 ("usb: renesas_usbhs: fifo became independent from pipe.")
Cc: <stable@vger.kernel.org> # v3.1+
Signed-off-by: default avatarYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
parent 447b8a01
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -282,10 +282,16 @@ static void usbhsf_fifo_clear(struct usbhs_pipe *pipe,
			      struct usbhs_fifo *fifo)
{
	struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe);
	int ret = 0;

	if (!usbhs_pipe_is_dcp(pipe))
		usbhsf_fifo_barrier(priv, fifo);
		ret = usbhsf_fifo_barrier(priv, fifo);

	/*
	 * if non-DCP pipe, this driver should set BCLR when
	 * usbhsf_fifo_barrier() returns 0.
	 */
	if (!ret)
		usbhs_write(priv, fifo->ctr, BCLR);
}