lkml.org 
[lkml]   [2010]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RESEND/PATCH 5/6] USB: musb-gadget: complete request only if data is transfered over
    Date
    From: Ming Lei <tom.leiming@gmail.com>

    Complete the current request only if the data transfer is over.

    Signed-off-by: Ming Lei <tom.leiming@gmail.com>
    Cc: David Brownell <dbrownell@users.sourceforge.net>
    Cc: Felipe Balbi <me@felipebalbi.com>
    Cc: Anand Gadiyar <gadiyar@ti.com>
    Cc: Mike Frysinger <vapier@gentoo.org>
    Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
    ---
    drivers/usb/musb/musb_gadget.c | 16 ++++++++--------
    1 files changed, 8 insertions(+), 8 deletions(-)

    diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
    index f3ee04f..fa826f9 100644
    --- a/drivers/usb/musb/musb_gadget.c
    +++ b/drivers/usb/musb/musb_gadget.c
    @@ -501,14 +501,14 @@ void musb_g_tx(struct musb *musb, u8 epnum)
    request->zero = 0;
    }

    - /* ... or if not, then complete it. */
    - musb_g_giveback(musb_ep, request, 0);
    -
    - request = musb_ep->desc ? next_request(musb_ep) : NULL;
    - if (!request) {
    - DBG(4, "%s idle now\n",
    - musb_ep->end_point.name);
    - return;
    + if (request->actual == request->length) {
    + musb_g_giveback(musb_ep, request, 0);
    + request = musb_ep->desc ? next_request(musb_ep) : NULL;
    + if (!request) {
    + DBG(4, "%s idle now\n",
    + musb_ep->end_point.name);
    + return;
    + }
    }
    }

    --
    1.6.2.5


    \
     
     \ /
      Last update: 2010-09-07 17:27    [W:0.023 / U:0.476 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site