usb: gadget: f_fs: fix setup request handling
authorRobert Baldyga <r.baldyga@samsung.com>
Mon, 10 Feb 2014 09:42:42 +0000 (10:42 +0100)
committerFelipe Balbi <balbi@ti.com>
Tue, 18 Feb 2014 16:53:01 +0000 (10:53 -0600)
This patch fixes __ffs_ep0_queue_wait() function, which now returns number of
bytes transferred in USB request or error code in case of failure. This is
needed by ffs_ep0_read() function, when read data is copied to userspace.

It also cleans up code by removing usused variable ep0req_status.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/f_fs.c
drivers/usb/gadget/u_fs.h

index 5bfacf8..b65a502 100644 (file)
@@ -228,7 +228,7 @@ static int __ffs_ep0_queue_wait(struct ffs_data *ffs, char *data, size_t len)
        }
 
        ffs->setup_state = FFS_NO_SETUP;
-       return ffs->ep0req_status;
+       return req->status ? req->status : req->actual;
 }
 
 static int __ffs_ep0_stall(struct ffs_data *ffs)
index 78263cc..c39e805 100644 (file)
@@ -154,7 +154,6 @@ struct ffs_data {
         */
        struct usb_request              *ep0req;                /* P: mutex */
        struct completion               ep0req_completion;      /* P: mutex */
-       int                             ep0req_status;          /* P: mutex */
 
        /* reference counter */
        atomic_t                        ref;