struct pch_udc_data_dma_desc    *td_data;
        struct pch_udc_dev              *dev;
        unsigned long                   offset_addr;
-       const struct usb_endpoint_descriptor    *desc;
        struct list_head                queue;
        unsigned                        num:5,
                                        in:1,
        if (!dev->driver || (dev->gadget.speed == USB_SPEED_UNKNOWN))
                return -ESHUTDOWN;
        spin_lock_irqsave(&dev->lock, iflags);
-       ep->desc = desc;
+       ep->ep.desc = desc;
        ep->halted = 0;
        pch_udc_ep_enable(ep, &ep->dev->cfg_data, desc);
        ep->ep.maxpacket = usb_endpoint_maxp(desc);
 
        ep = container_of(usbep, struct pch_udc_ep, ep);
        dev = ep->dev;
-       if ((usbep->name == ep0_string) || !ep->desc)
+       if ((usbep->name == ep0_string) || !ep->ep.desc)
                return -EINVAL;
 
        spin_lock_irqsave(&ep->dev->lock, iflags);
        ep->halted = 1;
        pch_udc_ep_disable(ep);
        pch_udc_disable_ep_interrupts(ep->dev, PCH_UDC_EPINT(ep->in, ep->num));
-       ep->desc = NULL;
        ep->ep.desc = NULL;
        INIT_LIST_HEAD(&ep->queue);
        spin_unlock_irqrestore(&ep->dev->lock, iflags);
                return -EINVAL;
        ep = container_of(usbep, struct pch_udc_ep, ep);
        dev = ep->dev;
-       if (!ep->desc && ep->num)
+       if (!ep->ep.desc && ep->num)
                return -EINVAL;
        req = container_of(usbreq, struct pch_udc_request, req);
        if (!list_empty(&req->queue))
 
        ep = container_of(usbep, struct pch_udc_ep, ep);
        dev = ep->dev;
-       if (!usbep || !usbreq || (!ep->desc && ep->num))
+       if (!usbep || !usbreq || (!ep->ep.desc && ep->num))
                return ret;
        req = container_of(usbreq, struct pch_udc_request, req);
        spin_lock_irqsave(&ep->dev->lock, flags);
                return -EINVAL;
        ep = container_of(usbep, struct pch_udc_ep, ep);
        dev = ep->dev;
-       if (!ep->desc && !ep->num)
+       if (!ep->ep.desc && !ep->num)
                return -EINVAL;
        if (!ep->dev->driver || (ep->dev->gadget.speed == USB_SPEED_UNKNOWN))
                return -ESHUTDOWN;
                return -EINVAL;
        ep = container_of(usbep, struct pch_udc_ep, ep);
        dev = ep->dev;
-       if (!ep->desc && !ep->num)
+       if (!ep->ep.desc && !ep->num)
                return -EINVAL;
        if (!ep->dev->driver || (ep->dev->gadget.speed == USB_SPEED_UNKNOWN))
                return -ESHUTDOWN;
                return;
 
        ep = container_of(usbep, struct pch_udc_ep, ep);
-       if (ep->desc || !ep->num)
+       if (ep->ep.desc || !ep->num)
                pch_udc_ep_fifo_flush(ep, ep->in);
 }