unsigned char *counter;
        int ret;
 
-       ep->desc = desc;
+       ep->ep.desc = desc;
 
        if (ep->pipenum)        /* already allocated pipe  */
                return 0;
        /* set SUDMAC parameters */
        dma = &r8a66597->dma;
        dma->used = 1;
-       if (ep->desc->bEndpointAddress & USB_DIR_IN) {
+       if (ep->ep.desc->bEndpointAddress & USB_DIR_IN) {
                dma->dir = 1;
        } else {
                dma->dir = 0;
 
 static void start_packet(struct r8a66597_ep *ep, struct r8a66597_request *req)
 {
-       if (ep->desc->bEndpointAddress & USB_DIR_IN)
+       if (ep->ep.desc->bEndpointAddress & USB_DIR_IN)
                start_packet_write(ep, req);
        else
                start_packet_read(ep, req);
 
        if (restart) {
                req = get_request_from_ep(ep);
-               if (ep->desc)
+               if (ep->ep.desc)
                        start_packet(ep, req);
        }
 }
                                r8a66597_write(r8a66597, ~check, BRDYSTS);
                                ep = r8a66597->pipenum2ep[pipenum];
                                req = get_request_from_ep(ep);
-                               if (ep->desc->bEndpointAddress & USB_DIR_IN)
+                               if (ep->ep.desc->bEndpointAddress & USB_DIR_IN)
                                        irq_packet_write(ep, req);
                                else
                                        irq_packet_read(ep, req);
        req->req.actual = 0;
        req->req.status = -EINPROGRESS;
 
-       if (ep->desc == NULL)   /* control */
+       if (ep->ep.desc == NULL)        /* control */
                start_ep0(ep, req);
        else {
                if (request && !ep->busy)
 
        ep = container_of(_ep, struct r8a66597_ep, ep);
 
-       if (!ep || !ep->desc)
+       if (!ep || !ep->ep.desc)
                return -EINVAL;
 
        spin_lock_irqsave(&ep->r8a66597->lock, flags);