usb: gadget: renesas_usbhs: add device select support in usbhs_pipe_config_update()
[pandora-kernel.git] / drivers / usb / renesas_usbhs / pipe.c
index 08d11b0..4235a2e 100644 (file)
@@ -418,14 +418,26 @@ static u16 usbhsp_setup_pipebuff(struct usbhs_pipe *pipe)
                (0xff & bufnmb)         <<  0;
 }
 
-void usbhs_pipe_config_update(struct usbhs_pipe *pipe, u16 epnum, u16 maxp)
+void usbhs_pipe_config_update(struct usbhs_pipe *pipe, u16 devsel,
+                             u16 epnum, u16 maxp)
 {
+       if (devsel > 0xA) {
+               struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe);
+               struct device *dev = usbhs_priv_to_dev(priv);
+
+               dev_err(dev, "devsel error %d\n", devsel);
+
+               devsel = 0;
+       }
+
        usbhsp_pipe_barrier(pipe);
 
        pipe->maxp = maxp;
 
        usbhsp_pipe_select(pipe);
-       usbhsp_pipe_maxp_set(pipe, 0xFFFF, maxp);
+       usbhsp_pipe_maxp_set(pipe, 0xFFFF,
+                            (devsel << 12) |
+                            maxp);
 
        if (!usbhs_pipe_is_dcp(pipe))
                usbhsp_pipe_cfg_set(pipe,  0x000F, epnum);