Merge tag 'staging-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
[linux-drm-fsl-dcu.git] / drivers / staging / emxx_udc / emxx_udc.c
index eb178fcb7954d0ee44964f851f477220867a39ed..4be646ce8a12215aac76d6326e2832ee34d26f0f 100644 (file)
@@ -1608,7 +1608,7 @@ static int std_req_get_status(struct nbu2ss_udc *udc)
        switch (recipient) {
        case USB_RECIP_DEVICE:
                if (udc->ctrl.wIndex == 0x0000) {
-                       if (udc->self_powered)
+                       if (udc->gadget.is_selfpowered)
                                status_data |= (1 << USB_DEVICE_SELF_POWERED);
 
                        if (udc->remote_wakeup)
@@ -3117,7 +3117,7 @@ static int nbu2ss_gad_wakeup(struct usb_gadget *pgadget)
 static int nbu2ss_gad_set_selfpowered(struct usb_gadget *pgadget,
                                        int is_selfpowered)
 {
-       struct nbu2ss_udc       *udc;
+       struct nbu2ss_udc       *udc;
        unsigned long           flags;
 
 /*     INFO("=== %s()\n", __func__); */
@@ -3130,7 +3130,7 @@ static int nbu2ss_gad_set_selfpowered(struct usb_gadget *pgadget,
        udc = container_of(pgadget, struct nbu2ss_udc, gadget);
 
        spin_lock_irqsave(&udc->lock, flags);
-       udc->self_powered = (is_selfpowered != 0);
+       pgadget->is_selfpowered = (is_selfpowered != 0);
        spin_unlock_irqrestore(&udc->lock, flags);
 
        return 0;
@@ -3248,42 +3248,6 @@ static const char *gp_ep_name[NUM_ENDPOINTS] = {
        g_epd_name,
 };
 
-/*-------------------------------------------------------------------------*/
-static void __init nbu2ss_drv_set_ep_info(
-       struct nbu2ss_udc       *udc,
-       struct nbu2ss_ep        *ep,
-       const char *name)
-{
-       ep->udc = udc;
-       ep->desc = NULL;
-
-       ep->ep.driver_data = NULL;
-       ep->ep.name = name;
-       ep->ep.ops = &nbu2ss_ep_ops;
-
-       if (isdigit(name[2])) {
-
-               long    num;
-               int     res;
-               char    tempbuf[2];
-
-               tempbuf[0] = name[2];
-               tempbuf[1] = '\0';
-               res = kstrtol(tempbuf, 16, &num);
-
-               if (num == 0)
-                       ep->ep.maxpacket = EP0_PACKETSIZE;
-               else
-                       ep->ep.maxpacket = EP_PACKETSIZE;
-
-       } else {
-               ep->ep.maxpacket = EP_PACKETSIZE;
-       }
-
-       list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list);
-       INIT_LIST_HEAD(&ep->queue);
-}
-
 /*-------------------------------------------------------------------------*/
 static void __init nbu2ss_drv_ep_init(struct nbu2ss_udc *udc)
 {
@@ -3292,9 +3256,21 @@ static void __init nbu2ss_drv_ep_init(struct nbu2ss_udc *udc)
        INIT_LIST_HEAD(&udc->gadget.ep_list);
        udc->gadget.ep0 = &udc->ep[0].ep;
 
+       for (i = 0; i < NUM_ENDPOINTS; i++) {
+               struct nbu2ss_ep *ep = &udc->ep[i];
+
+               ep->udc = udc;
+               ep->desc = NULL;
+
+               ep->ep.driver_data = NULL;
+               ep->ep.name = gp_ep_name[i];
+               ep->ep.ops = &nbu2ss_ep_ops;
 
-       for (i = 0; i < NUM_ENDPOINTS; i++)
-               nbu2ss_drv_set_ep_info(udc, &udc->ep[i], gp_ep_name[i]);
+               ep->ep.maxpacket = (i == 0 ? EP0_PACKETSIZE : EP_PACKETSIZE);
+
+               list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list);
+               INIT_LIST_HEAD(&ep->queue);
+       }
 
        list_del_init(&udc->ep[0].ep.ep_list);
 }
@@ -3308,7 +3284,7 @@ static int __init nbu2ss_drv_contest_init(
        spin_lock_init(&udc->lock);
        udc->dev = &pdev->dev;
 
-       udc->self_powered = 1;
+       udc->gadget.is_selfpowered = 1;
        udc->devstate = USB_STATE_NOTATTACHED;
        udc->pdev = pdev;
        udc->mA = 0;