Lines Matching defs:sqh
142 uhci_soft_qh_t *sqh;
154 uhci_soft_qh_t *sqh;
405 uhci_find_prev_qh(uhci_soft_qh_t *pqh, uhci_soft_qh_t *sqh)
408 DPRINTFN(15, "pqh=%#jx sqh=%#jx", (uintptr_t)pqh, (uintptr_t)sqh, 0, 0);
410 for (; pqh->hlink != sqh; pqh = pqh->hlink) {
437 uhci_soft_qh_t *clsqh, *chsqh, *bsqh, *sqh, *lsqh;
542 sqh = uhci_alloc_sqh(sc);
543 if (std == NULL || sqh == NULL)
545 std->link.sqh = sqh;
546 std->td.td_link = htole32(sqh->physaddr | UHCI_PTR_QH);
552 sqh->hlink = clsqh;
553 sqh->qh.qh_hlink = htole32(clsqh->physaddr | UHCI_PTR_QH);
554 sqh->elink = NULL;
555 sqh->qh.qh_elink = htole32(UHCI_PTR_T);
556 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh),
560 sc->sc_vframes[i].hqh = sqh;
561 sc->sc_vframes[i].eqh = sqh;
844 uhci_dump_qh(uhci_soft_qh_t *sqh)
848 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh),
851 DPRINTF("QH(%#jx) at 0x%08jx: hlink=%08jx elink=%08jx", (uintptr_t)sqh,
852 (int)sqh->physaddr, le32toh(sqh->qh.qh_hlink),
853 le32toh(sqh->qh.qh_elink));
855 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh), BUS_DMASYNC_PREREAD);
877 uhci_dump_qhs(uhci_soft_qh_t *sqh)
881 uhci_dump_qh(sqh);
898 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh),
900 if (sqh->hlink != NULL && !(le32toh(sqh->qh.qh_hlink) & UHCI_PTR_T))
901 uhci_dump_qhs(sqh->hlink);
904 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh), BUS_DMASYNC_PREREAD);
906 if (sqh->elink != NULL && !(le32toh(sqh->qh.qh_elink) & UHCI_PTR_T))
907 uhci_dump_tds(sqh->elink);
1129 uhci_add_hs_ctrl(uhci_softc_t *sc, uhci_soft_qh_t *sqh)
1137 DPRINTFN(10, "sqh %#jx", (uintptr_t)sqh, 0, 0, 0);
1142 sqh->hlink = eqh->hlink;
1143 sqh->qh.qh_hlink = eqh->qh.qh_hlink;
1144 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh),
1146 eqh->hlink = sqh;
1147 eqh->qh.qh_hlink = htole32(sqh->physaddr | UHCI_PTR_QH);
1148 sc->sc_hctl_end = sqh;
1158 uhci_remove_hs_ctrl(uhci_softc_t *sc, uhci_soft_qh_t *sqh)
1166 DPRINTFN(10, "sqh %#jx", (uintptr_t)sqh, 0, 0, 0);
1181 * sqh->hlink.
1183 usb_syncmem(&sqh->dma, sqh->offs + offsetof(uhci_qh_t, qh_elink),
1184 sizeof(sqh->qh.qh_elink),
1186 elink = le32toh(sqh->qh.qh_elink);
1187 usb_syncmem(&sqh->dma, sqh->offs + offsetof(uhci_qh_t, qh_elink),
1188 sizeof(sqh->qh.qh_elink), BUS_DMASYNC_PREREAD);
1190 sqh->qh.qh_elink = htole32(UHCI_PTR_T);
1191 usb_syncmem(&sqh->dma,
1192 sqh->offs + offsetof(uhci_qh_t, qh_elink),
1193 sizeof(sqh->qh.qh_elink),
1198 pqh = uhci_find_prev_qh(sc->sc_hctl_start, sqh);
1199 usb_syncmem(&sqh->dma, sqh->offs + offsetof(uhci_qh_t, qh_hlink),
1200 sizeof(sqh->qh.qh_hlink), BUS_DMASYNC_POSTWRITE);
1201 pqh->hlink = sqh->hlink;
1202 pqh->qh.qh_hlink = sqh->qh.qh_hlink;
1206 if (sc->sc_hctl_end == sqh)
1212 uhci_add_ls_ctrl(uhci_softc_t *sc, uhci_soft_qh_t *sqh)
1219 DPRINTFN(10, "sqh %#jx", (uintptr_t)sqh, 0, 0, 0);
1224 sqh->hlink = eqh->hlink;
1225 sqh->qh.qh_hlink = eqh->qh.qh_hlink;
1226 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh),
1228 eqh->hlink = sqh;
1229 eqh->qh.qh_hlink = htole32(sqh->physaddr | UHCI_PTR_QH);
1232 sc->sc_lctl_end = sqh;
1237 uhci_remove_ls_ctrl(uhci_softc_t *sc, uhci_soft_qh_t *sqh)
1245 DPRINTFN(10, "sqh %#jx", (uintptr_t)sqh, 0, 0, 0);
1248 usb_syncmem(&sqh->dma, sqh->offs + offsetof(uhci_qh_t, qh_elink),
1249 sizeof(sqh->qh.qh_elink),
1251 elink = le32toh(sqh->qh.qh_elink);
1252 usb_syncmem(&sqh->dma, sqh->offs + offsetof(uhci_qh_t, qh_elink),
1253 sizeof(sqh->qh.qh_elink), BUS_DMASYNC_PREREAD);
1255 sqh->qh.qh_elink = htole32(UHCI_PTR_T);
1256 usb_syncmem(&sqh->dma,
1257 sqh->offs + offsetof(uhci_qh_t, qh_elink),
1258 sizeof(sqh->qh.qh_elink),
1262 pqh = uhci_find_prev_qh(sc->sc_lctl_start, sqh);
1263 usb_syncmem(&sqh->dma, sqh->offs + offsetof(uhci_qh_t, qh_hlink),
1264 sizeof(sqh->qh.qh_hlink), BUS_DMASYNC_POSTWRITE);
1265 pqh->hlink = sqh->hlink;
1266 pqh->qh.qh_hlink = sqh->qh.qh_hlink;
1271 if (sc->sc_lctl_end == sqh)
1277 uhci_add_bulk(uhci_softc_t *sc, uhci_soft_qh_t *sqh)
1284 DPRINTFN(10, "sqh %#jx", (uintptr_t)sqh, 0, 0, 0);
1289 sqh->hlink = eqh->hlink;
1290 sqh->qh.qh_hlink = eqh->qh.qh_hlink;
1291 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh),
1293 eqh->hlink = sqh;
1294 eqh->qh.qh_hlink = htole32(sqh->physaddr | UHCI_PTR_QH);
1297 sc->sc_bulk_end = sqh;
1303 uhci_remove_bulk(uhci_softc_t *sc, uhci_soft_qh_t *sqh)
1310 DPRINTFN(10, "sqh %#jx", (uintptr_t)sqh, 0, 0, 0);
1314 usb_syncmem(&sqh->dma, sqh->offs + offsetof(uhci_qh_t, qh_elink),
1315 sizeof(sqh->qh.qh_elink),
1317 if (!(sqh->qh.qh_elink & htole32(UHCI_PTR_T))) {
1318 sqh->qh.qh_elink = htole32(UHCI_PTR_T);
1319 usb_syncmem(&sqh->dma,
1320 sqh->offs + offsetof(uhci_qh_t, qh_elink),
1321 sizeof(sqh->qh.qh_elink),
1325 pqh = uhci_find_prev_qh(sc->sc_bulk_start, sqh);
1326 usb_syncmem(&sqh->dma, sqh->offs + offsetof(uhci_qh_t, qh_hlink),
1327 sizeof(sqh->qh.qh_hlink), BUS_DMASYNC_POSTWRITE);
1328 pqh->hlink = sqh->hlink;
1329 pqh->qh.qh_hlink = sqh->qh.qh_hlink;
1333 if (sc->sc_bulk_end == sqh)
1574 uhci_soft_qh_t *sqh = upipe->ctrl.sqh;
1581 sqh->qh.qh_elink =
1583 usb_syncmem(&sqh->dma, sqh->offs, sizeof(sqh->qh),
1891 uhci_soft_qh_t *sqh;
1910 sqh = KERNADDR(&dma, offs);
1911 sqh->physaddr = DMAADDR(&dma, offs);
1912 sqh->dma = dma;
1913 sqh->offs = offs;
1914 sqh->hlink = sc->sc_freeqhs;
1915 sc->sc_freeqhs = sqh;
1918 sqh = sc->sc_freeqhs;
1919 sc->sc_freeqhs = sqh->hlink;
1922 memset(&sqh->qh, 0, sizeof(uhci_qh_t));
1924 return sqh;
1928 uhci_free_sqh(uhci_softc_t *sc, uhci_soft_qh_t *sqh)
1932 sqh->hlink = sc->sc_freeqhs;
1933 sc->sc_freeqhs = sqh;
2262 uhci_soft_qh_t *sqh;
2282 sqh = upipe->bulk.sqh;
2309 sqh->elink = data;
2310 sqh->qh.qh_elink = htole32(data->physaddr | UHCI_PTR_TD);
2311 /* uhci_add_bulk() will do usb_syncmem(sqh) */
2313 uhci_add_bulk(sc, sqh);
2407 uhci_free_sqh(sc, upipe->bulk.sqh);
2481 uhci_soft_qh_t *sqh;
2506 sqh = upipe->ctrl.sqh;
2568 sqh->elink = setup;
2569 sqh->qh.qh_elink = htole32(setup->physaddr | UHCI_PTR_TD);
2570 /* uhci_add_?s_ctrl() will do usb_syncmem(sqh) */
2573 uhci_add_ls_ctrl(sc, sqh);
2575 uhci_add_hs_ctrl(sc, sqh);
2601 uhci_dump_qh(sqh);
2602 uhci_dump_tds(sqh->elink);
2667 uhci_soft_qh_t *sqh;
2716 sqh = upipe->intr.qhs[i];
2717 sqh->elink = data;
2718 sqh->qh.qh_elink = htole32(data->physaddr | UHCI_PTR_TD);
2719 usb_syncmem(&sqh->dma,
2720 sqh->offs + offsetof(uhci_qh_t, qh_elink),
2721 sizeof(sqh->qh.qh_elink),
2758 uhci_free_sqh(sc, upipe->ctrl.sqh);
3176 uhci_soft_qh_t *sqh;
3186 sqh = upipe->intr.qhs[i];
3187 sqh->elink = NULL;
3188 sqh->qh.qh_elink = htole32(UHCI_PTR_T);
3189 usb_syncmem(&sqh->dma,
3190 sqh->offs + offsetof(uhci_qh_t, qh_elink),
3191 sizeof(sqh->qh.qh_elink),
3216 uhci_remove_ls_ctrl(sc, upipe->ctrl.sqh);
3218 uhci_remove_hs_ctrl(sc, upipe->ctrl.sqh);
3246 uhci_remove_bulk(sc, upipe->bulk.sqh);
3258 uhci_add_intr(uhci_softc_t *sc, uhci_soft_qh_t *sqh)
3260 struct uhci_vframe *vf = &sc->sc_vframes[sqh->pos];
3264 DPRINTFN(4, "n=%jd sqh=%#jx", sqh->pos, (uintptr_t)sqh, 0, 0);
3269 sqh->hlink = eqh->hlink;
3270 sqh->qh.qh_hlink = eqh->qh.qh_hlink;
3271 usb_syncmem(&sqh->dma, sqh->offs + offsetof(uhci_qh_t, qh_hlink),
3272 sizeof(sqh->qh.qh_hlink), BUS_DMASYNC_PREWRITE);
3273 eqh->hlink = sqh;
3274 eqh->qh.qh_hlink = htole32(sqh->physaddr | UHCI_PTR_QH);
3277 vf->eqh = sqh;
3283 uhci_remove_intr(uhci_softc_t *sc, uhci_soft_qh_t *sqh)
3285 struct uhci_vframe *vf = &sc->sc_vframes[sqh->pos];
3289 DPRINTFN(4, "n=%jd sqh=%#jx", sqh->pos, (uintptr_t)sqh, 0, 0);
3293 usb_syncmem(&sqh->dma, sqh->offs + offsetof(uhci_qh_t, qh_elink),
3294 sizeof(sqh->qh.qh_elink),
3296 if (!(sqh->qh.qh_elink & htole32(UHCI_PTR_T))) {
3297 sqh->qh.qh_elink = htole32(UHCI_PTR_T);
3298 usb_syncmem(&sqh->dma,
3299 sqh->offs + offsetof(uhci_qh_t, qh_elink),
3300 sizeof(sqh->qh.qh_elink),
3305 pqh = uhci_find_prev_qh(vf->hqh, sqh);
3306 usb_syncmem(&sqh->dma, sqh->offs + offsetof(uhci_qh_t, qh_hlink),
3307 sizeof(sqh->qh.qh_hlink),
3309 pqh->hlink = sqh->hlink;
3310 pqh->qh.qh_hlink = sqh->qh.qh_hlink;
3315 if (vf->eqh == sqh)
3323 uhci_soft_qh_t *sqh;
3358 upipe->intr.qhs[i] = sqh = uhci_alloc_sqh(sc);
3359 sqh->elink = NULL;
3360 sqh->qh.qh_elink = htole32(UHCI_PTR_T);
3361 usb_syncmem(&sqh->dma,
3362 sqh->offs + offsetof(uhci_qh_t, qh_elink),
3363 sizeof(sqh->qh.qh_elink),
3365 sqh->pos = MOD(i * ival + bestoffs);
3417 upipe->ctrl.sqh = uhci_alloc_sqh(sc);
3418 if (upipe->ctrl.sqh == NULL)
3422 uhci_free_sqh(sc, upipe->ctrl.sqh);
3427 uhci_free_sqh(sc, upipe->ctrl.sqh);
3435 uhci_free_sqh(sc, upipe->ctrl.sqh);
3453 upipe->bulk.sqh = uhci_alloc_sqh(sc);
3454 if (upipe->bulk.sqh == NULL)