priv_ep 110 drivers/usb/cdns3/debug.h static inline char *cdns3_dbg_ring(struct cdns3_endpoint *priv_ep, priv_ep 113 drivers/usb/cdns3/debug.h dma_addr_t addr = priv_ep->trb_pool_dma; priv_ep 119 drivers/usb/cdns3/debug.h trb_per_sector = GET_TRBS_PER_SEGMENT(priv_ep->type); priv_ep 121 drivers/usb/cdns3/debug.h trb = &priv_ep->trb_pool[priv_ep->dequeue]; priv_ep 122 drivers/usb/cdns3/debug.h ret += sprintf(str + ret, "\n\t\tRing contents for %s:", priv_ep->name); priv_ep 126 drivers/usb/cdns3/debug.h priv_ep->dequeue, trb, priv_ep 127 drivers/usb/cdns3/debug.h (unsigned long long)cdns3_trb_virt_to_dma(priv_ep, trb)); priv_ep 129 drivers/usb/cdns3/debug.h trb = &priv_ep->trb_pool[priv_ep->enqueue]; priv_ep 132 drivers/usb/cdns3/debug.h priv_ep->enqueue, trb, priv_ep 133 drivers/usb/cdns3/debug.h (unsigned long long)cdns3_trb_virt_to_dma(priv_ep, trb)); priv_ep 137 drivers/usb/cdns3/debug.h priv_ep->free_trbs, priv_ep->ccs, priv_ep->pcs); priv_ep 38 drivers/usb/cdns3/ep0.c struct cdns3_endpoint *priv_ep = priv_dev->eps[0]; priv_ep 40 drivers/usb/cdns3/ep0.c priv_ep->trb_pool[0].buffer = TRB_BUFFER(dma_addr); priv_ep 41 drivers/usb/cdns3/ep0.c priv_ep->trb_pool[0].length = TRB_LEN(length); priv_ep 44 drivers/usb/cdns3/ep0.c priv_ep->trb_pool[0].control = TRB_CYCLE | TRB_TYPE(TRB_NORMAL); priv_ep 45 drivers/usb/cdns3/ep0.c priv_ep->trb_pool[1].buffer = TRB_BUFFER(dma_addr); priv_ep 46 drivers/usb/cdns3/ep0.c priv_ep->trb_pool[1].length = TRB_LEN(0); priv_ep 47 drivers/usb/cdns3/ep0.c priv_ep->trb_pool[1].control = TRB_CYCLE | TRB_IOC | priv_ep 50 drivers/usb/cdns3/ep0.c priv_ep->trb_pool[0].control = TRB_CYCLE | TRB_IOC | priv_ep 52 drivers/usb/cdns3/ep0.c priv_ep->trb_pool[1].control = 0; priv_ep 55 drivers/usb/cdns3/ep0.c trace_cdns3_prepare_trb(priv_ep, priv_ep->trb_pool); priv_ep 60 drivers/usb/cdns3/ep0.c writel(EP_TRADDR_TRADDR(priv_ep->trb_pool_dma), ®s->ep_traddr); priv_ep 106 drivers/usb/cdns3/ep0.c struct cdns3_endpoint *priv_ep = priv_dev->eps[0]; priv_ep 109 drivers/usb/cdns3/ep0.c request = cdns3_next_request(&priv_ep->pending_req_list); priv_ep 114 drivers/usb/cdns3/ep0.c trace_cdns3_halt(priv_ep, send_stall, 0); priv_ep 141 drivers/usb/cdns3/ep0.c struct cdns3_endpoint *priv_ep; priv_ep 150 drivers/usb/cdns3/ep0.c priv_ep = priv_dev->eps[i]; priv_ep 151 drivers/usb/cdns3/ep0.c if (!priv_ep) priv_ep 154 drivers/usb/cdns3/ep0.c if (priv_ep->flags & EP_CLAIMED) priv_ep 155 drivers/usb/cdns3/ep0.c cdns3_ep_config(priv_ep); priv_ep 237 drivers/usb/cdns3/ep0.c struct cdns3_endpoint *priv_ep; priv_ep 268 drivers/usb/cdns3/ep0.c priv_ep = priv_dev->eps[index]; priv_ep 273 drivers/usb/cdns3/ep0.c (priv_ep->flags & EP_STALL_PENDING)) priv_ep 380 drivers/usb/cdns3/ep0.c struct cdns3_endpoint *priv_ep; priv_ep 391 drivers/usb/cdns3/ep0.c priv_ep = priv_dev->eps[index]; priv_ep 396 drivers/usb/cdns3/ep0.c __cdns3_gadget_ep_set_halt(priv_ep); priv_ep 397 drivers/usb/cdns3/ep0.c else if (!(priv_ep->flags & EP_WEDGE)) priv_ep 398 drivers/usb/cdns3/ep0.c ret = __cdns3_gadget_ep_clear_halt(priv_ep); priv_ep 554 drivers/usb/cdns3/ep0.c struct cdns3_endpoint *priv_ep = priv_dev->eps[0]; priv_ep 561 drivers/usb/cdns3/ep0.c if (!list_empty(&priv_ep->pending_req_list)) { priv_ep 564 drivers/usb/cdns3/ep0.c request = cdns3_next_request(&priv_ep->pending_req_list); priv_ep 565 drivers/usb/cdns3/ep0.c priv_ep->dir = priv_dev->ep0_data_dir; priv_ep 566 drivers/usb/cdns3/ep0.c cdns3_gadget_giveback(priv_ep, to_cdns3_request(request), priv_ep 591 drivers/usb/cdns3/ep0.c struct cdns3_endpoint *priv_ep = priv_dev->eps[0]; priv_ep 593 drivers/usb/cdns3/ep0.c if (!list_empty(&priv_ep->pending_req_list)) { priv_ep 596 drivers/usb/cdns3/ep0.c trace_cdns3_complete_trb(priv_ep, priv_ep->trb_pool); priv_ep 597 drivers/usb/cdns3/ep0.c request = cdns3_next_request(&priv_ep->pending_req_list); priv_ep 600 drivers/usb/cdns3/ep0.c TRB_LEN(le32_to_cpu(priv_ep->trb_pool->length)); priv_ep 602 drivers/usb/cdns3/ep0.c priv_ep->dir = priv_dev->ep0_data_dir; priv_ep 603 drivers/usb/cdns3/ep0.c cdns3_gadget_giveback(priv_ep, to_cdns3_request(request), 0); priv_ep 707 drivers/usb/cdns3/ep0.c struct cdns3_endpoint *priv_ep = ep_to_cdns3_ep(ep); priv_ep 708 drivers/usb/cdns3/ep0.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 748 drivers/usb/cdns3/ep0.c if (!list_empty(&priv_ep->pending_req_list)) { priv_ep 764 drivers/usb/cdns3/ep0.c list_add_tail(&request->list, &priv_ep->pending_req_list); priv_ep 785 drivers/usb/cdns3/ep0.c struct cdns3_endpoint *priv_ep = ep_to_cdns3_ep(ep); priv_ep 786 drivers/usb/cdns3/ep0.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 790 drivers/usb/cdns3/ep0.c priv_ep->flags |= EP_WEDGE; priv_ep 815 drivers/usb/cdns3/ep0.c struct cdns3_endpoint *priv_ep; priv_ep 823 drivers/usb/cdns3/ep0.c priv_ep = priv_dev->eps[0]; priv_ep 825 drivers/usb/cdns3/ep0.c if (!list_empty(&priv_ep->pending_req_list)) { priv_ep 828 drivers/usb/cdns3/ep0.c request = cdns3_next_request(&priv_ep->pending_req_list); priv_ep 873 drivers/usb/cdns3/ep0.c struct cdns3_endpoint *priv_ep) priv_ep 875 drivers/usb/cdns3/ep0.c sprintf(priv_ep->name, "ep0"); priv_ep 878 drivers/usb/cdns3/ep0.c priv_ep->endpoint.ops = &cdns3_gadget_ep0_ops; priv_ep 879 drivers/usb/cdns3/ep0.c priv_ep->endpoint.maxburst = 1; priv_ep 880 drivers/usb/cdns3/ep0.c usb_ep_set_maxpacket_limit(&priv_ep->endpoint, priv_ep 882 drivers/usb/cdns3/ep0.c priv_ep->endpoint.address = 0; priv_ep 883 drivers/usb/cdns3/ep0.c priv_ep->endpoint.caps.type_control = 1; priv_ep 884 drivers/usb/cdns3/ep0.c priv_ep->endpoint.caps.dir_in = 1; priv_ep 885 drivers/usb/cdns3/ep0.c priv_ep->endpoint.caps.dir_out = 1; priv_ep 886 drivers/usb/cdns3/ep0.c priv_ep->endpoint.name = priv_ep->name; priv_ep 887 drivers/usb/cdns3/ep0.c priv_ep->endpoint.desc = &cdns3_gadget_ep0_desc; priv_ep 888 drivers/usb/cdns3/ep0.c priv_dev->gadget.ep0 = &priv_ep->endpoint; priv_ep 889 drivers/usb/cdns3/ep0.c priv_ep->type = USB_ENDPOINT_XFER_CONTROL; priv_ep 891 drivers/usb/cdns3/ep0.c return cdns3_allocate_trb_pool(priv_ep); priv_ep 97 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep) priv_ep 101 drivers/usb/cdns3/gadget.c dma_index = readl(&priv_dev->regs->ep_traddr) - priv_ep->trb_pool_dma; priv_ep 153 drivers/usb/cdns3/gadget.c dma_addr_t cdns3_trb_virt_to_dma(struct cdns3_endpoint *priv_ep, priv_ep 156 drivers/usb/cdns3/gadget.c u32 offset = (char *)trb - (char *)priv_ep->trb_pool; priv_ep 158 drivers/usb/cdns3/gadget.c return priv_ep->trb_pool_dma + offset; priv_ep 161 drivers/usb/cdns3/gadget.c int cdns3_ring_size(struct cdns3_endpoint *priv_ep) priv_ep 163 drivers/usb/cdns3/gadget.c switch (priv_ep->type) { priv_ep 179 drivers/usb/cdns3/gadget.c int cdns3_allocate_trb_pool(struct cdns3_endpoint *priv_ep) priv_ep 181 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 182 drivers/usb/cdns3/gadget.c int ring_size = cdns3_ring_size(priv_ep); priv_ep 185 drivers/usb/cdns3/gadget.c if (!priv_ep->trb_pool) { priv_ep 186 drivers/usb/cdns3/gadget.c priv_ep->trb_pool = dma_alloc_coherent(priv_dev->sysdev, priv_ep 188 drivers/usb/cdns3/gadget.c &priv_ep->trb_pool_dma, priv_ep 190 drivers/usb/cdns3/gadget.c if (!priv_ep->trb_pool) priv_ep 193 drivers/usb/cdns3/gadget.c memset(priv_ep->trb_pool, 0, ring_size); priv_ep 196 drivers/usb/cdns3/gadget.c if (!priv_ep->num) priv_ep 199 drivers/usb/cdns3/gadget.c priv_ep->num_trbs = ring_size / TRB_SIZE; priv_ep 201 drivers/usb/cdns3/gadget.c link_trb = (priv_ep->trb_pool + (priv_ep->num_trbs - 1)); priv_ep 202 drivers/usb/cdns3/gadget.c link_trb->buffer = TRB_BUFFER(priv_ep->trb_pool_dma); priv_ep 208 drivers/usb/cdns3/gadget.c static void cdns3_free_trb_pool(struct cdns3_endpoint *priv_ep) priv_ep 210 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 212 drivers/usb/cdns3/gadget.c if (priv_ep->trb_pool) { priv_ep 214 drivers/usb/cdns3/gadget.c cdns3_ring_size(priv_ep), priv_ep 215 drivers/usb/cdns3/gadget.c priv_ep->trb_pool, priv_ep->trb_pool_dma); priv_ep 216 drivers/usb/cdns3/gadget.c priv_ep->trb_pool = NULL; priv_ep 226 drivers/usb/cdns3/gadget.c static void cdns3_ep_stall_flush(struct cdns3_endpoint *priv_ep) priv_ep 228 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 231 drivers/usb/cdns3/gadget.c trace_cdns3_halt(priv_ep, 1, 1); priv_ep 239 drivers/usb/cdns3/gadget.c priv_ep->flags |= EP_STALLED; priv_ep 240 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~EP_STALL_PENDING; priv_ep 282 drivers/usb/cdns3/gadget.c static void cdns3_ep_inc_enq(struct cdns3_endpoint *priv_ep) priv_ep 284 drivers/usb/cdns3/gadget.c priv_ep->free_trbs--; priv_ep 285 drivers/usb/cdns3/gadget.c cdns3_ep_inc_trb(&priv_ep->enqueue, &priv_ep->pcs, priv_ep->num_trbs); priv_ep 292 drivers/usb/cdns3/gadget.c static void cdns3_ep_inc_deq(struct cdns3_endpoint *priv_ep) priv_ep 294 drivers/usb/cdns3/gadget.c priv_ep->free_trbs++; priv_ep 295 drivers/usb/cdns3/gadget.c cdns3_ep_inc_trb(&priv_ep->dequeue, &priv_ep->ccs, priv_ep->num_trbs); priv_ep 300 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep = priv_req->priv_ep; priv_ep 304 drivers/usb/cdns3/gadget.c cdns3_ep_inc_deq(priv_ep); priv_ep 305 drivers/usb/cdns3/gadget.c current_trb = priv_ep->dequeue; priv_ep 308 drivers/usb/cdns3/gadget.c cdns3_ep_inc_deq(priv_ep); priv_ep 355 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep) priv_ep 360 drivers/usb/cdns3/gadget.c while (!list_empty(&priv_ep->deferred_req_list)) { priv_ep 361 drivers/usb/cdns3/gadget.c request = cdns3_next_request(&priv_ep->deferred_req_list); priv_ep 363 drivers/usb/cdns3/gadget.c ret = cdns3_ep_run_transfer(priv_ep, request); priv_ep 369 drivers/usb/cdns3/gadget.c &priv_ep->pending_req_list); priv_ep 372 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~EP_RING_FULL; priv_ep 383 drivers/usb/cdns3/gadget.c if (!priv_ep->dir && priv_ep->type != USB_ENDPOINT_XFER_ISOC) { \ priv_ep 384 drivers/usb/cdns3/gadget.c priv_ep->flags |= EP_QUIRK_EXTRA_BUF_DET; \ priv_ep 394 drivers/usb/cdns3/gadget.c static void cdns3_wa2_descmiss_copy_data(struct cdns3_endpoint *priv_ep, priv_ep 400 drivers/usb/cdns3/gadget.c while (!list_empty(&priv_ep->wa2_descmiss_req_list)) { priv_ep 405 drivers/usb/cdns3/gadget.c cdns3_next_priv_request(&priv_ep->wa2_descmiss_req_list); priv_ep 430 drivers/usb/cdns3/gadget.c cdns3_gadget_ep_free_request(&priv_ep->endpoint, descmiss_req); priv_ep 431 drivers/usb/cdns3/gadget.c --priv_ep->wa2_counter; priv_ep 439 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep, priv_ep 442 drivers/usb/cdns3/gadget.c if (priv_ep->flags & EP_QUIRK_EXTRA_BUF_EN && priv_ep 446 drivers/usb/cdns3/gadget.c req = cdns3_next_request(&priv_ep->deferred_req_list); priv_ep 448 drivers/usb/cdns3/gadget.c priv_ep->descmis_req = NULL; priv_ep 453 drivers/usb/cdns3/gadget.c cdns3_wa2_descmiss_copy_data(priv_ep, req); priv_ep 454 drivers/usb/cdns3/gadget.c if (!(priv_ep->flags & EP_QUIRK_END_TRANSFER) && priv_ep 464 drivers/usb/cdns3/gadget.c cdns3_start_all_request(priv_dev, priv_ep); priv_ep 472 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep, priv_ep 482 drivers/usb/cdns3/gadget.c if (priv_ep->flags & EP_QUIRK_EXTRA_BUF_DET) { priv_ep 485 drivers/usb/cdns3/gadget.c cdns3_select_ep(priv_dev, priv_ep->num | priv_ep->dir); priv_ep 486 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~EP_QUIRK_EXTRA_BUF_DET; priv_ep 489 drivers/usb/cdns3/gadget.c trace_cdns3_wa2(priv_ep, "workaround disabled\n"); priv_ep 493 drivers/usb/cdns3/gadget.c if (priv_ep->flags & EP_QUIRK_EXTRA_BUF_EN) { priv_ep 494 drivers/usb/cdns3/gadget.c u8 pending_empty = list_empty(&priv_ep->pending_req_list); priv_ep 495 drivers/usb/cdns3/gadget.c u8 descmiss_empty = list_empty(&priv_ep->wa2_descmiss_req_list); priv_ep 504 drivers/usb/cdns3/gadget.c cdns3_wa2_descmiss_copy_data(priv_ep, priv_ep 507 drivers/usb/cdns3/gadget.c trace_cdns3_wa2(priv_ep, "get internal stored data"); priv_ep 510 drivers/usb/cdns3/gadget.c &priv_ep->pending_req_list); priv_ep 511 drivers/usb/cdns3/gadget.c cdns3_gadget_giveback(priv_ep, priv_req, priv_ep 527 drivers/usb/cdns3/gadget.c trace_cdns3_wa2(priv_ep, "wait for pending transfer\n"); priv_ep 533 drivers/usb/cdns3/gadget.c &priv_ep->wa2_descmiss_req_list); priv_ep 539 drivers/usb/cdns3/gadget.c static void cdns3_wa2_remove_old_request(struct cdns3_endpoint *priv_ep) priv_ep 543 drivers/usb/cdns3/gadget.c while (!list_empty(&priv_ep->wa2_descmiss_req_list)) { priv_ep 546 drivers/usb/cdns3/gadget.c priv_req = cdns3_next_priv_request(&priv_ep->wa2_descmiss_req_list); priv_ep 549 drivers/usb/cdns3/gadget.c trace_cdns3_wa2(priv_ep, "removes eldest request"); priv_ep 552 drivers/usb/cdns3/gadget.c cdns3_gadget_ep_free_request(&priv_ep->endpoint, priv_ep 555 drivers/usb/cdns3/gadget.c --priv_ep->wa2_counter; priv_ep 569 drivers/usb/cdns3/gadget.c static void cdns3_wa2_descmissing_packet(struct cdns3_endpoint *priv_ep) priv_ep 574 drivers/usb/cdns3/gadget.c if (priv_ep->flags & EP_QUIRK_EXTRA_BUF_DET) { priv_ep 575 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~EP_QUIRK_EXTRA_BUF_DET; priv_ep 576 drivers/usb/cdns3/gadget.c priv_ep->flags |= EP_QUIRK_EXTRA_BUF_EN; priv_ep 579 drivers/usb/cdns3/gadget.c trace_cdns3_wa2(priv_ep, "Description Missing detected\n"); priv_ep 581 drivers/usb/cdns3/gadget.c if (priv_ep->wa2_counter >= CDNS3_WA2_NUM_BUFFERS) priv_ep 582 drivers/usb/cdns3/gadget.c cdns3_wa2_remove_old_request(priv_ep); priv_ep 584 drivers/usb/cdns3/gadget.c request = cdns3_gadget_ep_alloc_request(&priv_ep->endpoint, priv_ep 598 drivers/usb/cdns3/gadget.c if (priv_ep->descmis_req) priv_ep 599 drivers/usb/cdns3/gadget.c priv_ep->descmis_req->flags |= REQUEST_INTERNAL_CH; priv_ep 603 drivers/usb/cdns3/gadget.c priv_ep->wa2_counter++; priv_ep 606 drivers/usb/cdns3/gadget.c cdns3_gadget_ep_free_request(&priv_ep->endpoint, request); priv_ep 611 drivers/usb/cdns3/gadget.c priv_ep->descmis_req = priv_req; priv_ep 613 drivers/usb/cdns3/gadget.c __cdns3_gadget_ep_queue(&priv_ep->endpoint, priv_ep 614 drivers/usb/cdns3/gadget.c &priv_ep->descmis_req->request, priv_ep 620 drivers/usb/cdns3/gadget.c dev_err(priv_ep->cdns3_dev->dev, priv_ep 634 drivers/usb/cdns3/gadget.c void cdns3_gadget_giveback(struct cdns3_endpoint *priv_ep, priv_ep 638 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 647 drivers/usb/cdns3/gadget.c priv_ep->dir); priv_ep 650 drivers/usb/cdns3/gadget.c priv_ep->dir == USB_DIR_OUT && !request->status) priv_ep 658 drivers/usb/cdns3/gadget.c request = cdns3_wa2_gadget_giveback(priv_dev, priv_ep, priv_ep 666 drivers/usb/cdns3/gadget.c usb_gadget_giveback_request(&priv_ep->endpoint, priv_ep 672 drivers/usb/cdns3/gadget.c cdns3_gadget_ep_free_request(&priv_ep->endpoint, request); priv_ep 675 drivers/usb/cdns3/gadget.c void cdns3_wa1_restore_cycle_bit(struct cdns3_endpoint *priv_ep) priv_ep 678 drivers/usb/cdns3/gadget.c if (priv_ep->wa1_set) { priv_ep 679 drivers/usb/cdns3/gadget.c trace_cdns3_wa1(priv_ep, "restore cycle bit"); priv_ep 681 drivers/usb/cdns3/gadget.c priv_ep->wa1_set = 0; priv_ep 682 drivers/usb/cdns3/gadget.c priv_ep->wa1_trb_index = 0xFFFF; priv_ep 683 drivers/usb/cdns3/gadget.c if (priv_ep->wa1_cycle_bit) { priv_ep 684 drivers/usb/cdns3/gadget.c priv_ep->wa1_trb->control = priv_ep 685 drivers/usb/cdns3/gadget.c priv_ep->wa1_trb->control | 0x1; priv_ep 687 drivers/usb/cdns3/gadget.c priv_ep->wa1_trb->control = priv_ep 688 drivers/usb/cdns3/gadget.c priv_ep->wa1_trb->control & ~0x1; priv_ep 724 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep = priv_req->priv_ep; priv_ep 725 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 764 drivers/usb/cdns3/gadget.c if (priv_ep->dir == USB_DIR_IN) { priv_ep 775 drivers/usb/cdns3/gadget.c static int cdns3_wa1_update_guard(struct cdns3_endpoint *priv_ep, priv_ep 778 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 780 drivers/usb/cdns3/gadget.c if (!priv_ep->wa1_set) { priv_ep 786 drivers/usb/cdns3/gadget.c priv_ep->wa1_cycle_bit = priv_ep->pcs ? TRB_CYCLE : 0; priv_ep 787 drivers/usb/cdns3/gadget.c priv_ep->wa1_set = 1; priv_ep 788 drivers/usb/cdns3/gadget.c priv_ep->wa1_trb = trb; priv_ep 789 drivers/usb/cdns3/gadget.c priv_ep->wa1_trb_index = priv_ep->enqueue; priv_ep 790 drivers/usb/cdns3/gadget.c trace_cdns3_wa1(priv_ep, "set guard"); priv_ep 798 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep) priv_ep 804 drivers/usb/cdns3/gadget.c dma_index = cdns3_get_dma_pos(priv_dev, priv_ep); priv_ep 806 drivers/usb/cdns3/gadget.c if (!doorbell || dma_index != priv_ep->wa1_trb_index) priv_ep 807 drivers/usb/cdns3/gadget.c cdns3_wa1_restore_cycle_bit(priv_ep); priv_ep 816 drivers/usb/cdns3/gadget.c int cdns3_ep_run_transfer(struct cdns3_endpoint *priv_ep, priv_ep 819 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 830 drivers/usb/cdns3/gadget.c if (priv_ep->type == USB_ENDPOINT_XFER_ISOC) priv_ep 831 drivers/usb/cdns3/gadget.c num_trb = priv_ep->interval; priv_ep 835 drivers/usb/cdns3/gadget.c if (num_trb > priv_ep->free_trbs) { priv_ep 836 drivers/usb/cdns3/gadget.c priv_ep->flags |= EP_RING_FULL; priv_ep 841 drivers/usb/cdns3/gadget.c address = priv_ep->endpoint.desc->bEndpointAddress; priv_ep 843 drivers/usb/cdns3/gadget.c priv_ep->flags |= EP_PENDING_REQUEST; priv_ep 851 drivers/usb/cdns3/gadget.c trb = priv_ep->trb_pool + priv_ep->enqueue; priv_ep 852 drivers/usb/cdns3/gadget.c priv_req->start_trb = priv_ep->enqueue; priv_ep 855 drivers/usb/cdns3/gadget.c cdns3_select_ep(priv_ep->cdns3_dev, address); priv_ep 858 drivers/usb/cdns3/gadget.c if ((priv_ep->enqueue + num_trb) >= (priv_ep->num_trbs - 1)) { priv_ep 864 drivers/usb/cdns3/gadget.c dma_index = cdns3_get_dma_pos(priv_dev, priv_ep); priv_ep 867 drivers/usb/cdns3/gadget.c if (doorbell && dma_index == priv_ep->num_trbs - 1) { priv_ep 868 drivers/usb/cdns3/gadget.c priv_ep->flags |= EP_DEFERRED_DRDY; priv_ep 873 drivers/usb/cdns3/gadget.c link_trb = priv_ep->trb_pool + (priv_ep->num_trbs - 1); priv_ep 882 drivers/usb/cdns3/gadget.c if (priv_ep->type == USB_ENDPOINT_XFER_ISOC || priv_ep 886 drivers/usb/cdns3/gadget.c link_trb->control = ((priv_ep->pcs) ? TRB_CYCLE : 0) | priv_ep 891 drivers/usb/cdns3/gadget.c togle_pcs = cdns3_wa1_update_guard(priv_ep, trb); priv_ep 894 drivers/usb/cdns3/gadget.c control = priv_ep->pcs ? 0 : TRB_CYCLE; priv_ep 912 drivers/usb/cdns3/gadget.c priv_ep->endpoint.maxpacket); priv_ep 914 drivers/usb/cdns3/gadget.c trb->length = TRB_BURST_LEN(priv_ep->trb_burst_size) | priv_ep 921 drivers/usb/cdns3/gadget.c pcs = priv_ep->pcs ? TRB_CYCLE : 0; priv_ep 930 drivers/usb/cdns3/gadget.c if (priv_ep->type == USB_ENDPOINT_XFER_ISOC && !priv_ep->dir) { priv_ep 945 drivers/usb/cdns3/gadget.c priv_req->end_trb = priv_ep->enqueue; priv_ep 946 drivers/usb/cdns3/gadget.c cdns3_ep_inc_enq(priv_ep); priv_ep 947 drivers/usb/cdns3/gadget.c trb = priv_ep->trb_pool + priv_ep->enqueue; priv_ep 967 drivers/usb/cdns3/gadget.c cdns3_wa1_tray_restore_cycle_bit(priv_dev, priv_ep); priv_ep 969 drivers/usb/cdns3/gadget.c trace_cdns3_prepare_trb(priv_ep, priv_req->trb); priv_ep 981 drivers/usb/cdns3/gadget.c if (priv_ep->flags & EP_UPDATE_EP_TRBADDR) { priv_ep 987 drivers/usb/cdns3/gadget.c if (priv_ep->type == USB_ENDPOINT_XFER_ISOC && !priv_ep->dir && priv_ep 988 drivers/usb/cdns3/gadget.c !(priv_ep->flags & EP_QUIRK_ISO_OUT_EN)) { priv_ep 989 drivers/usb/cdns3/gadget.c priv_ep->flags |= EP_QUIRK_ISO_OUT_EN; priv_ep 994 drivers/usb/cdns3/gadget.c writel(EP_TRADDR_TRADDR(priv_ep->trb_pool_dma + priv_ep 998 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~EP_UPDATE_EP_TRBADDR; priv_ep 1001 drivers/usb/cdns3/gadget.c if (!priv_ep->wa1_set && !(priv_ep->flags & EP_STALLED)) { priv_ep 1002 drivers/usb/cdns3/gadget.c trace_cdns3_ring(priv_ep); priv_ep 1006 drivers/usb/cdns3/gadget.c trace_cdns3_doorbell_epx(priv_ep->name, priv_ep 1018 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep; priv_ep 1039 drivers/usb/cdns3/gadget.c priv_ep = ep_to_cdns3_ep(ep); priv_ep 1040 drivers/usb/cdns3/gadget.c cdns3_start_all_request(priv_dev, priv_ep); priv_ep 1088 drivers/usb/cdns3/gadget.c static bool cdns3_request_handled(struct cdns3_endpoint *priv_ep, priv_ep 1091 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 1097 drivers/usb/cdns3/gadget.c current_index = cdns3_get_dma_pos(priv_dev, priv_ep); priv_ep 1100 drivers/usb/cdns3/gadget.c trb = &priv_ep->trb_pool[priv_req->start_trb]; priv_ep 1102 drivers/usb/cdns3/gadget.c if ((trb->control & TRB_CYCLE) != priv_ep->ccs) priv_ep 1105 drivers/usb/cdns3/gadget.c if (doorbell == 1 && current_index == priv_ep->dequeue) priv_ep 1109 drivers/usb/cdns3/gadget.c if (TRBS_PER_SEGMENT == 2 && priv_ep->type != USB_ENDPOINT_XFER_ISOC) { priv_ep 1114 drivers/usb/cdns3/gadget.c if (priv_ep->enqueue == priv_ep->dequeue && priv_ep 1115 drivers/usb/cdns3/gadget.c priv_ep->free_trbs == 0) { priv_ep 1117 drivers/usb/cdns3/gadget.c } else if (priv_ep->dequeue < current_index) { priv_ep 1118 drivers/usb/cdns3/gadget.c if ((current_index == (priv_ep->num_trbs - 1)) && priv_ep 1119 drivers/usb/cdns3/gadget.c !priv_ep->dequeue) priv_ep 1122 drivers/usb/cdns3/gadget.c if (priv_req->end_trb >= priv_ep->dequeue && priv_ep 1125 drivers/usb/cdns3/gadget.c } else if (priv_ep->dequeue > current_index) { priv_ep 1127 drivers/usb/cdns3/gadget.c priv_req->end_trb >= priv_ep->dequeue) priv_ep 1138 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep) priv_ep 1144 drivers/usb/cdns3/gadget.c while (!list_empty(&priv_ep->pending_req_list)) { priv_ep 1145 drivers/usb/cdns3/gadget.c request = cdns3_next_request(&priv_ep->pending_req_list); priv_ep 1148 drivers/usb/cdns3/gadget.c trb = priv_ep->trb_pool + priv_ep->dequeue; priv_ep 1152 drivers/usb/cdns3/gadget.c trace_cdns3_complete_trb(priv_ep, trb); priv_ep 1159 drivers/usb/cdns3/gadget.c cdns3_select_ep(priv_dev, priv_ep->endpoint.address); priv_ep 1161 drivers/usb/cdns3/gadget.c if (!cdns3_request_handled(priv_ep, priv_req)) priv_ep 1164 drivers/usb/cdns3/gadget.c trb = priv_ep->trb_pool + priv_ep->dequeue; priv_ep 1165 drivers/usb/cdns3/gadget.c trace_cdns3_complete_trb(priv_ep, trb); priv_ep 1174 drivers/usb/cdns3/gadget.c cdns3_gadget_giveback(priv_ep, priv_req, 0); priv_ep 1176 drivers/usb/cdns3/gadget.c if (priv_ep->type != USB_ENDPOINT_XFER_ISOC && priv_ep 1180 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~EP_PENDING_REQUEST; priv_ep 1183 drivers/usb/cdns3/gadget.c if (!(priv_ep->flags & EP_STALLED) && priv_ep 1184 drivers/usb/cdns3/gadget.c !(priv_ep->flags & EP_STALL_PENDING)) priv_ep 1185 drivers/usb/cdns3/gadget.c cdns3_start_all_request(priv_dev, priv_ep); priv_ep 1188 drivers/usb/cdns3/gadget.c void cdns3_rearm_transfer(struct cdns3_endpoint *priv_ep, u8 rearm) priv_ep 1190 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 1192 drivers/usb/cdns3/gadget.c cdns3_wa1_restore_cycle_bit(priv_ep); priv_ep 1195 drivers/usb/cdns3/gadget.c trace_cdns3_ring(priv_ep); priv_ep 1203 drivers/usb/cdns3/gadget.c trace_cdns3_doorbell_epx(priv_ep->name, priv_ep 1214 drivers/usb/cdns3/gadget.c static int cdns3_check_ep_interrupt_proceed(struct cdns3_endpoint *priv_ep) priv_ep 1216 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 1219 drivers/usb/cdns3/gadget.c cdns3_select_ep(priv_dev, priv_ep->endpoint.address); priv_ep 1221 drivers/usb/cdns3/gadget.c trace_cdns3_epx_irq(priv_dev, priv_ep); priv_ep 1227 drivers/usb/cdns3/gadget.c if (priv_ep->flags & EP_STALL_PENDING && priv_ep 1230 drivers/usb/cdns3/gadget.c cdns3_ep_stall_flush(priv_ep); priv_ep 1240 drivers/usb/cdns3/gadget.c if (priv_ep->type == USB_ENDPOINT_XFER_ISOC && priv_ep 1241 drivers/usb/cdns3/gadget.c !priv_ep->wa1_set) { priv_ep 1242 drivers/usb/cdns3/gadget.c if (!priv_ep->dir) { priv_ep 1247 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~EP_QUIRK_ISO_OUT_EN; priv_ep 1249 drivers/usb/cdns3/gadget.c cdns3_transfer_completed(priv_dev, priv_ep); priv_ep 1250 drivers/usb/cdns3/gadget.c } else if (!(priv_ep->flags & EP_STALLED) && priv_ep 1251 drivers/usb/cdns3/gadget.c !(priv_ep->flags & EP_STALL_PENDING)) { priv_ep 1252 drivers/usb/cdns3/gadget.c if (priv_ep->flags & EP_DEFERRED_DRDY) { priv_ep 1253 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~EP_DEFERRED_DRDY; priv_ep 1254 drivers/usb/cdns3/gadget.c cdns3_start_all_request(priv_dev, priv_ep); priv_ep 1256 drivers/usb/cdns3/gadget.c cdns3_rearm_transfer(priv_ep, priv_ep 1257 drivers/usb/cdns3/gadget.c priv_ep->wa1_set); priv_ep 1263 drivers/usb/cdns3/gadget.c if (priv_ep->flags & EP_QUIRK_EXTRA_BUF_EN) { priv_ep 1265 drivers/usb/cdns3/gadget.c priv_ep->flags |= EP_QUIRK_END_TRANSFER; priv_ep 1267 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~EP_QUIRK_END_TRANSFER; priv_ep 1270 drivers/usb/cdns3/gadget.c cdns3_transfer_completed(priv_dev, priv_ep); priv_ep 1280 drivers/usb/cdns3/gadget.c !(priv_ep->flags & EP_STALLED)) priv_ep 1281 drivers/usb/cdns3/gadget.c cdns3_wa2_descmissing_packet(priv_ep); priv_ep 1515 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep) priv_ep 1526 drivers/usb/cdns3/gadget.c if (priv_dev->dev_ver >= DEV_VER_V3 && priv_ep) { priv_ep 1529 drivers/usb/cdns3/gadget.c if (priv_ep->dir) priv_ep 1530 drivers/usb/cdns3/gadget.c mask = BIT(priv_ep->num + 16); priv_ep 1532 drivers/usb/cdns3/gadget.c mask = BIT(priv_ep->num); priv_ep 1534 drivers/usb/cdns3/gadget.c if (priv_ep->type != USB_ENDPOINT_XFER_ISOC) { priv_ep 1541 drivers/usb/cdns3/gadget.c if (priv_ep->type == USB_ENDPOINT_XFER_ISOC && !priv_ep->dir) priv_ep 1552 drivers/usb/cdns3/gadget.c void cdns3_ep_config(struct cdns3_endpoint *priv_ep) priv_ep 1554 drivers/usb/cdns3/gadget.c bool is_iso_ep = (priv_ep->type == USB_ENDPOINT_XFER_ISOC); priv_ep 1555 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 1556 drivers/usb/cdns3/gadget.c u32 bEndpointAddress = priv_ep->num | priv_ep->dir; priv_ep 1566 drivers/usb/cdns3/gadget.c cdns3_configure_dmult(priv_dev, priv_ep); priv_ep 1568 drivers/usb/cdns3/gadget.c switch (priv_ep->type) { priv_ep 1572 drivers/usb/cdns3/gadget.c if ((priv_dev->dev_ver == DEV_VER_V2 && !priv_ep->dir) || priv_ep 1579 drivers/usb/cdns3/gadget.c if ((priv_dev->dev_ver == DEV_VER_V2 && !priv_ep->dir) || priv_ep 1600 drivers/usb/cdns3/gadget.c if (priv_ep->type == USB_ENDPOINT_XFER_ISOC) { priv_ep 1605 drivers/usb/cdns3/gadget.c if (priv_ep->interval > 1) priv_ep 1617 drivers/usb/cdns3/gadget.c priv_ep->trb_burst_size = 128; priv_ep 1619 drivers/usb/cdns3/gadget.c priv_ep->trb_burst_size = 64; priv_ep 1621 drivers/usb/cdns3/gadget.c priv_ep->trb_burst_size = 16; priv_ep 1624 drivers/usb/cdns3/gadget.c !!priv_ep->dir); priv_ep 1639 drivers/usb/cdns3/gadget.c priv_ep->name, ep_cfg); priv_ep 1644 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep) priv_ep 1646 drivers/usb/cdns3/gadget.c return (priv_ep->endpoint.caps.dir_in && usb_endpoint_dir_in(desc)) || priv_ep 1647 drivers/usb/cdns3/gadget.c (priv_ep->endpoint.caps.dir_out && usb_endpoint_dir_out(desc)); priv_ep 1655 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep; priv_ep 1667 drivers/usb/cdns3/gadget.c priv_ep = ep_to_cdns3_ep(ep); priv_ep 1668 drivers/usb/cdns3/gadget.c if (cdns3_ep_dir_is_correct(desc, priv_ep)) { priv_ep 1669 drivers/usb/cdns3/gadget.c if (!(priv_ep->flags & EP_CLAIMED)) { priv_ep 1670 drivers/usb/cdns3/gadget.c priv_ep->num = num; priv_ep 1671 drivers/usb/cdns3/gadget.c return priv_ep; priv_ep 1701 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep; priv_ep 1704 drivers/usb/cdns3/gadget.c priv_ep = cdns3_find_available_ep(priv_dev, desc); priv_ep 1705 drivers/usb/cdns3/gadget.c if (IS_ERR(priv_ep)) { priv_ep 1710 drivers/usb/cdns3/gadget.c dev_dbg(priv_dev->dev, "match endpoint: %s\n", priv_ep->name); priv_ep 1713 drivers/usb/cdns3/gadget.c priv_ep->endpoint.desc = desc; priv_ep 1714 drivers/usb/cdns3/gadget.c priv_ep->dir = usb_endpoint_dir_in(desc) ? USB_DIR_IN : USB_DIR_OUT; priv_ep 1715 drivers/usb/cdns3/gadget.c priv_ep->type = usb_endpoint_type(desc); priv_ep 1716 drivers/usb/cdns3/gadget.c priv_ep->flags |= EP_CLAIMED; priv_ep 1717 drivers/usb/cdns3/gadget.c priv_ep->interval = desc->bInterval ? BIT(desc->bInterval - 1) : 0; priv_ep 1720 drivers/usb/cdns3/gadget.c return &priv_ep->endpoint; priv_ep 1733 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep = ep_to_cdns3_ep(ep); priv_ep 1740 drivers/usb/cdns3/gadget.c priv_req->priv_ep = priv_ep; priv_ep 1773 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep; priv_ep 1782 drivers/usb/cdns3/gadget.c priv_ep = ep_to_cdns3_ep(ep); priv_ep 1783 drivers/usb/cdns3/gadget.c priv_dev = priv_ep->cdns3_dev; priv_ep 1795 drivers/usb/cdns3/gadget.c if (dev_WARN_ONCE(priv_dev->dev, priv_ep->flags & EP_ENABLED, priv_ep 1796 drivers/usb/cdns3/gadget.c "%s is already enabled\n", priv_ep->name)) priv_ep 1801 drivers/usb/cdns3/gadget.c priv_ep->endpoint.desc = desc; priv_ep 1802 drivers/usb/cdns3/gadget.c priv_ep->type = usb_endpoint_type(desc); priv_ep 1803 drivers/usb/cdns3/gadget.c priv_ep->interval = desc->bInterval ? BIT(desc->bInterval - 1) : 0; priv_ep 1805 drivers/usb/cdns3/gadget.c if (priv_ep->interval > ISO_MAX_INTERVAL && priv_ep 1806 drivers/usb/cdns3/gadget.c priv_ep->type == USB_ENDPOINT_XFER_ISOC) { priv_ep 1814 drivers/usb/cdns3/gadget.c ret = cdns3_allocate_trb_pool(priv_ep); priv_ep 1819 drivers/usb/cdns3/gadget.c bEndpointAddress = priv_ep->num | priv_ep->dir; priv_ep 1822 drivers/usb/cdns3/gadget.c trace_cdns3_gadget_ep_enable(priv_ep); priv_ep 1831 drivers/usb/cdns3/gadget.c cdns3_free_trb_pool(priv_ep); priv_ep 1841 drivers/usb/cdns3/gadget.c cdns3_wa2_enable_detection(priv_dev, priv_ep, reg); priv_ep 1853 drivers/usb/cdns3/gadget.c if (priv_ep->type == USB_ENDPOINT_XFER_ISOC && !priv_ep->dir) priv_ep 1860 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~(EP_PENDING_REQUEST | EP_STALLED | EP_STALL_PENDING | priv_ep 1862 drivers/usb/cdns3/gadget.c priv_ep->flags |= EP_ENABLED | EP_UPDATE_EP_TRBADDR; priv_ep 1863 drivers/usb/cdns3/gadget.c priv_ep->wa1_set = 0; priv_ep 1864 drivers/usb/cdns3/gadget.c priv_ep->enqueue = 0; priv_ep 1865 drivers/usb/cdns3/gadget.c priv_ep->dequeue = 0; priv_ep 1867 drivers/usb/cdns3/gadget.c priv_ep->pcs = !!EP_STS_CCS(reg); priv_ep 1868 drivers/usb/cdns3/gadget.c priv_ep->ccs = !!EP_STS_CCS(reg); priv_ep 1870 drivers/usb/cdns3/gadget.c priv_ep->free_trbs = priv_ep->num_trbs - 1; priv_ep 1885 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep; priv_ep 1899 drivers/usb/cdns3/gadget.c priv_ep = ep_to_cdns3_ep(ep); priv_ep 1900 drivers/usb/cdns3/gadget.c priv_dev = priv_ep->cdns3_dev; priv_ep 1902 drivers/usb/cdns3/gadget.c if (dev_WARN_ONCE(priv_dev->dev, !(priv_ep->flags & EP_ENABLED), priv_ep 1903 drivers/usb/cdns3/gadget.c "%s is already disabled\n", priv_ep->name)) priv_ep 1908 drivers/usb/cdns3/gadget.c trace_cdns3_gadget_ep_disable(priv_ep); priv_ep 1930 drivers/usb/cdns3/gadget.c priv_ep->name); priv_ep 1932 drivers/usb/cdns3/gadget.c while (!list_empty(&priv_ep->pending_req_list)) { priv_ep 1933 drivers/usb/cdns3/gadget.c request = cdns3_next_request(&priv_ep->pending_req_list); priv_ep 1935 drivers/usb/cdns3/gadget.c cdns3_gadget_giveback(priv_ep, to_cdns3_request(request), priv_ep 1939 drivers/usb/cdns3/gadget.c while (!list_empty(&priv_ep->wa2_descmiss_req_list)) { priv_ep 1940 drivers/usb/cdns3/gadget.c priv_req = cdns3_next_priv_request(&priv_ep->wa2_descmiss_req_list); priv_ep 1943 drivers/usb/cdns3/gadget.c cdns3_gadget_ep_free_request(&priv_ep->endpoint, priv_ep 1946 drivers/usb/cdns3/gadget.c --priv_ep->wa2_counter; priv_ep 1949 drivers/usb/cdns3/gadget.c while (!list_empty(&priv_ep->deferred_req_list)) { priv_ep 1950 drivers/usb/cdns3/gadget.c request = cdns3_next_request(&priv_ep->deferred_req_list); priv_ep 1952 drivers/usb/cdns3/gadget.c cdns3_gadget_giveback(priv_ep, to_cdns3_request(request), priv_ep 1956 drivers/usb/cdns3/gadget.c priv_ep->descmis_req = NULL; priv_ep 1959 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~EP_ENABLED; priv_ep 1978 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep = ep_to_cdns3_ep(ep); priv_ep 1979 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 1989 drivers/usb/cdns3/gadget.c ret = cdns3_wa2_gadget_ep_queue(priv_dev, priv_ep, priv_ep 2005 drivers/usb/cdns3/gadget.c list_add_tail(&request->list, &priv_ep->deferred_req_list); priv_ep 2012 drivers/usb/cdns3/gadget.c if (priv_dev->hw_configured_flag && !(priv_ep->flags & EP_STALLED) && priv_ep 2013 drivers/usb/cdns3/gadget.c !(priv_ep->flags & EP_STALL_PENDING)) priv_ep 2014 drivers/usb/cdns3/gadget.c cdns3_start_all_request(priv_dev, priv_ep); priv_ep 2023 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep; priv_ep 2031 drivers/usb/cdns3/gadget.c priv_ep = ep_to_cdns3_ep(ep); priv_ep 2032 drivers/usb/cdns3/gadget.c priv_dev = priv_ep->cdns3_dev; priv_ep 2050 drivers/usb/cdns3/gadget.c priv_ep->name); priv_ep 2068 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep = ep_to_cdns3_ep(ep); priv_ep 2069 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 2088 drivers/usb/cdns3/gadget.c list_for_each_entry_safe(req, req_temp, &priv_ep->pending_req_list, priv_ep 2096 drivers/usb/cdns3/gadget.c list_for_each_entry_safe(req, req_temp, &priv_ep->deferred_req_list, priv_ep 2109 drivers/usb/cdns3/gadget.c link_trb->buffer = TRB_BUFFER(priv_ep->trb_pool_dma + priv_ep 2114 drivers/usb/cdns3/gadget.c if (priv_ep->wa1_trb == priv_req->trb) priv_ep 2115 drivers/usb/cdns3/gadget.c cdns3_wa1_restore_cycle_bit(priv_ep); priv_ep 2118 drivers/usb/cdns3/gadget.c cdns3_gadget_giveback(priv_ep, priv_req, -ECONNRESET); priv_ep 2130 drivers/usb/cdns3/gadget.c void __cdns3_gadget_ep_set_halt(struct cdns3_endpoint *priv_ep) priv_ep 2132 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 2134 drivers/usb/cdns3/gadget.c trace_cdns3_halt(priv_ep, 1, 0); priv_ep 2136 drivers/usb/cdns3/gadget.c if (!(priv_ep->flags & EP_STALLED)) { priv_ep 2140 drivers/usb/cdns3/gadget.c cdns3_ep_stall_flush(priv_ep); priv_ep 2142 drivers/usb/cdns3/gadget.c priv_ep->flags |= EP_STALL_PENDING; priv_ep 2151 drivers/usb/cdns3/gadget.c int __cdns3_gadget_ep_clear_halt(struct cdns3_endpoint *priv_ep) priv_ep 2153 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 2160 drivers/usb/cdns3/gadget.c trace_cdns3_halt(priv_ep, 0, 0); priv_ep 2162 drivers/usb/cdns3/gadget.c request = cdns3_next_request(&priv_ep->pending_req_list); priv_ep 2178 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~(EP_STALLED | EP_STALL_PENDING); priv_ep 2183 drivers/usb/cdns3/gadget.c cdns3_rearm_transfer(priv_ep, 1); priv_ep 2186 drivers/usb/cdns3/gadget.c cdns3_start_all_request(priv_dev, priv_ep); priv_ep 2199 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep = ep_to_cdns3_ep(ep); priv_ep 2200 drivers/usb/cdns3/gadget.c struct cdns3_device *priv_dev = priv_ep->cdns3_dev; priv_ep 2204 drivers/usb/cdns3/gadget.c if (!(priv_ep->flags & EP_ENABLED)) priv_ep 2212 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~EP_WEDGE; priv_ep 2213 drivers/usb/cdns3/gadget.c ret = __cdns3_gadget_ep_clear_halt(priv_ep); priv_ep 2215 drivers/usb/cdns3/gadget.c __cdns3_gadget_ep_set_halt(priv_ep); priv_ep 2395 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep; priv_ep 2408 drivers/usb/cdns3/gadget.c priv_ep = ep_to_cdns3_ep(ep); priv_ep 2409 drivers/usb/cdns3/gadget.c bEndpointAddress = priv_ep->num | priv_ep->dir; priv_ep 2415 drivers/usb/cdns3/gadget.c priv_ep->flags &= ~EP_CLAIMED; priv_ep 2458 drivers/usb/cdns3/gadget.c struct cdns3_endpoint *priv_ep; priv_ep 2483 drivers/usb/cdns3/gadget.c priv_ep = devm_kzalloc(priv_dev->dev, sizeof(*priv_ep), priv_ep 2485 drivers/usb/cdns3/gadget.c if (!priv_ep) priv_ep 2489 drivers/usb/cdns3/gadget.c priv_ep->cdns3_dev = priv_dev; priv_ep 2490 drivers/usb/cdns3/gadget.c priv_dev->eps[i] = priv_ep; priv_ep 2491 drivers/usb/cdns3/gadget.c priv_ep->num = ep_number; priv_ep 2492 drivers/usb/cdns3/gadget.c priv_ep->dir = ep_dir ? USB_DIR_IN : USB_DIR_OUT; priv_ep 2495 drivers/usb/cdns3/gadget.c ret = cdns3_init_ep0(priv_dev, priv_ep); priv_ep 2501 drivers/usb/cdns3/gadget.c snprintf(priv_ep->name, sizeof(priv_ep->name), "ep%d%s", priv_ep 2503 drivers/usb/cdns3/gadget.c priv_ep->endpoint.name = priv_ep->name; priv_ep 2505 drivers/usb/cdns3/gadget.c usb_ep_set_maxpacket_limit(&priv_ep->endpoint, priv_ep 2507 drivers/usb/cdns3/gadget.c priv_ep->endpoint.max_streams = CDNS3_EP_MAX_STREAMS; priv_ep 2508 drivers/usb/cdns3/gadget.c priv_ep->endpoint.ops = &cdns3_gadget_ep_ops; priv_ep 2510 drivers/usb/cdns3/gadget.c priv_ep->endpoint.caps.dir_in = 1; priv_ep 2512 drivers/usb/cdns3/gadget.c priv_ep->endpoint.caps.dir_out = 1; priv_ep 2515 drivers/usb/cdns3/gadget.c priv_ep->endpoint.caps.type_iso = 1; priv_ep 2517 drivers/usb/cdns3/gadget.c priv_ep->endpoint.caps.type_bulk = 1; priv_ep 2518 drivers/usb/cdns3/gadget.c priv_ep->endpoint.caps.type_int = 1; priv_ep 2520 drivers/usb/cdns3/gadget.c list_add_tail(&priv_ep->endpoint.ep_list, priv_ep 2524 drivers/usb/cdns3/gadget.c priv_ep->flags = 0; priv_ep 2527 drivers/usb/cdns3/gadget.c priv_ep->name, priv_ep 2528 drivers/usb/cdns3/gadget.c priv_ep->endpoint.caps.type_bulk ? "BULK, INT" : "", priv_ep 2529 drivers/usb/cdns3/gadget.c priv_ep->endpoint.caps.type_iso ? "ISO" : ""); priv_ep 2531 drivers/usb/cdns3/gadget.c INIT_LIST_HEAD(&priv_ep->pending_req_list); priv_ep 2532 drivers/usb/cdns3/gadget.c INIT_LIST_HEAD(&priv_ep->deferred_req_list); priv_ep 2533 drivers/usb/cdns3/gadget.c INIT_LIST_HEAD(&priv_ep->wa2_descmiss_req_list); priv_ep 1200 drivers/usb/cdns3/gadget.h struct cdns3_endpoint *priv_ep; priv_ep 1304 drivers/usb/cdns3/gadget.h dma_addr_t cdns3_trb_virt_to_dma(struct cdns3_endpoint *priv_ep, priv_ep 1313 drivers/usb/cdns3/gadget.h int cdns3_ep_run_transfer(struct cdns3_endpoint *priv_ep, priv_ep 1315 drivers/usb/cdns3/gadget.h void cdns3_rearm_transfer(struct cdns3_endpoint *priv_ep, u8 rearm); priv_ep 1316 drivers/usb/cdns3/gadget.h int cdns3_allocate_trb_pool(struct cdns3_endpoint *priv_ep); priv_ep 1320 drivers/usb/cdns3/gadget.h void __cdns3_gadget_ep_set_halt(struct cdns3_endpoint *priv_ep); priv_ep 1321 drivers/usb/cdns3/gadget.h int __cdns3_gadget_ep_clear_halt(struct cdns3_endpoint *priv_ep); priv_ep 1327 drivers/usb/cdns3/gadget.h void cdns3_gadget_giveback(struct cdns3_endpoint *priv_ep, priv_ep 1332 drivers/usb/cdns3/gadget.h struct cdns3_endpoint *priv_ep); priv_ep 1334 drivers/usb/cdns3/gadget.h void cdns3_ep_config(struct cdns3_endpoint *priv_ep); priv_ep 119 drivers/usb/cdns3/trace.h TP_PROTO(struct cdns3_device *priv_dev, struct cdns3_endpoint *priv_ep), priv_ep 120 drivers/usb/cdns3/trace.h TP_ARGS(priv_dev, priv_ep), priv_ep 122 drivers/usb/cdns3/trace.h __string(ep_name, priv_ep->name) priv_ep 128 drivers/usb/cdns3/trace.h __assign_str(ep_name, priv_ep->name); priv_ep 140 drivers/usb/cdns3/trace.h TP_PROTO(struct cdns3_device *priv_dev, struct cdns3_endpoint *priv_ep), priv_ep 141 drivers/usb/cdns3/trace.h TP_ARGS(priv_dev, priv_ep) priv_ep 200 drivers/usb/cdns3/trace.h __string(name, req->priv_ep->name) priv_ep 215 drivers/usb/cdns3/trace.h __assign_str(name, req->priv_ep->name); priv_ep 288 drivers/usb/cdns3/trace.h __string(name, priv_req->priv_ep->name) priv_ep 297 drivers/usb/cdns3/trace.h __assign_str(name, priv_req->priv_ep->name); priv_ep 323 drivers/usb/cdns3/trace.h TP_PROTO(struct cdns3_endpoint *priv_ep, struct cdns3_trb *trb), priv_ep 324 drivers/usb/cdns3/trace.h TP_ARGS(priv_ep, trb), priv_ep 326 drivers/usb/cdns3/trace.h __string(name, priv_ep->name) priv_ep 334 drivers/usb/cdns3/trace.h __assign_str(name, priv_ep->name); priv_ep 339 drivers/usb/cdns3/trace.h __entry->type = usb_endpoint_type(priv_ep->endpoint.desc); priv_ep 357 drivers/usb/cdns3/trace.h TP_PROTO(struct cdns3_endpoint *priv_ep, struct cdns3_trb *trb), priv_ep 358 drivers/usb/cdns3/trace.h TP_ARGS(priv_ep, trb) priv_ep 362 drivers/usb/cdns3/trace.h TP_PROTO(struct cdns3_endpoint *priv_ep, struct cdns3_trb *trb), priv_ep 363 drivers/usb/cdns3/trace.h TP_ARGS(priv_ep, trb) priv_ep 367 drivers/usb/cdns3/trace.h TP_PROTO(struct cdns3_endpoint *priv_ep), priv_ep 368 drivers/usb/cdns3/trace.h TP_ARGS(priv_ep), priv_ep 371 drivers/usb/cdns3/trace.h __dynamic_array(u8, priv_ep, sizeof(struct cdns3_endpoint)) priv_ep 376 drivers/usb/cdns3/trace.h memcpy(__get_dynamic_array(priv_ep), priv_ep, priv_ep 378 drivers/usb/cdns3/trace.h memcpy(__get_dynamic_array(ring), priv_ep->trb_pool, priv_ep 383 drivers/usb/cdns3/trace.h cdns3_dbg_ring((struct cdns3_endpoint *)__get_str(priv_ep), priv_ep 389 drivers/usb/cdns3/trace.h TP_PROTO(struct cdns3_endpoint *priv_ep), priv_ep 390 drivers/usb/cdns3/trace.h TP_ARGS(priv_ep) priv_ep 394 drivers/usb/cdns3/trace.h TP_PROTO(struct cdns3_endpoint *priv_ep), priv_ep 395 drivers/usb/cdns3/trace.h TP_ARGS(priv_ep), priv_ep 397 drivers/usb/cdns3/trace.h __string(name, priv_ep->name) priv_ep 408 drivers/usb/cdns3/trace.h __assign_str(name, priv_ep->name); priv_ep 409 drivers/usb/cdns3/trace.h __entry->maxpacket = priv_ep->endpoint.maxpacket; priv_ep 410 drivers/usb/cdns3/trace.h __entry->maxpacket_limit = priv_ep->endpoint.maxpacket_limit; priv_ep 411 drivers/usb/cdns3/trace.h __entry->max_streams = priv_ep->endpoint.max_streams; priv_ep 412 drivers/usb/cdns3/trace.h __entry->maxburst = priv_ep->endpoint.maxburst; priv_ep 413 drivers/usb/cdns3/trace.h __entry->flags = priv_ep->flags; priv_ep 414 drivers/usb/cdns3/trace.h __entry->dir = priv_ep->dir; priv_ep 415 drivers/usb/cdns3/trace.h __entry->enqueue = priv_ep->enqueue; priv_ep 416 drivers/usb/cdns3/trace.h __entry->dequeue = priv_ep->dequeue; priv_ep 437 drivers/usb/cdns3/trace.h TP_PROTO(struct cdns3_endpoint *priv_ep), priv_ep 438 drivers/usb/cdns3/trace.h TP_ARGS(priv_ep) priv_ep 442 drivers/usb/cdns3/trace.h TP_PROTO(struct cdns3_endpoint *priv_ep), priv_ep 443 drivers/usb/cdns3/trace.h TP_ARGS(priv_ep) priv_ep 463 drivers/usb/cdns3/trace.h __entry->dequeue_idx = priv_req->priv_ep->dequeue; priv_ep 464 drivers/usb/cdns3/trace.h __entry->enqueue_idx = priv_req->priv_ep->enqueue;