Lines Matching refs:ptd

53 struct ptd {
134 /* QTD_XFER_STARTED: valid ptd has been written to isp176x - only
181 * For access to ptd memory, use the specialized ptd_read() and ptd_write()
282 struct ptd *ptd)
285 ISP_BANK(0) + ptd_offset + slot*sizeof(*ptd));
287 bank_reads8(base, ptd_offset + slot*sizeof(*ptd), ISP_BANK(0),
288 (void *) ptd, sizeof(*ptd));
292 struct ptd *ptd)
294 mem_writes8(base, ptd_offset + slot*sizeof(*ptd) + sizeof(ptd->dw0),
295 &ptd->dw1, 7*sizeof(ptd->dw1));
299 mem_writes8(base, ptd_offset + slot*sizeof(*ptd), &ptd->dw0,
300 sizeof(ptd->dw0));
534 struct isp1760_qtd *qtd, struct ptd *ptd)
541 memset(ptd, 0, sizeof(*ptd));
550 ptd->dw0 = DW0_VALID_BIT;
551 ptd->dw0 |= TO_DW0_LENGTH(qtd->length);
552 ptd->dw0 |= TO_DW0_MAXPACKET(maxpacket);
553 ptd->dw0 |= TO_DW0_ENDPOINT(usb_pipeendpoint(qtd->urb->pipe));
556 ptd->dw1 = usb_pipeendpoint(qtd->urb->pipe) >> 1;
557 ptd->dw1 |= TO_DW1_DEVICE_ADDR(usb_pipedevice(qtd->urb->pipe));
558 ptd->dw1 |= TO_DW1_PID_TOKEN(qtd->packet_type);
561 ptd->dw1 |= DW1_TRANS_BULK;
563 ptd->dw1 |= DW1_TRANS_INT;
568 ptd->dw1 |= DW1_TRANS_SPLIT;
570 ptd->dw1 |= DW1_SE_USB_LOSPEED;
572 ptd->dw1 |= TO_DW1_PORT_NUM(qtd->urb->dev->ttport);
573 ptd->dw1 |= TO_DW1_HUB_NUM(qtd->urb->dev->tt->hub->devnum);
578 ptd->dw1 |= 2 << 16;
583 ptd->dw0 |= TO_DW0_MULTI(multi);
586 ptd->dw3 |= TO_DW3_PING(qh->ping);
589 ptd->dw2 = 0;
590 ptd->dw2 |= TO_DW2_DATA_START_ADDR(base_to_chip(qtd->payload_addr));
591 ptd->dw2 |= TO_DW2_RL(rl);
594 ptd->dw3 |= TO_DW3_NAKCOUNT(nak);
595 ptd->dw3 |= TO_DW3_DATA_TOGGLE(qh->toggle);
598 ptd->dw3 &= ~TO_DW3_DATA_TOGGLE(1);
600 ptd->dw3 |= TO_DW3_DATA_TOGGLE(1);
603 ptd->dw3 |= DW3_ACTIVE_BIT;
605 ptd->dw3 |= TO_DW3_CERR(ERR_COUNTER);
609 struct isp1760_qtd *qtd, struct ptd *ptd)
649 /* ptd->dw5 = 0x1c; */
650 ptd->dw5 = 0xff; /* Execute Complete Split on any uFrame */
656 ptd->dw2 |= period;
657 ptd->dw4 = usof;
661 struct isp1760_qtd *qtd, struct ptd *ptd)
663 create_ptd_atl(qh, qtd, ptd);
664 transform_add_int(qh, qtd, ptd);
720 struct ptd *ptd)
747 ptd_write(hcd->regs, ptd_offset, slot, ptd);
836 struct ptd ptd;
892 create_ptd_int(qh, qtd, &ptd);
894 create_ptd_atl(qh, qtd, &ptd);
897 slots, qtd, qh, &ptd);
977 static int check_int_transfer(struct usb_hcd *hcd, struct ptd *ptd,
983 dw4 = ptd->dw4;
989 if (ptd->dw3 & DW3_HALT_BIT) {
1024 static int check_atl_transfer(struct usb_hcd *hcd, struct ptd *ptd,
1027 WARN_ON(!ptd);
1028 if (ptd->dw3 & DW3_HALT_BIT) {
1029 if (ptd->dw3 & DW3_BABBLE_BIT)
1031 else if (FROM_DW3_CERR(ptd->dw3))
1036 dev_dbg(hcd->self.controller, "%s: ptd error:\n"
1040 ptd->dw0, ptd->dw1, ptd->dw2, ptd->dw3,
1041 ptd->dw4, ptd->dw5, ptd->dw6, ptd->dw7);
1046 if ((ptd->dw3 & DW3_ERROR_BIT) && (ptd->dw3 & DW3_ACTIVE_BIT)) {
1048 dev_dbg(hcd->self.controller, "PID error; reloading ptd\n");
1052 if (!FROM_DW3_NAKCOUNT(ptd->dw3) && (ptd->dw3 & DW3_ACTIVE_BIT)) {
1067 struct ptd ptd;
1086 /* INT ptd */
1097 ptd_read(hcd->regs, INT_PTD_OFFSET, slot, &ptd);
1098 state = check_int_transfer(hcd, &ptd,
1101 /* ATL ptd */
1112 ptd_read(hcd->regs, ATL_PTD_OFFSET, slot, &ptd);
1113 state = check_atl_transfer(hcd, &ptd,
1130 FROM_DW3_SCS_NRBYTESTRANSFERRED(ptd.dw3);
1133 FROM_DW3_NRBYTESTRANSFERRED(ptd.dw3);
1143 qh->toggle = FROM_DW3_DATA_TOGGLE(ptd.dw3);
1144 qh->ping = FROM_DW3_PING(ptd.dw3);
1149 ptd.dw0 |= DW0_VALID_BIT;
1151 ptd.dw3 &= ~TO_DW3_NAKCOUNT(0xf);
1152 ptd.dw3 |= TO_DW3_NAKCOUNT(FROM_DW2_RL(ptd.dw2));
1153 ptd.dw3 &= ~TO_DW3_CERR(3);
1154 ptd.dw3 |= TO_DW3_CERR(ERR_COUNTER);
1155 qh->toggle = FROM_DW3_DATA_TOGGLE(ptd.dw3);
1156 qh->ping = FROM_DW3_PING(ptd.dw3);
1187 create_ptd_int(qh, qtd, &ptd);
1190 create_ptd_atl(qh, qtd, &ptd);
1194 qh, &ptd);
1242 * If we use SOF interrupts only, we get latency between ptd completion and the
1248 * slot's ACTIVE and VALID bits. If these are not set, the ptd is considered
1265 struct ptd ptd;
1274 ptd_read(hcd->regs, ATL_PTD_OFFSET, slot, &ptd);
1275 if (!FROM_DW0_VALID(ptd.dw0) &&
1276 !FROM_DW3_ACTIVE(ptd.dw3))