lkml.org 
[lkml]   [2015]   [Jul]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.12 032/124] usb: renesas_usbhs: Fix fifo unclear in usbhsf_prepare_pop
    Date
    From: Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>

    3.12-stable review patch. If anyone has any objections, please let me know.

    ===============

    commit e73d42f15f90614538edeb5d4102f847105f86f2 upstream.

    This patch fixes an issue for control write. When usbhsf_prepare_pop()
    is called after this driver called a gadget setup function, this controller
    doesn't receive the control write data. So, this patch adds a code to clear
    the fifo for control write in usbhsf_prepare_pop().

    Signed-off-by: Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    ---
    drivers/usb/renesas_usbhs/fifo.c | 5 +++++
    1 file changed, 5 insertions(+)

    diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c
    index 45b94019aec8..47848da64084 100644
    --- a/drivers/usb/renesas_usbhs/fifo.c
    +++ b/drivers/usb/renesas_usbhs/fifo.c
    @@ -585,6 +585,8 @@ struct usbhs_pkt_handle usbhs_fifo_pio_push_handler = {
    static int usbhsf_prepare_pop(struct usbhs_pkt *pkt, int *is_done)
    {
    struct usbhs_pipe *pipe = pkt->pipe;
    + struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe);
    + struct usbhs_fifo *fifo = usbhsf_get_cfifo(priv);

    if (usbhs_pipe_is_busy(pipe))
    return 0;
    @@ -595,6 +597,9 @@ static int usbhsf_prepare_pop(struct usbhs_pkt *pkt, int *is_done)
    usbhs_pipe_data_sequence(pipe, pkt->sequence);
    pkt->sequence = -1; /* -1 sequence will be ignored */

    + if (usbhs_pipe_is_dcp(pipe))
    + usbhsf_fifo_clear(pipe, fifo);
    +
    usbhs_pipe_set_trans_count_if_bulk(pipe, pkt->length);
    usbhs_pipe_enable(pipe);
    usbhsf_rx_irq_ctrl(pipe, 1);
    --
    2.4.6


    \
     
     \ /
      Last update: 2015-07-28 12:41    [W:4.125 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site