Lines Matching refs:ep
38 struct usba_ep *ep = inode->i_private; in queue_dbg_open() local
47 spin_lock_irq(&ep->udc->lock); in queue_dbg_open()
48 list_for_each_entry(req, &ep->queue, queue) { in queue_dbg_open()
54 spin_unlock_irq(&ep->udc->lock); in queue_dbg_open()
60 spin_unlock_irq(&ep->udc->lock); in queue_dbg_open()
204 struct usba_ep *ep) in usba_ep_init_debugfs() argument
208 ep_root = debugfs_create_dir(ep->ep.name, udc->debugfs_root); in usba_ep_init_debugfs()
211 ep->debugfs_dir = ep_root; in usba_ep_init_debugfs()
213 ep->debugfs_queue = debugfs_create_file("queue", 0400, ep_root, in usba_ep_init_debugfs()
214 ep, &queue_dbg_fops); in usba_ep_init_debugfs()
215 if (!ep->debugfs_queue) in usba_ep_init_debugfs()
218 if (ep->can_dma) { in usba_ep_init_debugfs()
219 ep->debugfs_dma_status in usba_ep_init_debugfs()
221 &ep->last_dma_status); in usba_ep_init_debugfs()
222 if (!ep->debugfs_dma_status) in usba_ep_init_debugfs()
225 if (ep_is_control(ep)) { in usba_ep_init_debugfs()
226 ep->debugfs_state in usba_ep_init_debugfs()
228 &ep->state); in usba_ep_init_debugfs()
229 if (!ep->debugfs_state) in usba_ep_init_debugfs()
236 if (ep->can_dma) in usba_ep_init_debugfs()
237 debugfs_remove(ep->debugfs_dma_status); in usba_ep_init_debugfs()
239 debugfs_remove(ep->debugfs_queue); in usba_ep_init_debugfs()
243 dev_err(&ep->udc->pdev->dev, in usba_ep_init_debugfs()
244 "failed to create debugfs directory for %s\n", ep->ep.name); in usba_ep_init_debugfs()
247 static void usba_ep_cleanup_debugfs(struct usba_ep *ep) in usba_ep_cleanup_debugfs() argument
249 debugfs_remove(ep->debugfs_queue); in usba_ep_cleanup_debugfs()
250 debugfs_remove(ep->debugfs_dma_status); in usba_ep_cleanup_debugfs()
251 debugfs_remove(ep->debugfs_state); in usba_ep_cleanup_debugfs()
252 debugfs_remove(ep->debugfs_dir); in usba_ep_cleanup_debugfs()
253 ep->debugfs_dma_status = NULL; in usba_ep_cleanup_debugfs()
254 ep->debugfs_dir = NULL; in usba_ep_cleanup_debugfs()
300 struct usba_ep *ep) in usba_ep_init_debugfs() argument
305 static inline void usba_ep_cleanup_debugfs(struct usba_ep *ep) in usba_ep_cleanup_debugfs() argument
358 static void next_fifo_transaction(struct usba_ep *ep, struct usba_request *req) in next_fifo_transaction() argument
364 if (transaction_len > ep->ep.maxpacket) { in next_fifo_transaction()
365 transaction_len = ep->ep.maxpacket; in next_fifo_transaction()
367 } else if (transaction_len == ep->ep.maxpacket && req->req.zero) in next_fifo_transaction()
371 ep->ep.name, req, transaction_len, in next_fifo_transaction()
374 memcpy_toio(ep->fifo, req->req.buf + req->req.actual, transaction_len); in next_fifo_transaction()
375 usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY); in next_fifo_transaction()
379 static void submit_request(struct usba_ep *ep, struct usba_request *req) in submit_request() argument
382 ep->ep.name, req, req->req.length); in submit_request()
389 usba_ep_writel(ep, CTL_ENB, USBA_TX_PK_RDY); in submit_request()
394 usba_ep_writel(ep, CTL_ENB, USBA_SHORT_PACKET); in submit_request()
396 usba_ep_writel(ep, CTL_DIS, USBA_SHORT_PACKET); in submit_request()
398 usba_dma_writel(ep, ADDRESS, req->req.dma); in submit_request()
399 usba_dma_writel(ep, CONTROL, req->ctrl); in submit_request()
401 next_fifo_transaction(ep, req); in submit_request()
403 usba_ep_writel(ep, CTL_DIS, USBA_TX_PK_RDY); in submit_request()
404 usba_ep_writel(ep, CTL_ENB, USBA_TX_COMPLETE); in submit_request()
406 usba_ep_writel(ep, CTL_DIS, USBA_TX_COMPLETE); in submit_request()
407 usba_ep_writel(ep, CTL_ENB, USBA_TX_PK_RDY); in submit_request()
412 static void submit_next_request(struct usba_ep *ep) in submit_next_request() argument
416 if (list_empty(&ep->queue)) { in submit_next_request()
417 usba_ep_writel(ep, CTL_DIS, USBA_TX_PK_RDY | USBA_RX_BK_RDY); in submit_next_request()
421 req = list_entry(ep->queue.next, struct usba_request, queue); in submit_next_request()
423 submit_request(ep, req); in submit_next_request()
426 static void send_status(struct usba_udc *udc, struct usba_ep *ep) in send_status() argument
428 ep->state = STATUS_STAGE_IN; in send_status()
429 usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY); in send_status()
430 usba_ep_writel(ep, CTL_ENB, USBA_TX_COMPLETE); in send_status()
433 static void receive_data(struct usba_ep *ep) in receive_data() argument
435 struct usba_udc *udc = ep->udc; in receive_data()
441 status = usba_ep_readl(ep, STA); in receive_data()
447 if (list_empty(&ep->queue)) { in receive_data()
448 usba_ep_writel(ep, CTL_DIS, USBA_RX_BK_RDY); in receive_data()
451 req = list_entry(ep->queue.next, in receive_data()
464 ep->fifo, bytecount); in receive_data()
467 usba_ep_writel(ep, CLR_STA, USBA_RX_BK_RDY); in receive_data()
470 DBG(DBG_QUEUE, "%s: request done\n", ep->ep.name); in receive_data()
473 usba_ep_writel(ep, CTL_DIS, USBA_RX_BK_RDY); in receive_data()
475 usb_gadget_giveback_request(&ep->ep, &req->req); in receive_data()
479 status = usba_ep_readl(ep, STA); in receive_data()
482 if (is_complete && ep_is_control(ep)) { in receive_data()
483 send_status(udc, ep); in receive_data()
490 request_complete(struct usba_ep *ep, struct usba_request *req, int status) in request_complete() argument
492 struct usba_udc *udc = ep->udc; in request_complete()
500 usb_gadget_unmap_request(&udc->gadget, &req->req, ep->is_in); in request_complete()
504 ep->ep.name, req, req->req.status, req->req.actual); in request_complete()
507 usb_gadget_giveback_request(&ep->ep, &req->req); in request_complete()
512 request_complete_list(struct usba_ep *ep, struct list_head *list, int status) in request_complete_list() argument
518 request_complete(ep, req, status); in request_complete_list()
525 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_enable() local
526 struct usba_udc *udc = ep->udc; in usba_ep_enable()
530 DBG(DBG_GADGET, "%s: ep_enable: desc=%p\n", ep->ep.name, desc); in usba_ep_enable()
534 if (((desc->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK) != ep->index) in usba_ep_enable()
535 || ep->index == 0 in usba_ep_enable()
538 || maxpacket > ep->fifo_size) { in usba_ep_enable()
543 ep->is_isoc = 0; in usba_ep_enable()
544 ep->is_in = 0; in usba_ep_enable()
553 ep->ep.name, ept_cfg, maxpacket); in usba_ep_enable()
556 ep->is_in = 1; in usba_ep_enable()
566 if (!ep->can_isoc) { in usba_ep_enable()
568 ep->ep.name); in usba_ep_enable()
580 ep->is_isoc = 1; in usba_ep_enable()
586 if (nr_trans > 1 && ep->nr_banks == 3) in usba_ep_enable()
602 spin_lock_irqsave(&ep->udc->lock, flags); in usba_ep_enable()
604 ep->ep.desc = desc; in usba_ep_enable()
605 ep->ep.maxpacket = maxpacket; in usba_ep_enable()
607 usba_ep_writel(ep, CFG, ept_cfg); in usba_ep_enable()
608 usba_ep_writel(ep, CTL_ENB, USBA_EPT_ENABLE); in usba_ep_enable()
610 if (ep->can_dma) { in usba_ep_enable()
614 USBA_BF(EPT_INT, 1 << ep->index) | in usba_ep_enable()
615 USBA_BF(DMA_INT, 1 << ep->index)); in usba_ep_enable()
617 usba_ep_writel(ep, CTL_ENB, ctrl); in usba_ep_enable()
620 USBA_BF(EPT_INT, 1 << ep->index)); in usba_ep_enable()
625 DBG(DBG_HW, "EPT_CFG%d after init: %#08lx\n", ep->index, in usba_ep_enable()
626 (unsigned long)usba_ep_readl(ep, CFG)); in usba_ep_enable()
635 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_disable() local
636 struct usba_udc *udc = ep->udc; in usba_ep_disable()
640 DBG(DBG_GADGET, "ep_disable: %s\n", ep->ep.name); in usba_ep_disable()
644 if (!ep->ep.desc) { in usba_ep_disable()
652 ep->ep.name); in usba_ep_disable()
655 ep->ep.desc = NULL; in usba_ep_disable()
657 list_splice_init(&ep->queue, &req_list); in usba_ep_disable()
658 if (ep->can_dma) { in usba_ep_disable()
659 usba_dma_writel(ep, CONTROL, 0); in usba_ep_disable()
660 usba_dma_writel(ep, ADDRESS, 0); in usba_ep_disable()
661 usba_dma_readl(ep, STATUS); in usba_ep_disable()
663 usba_ep_writel(ep, CTL_DIS, USBA_EPT_ENABLE); in usba_ep_disable()
665 ~USBA_BF(EPT_INT, 1 << ep->index)); in usba_ep_disable()
667 request_complete_list(ep, &req_list, -ESHUTDOWN); in usba_ep_disable()
700 static int queue_dma(struct usba_udc *udc, struct usba_ep *ep, in queue_dma() argument
707 ep->ep.name, req->req.length, &req->req.dma, in queue_dma()
718 ret = usb_gadget_map_request(&udc->gadget, &req->req, ep->is_in); in queue_dma()
727 if (!ep->is_in) in queue_dma()
737 if (ep->ep.desc) { in queue_dma()
738 if (list_empty(&ep->queue)) in queue_dma()
739 submit_request(ep, req); in queue_dma()
741 list_add_tail(&req->queue, &ep->queue); in queue_dma()
753 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_queue() local
754 struct usba_udc *udc = ep->udc; in usba_ep_queue()
759 ep->ep.name, req, _req->length); in usba_ep_queue()
762 !ep->ep.desc) in usba_ep_queue()
772 if (ep->can_dma) in usba_ep_queue()
773 return queue_dma(udc, ep, req, gfp_flags); in usba_ep_queue()
778 if (ep->ep.desc) { in usba_ep_queue()
779 list_add_tail(&req->queue, &ep->queue); in usba_ep_queue()
781 if ((!ep_is_control(ep) && ep->is_in) || in usba_ep_queue()
782 (ep_is_control(ep) in usba_ep_queue()
783 && (ep->state == DATA_STAGE_IN in usba_ep_queue()
784 || ep->state == STATUS_STAGE_IN))) in usba_ep_queue()
785 usba_ep_writel(ep, CTL_ENB, USBA_TX_PK_RDY); in usba_ep_queue()
787 usba_ep_writel(ep, CTL_ENB, USBA_RX_BK_RDY); in usba_ep_queue()
796 usba_update_req(struct usba_ep *ep, struct usba_request *req, u32 status) in usba_update_req() argument
801 static int stop_dma(struct usba_ep *ep, u32 *pstatus) in stop_dma() argument
810 usba_dma_writel(ep, CONTROL, 0); in stop_dma()
814 status = usba_dma_readl(ep, STATUS); in stop_dma()
824 dev_err(&ep->udc->pdev->dev, in stop_dma()
826 ep->ep.name); in stop_dma()
835 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_dequeue() local
836 struct usba_udc *udc = ep->udc; in usba_ep_dequeue()
842 ep->ep.name, req); in usba_ep_dequeue()
846 list_for_each_entry(req, &ep->queue, queue) { in usba_ep_dequeue()
861 if (ep->queue.next == &req->queue) { in usba_ep_dequeue()
862 status = usba_dma_readl(ep, STATUS); in usba_ep_dequeue()
864 stop_dma(ep, &status); in usba_ep_dequeue()
867 ep->last_dma_status = status; in usba_ep_dequeue()
870 usba_writel(udc, EPT_RST, 1 << ep->index); in usba_ep_dequeue()
872 usba_update_req(ep, req, status); in usba_ep_dequeue()
882 request_complete(ep, req, -ECONNRESET); in usba_ep_dequeue()
885 submit_next_request(ep); in usba_ep_dequeue()
893 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_set_halt() local
894 struct usba_udc *udc = ep->udc; in usba_ep_set_halt()
898 DBG(DBG_GADGET, "endpoint %s: %s HALT\n", ep->ep.name, in usba_ep_set_halt()
901 if (!ep->ep.desc) { in usba_ep_set_halt()
903 ep->ep.name); in usba_ep_set_halt()
906 if (ep->is_isoc) { in usba_ep_set_halt()
908 ep->ep.name); in usba_ep_set_halt()
918 if (!list_empty(&ep->queue) in usba_ep_set_halt()
919 || ((value && ep->is_in && (usba_ep_readl(ep, STA) in usba_ep_set_halt()
924 usba_ep_writel(ep, SET_STA, USBA_FORCE_STALL); in usba_ep_set_halt()
926 usba_ep_writel(ep, CLR_STA, in usba_ep_set_halt()
928 usba_ep_readl(ep, STA); in usba_ep_set_halt()
938 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_fifo_status() local
940 return USBA_BFEXT(BYTE_COUNT, usba_ep_readl(ep, STA)); in usba_ep_fifo_status()
945 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_fifo_flush() local
946 struct usba_udc *udc = ep->udc; in usba_ep_fifo_flush()
948 usba_writel(udc, EPT_RST, 1 << ep->index); in usba_ep_fifo_flush()
1038 struct usba_ep *ep; in reset_all_endpoints() local
1043 ep = to_usba_ep(udc->gadget.ep0); in reset_all_endpoints()
1044 list_for_each_entry_safe(req, tmp_req, &ep->queue, queue) { in reset_all_endpoints()
1046 request_complete(ep, req, -ECONNRESET); in reset_all_endpoints()
1055 list_for_each_entry(ep, &udc->gadget.ep_list, ep.ep_list) { in reset_all_endpoints()
1056 if (ep->ep.desc) { in reset_all_endpoints()
1058 usba_ep_disable(&ep->ep); in reset_all_endpoints()
1066 struct usba_ep *ep; in get_ep_by_addr() local
1071 list_for_each_entry (ep, &udc->gadget.ep_list, ep.ep_list) { in get_ep_by_addr()
1074 if (!ep->ep.desc) in get_ep_by_addr()
1076 bEndpointAddress = ep->ep.desc->bEndpointAddress; in get_ep_by_addr()
1081 return ep; in get_ep_by_addr()
1088 static inline void set_protocol_stall(struct usba_udc *udc, struct usba_ep *ep) in set_protocol_stall() argument
1090 usba_ep_writel(ep, SET_STA, USBA_FORCE_STALL); in set_protocol_stall()
1091 ep->state = WAIT_FOR_SETUP; in set_protocol_stall()
1094 static inline int is_stalled(struct usba_udc *udc, struct usba_ep *ep) in is_stalled() argument
1096 if (usba_ep_readl(ep, STA) & USBA_FORCE_STALL) in is_stalled()
1128 struct usba_ep *ep; in do_test_mode() local
1153 ep = &udc->usba_ep[0]; in do_test_mode()
1156 usba_ep_writel(ep, CFG, in do_test_mode()
1161 if (!(usba_ep_readl(ep, CFG) & USBA_EPT_MAPPED)) { in do_test_mode()
1162 set_protocol_stall(udc, ep); in do_test_mode()
1165 usba_ep_writel(ep, CTL_ENB, USBA_EPT_ENABLE); in do_test_mode()
1171 ep = &udc->usba_ep[0]; in do_test_mode()
1172 usba_ep_writel(ep, CFG, in do_test_mode()
1177 if (!(usba_ep_readl(ep, CFG) & USBA_EPT_MAPPED)) { in do_test_mode()
1178 set_protocol_stall(udc, ep); in do_test_mode()
1181 usba_ep_writel(ep, CTL_ENB, USBA_EPT_ENABLE); in do_test_mode()
1183 memcpy_toio(ep->fifo, test_packet_buffer, in do_test_mode()
1185 usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY); in do_test_mode()
1219 static int handle_ep0_setup(struct usba_udc *udc, struct usba_ep *ep, in handle_ep0_setup() argument
1250 ep->state = DATA_STAGE_IN; in handle_ep0_setup()
1251 usba_io_writew(status, ep->fifo); in handle_ep0_setup()
1252 usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY); in handle_ep0_setup()
1282 send_status(udc, ep); in handle_ep0_setup()
1289 send_status(udc, ep); in handle_ep0_setup()
1290 ep->state = STATUS_STAGE_TEST; in handle_ep0_setup()
1313 send_status(udc, ep); in handle_ep0_setup()
1322 send_status(udc, ep); in handle_ep0_setup()
1323 ep->state = STATUS_STAGE_ADDR; in handle_ep0_setup()
1338 ep->ep.name, crq->bRequestType, crq->bRequest, in handle_ep0_setup()
1341 set_protocol_stall(udc, ep); in handle_ep0_setup()
1345 static void usba_control_irq(struct usba_udc *udc, struct usba_ep *ep) in usba_control_irq() argument
1352 epstatus = usba_ep_readl(ep, STA); in usba_control_irq()
1353 epctrl = usba_ep_readl(ep, CTL); in usba_control_irq()
1356 ep->ep.name, ep->state, epstatus, epctrl); in usba_control_irq()
1359 if (!list_empty(&ep->queue)) in usba_control_irq()
1360 req = list_entry(ep->queue.next, in usba_control_irq()
1365 next_fifo_transaction(ep, req); in usba_control_irq()
1367 submit_request(ep, req); in usba_control_irq()
1370 usba_ep_writel(ep, CTL_DIS, USBA_TX_PK_RDY); in usba_control_irq()
1371 usba_ep_writel(ep, CTL_ENB, USBA_TX_COMPLETE); in usba_control_irq()
1376 usba_ep_writel(ep, CLR_STA, USBA_TX_COMPLETE); in usba_control_irq()
1378 switch (ep->state) { in usba_control_irq()
1380 usba_ep_writel(ep, CTL_ENB, USBA_RX_BK_RDY); in usba_control_irq()
1381 usba_ep_writel(ep, CTL_DIS, USBA_TX_COMPLETE); in usba_control_irq()
1382 ep->state = STATUS_STAGE_OUT; in usba_control_irq()
1388 usba_ep_writel(ep, CTL_DIS, USBA_TX_COMPLETE); in usba_control_irq()
1389 ep->state = WAIT_FOR_SETUP; in usba_control_irq()
1394 request_complete(ep, req, 0); in usba_control_irq()
1395 submit_next_request(ep); in usba_control_irq()
1397 usba_ep_writel(ep, CTL_DIS, USBA_TX_COMPLETE); in usba_control_irq()
1398 ep->state = WAIT_FOR_SETUP; in usba_control_irq()
1401 usba_ep_writel(ep, CTL_DIS, USBA_TX_COMPLETE); in usba_control_irq()
1402 ep->state = WAIT_FOR_SETUP; in usba_control_irq()
1404 set_protocol_stall(udc, ep); in usba_control_irq()
1409 ep->ep.name, ep->state); in usba_control_irq()
1410 set_protocol_stall(udc, ep); in usba_control_irq()
1417 switch (ep->state) { in usba_control_irq()
1419 usba_ep_writel(ep, CLR_STA, USBA_RX_BK_RDY); in usba_control_irq()
1420 usba_ep_writel(ep, CTL_DIS, USBA_RX_BK_RDY); in usba_control_irq()
1424 request_complete(ep, req, 0); in usba_control_irq()
1426 ep->state = WAIT_FOR_SETUP; in usba_control_irq()
1430 receive_data(ep); in usba_control_irq()
1434 usba_ep_writel(ep, CLR_STA, USBA_RX_BK_RDY); in usba_control_irq()
1435 usba_ep_writel(ep, CTL_DIS, USBA_RX_BK_RDY); in usba_control_irq()
1438 ep->ep.name, ep->state); in usba_control_irq()
1439 set_protocol_stall(udc, ep); in usba_control_irq()
1453 if (ep->state != WAIT_FOR_SETUP) { in usba_control_irq()
1466 if (ep->state == STATUS_STAGE_OUT in usba_control_irq()
1467 || ep->state == STATUS_STAGE_IN) { in usba_control_irq()
1468 usba_ep_writel(ep, CTL_DIS, USBA_RX_BK_RDY); in usba_control_irq()
1474 request_complete(ep, req, status); in usba_control_irq()
1478 pkt_len = USBA_BFEXT(BYTE_COUNT, usba_ep_readl(ep, STA)); in usba_control_irq()
1483 set_protocol_stall(udc, ep); in usba_control_irq()
1487 DBG(DBG_FIFO, "Copying ctrl request from 0x%p:\n", ep->fifo); in usba_control_irq()
1488 memcpy_fromio(crq.data, ep->fifo, sizeof(crq)); in usba_control_irq()
1492 usba_ep_writel(ep, CLR_STA, USBA_RX_SETUP); in usba_control_irq()
1505 ep->state = DATA_STAGE_IN; in usba_control_irq()
1508 ep->state = DATA_STAGE_OUT; in usba_control_irq()
1510 ep->state = STATUS_STAGE_IN; in usba_control_irq()
1514 if (ep->index == 0) in usba_control_irq()
1515 ret = handle_ep0_setup(udc, ep, &crq.crq); in usba_control_irq()
1524 le16_to_cpu(crq.crq.wLength), ep->state, ret); in usba_control_irq()
1528 set_protocol_stall(udc, ep); in usba_control_irq()
1533 static void usba_ep_irq(struct usba_udc *udc, struct usba_ep *ep) in usba_ep_irq() argument
1539 epstatus = usba_ep_readl(ep, STA); in usba_ep_irq()
1540 epctrl = usba_ep_readl(ep, CTL); in usba_ep_irq()
1542 DBG(DBG_INT, "%s: interrupt, status: 0x%08x\n", ep->ep.name, epstatus); in usba_ep_irq()
1545 DBG(DBG_BUS, "%s: TX PK ready\n", ep->ep.name); in usba_ep_irq()
1547 if (list_empty(&ep->queue)) { in usba_ep_irq()
1549 usba_ep_writel(ep, CTL_DIS, USBA_TX_PK_RDY); in usba_ep_irq()
1553 req = list_entry(ep->queue.next, struct usba_request, queue); in usba_ep_irq()
1557 usba_ep_writel(ep, SET_STA, in usba_ep_irq()
1559 usba_ep_writel(ep, CTL_DIS, in usba_ep_irq()
1562 submit_next_request(ep); in usba_ep_irq()
1563 request_complete(ep, req, 0); in usba_ep_irq()
1566 next_fifo_transaction(ep, req); in usba_ep_irq()
1568 submit_request(ep, req); in usba_ep_irq()
1572 submit_next_request(ep); in usba_ep_irq()
1573 request_complete(ep, req, 0); in usba_ep_irq()
1577 epstatus = usba_ep_readl(ep, STA); in usba_ep_irq()
1578 epctrl = usba_ep_readl(ep, CTL); in usba_ep_irq()
1581 DBG(DBG_BUS, "%s: RX data ready\n", ep->ep.name); in usba_ep_irq()
1582 receive_data(ep); in usba_ep_irq()
1586 static void usba_dma_irq(struct usba_udc *udc, struct usba_ep *ep) in usba_dma_irq() argument
1591 status = usba_dma_readl(ep, STATUS); in usba_dma_irq()
1592 control = usba_dma_readl(ep, CONTROL); in usba_dma_irq()
1594 ep->last_dma_status = status; in usba_dma_irq()
1612 if (list_empty(&ep->queue)) in usba_dma_irq()
1617 req = list_entry(ep->queue.next, struct usba_request, queue); in usba_dma_irq()
1618 usba_update_req(ep, req, status); in usba_dma_irq()
1621 submit_next_request(ep); in usba_dma_irq()
1622 request_complete(ep, req, 0); in usba_dma_irq()
1716 ep0->ep.desc = &usba_ep0_desc; in usba_udc_irq()
1934 struct usba_ep *eps, *ep; in atmel_udc_of_init() local
1957 udc->gadget.ep0 = &eps[0].ep; in atmel_udc_of_init()
1959 INIT_LIST_HEAD(&eps[0].ep.ep_list); in atmel_udc_of_init()
1964 ep = &eps[i]; in atmel_udc_of_init()
1971 ep->index = val; in atmel_udc_of_init()
1978 ep->fifo_size = val; in atmel_udc_of_init()
1985 ep->nr_banks = val; in atmel_udc_of_init()
1987 ep->can_dma = of_property_read_bool(pp, "atmel,can-dma"); in atmel_udc_of_init()
1988 ep->can_isoc = of_property_read_bool(pp, "atmel,can-isoc"); in atmel_udc_of_init()
1995 ep->ep.name = name; in atmel_udc_of_init()
1997 ep->ep_regs = udc->regs + USBA_EPT_BASE(i); in atmel_udc_of_init()
1998 ep->dma_regs = udc->regs + USBA_DMA_BASE(i); in atmel_udc_of_init()
1999 ep->fifo = udc->fifo + USBA_FIFO_BASE(i); in atmel_udc_of_init()
2000 ep->ep.ops = &usba_ep_ops; in atmel_udc_of_init()
2001 usb_ep_set_maxpacket_limit(&ep->ep, ep->fifo_size); in atmel_udc_of_init()
2002 ep->udc = udc; in atmel_udc_of_init()
2003 INIT_LIST_HEAD(&ep->queue); in atmel_udc_of_init()
2005 if (ep->index == 0) { in atmel_udc_of_init()
2006 ep->ep.caps.type_control = true; in atmel_udc_of_init()
2008 ep->ep.caps.type_iso = ep->can_isoc; in atmel_udc_of_init()
2009 ep->ep.caps.type_bulk = true; in atmel_udc_of_init()
2010 ep->ep.caps.type_int = true; in atmel_udc_of_init()
2013 ep->ep.caps.dir_in = true; in atmel_udc_of_init()
2014 ep->ep.caps.dir_out = true; in atmel_udc_of_init()
2017 list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); in atmel_udc_of_init()
2055 udc->gadget.ep0 = &eps[0].ep; in usba_udc_pdata()
2061 INIT_LIST_HEAD(&eps[0].ep.ep_list); in usba_udc_pdata()
2064 struct usba_ep *ep = &eps[i]; in usba_udc_pdata() local
2066 ep->ep_regs = udc->regs + USBA_EPT_BASE(i); in usba_udc_pdata()
2067 ep->dma_regs = udc->regs + USBA_DMA_BASE(i); in usba_udc_pdata()
2068 ep->fifo = udc->fifo + USBA_FIFO_BASE(i); in usba_udc_pdata()
2069 ep->ep.ops = &usba_ep_ops; in usba_udc_pdata()
2070 ep->ep.name = pdata->ep[i].name; in usba_udc_pdata()
2071 ep->fifo_size = pdata->ep[i].fifo_size; in usba_udc_pdata()
2072 usb_ep_set_maxpacket_limit(&ep->ep, ep->fifo_size); in usba_udc_pdata()
2073 ep->udc = udc; in usba_udc_pdata()
2074 INIT_LIST_HEAD(&ep->queue); in usba_udc_pdata()
2075 ep->nr_banks = pdata->ep[i].nr_banks; in usba_udc_pdata()
2076 ep->index = pdata->ep[i].index; in usba_udc_pdata()
2077 ep->can_dma = pdata->ep[i].can_dma; in usba_udc_pdata()
2078 ep->can_isoc = pdata->ep[i].can_isoc; in usba_udc_pdata()
2081 ep->ep.caps.type_control = true; in usba_udc_pdata()
2083 ep->ep.caps.type_iso = ep->can_isoc; in usba_udc_pdata()
2084 ep->ep.caps.type_bulk = true; in usba_udc_pdata()
2085 ep->ep.caps.type_int = true; in usba_udc_pdata()
2088 ep->ep.caps.dir_in = true; in usba_udc_pdata()
2089 ep->ep.caps.dir_out = true; in usba_udc_pdata()
2092 list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); in usba_udc_pdata()