--- ehci.c (revision 223868) +++ ehci.c (local) @@ -354,12 +354,9 @@ htohc32(sc, EHCI_QH_SET_MULT(1)); qh->qh_curqtd = 0; - qh->qh_qtd.qtd_next = - htohc32(sc, EHCI_LINK_TERMINATE); - qh->qh_qtd.qtd_altnext = - htohc32(sc, EHCI_LINK_TERMINATE); - qh->qh_qtd.qtd_status = - htohc32(sc, EHCI_QTD_HALTED); + qh->qh_qtd.qtd_next = sc->sc_terminate_self; + qh->qh_qtd.qtd_altnext = sc->sc_terminate_self; + qh->qh_qtd.qtd_status = htohc32(sc, EHCI_QTD_HALTED); } /* @@ -394,7 +391,7 @@ qh = sc->sc_intr_p_last[0]; /* the last (1ms) QH terminates */ - qh->qh_link = htohc32(sc, EHCI_LINK_TERMINATE); + qh->qh_link = sc->sc_terminate_self; } for (i = 0; i < EHCI_VIRTUAL_FRAMELIST_COUNT; i++) { ehci_sitd_t *sitd; @@ -497,8 +494,8 @@ qh->qh_curqtd = 0; /* fill the overlay qTD */ - qh->qh_qtd.qtd_next = htohc32(sc, EHCI_LINK_TERMINATE); - qh->qh_qtd.qtd_altnext = htohc32(sc, EHCI_LINK_TERMINATE); + qh->qh_qtd.qtd_next = sc->sc_terminate_self; + qh->qh_qtd.qtd_altnext = sc->sc_terminate_self; qh->qh_qtd.qtd_status = htohc32(sc, EHCI_QTD_HALTED); } /* flush all cache into memory */