lkml.org 
[lkml]   [2017]   [Nov]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.10 051/139] usb: renesas_usbhs: fix the BCLR setting condition for non-DCP pipe
    Date
    From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>

    commit 6124607acc88fffeaadf3aacfeb3cc1304c87387 upstream.

    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: e8d548d54968 ("usb: renesas_usbhs: fifo became independent from pipe.")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    ---
    drivers/usb/renesas_usbhs/fifo.c | 10 ++++++++--
    1 file changed, 8 insertions(+), 2 deletions(-)

    diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c
    index 9564756..47a6ffa 100644
    --- a/drivers/usb/renesas_usbhs/fifo.c
    +++ b/drivers/usb/renesas_usbhs/fifo.c
    @@ -261,11 +261,17 @@ 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);

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

    static int usbhsf_fifo_rcv_len(struct usbhs_priv *priv,
    --
    2.8.0.rc2.1.gbe9624a
    \
     
     \ /
      Last update: 2017-11-01 22:43    [W:4.079 / U:0.324 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site