Lines Matching defs:sqh
144 ehci_soft_qh_t *sqh;
412 ehci_soft_qh_t *sqh;
591 sqh = ehci_alloc_sqh(sc);
592 if (sqh == NULL) {
596 sc->sc_islots[i].sqh = sqh;
599 sqh = sc->sc_islots[i].sqh;
602 sqh->qh->qh_link = EHCI_NULL;
603 sqh->next = NULL;
606 sqh->next = sc->sc_islots[(i + 1) / 2 - 1].sqh;
607 sqh->qh->qh_link = htole32(sqh->next->physaddr |
610 sqh->qh->qh_endp = htole32(EHCI_QH_SET_EPS(EHCI_QH_SPEED_HIGH));
611 sqh->qh->qh_endphub = htole32(EHCI_QH_SET_MULT(1));
612 sqh->qh->qh_curqtd = EHCI_NULL;
614 sqh->qh->qh_qtd.qtd_next = EHCI_NULL;
615 sqh->qh->qh_qtd.qtd_altnext = EHCI_NULL;
616 sqh->qh->qh_qtd.qtd_status = htole32(EHCI_QTD_HALTED);
618 ehci_qtd_t *qh_qtd = &sqh->qh->qh_qtd;
624 sqh->sqtd = NULL;
625 usb_syncmem(&sqh->dma, sqh->offs, sizeof(*sqh->qh),
636 i)].sqh->physaddr);
642 sqh = ehci_alloc_sqh(sc);
643 if (sqh == NULL) {
648 sqh->qh->qh_endp =
650 sqh->qh->qh_link =
651 htole32(sqh->physaddr | EHCI_LINK_QH);
652 sqh->qh->qh_curqtd = EHCI_NULL;
653 sqh->next = NULL;
655 sqh->qh->qh_qtd.qtd_next = EHCI_NULL;
656 sqh->qh->qh_qtd.qtd_altnext = EHCI_NULL;
657 sqh->qh->qh_qtd.qtd_status = htole32(EHCI_QTD_HALTED);
659 ehci_qtd_t *qh_qtd = &sqh->qh->qh_qtd;
665 sqh->sqtd = NULL;
666 usb_syncmem(&sqh->dma, sqh->offs, sizeof(*sqh->qh),
670 ehci_dump_sqh(sqh);
675 sc->sc_async_head = sqh;
676 EOWRITE4(sc, EHCI_ASYNCLISTADDR, sqh->physaddr | EHCI_LINK_QH);
714 sqh = sc->sc_islots[i].sqh;
715 if (sqh)
716 ehci_free_sqh(sc, sqh);
1299 ehci_dump_sqh(epipe->sqh);
1330 ehci_dump_sqh(epipe->sqh);
1335 if (EHCI_QH_GET_EPS(epipe->sqh->qh->qh_endp) !=
1655 epipe->sqh->qh->qh_qtd.qtd_status, 0, 0);
1812 ehci_dump_sqh(ehci_soft_qh_t *sqh)
1814 ehci_qh_t *qh = sqh->qh;
1819 usb_syncmem(&sqh->dma, sqh->offs,
1820 sizeof(*sqh->qh), BUS_DMASYNC_POSTWRITE | BUS_DMASYNC_POSTREAD);
1822 DPRINTFN(10, "QH(%#jx) at %#jx:", (uintptr_t)sqh, sqh->physaddr, 0, 0);
1851 usb_syncmem(&sqh->dma, sqh->offs, sizeof(*sqh->qh),
1967 ehci_soft_qh_t *sqh;
2038 /* Allocate sqh for everything, save isoc xfers */
2040 sqh = ehci_alloc_sqh(sc);
2041 if (sqh == NULL)
2044 sqh->qh->qh_endp = htole32(
2054 sqh->qh->qh_endphub = htole32(
2061 sqh->qh->qh_endphub |= htole32(
2068 sqh->qh->qh_curqtd = EHCI_NULL;
2070 sqh->qh->qh_qtd.qtd_next = EHCI_NULL;
2071 sqh->qh->qh_qtd.qtd_altnext = EHCI_NULL;
2072 sqh->qh->qh_qtd.qtd_status = htole32(0);
2074 ehci_qtd_t *qh_qtd = &sqh->qh->qh_qtd;
2080 usb_syncmem(&sqh->dma, sqh->offs, sizeof(*sqh->qh),
2082 epipe->sqh = sqh;
2084 sqh = NULL;
2101 ehci_add_qh(sc, sqh, sc->sc_async_head);
2107 ehci_add_qh(sc, sqh, sc->sc_async_head);
2127 err = ehci_device_setintr(sc, sqh, ival);
2158 if (sqh != NULL) {
2160 ehci_free_sqh(sc, sqh);
2170 ehci_add_qh(ehci_softc_t *sc, ehci_soft_qh_t *sqh, ehci_soft_qh_t *head)
2180 sqh->next = head->next;
2181 sqh->qh->qh_link = head->qh->qh_link;
2183 usb_syncmem(&sqh->dma, sqh->offs + offsetof(ehci_qh_t, qh_link),
2184 sizeof(sqh->qh->qh_link), BUS_DMASYNC_PREWRITE);
2186 head->next = sqh;
2187 head->qh->qh_link = htole32(sqh->physaddr | EHCI_LINK_QH);
2194 ehci_dump_sqh(sqh);
2203 ehci_rem_qh(ehci_softc_t *sc, ehci_soft_qh_t *sqh, ehci_soft_qh_t *head)
2210 for (p = head; p != NULL && p->next != sqh; p = p->next)
2214 usb_syncmem(&sqh->dma, sqh->offs + offsetof(ehci_qh_t, qh_link),
2215 sizeof(sqh->qh->qh_link), BUS_DMASYNC_POSTWRITE);
2216 p->next = sqh->next;
2217 p->qh->qh_link = sqh->qh->qh_link;
2225 ehci_set_qh_qtd(ehci_soft_qh_t *sqh, ehci_soft_qtd_t *sqtd)
2230 usb_syncmem(&sqh->dma, sqh->offs, sizeof(*sqh->qh),
2232 status = sqh->qh->qh_qtd.qtd_status &
2236 sqh->qh->qh_qtd.qtd_status =
2238 usb_syncmem(&sqh->dma,
2239 sqh->offs + offsetof(ehci_qh_t, qh_qtd.qtd_status),
2240 sizeof(sqh->qh->qh_qtd.qtd_status),
2242 sqh->qh->qh_curqtd = 0;
2243 sqh->qh->qh_qtd.qtd_next = htole32(sqtd->physaddr);
2244 sqh->qh->qh_qtd.qtd_altnext = EHCI_NULL;
2246 sqh->qh->qh_qtd.qtd_buffer[n] = 0;
2247 sqh->qh->qh_qtd.qtd_buffer_hi[n] = 0;
2250 sqh->sqtd = sqtd;
2251 usb_syncmem(&sqh->dma, sqh->offs, sizeof(*sqh->qh),
2254 sqh->qh->qh_qtd.qtd_status = status;
2255 usb_syncmem(&sqh->dma,
2256 sqh->offs + offsetof(ehci_qh_t, qh_qtd.qtd_status),
2257 sizeof(sqh->qh->qh_qtd.qtd_status),
2907 ehci_soft_qh_t *sqh;
2931 kmem_zalloc(sizeof(*sqh) * EHCI_QH_CHUNK, KM_SLEEP);
2940 sqh
2941 sqh->qh = KERNADDR(&dma, offs);
2942 sqh->physaddr = BUS_ADDR_LO32(baddr);
2943 sqh->dma = dma;
2944 sqh->offs = offs;
2946 sqh->next = sc->sc_freeqhs;
2947 sc->sc_freeqhs = sqh;
2950 sqh = sc->sc_freeqhs;
2951 sc->sc_freeqhs = sqh->next;
2954 memset(sqh->qh, 0, sizeof(*sqh->qh));
2955 sqh->next = NULL;
2957 return sqh;
2961 ehci_free_sqh(ehci_softc_t *sc, ehci_soft_qh_t *sqh)
2965 sqh->next = sc->sc_freeqhs;
2966 sc->sc_freeqhs = sqh;
3369 ehci_soft_qh_t *sqh = epipe->sqh;
3373 ehci_rem_qh(sc, sqh, head);
3374 ehci_free_sqh(sc, epipe->sqh);
3389 ehci_soft_qh_t *sqh = epipe->sqh;
3417 usb_syncmem(&sqh->dma,
3418 sqh->offs + offsetof(ehci_qh_t, qh_qtd.qtd_status),
3419 sizeof(sqh->qh->qh_qtd.qtd_status),
3421 qhstatus = sqh->qh->qh_qtd.qtd_status;
3422 sqh->qh->qh_qtd.qtd_status = qhstatus | htole32(EHCI_QTD_HALTED);
3423 usb_syncmem(&sqh->dma,
3424 sqh->offs + offsetof(ehci_qh_t, qh_qtd.qtd_status),
3425 sizeof(sqh->qh->qh_qtd.qtd_status),
3463 usb_syncmem(&sqh->dma,
3464 sqh->offs + offsetof(ehci_qh_t, qh_curqtd),
3465 sizeof(sqh->qh->qh_curqtd),
3467 cur = EHCI_LINK_ADDR(le32toh(sqh->qh->qh_curqtd));
3478 sqh->qh->qh_curqtd = htole32(sqtd->physaddr); /* unlink qTDs */
3479 usb_syncmem(&sqh->dma,
3480 sqh->offs + offsetof(ehci_qh_t, qh_curqtd),
3481 sizeof(sqh->qh->qh_curqtd),
3483 sqh->qh->qh_qtd.qtd_status = qhstatus;
3484 usb_syncmem(&sqh->dma,
3485 sqh->offs + offsetof(ehci_qh_t, qh_qtd.qtd_status),
3486 sizeof(sqh->qh->qh_qtd.qtd_status),
3490 usb_syncmem(&sqh->dma,
3491 sqh->offs + offsetof(ehci_qh_t, qh_curqtd),
3492 sizeof(sqh->qh->qh_curqtd),
3714 ehci_soft_qh_t *sqh;
3734 sqh = epipe->sqh;
3736 KASSERTMSG(EHCI_QH_GET_ADDR(le32toh(sqh->qh->qh_endp)) == epipe->pipe.up_dev->ud_addr,
3738 EHCI_QH_GET_ADDR(le32toh(sqh->qh->qh_endp)),
3740 KASSERTMSG(EHCI_QH_GET_MPL(le32toh(sqh->qh->qh_endp)) ==
3743 EHCI_QH_GET_MPL(le32toh(sqh->qh->qh_endp)),
3832 ehci_dump_sqh(sqh);
3837 /* Insert qTD in QH list - also does usb_syncmem(sqh) */
3838 ehci_set_qh_qtd(sqh, setup);
3849 ehci_dump_sqh(sqh);
3978 ehci_soft_qh_t *sqh;
3998 sqh = epipe->sqh;
4014 ehci_dump_sqh(sqh);
4023 /* also does usb_syncmem(sqh) */
4024 ehci_set_qh_qtd(sqh, exfer->ex_sqtdstart);
4039 DPRINTF("sqh:", 0, 0, 0, 0);
4040 ehci_dump_sqh(sqh);
4099 ehci_device_setintr(ehci_softc_t *sc, ehci_soft_qh_t *sqh, int ival)
4114 sqh->islot = islot;
4117 ehci_add_qh(sc, sqh, isp->sqh);
4178 ehci_soft_qh_t *sqh;
4197 sqh = epipe->sqh;
4213 ehci_dump_sqh(sqh);
4222 /* also does usb_syncmem(sqh) */
4223 ehci_set_qh_qtd(sqh, exfer->ex_sqtdstart);
4234 DPRINTFN(5, "sqh:", 0, 0, 0, 0);
4235 ehci_dump_sqh(sqh);
4267 isp = &sc->sc_islots[epipe->sqh->islot];
4268 ehci_close_pipe(pipe, isp->sqh);