These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / usb / gadget / udc / gr_udc.c
index c886887..b9429bc 100644 (file)
@@ -2018,12 +2018,23 @@ static int gr_ep_init(struct gr_udc *dev, int num, int is_in, u32 maxplimit)
 
                usb_ep_set_maxpacket_limit(&ep->ep, MAX_CTRL_PL_SIZE);
                ep->bytes_per_buffer = MAX_CTRL_PL_SIZE;
+
+               ep->ep.caps.type_control = true;
        } else {
                usb_ep_set_maxpacket_limit(&ep->ep, (u16)maxplimit);
                list_add_tail(&ep->ep.ep_list, &dev->gadget.ep_list);
+
+               ep->ep.caps.type_iso = true;
+               ep->ep.caps.type_bulk = true;
+               ep->ep.caps.type_int = true;
        }
        list_add_tail(&ep->ep_list, &dev->ep_list);
 
+       if (is_in)
+               ep->ep.caps.dir_in = true;
+       else
+               ep->ep.caps.dir_out = true;
+
        ep->tailbuf = dma_alloc_coherent(dev->dev, ep->ep.maxpacket_limit,
                                         &ep->tailbuf_paddr, GFP_ATOMIC);
        if (!ep->tailbuf)
@@ -2106,8 +2117,7 @@ static int gr_remove(struct platform_device *pdev)
                return -EBUSY;
 
        gr_dfs_delete(dev);
-       if (dev->desc_pool)
-               dma_pool_destroy(dev->desc_pool);
+       dma_pool_destroy(dev->desc_pool);
        platform_set_drvdata(pdev, NULL);
 
        gr_free_request(&dev->epi[0].ep, &dev->ep0reqi->req);