These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / usb / gadget / udc / mv_u3d_core.c
index ea35a24..dafe74e 100644 (file)
@@ -1324,6 +1324,9 @@ static int mv_u3d_eps_init(struct mv_u3d *u3d)
        ep->ep.ops = &mv_u3d_ep_ops;
        ep->wedge = 0;
        usb_ep_set_maxpacket_limit(&ep->ep, MV_U3D_EP0_MAX_PKT_SIZE);
+       ep->ep.caps.type_control = true;
+       ep->ep.caps.dir_in = true;
+       ep->ep.caps.dir_out = true;
        ep->ep_num = 0;
        ep->ep.desc = &mv_u3d_ep0_desc;
        INIT_LIST_HEAD(&ep->queue);
@@ -1339,14 +1342,20 @@ static int mv_u3d_eps_init(struct mv_u3d *u3d)
                if (i & 1) {
                        snprintf(name, sizeof(name), "ep%din", i >> 1);
                        ep->direction = MV_U3D_EP_DIR_IN;
+                       ep->ep.caps.dir_in = true;
                } else {
                        snprintf(name, sizeof(name), "ep%dout", i >> 1);
                        ep->direction = MV_U3D_EP_DIR_OUT;
+                       ep->ep.caps.dir_out = true;
                }
                ep->u3d = u3d;
                strncpy(ep->name, name, sizeof(ep->name));
                ep->ep.name = ep->name;
 
+               ep->ep.caps.type_iso = true;
+               ep->ep.caps.type_bulk = true;
+               ep->ep.caps.type_int = true;
+
                ep->ep.ops = &mv_u3d_ep_ops;
                usb_ep_set_maxpacket_limit(&ep->ep, (unsigned short) ~0);
                ep->ep_num = i / 2;
@@ -1758,8 +1767,7 @@ static int mv_u3d_remove(struct platform_device *dev)
        usb_del_gadget_udc(&u3d->gadget);
 
        /* free memory allocated in probe */
-       if (u3d->trb_pool)
-               dma_pool_destroy(u3d->trb_pool);
+       dma_pool_destroy(u3d->trb_pool);
 
        if (u3d->ep_context)
                dma_free_coherent(&dev->dev, u3d->ep_context_size,