Lines Matching refs:ep
39 struct usba_ep *ep = inode->i_private; in queue_dbg_open() local
48 spin_lock_irq(&ep->udc->lock); in queue_dbg_open()
49 list_for_each_entry(req, &ep->queue, queue) { in queue_dbg_open()
55 spin_unlock_irq(&ep->udc->lock); in queue_dbg_open()
61 spin_unlock_irq(&ep->udc->lock); in queue_dbg_open()
205 struct usba_ep *ep) in usba_ep_init_debugfs() argument
209 ep_root = debugfs_create_dir(ep->ep.name, udc->debugfs_root); in usba_ep_init_debugfs()
212 ep->debugfs_dir = ep_root; in usba_ep_init_debugfs()
214 ep->debugfs_queue = debugfs_create_file("queue", 0400, ep_root, in usba_ep_init_debugfs()
215 ep, &queue_dbg_fops); in usba_ep_init_debugfs()
216 if (!ep->debugfs_queue) in usba_ep_init_debugfs()
219 if (ep->can_dma) { in usba_ep_init_debugfs()
220 ep->debugfs_dma_status in usba_ep_init_debugfs()
222 &ep->last_dma_status); in usba_ep_init_debugfs()
223 if (!ep->debugfs_dma_status) in usba_ep_init_debugfs()
226 if (ep_is_control(ep)) { in usba_ep_init_debugfs()
227 ep->debugfs_state in usba_ep_init_debugfs()
229 &ep->state); in usba_ep_init_debugfs()
230 if (!ep->debugfs_state) in usba_ep_init_debugfs()
237 if (ep->can_dma) in usba_ep_init_debugfs()
238 debugfs_remove(ep->debugfs_dma_status); in usba_ep_init_debugfs()
240 debugfs_remove(ep->debugfs_queue); in usba_ep_init_debugfs()
244 dev_err(&ep->udc->pdev->dev, in usba_ep_init_debugfs()
245 "failed to create debugfs directory for %s\n", ep->ep.name); in usba_ep_init_debugfs()
248 static void usba_ep_cleanup_debugfs(struct usba_ep *ep) in usba_ep_cleanup_debugfs() argument
250 debugfs_remove(ep->debugfs_queue); in usba_ep_cleanup_debugfs()
251 debugfs_remove(ep->debugfs_dma_status); in usba_ep_cleanup_debugfs()
252 debugfs_remove(ep->debugfs_state); in usba_ep_cleanup_debugfs()
253 debugfs_remove(ep->debugfs_dir); in usba_ep_cleanup_debugfs()
254 ep->debugfs_dma_status = NULL; in usba_ep_cleanup_debugfs()
255 ep->debugfs_dir = NULL; in usba_ep_cleanup_debugfs()
301 struct usba_ep *ep) in usba_ep_init_debugfs() argument
306 static inline void usba_ep_cleanup_debugfs(struct usba_ep *ep) in usba_ep_cleanup_debugfs() argument
359 static void next_fifo_transaction(struct usba_ep *ep, struct usba_request *req) in next_fifo_transaction() argument
365 if (transaction_len > ep->ep.maxpacket) { in next_fifo_transaction()
366 transaction_len = ep->ep.maxpacket; in next_fifo_transaction()
368 } else if (transaction_len == ep->ep.maxpacket && req->req.zero) in next_fifo_transaction()
372 ep->ep.name, req, transaction_len, in next_fifo_transaction()
375 memcpy_toio(ep->fifo, req->req.buf + req->req.actual, transaction_len); in next_fifo_transaction()
376 usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY); in next_fifo_transaction()
380 static void submit_request(struct usba_ep *ep, struct usba_request *req) in submit_request() argument
383 ep->ep.name, req, req->req.length); in submit_request()
390 usba_ep_writel(ep, CTL_ENB, USBA_TX_PK_RDY); in submit_request()
395 usba_ep_writel(ep, CTL_ENB, USBA_SHORT_PACKET); in submit_request()
397 usba_ep_writel(ep, CTL_DIS, USBA_SHORT_PACKET); in submit_request()
399 usba_dma_writel(ep, ADDRESS, req->req.dma); in submit_request()
400 usba_dma_writel(ep, CONTROL, req->ctrl); in submit_request()
402 next_fifo_transaction(ep, req); in submit_request()
404 usba_ep_writel(ep, CTL_DIS, USBA_TX_PK_RDY); in submit_request()
405 usba_ep_writel(ep, CTL_ENB, USBA_TX_COMPLETE); in submit_request()
407 usba_ep_writel(ep, CTL_DIS, USBA_TX_COMPLETE); in submit_request()
408 usba_ep_writel(ep, CTL_ENB, USBA_TX_PK_RDY); in submit_request()
413 static void submit_next_request(struct usba_ep *ep) in submit_next_request() argument
417 if (list_empty(&ep->queue)) { in submit_next_request()
418 usba_ep_writel(ep, CTL_DIS, USBA_TX_PK_RDY | USBA_RX_BK_RDY); in submit_next_request()
422 req = list_entry(ep->queue.next, struct usba_request, queue); in submit_next_request()
424 submit_request(ep, req); in submit_next_request()
427 static void send_status(struct usba_udc *udc, struct usba_ep *ep) in send_status() argument
429 ep->state = STATUS_STAGE_IN; in send_status()
430 usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY); in send_status()
431 usba_ep_writel(ep, CTL_ENB, USBA_TX_COMPLETE); in send_status()
434 static void receive_data(struct usba_ep *ep) in receive_data() argument
436 struct usba_udc *udc = ep->udc; in receive_data()
442 status = usba_ep_readl(ep, STA); in receive_data()
448 if (list_empty(&ep->queue)) { in receive_data()
449 usba_ep_writel(ep, CTL_DIS, USBA_RX_BK_RDY); in receive_data()
452 req = list_entry(ep->queue.next, in receive_data()
465 ep->fifo, bytecount); in receive_data()
468 usba_ep_writel(ep, CLR_STA, USBA_RX_BK_RDY); in receive_data()
471 DBG(DBG_QUEUE, "%s: request done\n", ep->ep.name); in receive_data()
474 usba_ep_writel(ep, CTL_DIS, USBA_RX_BK_RDY); in receive_data()
476 usb_gadget_giveback_request(&ep->ep, &req->req); in receive_data()
480 status = usba_ep_readl(ep, STA); in receive_data()
483 if (is_complete && ep_is_control(ep)) { in receive_data()
484 send_status(udc, ep); in receive_data()
491 request_complete(struct usba_ep *ep, struct usba_request *req, int status) in request_complete() argument
493 struct usba_udc *udc = ep->udc; in request_complete()
501 usb_gadget_unmap_request(&udc->gadget, &req->req, ep->is_in); in request_complete()
505 ep->ep.name, req, req->req.status, req->req.actual); in request_complete()
508 usb_gadget_giveback_request(&ep->ep, &req->req); in request_complete()
513 request_complete_list(struct usba_ep *ep, struct list_head *list, int status) in request_complete_list() argument
519 request_complete(ep, req, status); in request_complete_list()
526 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_enable() local
527 struct usba_udc *udc = ep->udc; in usba_ep_enable()
531 DBG(DBG_GADGET, "%s: ep_enable: desc=%p\n", ep->ep.name, desc); in usba_ep_enable()
535 if (((desc->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK) != ep->index) in usba_ep_enable()
536 || ep->index == 0 in usba_ep_enable()
539 || maxpacket > ep->fifo_size) { in usba_ep_enable()
544 ep->is_isoc = 0; in usba_ep_enable()
545 ep->is_in = 0; in usba_ep_enable()
554 ep->ep.name, ept_cfg, maxpacket); in usba_ep_enable()
557 ep->is_in = 1; in usba_ep_enable()
567 if (!ep->can_isoc) { in usba_ep_enable()
569 ep->ep.name); in usba_ep_enable()
581 ep->is_isoc = 1; in usba_ep_enable()
587 if (nr_trans > 1 && ep->nr_banks == 3) in usba_ep_enable()
603 spin_lock_irqsave(&ep->udc->lock, flags); in usba_ep_enable()
605 ep->ep.desc = desc; in usba_ep_enable()
606 ep->ep.maxpacket = maxpacket; in usba_ep_enable()
608 usba_ep_writel(ep, CFG, ept_cfg); in usba_ep_enable()
609 usba_ep_writel(ep, CTL_ENB, USBA_EPT_ENABLE); in usba_ep_enable()
611 if (ep->can_dma) { in usba_ep_enable()
615 USBA_BF(EPT_INT, 1 << ep->index) | in usba_ep_enable()
616 USBA_BF(DMA_INT, 1 << ep->index)); in usba_ep_enable()
618 usba_ep_writel(ep, CTL_ENB, ctrl); in usba_ep_enable()
621 USBA_BF(EPT_INT, 1 << ep->index)); in usba_ep_enable()
626 DBG(DBG_HW, "EPT_CFG%d after init: %#08lx\n", ep->index, in usba_ep_enable()
627 (unsigned long)usba_ep_readl(ep, CFG)); in usba_ep_enable()
636 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_disable() local
637 struct usba_udc *udc = ep->udc; in usba_ep_disable()
641 DBG(DBG_GADGET, "ep_disable: %s\n", ep->ep.name); in usba_ep_disable()
645 if (!ep->ep.desc) { in usba_ep_disable()
653 ep->ep.name); in usba_ep_disable()
656 ep->ep.desc = NULL; in usba_ep_disable()
658 list_splice_init(&ep->queue, &req_list); in usba_ep_disable()
659 if (ep->can_dma) { in usba_ep_disable()
660 usba_dma_writel(ep, CONTROL, 0); in usba_ep_disable()
661 usba_dma_writel(ep, ADDRESS, 0); in usba_ep_disable()
662 usba_dma_readl(ep, STATUS); in usba_ep_disable()
664 usba_ep_writel(ep, CTL_DIS, USBA_EPT_ENABLE); in usba_ep_disable()
666 ~USBA_BF(EPT_INT, 1 << ep->index)); in usba_ep_disable()
668 request_complete_list(ep, &req_list, -ESHUTDOWN); in usba_ep_disable()
701 static int queue_dma(struct usba_udc *udc, struct usba_ep *ep, in queue_dma() argument
708 ep->ep.name, req->req.length, req->req.dma, in queue_dma()
719 ret = usb_gadget_map_request(&udc->gadget, &req->req, ep->is_in); in queue_dma()
728 if (!ep->is_in) in queue_dma()
738 if (ep->ep.desc) { in queue_dma()
739 if (list_empty(&ep->queue)) in queue_dma()
740 submit_request(ep, req); in queue_dma()
742 list_add_tail(&req->queue, &ep->queue); in queue_dma()
754 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_queue() local
755 struct usba_udc *udc = ep->udc; in usba_ep_queue()
760 ep->ep.name, req, _req->length); in usba_ep_queue()
763 !ep->ep.desc) in usba_ep_queue()
773 if (ep->can_dma) in usba_ep_queue()
774 return queue_dma(udc, ep, req, gfp_flags); in usba_ep_queue()
779 if (ep->ep.desc) { in usba_ep_queue()
780 list_add_tail(&req->queue, &ep->queue); in usba_ep_queue()
782 if ((!ep_is_control(ep) && ep->is_in) || in usba_ep_queue()
783 (ep_is_control(ep) in usba_ep_queue()
784 && (ep->state == DATA_STAGE_IN in usba_ep_queue()
785 || ep->state == STATUS_STAGE_IN))) in usba_ep_queue()
786 usba_ep_writel(ep, CTL_ENB, USBA_TX_PK_RDY); in usba_ep_queue()
788 usba_ep_writel(ep, CTL_ENB, USBA_RX_BK_RDY); in usba_ep_queue()
797 usba_update_req(struct usba_ep *ep, struct usba_request *req, u32 status) in usba_update_req() argument
802 static int stop_dma(struct usba_ep *ep, u32 *pstatus) in stop_dma() argument
811 usba_dma_writel(ep, CONTROL, 0); in stop_dma()
815 status = usba_dma_readl(ep, STATUS); in stop_dma()
825 dev_err(&ep->udc->pdev->dev, in stop_dma()
827 ep->ep.name); in stop_dma()
836 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_dequeue() local
837 struct usba_udc *udc = ep->udc; in usba_ep_dequeue()
843 ep->ep.name, req); in usba_ep_dequeue()
847 list_for_each_entry(req, &ep->queue, queue) { in usba_ep_dequeue()
862 if (ep->queue.next == &req->queue) { in usba_ep_dequeue()
863 status = usba_dma_readl(ep, STATUS); in usba_ep_dequeue()
865 stop_dma(ep, &status); in usba_ep_dequeue()
868 ep->last_dma_status = status; in usba_ep_dequeue()
871 usba_writel(udc, EPT_RST, 1 << ep->index); in usba_ep_dequeue()
873 usba_update_req(ep, req, status); in usba_ep_dequeue()
883 request_complete(ep, req, -ECONNRESET); in usba_ep_dequeue()
886 submit_next_request(ep); in usba_ep_dequeue()
894 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_set_halt() local
895 struct usba_udc *udc = ep->udc; in usba_ep_set_halt()
899 DBG(DBG_GADGET, "endpoint %s: %s HALT\n", ep->ep.name, in usba_ep_set_halt()
902 if (!ep->ep.desc) { in usba_ep_set_halt()
904 ep->ep.name); in usba_ep_set_halt()
907 if (ep->is_isoc) { in usba_ep_set_halt()
909 ep->ep.name); in usba_ep_set_halt()
919 if (!list_empty(&ep->queue) in usba_ep_set_halt()
920 || ((value && ep->is_in && (usba_ep_readl(ep, STA) in usba_ep_set_halt()
925 usba_ep_writel(ep, SET_STA, USBA_FORCE_STALL); in usba_ep_set_halt()
927 usba_ep_writel(ep, CLR_STA, in usba_ep_set_halt()
929 usba_ep_readl(ep, STA); in usba_ep_set_halt()
939 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_fifo_status() local
941 return USBA_BFEXT(BYTE_COUNT, usba_ep_readl(ep, STA)); in usba_ep_fifo_status()
946 struct usba_ep *ep = to_usba_ep(_ep); in usba_ep_fifo_flush() local
947 struct usba_udc *udc = ep->udc; in usba_ep_fifo_flush()
949 usba_writel(udc, EPT_RST, 1 << ep->index); in usba_ep_fifo_flush()
1039 struct usba_ep *ep; in reset_all_endpoints() local
1044 ep = to_usba_ep(udc->gadget.ep0); in reset_all_endpoints()
1045 list_for_each_entry_safe(req, tmp_req, &ep->queue, queue) { in reset_all_endpoints()
1047 request_complete(ep, req, -ECONNRESET); in reset_all_endpoints()
1056 list_for_each_entry(ep, &udc->gadget.ep_list, ep.ep_list) { in reset_all_endpoints()
1057 if (ep->ep.desc) { in reset_all_endpoints()
1059 usba_ep_disable(&ep->ep); in reset_all_endpoints()
1067 struct usba_ep *ep; in get_ep_by_addr() local
1072 list_for_each_entry (ep, &udc->gadget.ep_list, ep.ep_list) { in get_ep_by_addr()
1075 if (!ep->ep.desc) in get_ep_by_addr()
1077 bEndpointAddress = ep->ep.desc->bEndpointAddress; in get_ep_by_addr()
1082 return ep; in get_ep_by_addr()
1089 static inline void set_protocol_stall(struct usba_udc *udc, struct usba_ep *ep) in set_protocol_stall() argument
1091 usba_ep_writel(ep, SET_STA, USBA_FORCE_STALL); in set_protocol_stall()
1092 ep->state = WAIT_FOR_SETUP; in set_protocol_stall()
1095 static inline int is_stalled(struct usba_udc *udc, struct usba_ep *ep) in is_stalled() argument
1097 if (usba_ep_readl(ep, STA) & USBA_FORCE_STALL) in is_stalled()
1129 struct usba_ep *ep; in do_test_mode() local
1154 ep = &udc->usba_ep[0]; in do_test_mode()
1157 usba_ep_writel(ep, CFG, in do_test_mode()
1162 if (!(usba_ep_readl(ep, CFG) & USBA_EPT_MAPPED)) { in do_test_mode()
1163 set_protocol_stall(udc, ep); in do_test_mode()
1166 usba_ep_writel(ep, CTL_ENB, USBA_EPT_ENABLE); in do_test_mode()
1172 ep = &udc->usba_ep[0]; in do_test_mode()
1173 usba_ep_writel(ep, CFG, in do_test_mode()
1178 if (!(usba_ep_readl(ep, CFG) & USBA_EPT_MAPPED)) { in do_test_mode()
1179 set_protocol_stall(udc, ep); in do_test_mode()
1182 usba_ep_writel(ep, CTL_ENB, USBA_EPT_ENABLE); in do_test_mode()
1184 memcpy_toio(ep->fifo, test_packet_buffer, in do_test_mode()
1186 usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY); in do_test_mode()
1220 static int handle_ep0_setup(struct usba_udc *udc, struct usba_ep *ep, in handle_ep0_setup() argument
1251 ep->state = DATA_STAGE_IN; in handle_ep0_setup()
1252 usba_io_writew(status, ep->fifo); in handle_ep0_setup()
1253 usba_ep_writel(ep, SET_STA, USBA_TX_PK_RDY); in handle_ep0_setup()
1283 send_status(udc, ep); in handle_ep0_setup()
1290 send_status(udc, ep); in handle_ep0_setup()
1291 ep->state = STATUS_STAGE_TEST; in handle_ep0_setup()
1314 send_status(udc, ep); in handle_ep0_setup()
1323 send_status(udc, ep); in handle_ep0_setup()
1324 ep->state = STATUS_STAGE_ADDR; in handle_ep0_setup()
1339 ep->ep.name, crq->bRequestType, crq->bRequest, in handle_ep0_setup()
1342 set_protocol_stall(udc, ep); in handle_ep0_setup()
1346 static void usba_control_irq(struct usba_udc *udc, struct usba_ep *ep) in usba_control_irq() argument
1353 epstatus = usba_ep_readl(ep, STA); in usba_control_irq()
1354 epctrl = usba_ep_readl(ep, CTL); in usba_control_irq()
1357 ep->ep.name, ep->state, epstatus, epctrl); in usba_control_irq()
1360 if (!list_empty(&ep->queue)) in usba_control_irq()
1361 req = list_entry(ep->queue.next, in usba_control_irq()
1366 next_fifo_transaction(ep, req); in usba_control_irq()
1368 submit_request(ep, req); in usba_control_irq()
1371 usba_ep_writel(ep, CTL_DIS, USBA_TX_PK_RDY); in usba_control_irq()
1372 usba_ep_writel(ep, CTL_ENB, USBA_TX_COMPLETE); in usba_control_irq()
1377 usba_ep_writel(ep, CLR_STA, USBA_TX_COMPLETE); in usba_control_irq()
1379 switch (ep->state) { in usba_control_irq()
1381 usba_ep_writel(ep, CTL_ENB, USBA_RX_BK_RDY); in usba_control_irq()
1382 usba_ep_writel(ep, CTL_DIS, USBA_TX_COMPLETE); in usba_control_irq()
1383 ep->state = STATUS_STAGE_OUT; in usba_control_irq()
1389 usba_ep_writel(ep, CTL_DIS, USBA_TX_COMPLETE); in usba_control_irq()
1390 ep->state = WAIT_FOR_SETUP; in usba_control_irq()
1395 request_complete(ep, req, 0); in usba_control_irq()
1396 submit_next_request(ep); in usba_control_irq()
1398 usba_ep_writel(ep, CTL_DIS, USBA_TX_COMPLETE); in usba_control_irq()
1399 ep->state = WAIT_FOR_SETUP; in usba_control_irq()
1402 usba_ep_writel(ep, CTL_DIS, USBA_TX_COMPLETE); in usba_control_irq()
1403 ep->state = WAIT_FOR_SETUP; in usba_control_irq()
1405 set_protocol_stall(udc, ep); in usba_control_irq()
1410 ep->ep.name, ep->state); in usba_control_irq()
1411 set_protocol_stall(udc, ep); in usba_control_irq()
1418 switch (ep->state) { in usba_control_irq()
1420 usba_ep_writel(ep, CLR_STA, USBA_RX_BK_RDY); in usba_control_irq()
1421 usba_ep_writel(ep, CTL_DIS, USBA_RX_BK_RDY); in usba_control_irq()
1425 request_complete(ep, req, 0); in usba_control_irq()
1427 ep->state = WAIT_FOR_SETUP; in usba_control_irq()
1431 receive_data(ep); in usba_control_irq()
1435 usba_ep_writel(ep, CLR_STA, USBA_RX_BK_RDY); in usba_control_irq()
1436 usba_ep_writel(ep, CTL_DIS, USBA_RX_BK_RDY); in usba_control_irq()
1439 ep->ep.name, ep->state); in usba_control_irq()
1440 set_protocol_stall(udc, ep); in usba_control_irq()
1454 if (ep->state != WAIT_FOR_SETUP) { in usba_control_irq()
1467 if (ep->state == STATUS_STAGE_OUT in usba_control_irq()
1468 || ep->state == STATUS_STAGE_IN) { in usba_control_irq()
1469 usba_ep_writel(ep, CTL_DIS, USBA_RX_BK_RDY); in usba_control_irq()
1475 request_complete(ep, req, status); in usba_control_irq()
1479 pkt_len = USBA_BFEXT(BYTE_COUNT, usba_ep_readl(ep, STA)); in usba_control_irq()
1484 set_protocol_stall(udc, ep); in usba_control_irq()
1488 DBG(DBG_FIFO, "Copying ctrl request from 0x%p:\n", ep->fifo); in usba_control_irq()
1489 memcpy_fromio(crq.data, ep->fifo, sizeof(crq)); in usba_control_irq()
1493 usba_ep_writel(ep, CLR_STA, USBA_RX_SETUP); in usba_control_irq()
1506 ep->state = DATA_STAGE_IN; in usba_control_irq()
1509 ep->state = DATA_STAGE_OUT; in usba_control_irq()
1511 ep->state = STATUS_STAGE_IN; in usba_control_irq()
1515 if (ep->index == 0) in usba_control_irq()
1516 ret = handle_ep0_setup(udc, ep, &crq.crq); in usba_control_irq()
1525 le16_to_cpu(crq.crq.wLength), ep->state, ret); in usba_control_irq()
1529 set_protocol_stall(udc, ep); in usba_control_irq()
1534 static void usba_ep_irq(struct usba_udc *udc, struct usba_ep *ep) in usba_ep_irq() argument
1540 epstatus = usba_ep_readl(ep, STA); in usba_ep_irq()
1541 epctrl = usba_ep_readl(ep, CTL); in usba_ep_irq()
1543 DBG(DBG_INT, "%s: interrupt, status: 0x%08x\n", ep->ep.name, epstatus); in usba_ep_irq()
1546 DBG(DBG_BUS, "%s: TX PK ready\n", ep->ep.name); in usba_ep_irq()
1548 if (list_empty(&ep->queue)) { in usba_ep_irq()
1550 usba_ep_writel(ep, CTL_DIS, USBA_TX_PK_RDY); in usba_ep_irq()
1554 req = list_entry(ep->queue.next, struct usba_request, queue); in usba_ep_irq()
1558 usba_ep_writel(ep, SET_STA, in usba_ep_irq()
1560 usba_ep_writel(ep, CTL_DIS, in usba_ep_irq()
1563 submit_next_request(ep); in usba_ep_irq()
1564 request_complete(ep, req, 0); in usba_ep_irq()
1567 next_fifo_transaction(ep, req); in usba_ep_irq()
1569 submit_request(ep, req); in usba_ep_irq()
1573 submit_next_request(ep); in usba_ep_irq()
1574 request_complete(ep, req, 0); in usba_ep_irq()
1578 epstatus = usba_ep_readl(ep, STA); in usba_ep_irq()
1579 epctrl = usba_ep_readl(ep, CTL); in usba_ep_irq()
1582 DBG(DBG_BUS, "%s: RX data ready\n", ep->ep.name); in usba_ep_irq()
1583 receive_data(ep); in usba_ep_irq()
1587 static void usba_dma_irq(struct usba_udc *udc, struct usba_ep *ep) in usba_dma_irq() argument
1592 status = usba_dma_readl(ep, STATUS); in usba_dma_irq()
1593 control = usba_dma_readl(ep, CONTROL); in usba_dma_irq()
1595 ep->last_dma_status = status; in usba_dma_irq()
1613 if (list_empty(&ep->queue)) in usba_dma_irq()
1618 req = list_entry(ep->queue.next, struct usba_request, queue); in usba_dma_irq()
1619 usba_update_req(ep, req, status); in usba_dma_irq()
1622 submit_next_request(ep); in usba_dma_irq()
1623 request_complete(ep, req, 0); in usba_dma_irq()
1717 ep0->ep.desc = &usba_ep0_desc; in usba_udc_irq()
1935 struct usba_ep *eps, *ep; in atmel_udc_of_init() local
1958 udc->gadget.ep0 = &eps[0].ep; in atmel_udc_of_init()
1960 INIT_LIST_HEAD(&eps[0].ep.ep_list); in atmel_udc_of_init()
1965 ep = &eps[i]; in atmel_udc_of_init()
1972 ep->index = val; in atmel_udc_of_init()
1979 ep->fifo_size = val; in atmel_udc_of_init()
1986 ep->nr_banks = val; in atmel_udc_of_init()
1988 ep->can_dma = of_property_read_bool(pp, "atmel,can-dma"); in atmel_udc_of_init()
1989 ep->can_isoc = of_property_read_bool(pp, "atmel,can-isoc"); in atmel_udc_of_init()
1992 ep->ep.name = name; in atmel_udc_of_init()
1994 ep->ep_regs = udc->regs + USBA_EPT_BASE(i); in atmel_udc_of_init()
1995 ep->dma_regs = udc->regs + USBA_DMA_BASE(i); in atmel_udc_of_init()
1996 ep->fifo = udc->fifo + USBA_FIFO_BASE(i); in atmel_udc_of_init()
1997 ep->ep.ops = &usba_ep_ops; in atmel_udc_of_init()
1998 usb_ep_set_maxpacket_limit(&ep->ep, ep->fifo_size); in atmel_udc_of_init()
1999 ep->udc = udc; in atmel_udc_of_init()
2000 INIT_LIST_HEAD(&ep->queue); in atmel_udc_of_init()
2003 list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); in atmel_udc_of_init()
2041 udc->gadget.ep0 = &eps[0].ep; in usba_udc_pdata()
2047 INIT_LIST_HEAD(&eps[0].ep.ep_list); in usba_udc_pdata()
2050 struct usba_ep *ep = &eps[i]; in usba_udc_pdata() local
2052 ep->ep_regs = udc->regs + USBA_EPT_BASE(i); in usba_udc_pdata()
2053 ep->dma_regs = udc->regs + USBA_DMA_BASE(i); in usba_udc_pdata()
2054 ep->fifo = udc->fifo + USBA_FIFO_BASE(i); in usba_udc_pdata()
2055 ep->ep.ops = &usba_ep_ops; in usba_udc_pdata()
2056 ep->ep.name = pdata->ep[i].name; in usba_udc_pdata()
2057 ep->fifo_size = pdata->ep[i].fifo_size; in usba_udc_pdata()
2058 usb_ep_set_maxpacket_limit(&ep->ep, ep->fifo_size); in usba_udc_pdata()
2059 ep->udc = udc; in usba_udc_pdata()
2060 INIT_LIST_HEAD(&ep->queue); in usba_udc_pdata()
2061 ep->nr_banks = pdata->ep[i].nr_banks; in usba_udc_pdata()
2062 ep->index = pdata->ep[i].index; in usba_udc_pdata()
2063 ep->can_dma = pdata->ep[i].can_dma; in usba_udc_pdata()
2064 ep->can_isoc = pdata->ep[i].can_isoc; in usba_udc_pdata()
2067 list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); in usba_udc_pdata()