usb: gadget: renesas_usbhs: each pipe hold maxpacket size
[pandora-kernel.git] / drivers / usb / renesas_usbhs / pipe.c
index 1af1905..1f86bed 100644 (file)
@@ -106,17 +106,6 @@ static void __usbhsp_pipe_xxx_set(struct usbhs_pipe *pipe,
                usbhs_bset(priv, pipe_reg, mask, val);
 }
 
-static u16 __usbhsp_pipe_xxx_get(struct usbhs_pipe *pipe,
-                                u16 dcp_reg, u16 pipe_reg)
-{
-       struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe);
-
-       if (usbhs_pipe_is_dcp(pipe))
-               return usbhs_read(priv, dcp_reg);
-       else
-               return usbhs_read(priv, pipe_reg);
-}
-
 /*
  *             DCPCFG/PIPECFG functions
  */
@@ -144,11 +133,6 @@ static void usbhsp_pipe_maxp_set(struct usbhs_pipe *pipe, u16 mask, u16 val)
        __usbhsp_pipe_xxx_set(pipe, DCPMAXP, PIPEMAXP, mask, val);
 }
 
-static u16 usbhsp_pipe_maxp_get(struct usbhs_pipe *pipe)
-{
-       return __usbhsp_pipe_xxx_get(pipe, DCPMAXP, PIPEMAXP);
-}
-
 /*
  *             pipe control functions
  */
@@ -465,6 +449,8 @@ void usbhs_pipe_config_update(struct usbhs_pipe *pipe, u16 epnum, u16 maxp)
 {
        usbhsp_pipe_barrier(pipe);
 
+       pipe->maxp = maxp;
+
        usbhsp_pipe_select(pipe);
        usbhsp_pipe_maxp_set(pipe, 0xFFFF, maxp);
 
@@ -477,11 +463,12 @@ void usbhs_pipe_config_update(struct usbhs_pipe *pipe, u16 epnum, u16 maxp)
  */
 int usbhs_pipe_get_maxpacket(struct usbhs_pipe *pipe)
 {
-       u16 mask = usbhs_pipe_is_dcp(pipe) ? DCP_MAXP_MASK : PIPE_MAXP_MASK;
-
-       usbhsp_pipe_select(pipe);
-
-       return (int)(usbhsp_pipe_maxp_get(pipe) & mask);
+       /*
+        * see
+        *      usbhs_pipe_config_update()
+        *      usbhs_dcp_malloc()
+        */
+       return pipe->maxp;
 }
 
 int usbhs_pipe_is_dir_in(struct usbhs_pipe *pipe)