• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/usb/host/

Lines Matching refs:etd_num

111 static void etd_writel(struct imx21 *imx21, int etd_num, int dword, u32 value)
113 writel(value, imx21->regs + USB_ETD_DWORD(etd_num, dword));
116 static u32 etd_readl(struct imx21 *imx21, int etd_num, int dword)
118 return readl(imx21->regs + USB_ETD_DWORD(etd_num, dword));
212 int etd_num, struct urb *urb, u8 dir, u16 maxpacket)
214 etd_writel(imx21, etd_num, 0,
225 int etd_num, dma_addr_t dma, u8 dir)
227 u32 etd_mask = 1 << etd_num;
228 struct etd_priv *etd = &imx21->etd[etd_num];
239 writel(dma, imx21->regs + USB_ETDSMSA(etd_num));
260 etd->submitted_dwords[i] = etd_readl(imx21, etd_num, i);
317 int etd_num = etd - &imx21->etd[0];
318 u32 maxpacket = etd_readl(imx21, etd_num, 1) >> DW1_YBUFSRTAD;
319 u8 dir = (etd_readl(imx21, etd_num, 2) >> DW2_DIRPID) & 0x03;
322 etd_num);
323 etd_writel(imx21, etd_num, 1,
327 activate_etd(imx21, etd_num, etd->dma_handle, dir);
386 int etd_num;
390 etd_num = ep_priv->etd[i];
391 if (etd_num < 0)
396 free_etd(imx21, etd_num);
401 "assigning idle etd %d for queued request\n", etd_num);
405 reset_etd(imx21, etd_num);
407 ep_priv->etd[i] = etd_num;
452 int etd_num;
462 etd_num = ep_priv->etd[i];
463 if (etd_num < 0)
466 etd = &imx21->etd[etd_num];
496 setup_etd_dword0(imx21, etd_num, td->urb, dir, etd->dmem_size);
497 etd_writel(imx21, etd_num, 1, etd->dmem_offset);
498 etd_writel(imx21, etd_num, 2,
501 etd_writel(imx21, etd_num, 3,
505 activate_etd(imx21, etd_num, td->data, dir);
509 static void isoc_etd_done(struct usb_hcd *hcd, struct urb *urb, int etd_num)
512 int etd_mask = 1 << etd_num;
514 struct etd_priv *etd = imx21->etd + etd_num;
523 disactivate_etd(imx21, etd_num);
525 cc = (etd_readl(imx21, etd_num, 3) >> DW3_COMPCODE0) & 0xf;
526 bytes_xfrd = etd_readl(imx21, etd_num, 3) & 0x3ff;
545 bytes_xfrd, td->len, urb, etd_num, isoc_index);
732 int etd_num = ep_priv->etd[i];
733 if (etd_num != -1 && imx21->etd[etd_num].urb == urb) {
734 struct etd_priv *etd = imx21->etd + etd_num;
736 reset_etd(imx21, etd_num);
762 int etd_num = ep_priv->etd[0];
774 if (etd_num < 0) {
778 if (readl(imx21->regs + USBH_ETDENSET) & (1 << etd_num))
779 dev_err(imx21->dev, "submitting to active ETD %d\n", etd_num);
781 etd = &imx21->etd[etd_num];
832 setup_etd_dword0(imx21, etd_num, urb, dir, maxpacket);
834 etd_writel(imx21, etd_num, 2,
850 etd_writel(imx21, etd_num, 3,
861 etd_writel(imx21, etd_num, 1, (u32)maxpacket << 16);
863 dev_dbg(imx21->dev, "Queuing etd %d for DMEM\n", etd_num);
869 etd_writel(imx21, etd_num, 1,
877 etd_num, count, dir != TD_DIR_IN ? "out" : "in");
878 activate_etd(imx21, etd_num, etd->dma_handle, dir);
882 static void nonisoc_etd_done(struct usb_hcd *hcd, struct urb *urb, int etd_num)
885 struct etd_priv *etd = &imx21->etd[etd_num];
886 u32 etd_mask = 1 << etd_num;
894 disactivate_etd(imx21, etd_num);
896 dir = (etd_readl(imx21, etd_num, 0) >> DW0_DIRECT) & 0x3;
897 xbufaddr = etd_readl(imx21, etd_num, 1) & 0xffff;
898 cc = (etd_readl(imx21, etd_num, 2) >> DW2_COMPCODE) & 0xf;
899 bytes_xfrd = etd->len - (etd_readl(imx21, etd_num, 3) & 0x1fffff);
904 (etd_readl(imx21, etd_num, 0) >> DW0_TOGCRY) & 0x1);
1125 int etd_num = ep_priv->etd[0];
1126 if (etd_num != -1) {
1127 disactivate_etd(imx21, etd_num);
1128 free_dmem(imx21, etd_readl(imx21, etd_num, 1) & 0xffff);
1129 imx21->etd[etd_num].urb = NULL;
1149 int etd_num;
1155 for (etd_num = 0; etd_num < USB_NUM_ETD; etd_num++) {
1156 u32 etd_mask = 1 << etd_num;
1159 struct etd_priv *etd = &imx21->etd[etd_num];
1190 cc = etd_readl(imx21, etd_num, 2) >> DW2_COMPCODE;
1197 dword0 = etd_readl(imx21, etd_num, 0);
1200 etd_num, dword0 & 0x7F,
1223 etd_num, etd->ep, etd->urb);
1224 disactivate_etd(imx21, etd_num);
1229 isoc_etd_done(hcd, etd->urb, etd_num);
1231 nonisoc_etd_done(hcd, etd->urb, etd_num);