Lines Matching defs:sqh

98 	struct ehci_soft_qh *sqh;
300 struct ehci_soft_qh *sqh;
389 sqh = ehci_alloc_sqh(sc);
390 if (sqh == NULL) {
394 sc->sc_islots[i].sqh = sqh;
397 sqh = sc->sc_islots[i].sqh;
400 sqh->qh.qh_link = htole32(EHCI_LINK_TERMINATE);
401 sqh->next = NULL;
404 sqh->next = sc->sc_islots[(i + 1) / 2 - 1].sqh;
405 sqh->qh.qh_link = htole32(sqh->next->physaddr |
408 sqh->qh.qh_endp = htole32(EHCI_QH_SET_EPS(EHCI_QH_SPEED_HIGH));
409 sqh->qh.qh_endphub = htole32(EHCI_QH_SET_MULT(1));
410 sqh->qh.qh_curqtd = htole32(EHCI_LINK_TERMINATE);
411 sqh->qh.qh_qtd.qtd_next = htole32(EHCI_LINK_TERMINATE);
412 sqh->qh.qh_qtd.qtd_altnext = htole32(EHCI_LINK_TERMINATE);
413 sqh->qh.qh_qtd.qtd_status = htole32(EHCI_QTD_HALTED);
414 sqh->sqtd = NULL;
415 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh),
423 i, EHCI_IPOLLRATES - 1))].sqh->physaddr);
428 sqh = ehci_alloc_sqh(sc);
429 if (sqh == NULL) {
434 sqh->qh.qh_endp =
436 sqh->qh.qh_link =
437 htole32(sqh->physaddr | EHCI_LINK_QH);
438 sqh->qh.qh_curqtd = htole32(EHCI_LINK_TERMINATE);
439 sqh->prev = sqh; /*It's a circular list.. */
440 sqh->next = sqh;
442 sqh->qh.qh_qtd.qtd_next = htole32(EHCI_LINK_TERMINATE);
443 sqh->qh.qh_qtd.qtd_altnext = htole32(EHCI_LINK_TERMINATE);
444 sqh->qh.qh_qtd.qtd_status = htole32(EHCI_QTD_HALTED);
445 sqh->sqtd = NULL;
446 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh),
450 sc->sc_async_head = sqh;
451 EOWRITE4(sc, EHCI_ASYNCLISTADDR, sqh->physaddr | EHCI_LINK_QH);
1160 if ((epipe->sqh->qh.qh_qtd.qtd_status & htole32(EHCI_QTD_ACTIVE)) != 0)
1163 epipe->sqh->qh.qh_qtd.qtd_status &= htole32(~EHCI_QTD_TOGGLE_MASK);
1281 ehci_dump_sqh(struct ehci_soft_qh *sqh)
1283 struct ehci_qh *qh = &sqh->qh;
1286 usb_syncmem(&sqh->dma, sqh->offs,
1287 sizeof(sqh->qh), BUS_DMASYNC_POSTWRITE | BUS_DMASYNC_POSTREAD);
1288 printf("QH(%p) at 0x%08x:\n", sqh, sqh->physaddr);
1308 usb_syncmem(&sqh->dma, sqh->offs,
1309 sizeof(sqh->qh), BUS_DMASYNC_PREREAD);
1363 struct ehci_soft_qh *sqh;
1420 /* Allocate sqh for everything, save isoc xfers */
1422 sqh = ehci_alloc_sqh(sc);
1423 if (sqh == NULL)
1426 sqh->qh.qh_endp = htole32(
1451 sqh->qh.qh_endphub = htole32(
1456 sqh->qh.qh_endphub |= htole32(
1462 sqh->qh.qh_curqtd = htole32(EHCI_LINK_TERMINATE);
1464 sqh->qh.qh_qtd.qtd_next = htole32(EHCI_LINK_TERMINATE);
1465 sqh->qh.qh_qtd.qtd_altnext = htole32(EHCI_LINK_TERMINATE);
1466 sqh->qh.qh_qtd.qtd_status =
1469 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh),
1471 epipe->sqh = sqh;
1479 ehci_free_sqh(sc, sqh);
1484 ehci_add_qh(sqh, sc->sc_async_head);
1490 ehci_add_qh(sqh, sc->sc_async_head);
1499 err = ehci_device_setintr(sc, sqh, ival);
1537 ehci_add_qh(struct ehci_soft_qh *sqh, struct ehci_soft_qh *head)
1543 sqh->next = head->next;
1544 sqh->prev = head;
1545 sqh->qh.qh_link = head->qh.qh_link;
1546 usb_syncmem(&sqh->dma, sqh->offs + offsetof(struct ehci_qh, qh_link),
1547 sizeof(sqh->qh.qh_link), BUS_DMASYNC_PREWRITE);
1548 head->next = sqh;
1549 if (sqh->next)
1550 sqh->next->prev = sqh;
1551 head->qh.qh_link = htole32(sqh->physaddr | EHCI_LINK_QH);
1561 ehci_rem_qh(struct ehci_softc *sc, struct ehci_soft_qh *sqh)
1565 usb_syncmem(&sqh->dma, sqh->offs + offsetof(struct ehci_qh, qh_link),
1566 sizeof(sqh->qh.qh_link), BUS_DMASYNC_POSTWRITE);
1567 sqh->prev->qh.qh_link = sqh->qh.qh_link;
1568 sqh->prev->next = sqh->next;
1569 if (sqh->next)
1570 sqh->next->prev = sqh->prev;
1571 usb_syncmem(&sqh->prev->dma,
1572 sqh->prev->offs + offsetof(struct ehci_qh, qh_link),
1573 sizeof(sqh->prev->qh.qh_link), BUS_DMASYNC_PREWRITE);
1579 ehci_set_qh_qtd(struct ehci_soft_qh *sqh, struct ehci_soft_qtd *sqtd)
1585 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh),
1587 status = sqh->qh.qh_qtd.qtd_status &
1591 sqh->qh.qh_qtd.qtd_status =
1593 usb_syncmem(&sqh->dma,
1594 sqh->offs + offsetof(struct ehci_qh, qh_qtd.qtd_status),
1595 sizeof(sqh->qh.qh_qtd.qtd_status),
1597 sqh->qh.qh_curqtd = 0;
1598 sqh->qh.qh_qtd.qtd_next = htole32(sqtd->physaddr);
1599 sqh->qh.qh_qtd.qtd_altnext = htole32(EHCI_LINK_TERMINATE);
1601 sqh->qh.qh_qtd.qtd_buffer[i] = 0;
1602 sqh->sqtd = sqtd;
1603 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh),
1606 sqh->qh.qh_qtd.qtd_status = status;
1607 usb_syncmem(&sqh->dma,
1608 sqh->offs + offsetof(struct ehci_qh, qh_qtd.qtd_status),
1609 sizeof(sqh->qh.qh_qtd.qtd_status),
2253 struct ehci_soft_qh *sqh = NULL;
2268 sqh = KERNADDR(&dma, offs);
2269 sqh->physaddr = DMAADDR(&dma, offs);
2270 sqh->dma = dma;
2271 sqh->offs = offs;
2272 sqh->next = sc->sc_freeqhs;
2273 sc->sc_freeqhs = sqh;
2276 sqh = sc->sc_freeqhs;
2277 sc->sc_freeqhs = sqh->next;
2278 memset(&sqh->qh, 0, sizeof(struct ehci_qh));
2279 sqh->next = NULL;
2280 sqh->prev = NULL;
2284 return (sqh);
2288 ehci_free_sqh(struct ehci_softc *sc, struct ehci_soft_qh *sqh)
2293 sqh->next = sc->sc_freeqhs;
2294 sc->sc_freeqhs = sqh;
2503 epipe->sqh->sqtd = NULL;
2585 struct ehci_soft_qh *sqh = epipe->sqh;
2589 ehci_rem_qh(sc, sqh);
2592 EHCI_QTD_GET_TOGGLE(letoh32(sqh->qh.qh_qtd.qtd_status));
2593 ehci_free_sqh(sc, epipe->sqh);
2612 struct ehci_soft_qh *sqh = epipe->sqh;
2667 usb_syncmem(&sqh->dma,
2668 sqh->offs + offsetof(struct ehci_qh, qh_qtd.qtd_status),
2669 sizeof(sqh->qh.qh_qtd.qtd_status),
2671 sqh->qh.qh_qtd.qtd_status = htole32(EHCI_QTD_HALTED);
2672 usb_syncmem(&sqh->dma,
2673 sqh->offs + offsetof(struct ehci_qh, qh_qtd.qtd_status),
2674 sizeof(sqh->qh.qh_qtd.qtd_status),
2869 struct ehci_soft_qh *sqh;
2890 sqh = epipe->sqh;
2953 ehci_set_qh_qtd(sqh, setup);
3021 struct ehci_soft_qh *sqh;
3030 sqh = epipe->sqh;
3050 ehci_set_qh_qtd(sqh, data);
3090 ehci_device_setintr(struct ehci_softc *sc, struct ehci_soft_qh *sqh, int ival)
3104 sqh->islot = islot;
3106 ehci_add_qh(sqh, isp->sqh);
3135 struct ehci_soft_qh *sqh;
3144 sqh = epipe->sqh;
3163 ehci_set_qh_qtd(sqh, data);
3202 struct ehci_soft_qh *sqh;
3209 sqh = epipe->sqh;
3229 ehci_set_qh_qtd(sqh, data);