iudma 239 drivers/usb/gadget/udc/bcm63xx_udc.c struct iudma_ch *iudma; iudma 259 drivers/usb/gadget/udc/bcm63xx_udc.c struct iudma_ch *iudma; iudma 307 drivers/usb/gadget/udc/bcm63xx_udc.c struct iudma_ch iudma[BCM63XX_NUM_IUDMA]; iudma 564 drivers/usb/gadget/udc/bcm63xx_udc.c udc->iudma[i].max_pkt = max_pkt; iudma 594 drivers/usb/gadget/udc/bcm63xx_udc.c static void iudma_write(struct bcm63xx_udc *udc, struct iudma_ch *iudma, iudma 599 drivers/usb/gadget/udc/bcm63xx_udc.c const int max_bd_bytes = !irq_coalesce && !iudma->is_tx ? iudma 600 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->max_pkt : IUDMA_MAX_FRAGMENT; iudma 602 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->n_bds_used = 0; iudma 604 drivers/usb/gadget/udc/bcm63xx_udc.c breq->iudma = iudma; iudma 606 drivers/usb/gadget/udc/bcm63xx_udc.c if ((bytes_left % iudma->max_pkt == 0) && bytes_left && breq->req.zero) iudma 610 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm_enet_desc *d = iudma->write_bd; iudma 614 drivers/usb/gadget/udc/bcm63xx_udc.c if (d == iudma->end_bd) { iudma 616 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->write_bd = iudma->bd_ring; iudma 618 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->write_bd++; iudma 620 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->n_bds_used++; iudma 642 drivers/usb/gadget/udc/bcm63xx_udc.c if (!iudma->is_tx || iudma->n_bds_used == iudma->n_bds || iudma 658 drivers/usb/gadget/udc/bcm63xx_udc.c ENETDMAC_CHANCFG_REG, iudma->ch_idx); iudma 670 drivers/usb/gadget/udc/bcm63xx_udc.c static int iudma_read(struct bcm63xx_udc *udc, struct iudma_ch *iudma) iudma 673 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm_enet_desc *d = iudma->read_bd; iudma 675 drivers/usb/gadget/udc/bcm63xx_udc.c if (!iudma->n_bds_used) iudma 678 drivers/usb/gadget/udc/bcm63xx_udc.c for (i = 0; i < iudma->n_bds_used; i++) { iudma 688 drivers/usb/gadget/udc/bcm63xx_udc.c if (d == iudma->end_bd) iudma 689 drivers/usb/gadget/udc/bcm63xx_udc.c d = iudma->bd_ring; iudma 694 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->read_bd = d; iudma 695 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->n_bds_used = 0; iudma 704 drivers/usb/gadget/udc/bcm63xx_udc.c static void iudma_reset_channel(struct bcm63xx_udc *udc, struct iudma_ch *iudma) iudma 708 drivers/usb/gadget/udc/bcm63xx_udc.c int ch_idx = iudma->ch_idx; iudma 710 drivers/usb/gadget/udc/bcm63xx_udc.c if (!iudma->is_tx) iudma 711 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_fifo_reset_ep(udc, max(0, iudma->ep_num)); iudma 721 drivers/usb/gadget/udc/bcm63xx_udc.c if (iudma->is_tx && iudma->ep_num >= 0) iudma 722 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_fifo_reset_ep(udc, iudma->ep_num); iudma 739 drivers/usb/gadget/udc/bcm63xx_udc.c for (d = iudma->bd_ring; d <= iudma->end_bd; d++) iudma 743 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->read_bd = iudma->write_bd = iudma->bd_ring; iudma 744 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->n_bds_used = 0; iudma 751 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmas_writel(udc, iudma->bd_ring_dma, ENETDMAS_RSTART_REG, ch_idx); iudma 762 drivers/usb/gadget/udc/bcm63xx_udc.c struct iudma_ch *iudma = &udc->iudma[ch_idx]; iudma 767 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->ep_num = cfg->ep_num; iudma 768 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->ch_idx = ch_idx; iudma 769 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->is_tx = !!(ch_idx & 0x01); iudma 770 drivers/usb/gadget/udc/bcm63xx_udc.c if (iudma->ep_num >= 0) { iudma 771 drivers/usb/gadget/udc/bcm63xx_udc.c bep = &udc->bep[iudma->ep_num]; iudma 772 drivers/usb/gadget/udc/bcm63xx_udc.c bep->iudma = iudma; iudma 776 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->bep = bep; iudma 777 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->udc = udc; iudma 780 drivers/usb/gadget/udc/bcm63xx_udc.c if (iudma->ep_num <= 0) iudma 781 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->enabled = true; iudma 783 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->n_bds = n_bds; iudma 784 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->bd_ring = dmam_alloc_coherent(udc->dev, iudma 786 drivers/usb/gadget/udc/bcm63xx_udc.c &iudma->bd_ring_dma, GFP_KERNEL); iudma 787 drivers/usb/gadget/udc/bcm63xx_udc.c if (!iudma->bd_ring) iudma 789 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->end_bd = &iudma->bd_ring[n_bds - 1]; iudma 810 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, &udc->iudma[i]); iudma 830 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, &udc->iudma[i]); iudma 1037 drivers/usb/gadget/udc/bcm63xx_udc.c struct iudma_ch *iudma = bep->iudma; iudma 1047 drivers/usb/gadget/udc/bcm63xx_udc.c if (iudma->enabled) { iudma 1052 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->enabled = true; iudma 1055 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, iudma); iudma 1076 drivers/usb/gadget/udc/bcm63xx_udc.c struct iudma_ch *iudma = bep->iudma; iudma 1084 drivers/usb/gadget/udc/bcm63xx_udc.c if (!iudma->enabled) { iudma 1088 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->enabled = false; iudma 1090 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, iudma); iudma 1095 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->is_tx); iudma 1100 drivers/usb/gadget/udc/bcm63xx_udc.c usb_gadget_giveback_request(&iudma->bep->ep, &breq->req); iudma 1179 drivers/usb/gadget/udc/bcm63xx_udc.c if (!bep->iudma->enabled) { iudma 1184 drivers/usb/gadget/udc/bcm63xx_udc.c rc = usb_gadget_map_request(&udc->gadget, req, bep->iudma->is_tx); iudma 1188 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_write(udc, bep->iudma, breq); iudma 1220 drivers/usb/gadget/udc/bcm63xx_udc.c usb_gadget_unmap_request(&udc->gadget, &breq->req, bep->iudma->is_tx); iudma 1223 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, bep->iudma); iudma 1231 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_write(udc, bep->iudma, next); iudma 1387 drivers/usb/gadget/udc/bcm63xx_udc.c struct iudma_ch *iudma = &udc->iudma[ch_idx]; iudma 1394 drivers/usb/gadget/udc/bcm63xx_udc.c usb_gadget_map_request(&udc->gadget, req, iudma->is_tx); iudma 1395 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_write(udc, iudma, breq); iudma 1552 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, &udc->iudma[IUDMA_EP0_RXCHAN]); iudma 1629 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, &udc->iudma[IUDMA_EP0_TXCHAN]); iudma 1655 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, &udc->iudma[IUDMA_EP0_RXCHAN]); iudma 1674 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, &udc->iudma[IUDMA_EP0_TXCHAN]); iudma 2043 drivers/usb/gadget/udc/bcm63xx_udc.c struct iudma_ch *iudma = dev_id; iudma 2044 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = iudma->udc; iudma 2054 drivers/usb/gadget/udc/bcm63xx_udc.c ENETDMAC_IR_REG, iudma->ch_idx); iudma 2055 drivers/usb/gadget/udc/bcm63xx_udc.c bep = iudma->bep; iudma 2056 drivers/usb/gadget/udc/bcm63xx_udc.c rc = iudma_read(udc, iudma); iudma 2059 drivers/usb/gadget/udc/bcm63xx_udc.c if (iudma->ch_idx == IUDMA_EP0_RXCHAN || iudma 2060 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->ch_idx == IUDMA_EP0_TXCHAN) { iudma 2077 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_write(udc, iudma, breq); iudma 2098 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_write(udc, iudma, next); iudma 2101 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_write(udc, iudma, breq); iudma 2108 drivers/usb/gadget/udc/bcm63xx_udc.c usb_gadget_unmap_request(&udc->gadget, req, iudma->is_tx); iudma 2176 drivers/usb/gadget/udc/bcm63xx_udc.c struct iudma_ch *iudma = &udc->iudma[ch_idx]; iudma 2207 drivers/usb/gadget/udc/bcm63xx_udc.c seq_printf(s, " desc: %d/%d used", iudma->n_bds_used, iudma 2208 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->n_bds); iudma 2210 drivers/usb/gadget/udc/bcm63xx_udc.c if (iudma->bep) { iudma 2212 drivers/usb/gadget/udc/bcm63xx_udc.c list_for_each(pos, &iudma->bep->queue) iudma 2219 drivers/usb/gadget/udc/bcm63xx_udc.c for (i = 0; i < iudma->n_bds; i++) { iudma 2220 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm_enet_desc *d = &iudma->bd_ring[i]; iudma 2226 drivers/usb/gadget/udc/bcm63xx_udc.c if (d == iudma->read_bd) iudma 2228 drivers/usb/gadget/udc/bcm63xx_udc.c if (d == iudma->write_bd) iudma 2343 drivers/usb/gadget/udc/bcm63xx_udc.c dev_name(dev), &udc->iudma[i]) < 0)