usb: renesas_usbhs: fix signed-unsigned return
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Sat, 30 Apr 2016 18:29:40 +0000 (19:29 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 May 2016 21:32:07 +0000 (14:32 -0700)
The return type of usbhsp_setup_pipecfg() was u16 but it was returning
a negative value (-EINVAL). Lets have an additional argument which will
have pipecfg and just return the status (success or error) as the return
from the function.

Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/renesas_usbhs/pipe.c

index 77b615c..c238772 100644 (file)
@@ -391,9 +391,8 @@ void usbhs_pipe_set_trans_count_if_bulk(struct usbhs_pipe *pipe, int len)
 /*
  *             pipe setup
  */
-static u16 usbhsp_setup_pipecfg(struct usbhs_pipe *pipe,
-                               int is_host,
-                               int dir_in)
+static int usbhsp_setup_pipecfg(struct usbhs_pipe *pipe, int is_host,
+                               int dir_in, u16 *pipecfg)
 {
        u16 type = 0;
        u16 bfre = 0;
@@ -451,14 +450,14 @@ static u16 usbhsp_setup_pipecfg(struct usbhs_pipe *pipe,
 
        /* EPNUM */
        epnum = 0; /* see usbhs_pipe_config_update() */
-
-       return  type    |
-               bfre    |
-               dblb    |
-               cntmd   |
-               dir     |
-               shtnak  |
-               epnum;
+       *pipecfg = type         |
+                  bfre         |
+                  dblb         |
+                  cntmd        |
+                  dir          |
+                  shtnak       |
+                  epnum;
+       return 0;
 }
 
 static u16 usbhsp_setup_pipebuff(struct usbhs_pipe *pipe)
@@ -703,7 +702,11 @@ struct usbhs_pipe *usbhs_pipe_malloc(struct usbhs_priv *priv,
                return NULL;
        }
 
-       pipecfg  = usbhsp_setup_pipecfg(pipe, is_host, dir_in);
+       if (usbhsp_setup_pipecfg(pipe, is_host, dir_in, &pipecfg)) {
+               dev_err(dev, "can't setup pipe\n");
+               return NULL;
+       }
+
        pipebuf  = usbhsp_setup_pipebuff(pipe);
 
        usbhsp_pipe_select(pipe);