Lines Matching refs:td

302 at91dci_setup_rx(struct at91dci_softc *sc, struct at91dci_td *td)
310 csr = AT91_UDP_READ_4(sc, td->status_reg);
312 DPRINTFN(5, "csr=0x%08x rem=%u\n", csr, td->remainder);
325 td->did_stall = 0;
331 if (count != td->remainder) {
343 td->fifo_reg, (void *)&req, sizeof(req));
346 usbd_copy_in(td->pc, 0, &req, sizeof(req));
348 td->offset = sizeof(req);
349 td->remainder = 0;
368 AT91_UDP_WRITE_4(sc, td->status_reg, csr);
373 if (!td->did_stall) {
376 td->did_stall = 1;
383 AT91_UDP_WRITE_4(sc, td->status_reg, csr);
389 at91dci_data_rx(struct at91dci_softc *sc, struct at91dci_td *td)
404 csr = AT91_UDP_READ_4(sc, td->status_reg);
406 DPRINTFN(5, "csr=0x%08x rem=%u\n", csr, td->remainder);
409 if (td->remainder == 0) {
420 td->error = 1;
433 AT91_UDP_WRITE_4(sc, td->status_reg, csr);
441 if (count != td->max_packet_size) {
442 if (count < td->max_packet_size) {
444 td->short_pkt = 1;
448 td->error = 1;
453 if (count > td->remainder) {
455 td->error = 1;
459 usbd_get_page(td->pc, td->offset, &buf_res);
467 td->fifo_reg, buf_res.buffer, buf_res.length);
471 td->offset += buf_res.length;
472 td->remainder -= buf_res.length;
476 if (td->support_multi_buffer) {
477 if (td->fifo_bank) {
478 td->fifo_bank = 0;
481 td->fifo_bank = 1;
491 AT91_UDP_WRITE_4(sc, td->status_reg, csr);
499 if ((td->remainder == 0) || got_short) {
500 if (td->short_pkt) {
513 at91dci_data_tx(struct at91dci_softc *sc, struct at91dci_td *td)
526 csr = AT91_UDP_READ_4(sc, td->status_reg);
528 DPRINTFN(5, "csr=0x%08x rem=%u\n", csr, td->remainder);
535 td->error = 1;
546 AT91_UDP_WRITE_4(sc, td->status_reg, csr);
555 count = td->max_packet_size;
556 if (td->remainder < count) {
558 td->short_pkt = 1;
559 count = td->remainder;
562 usbd_get_page(td->pc, td->offset, &buf_res);
570 td->fifo_reg, buf_res.buffer, buf_res.length);
574 td->offset += buf_res.length;
575 td->remainder -= buf_res.length;
580 AT91_UDP_WRITE_4(sc, td->status_reg, csr);
583 if (td->remainder == 0) {
584 if (td->short_pkt) {
596 at91dci_data_tx_sync(struct at91dci_softc *sc, struct at91dci_td *td)
602 csr = AT91_UDP_READ_4(sc, td->status_reg);
622 if (td->status_reg == AT91_UDP_CSR(0) && sc->sc_dv_addr != 0xFF) {
632 AT91_UDP_WRITE_4(sc, td->status_reg, csr);
640 AT91_UDP_WRITE_4(sc, td->status_reg, csr);
649 struct at91dci_td *td;
654 td = xfer->td_transfer_cache;
655 if (td == NULL)
659 if ((td->func) (sc, td)) {
663 if (((void *)td) == xfer->td_transfer_last) {
666 if (td->error) {
668 } else if (td->remainder > 0) {
673 if (!td->alt_next) {
682 if (td->fifo_bank)
684 td = td->obj_next;
685 xfer->td_transfer_cache = td;
687 td->fifo_bank = 1;
695 if (td->fifo_bank) {
709 struct at91dci_td *td;
712 td = xfer->td_transfer_cache;
713 if (td == NULL) {
879 struct at91dci_td *td;
882 td = temp->td_next;
883 temp->td = td;
886 temp->td_next = td->obj_next;
889 td->func = temp->func;
890 td->pc = temp->pc;
891 td->offset = temp->offset;
892 td->remainder = temp->len;
893 td->fifo_bank = 0;
894 td->error = 0;
895 td->did_stall = temp->did_stall;
896 td->short_pkt = temp->short_pkt;
897 td->alt_next = temp->setup_alt_next;
905 struct at91dci_td *td;
916 td = xfer->td_start[0];
917 xfer->td_transfer_first = td;
918 xfer->td_transfer_cache = td;
923 temp.td = NULL;
1051 td = temp.td;
1052 xfer->td_transfer_last = td;
1056 td = xfer->td_transfer_first;
1057 td->fifo_bank = 1;
1128 struct at91dci_td *td;
1134 td = xfer->td_transfer_cache;
1137 len = td->remainder;
1145 td->error = 1;
1151 if (td->error) {
1154 td = NULL;
1162 if (td->alt_next) {
1163 td = td->obj_next;
1165 td = NULL;
1169 td = NULL;
1174 td = td->obj_next;
1184 xfer->td_transfer_cache = td;
2282 struct at91dci_td *td;
2286 td = USB_ADD_BYTES(parm->buf, parm->size[0]);
2289 td->max_packet_size = xfer->max_packet_size;
2290 td->status_reg = AT91_UDP_CSR(ep_no);
2291 td->fifo_reg = AT91_UDP_FDR(ep_no);
2293 td->support_multi_buffer = 1;
2295 td->obj_next = last_obj;
2297 last_obj = td;
2299 parm->size[0] += sizeof(*td);