Lines Matching defs:sitd

267 ehci_free_sitd_locked(ehci_softc_t *sc, ehci_soft_sitd_t *sitd)
270 LIST_INSERT_HEAD(&sc->sc_freesitds, sitd, free_list);
1078 ehci_soft_sitd_t *sitd;
1090 sitd = ex->ex_sitdend;
1093 * check no active transfers in last sitd, meaning we're finished
1096 usb_syncmem(&sitd->dma, sitd->offs + offsetof(ehci_sitd_t, sitd_trans),
1097 sizeof(sitd->sitd->sitd_trans),
1100 bool active = ((le32toh(sitd->sitd->sitd_trans) & EHCI_SITD_ACTIVE) != 0);
1102 usb_syncmem(&sitd->dma, sitd->offs + offsetof(ehci_sitd_t, sitd_trans),
1103 sizeof(sitd->sitd->sitd_trans), BUS_DMASYNC_PREREAD);
1206 struct ehci_soft_sitd *sitd;
1211 for (sitd = ex->ex_sitdstart; sitd != NULL;
1212 sitd = sitd->xfer_next) {
1213 usb_syncmem(&sitd->dma,
1214 sitd->offs + offsetof(ehci_sitd_t, sitd_trans),
1215 sizeof(sitd->sitd->sitd_trans),
1228 status = le32toh(sitd->sitd->sitd_trans);
1229 usb_syncmem(&sitd->dma,
1230 sitd->offs + offsetof(ehci_sitd_t, sitd_trans),
1231 sizeof(sitd->sitd->sitd_trans), BUS_DMASYNC_PREREAD);
2370 ehci_remove_sitd_chain(ehci_softc_t *sc, struct ehci_soft_sitd *sitd)
2375 for (; sitd != NULL; sitd = sitd->xfer_next) {
2376 struct ehci_soft_sitd *prev = sitd->frame_list.prev;
2378 /* Unlink sitd from hardware chain, or frame array */
2380 sc->sc_softsitds[sitd->slot] = sitd->frame_list.next;
2381 sc->sc_flist[sitd->slot] = sitd->sitd->sitd_next;
2383 sizeof(ehci_link_t) * sitd->slot,
2387 if (sitd->frame_list.next != NULL)
2388 sitd->frame_list.next->frame_list.prev = NULL;
2391 prev->sitd->sitd_next = sitd->sitd->sitd_next;
2392 usb_syncmem(&sitd->dma,
2393 sitd->offs + offsetof(ehci_sitd_t, sitd_next),
2394 sizeof(sitd->sitd->sitd_next), BUS_DMASYNC_PREWRITE);
2396 prev->frame_list.next = sitd->frame_list.next;
2397 if (sitd->frame_list.next != NULL)
2398 sitd->frame_list.next->frame_list.prev = prev;
2404 ehci_free_sitd_chain(ehci_softc_t *sc, struct ehci_soft_sitd *sitd)
2409 for (; sitd != NULL; sitd = next) {
2410 next = sitd->xfer_next;
2411 ehci_free_sitd_locked(sc, sitd);
3300 struct ehci_soft_sitd *sitd, *freesitd;
3325 kmem_alloc(sizeof(*sitd) * EHCI_SITD_CHUNK, KM_SLEEP);
3334 sitd = &sitds[i];
3335 sitd->itd = KERNADDR(&dma, offs);
3336 sitd->physaddr = BUS_ADDR_LO32(baddr);
3337 sitd->dma = dma;
3338 sitd->offs = offs;
3340 LIST_INSERT_HEAD(&sc->sc_freesitds, sitd, free_list);
3345 sitd = freesitd;
3346 LIST_REMOVE(sitd, free_list);
3349 memset(sitd->sitd, 0, sizeof(*sitd->sitd));
3350 sitd->frame_list.next = NULL;
3351 sitd->frame_list.prev = NULL;
3352 sitd->xfer_next = NULL;
3353 sitd->slot = 0;
3355 return sitd;
3513 struct ehci_soft_sitd *sitd;
3578 for (sitd = exfer->ex_sitdstart; sitd != NULL;
3579 sitd = sitd->xfer_next) {
3580 usb_syncmem(&sitd->dma,
3581 sitd->offs + offsetof(ehci_sitd_t, sitd_buffer),
3582 sizeof(sitd->sitd->sitd_buffer),
3585 trans_status = le32toh(sitd->sitd->sitd_trans);
3587 sitd->sitd->sitd_trans = htole32(trans_status);
3589 usb_syncmem(&sitd->dma,
3590 sitd->offs + offsetof(ehci_sitd_t, sitd_buffer),
3591 sizeof(sitd->sitd->sitd_buffer),
4301 ehci_soft_sitd_t *sitd, *prev, *start, *stop;
4309 sitd = NULL;
4330 for (i = 0, prev = NULL; i < frames; i++, prev = sitd) {
4331 sitd = ehci_alloc_sitd(sc);
4332 if (sitd == NULL) {
4338 prev->xfer_next = sitd;
4340 start = sitd;
4354 sitd->sitd->sitd_endp =
4361 sitd->sitd->sitd_back = htole32(EHCI_LINK_TERMINATE);
4364 sitd->sitd->sitd_trans |= htole32(EHCI_SITD_IOC);
4366 stop = sitd;
4376 for (sitd = start; sitd; sitd = next) {
4377 next = sitd->xfer_next;
4378 ehci_free_sitd_locked(sc, sitd);
4403 ehci_soft_sitd_t *sitd;
4412 sitd = NULL;
4449 for (sitd = exfer->ex_sitdstart, i = 0; i < frames;
4450 i++, sitd = sitd->xfer_next) {
4451 KASSERT(sitd != NULL);
4454 sitd->sitd->sitd_trans = htole32(EHCI_SITD_ACTIVE |
4459 sitd->sitd->sitd_buffer[0] = htole32(BUS_ADDR_LO32(sba));
4460 sitd->sitd->sitd_buffer_hi[0] = htole32(BUS_ADDR_HI32(sba));
4465 sitd->sitd->sitd_buffer[1] =
4467 sitd->sitd->sitd_buffer_hi[1] = htole32(BUS_ADDR_HI32(eba));
4481 KASSERT(sitd->sitd->sitd_endp == htole32(
4487 KASSERT(sitd->sitd->sitd_back == htole32(EHCI_LINK_TERMINATE));
4505 sitd->sitd->sitd_buffer[1] |= htole32(temp);
4525 sitd->sitd->sitd_sched = htole32(
4530 usb_syncmem(&sitd->dma, sitd->offs, sizeof(ehci_sitd_t),
4534 sitd = exfer->ex_sitdend;
4535 sitd->sitd->sitd_trans |= htole32(EHCI_SITD_IOC);
4537 usb_syncmem(&sitd->dma, sitd->offs + offsetof(ehci_sitd_t, sitd_trans),
4538 sizeof(sitd->sitd->sitd_trans),
4567 for (sitd = exfer->ex_sitdstart, j = 0; j < frames;
4568 j++, sitd = sitd->xfer_next) {
4569 KASSERT(sitd);
4576 sitd->sitd->sitd_next = sc->sc_flist[frindex];
4577 if (sitd->sitd->sitd_next == 0)
4582 sitd->sitd->sitd_next = EHCI_NULL;
4584 usb_syncmem(&sitd->dma,
4585 sitd->offs + offsetof(ehci_sitd_t, sitd_next),
4590 htole32(EHCI_LINK_SITD | sitd->physaddr);
4597 sitd->frame_list.next = sc->sc_softsitds[frindex];
4598 sc->sc_softsitds[frindex] = sitd;
4599 if (sitd->frame_list.next != NULL)
4600 sitd->frame_list.next->frame_list.prev = sitd;
4601 sitd->slot = frindex;
4602 sitd->frame_list.prev = NULL;