Generate a diagnistic dump on "Host Controller Halted".

This commit is contained in:
augustss 2000-04-14 14:11:36 +00:00
parent 8d9c5e8206
commit e1f94170e5
1 changed files with 19 additions and 8 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: uhci.c,v 1.109 2000/04/06 23:44:20 augustss Exp $ */ /* $NetBSD: uhci.c,v 1.110 2000/04/14 14:11:36 augustss Exp $ */
/* $FreeBSD: src/sys/dev/usb/uhci.c,v 1.33 1999/11/17 22:33:41 n_hibma Exp $ */ /* $FreeBSD: src/sys/dev/usb/uhci.c,v 1.33 1999/11/17 22:33:41 n_hibma Exp $ */
/* /*
@ -251,12 +251,14 @@ Static __inline__ uhci_soft_qh_t *uhci_find_prev_qh
__P((uhci_soft_qh_t *, uhci_soft_qh_t *)); __P((uhci_soft_qh_t *, uhci_soft_qh_t *));
#ifdef UHCI_DEBUG #ifdef UHCI_DEBUG
Static void uhci_dump_all __P((uhci_softc_t *));
Static void uhci_dumpregs __P((uhci_softc_t *)); Static void uhci_dumpregs __P((uhci_softc_t *));
Static void uhci_dump_qhs __P((uhci_soft_qh_t *)); Static void uhci_dump_qhs __P((uhci_soft_qh_t *));
Static void uhci_dump_qh __P((uhci_soft_qh_t *)); Static void uhci_dump_qh __P((uhci_soft_qh_t *));
Static void uhci_dump_tds __P((uhci_soft_td_t *)); Static void uhci_dump_tds __P((uhci_soft_td_t *));
Static void uhci_dump_td __P((uhci_soft_td_t *)); Static void uhci_dump_td __P((uhci_soft_td_t *));
Static void uhci_dump_ii __P((uhci_intr_info_t *ii)); Static void uhci_dump_ii __P((uhci_intr_info_t *ii));
Static void uhci_dump __P((void));
#endif #endif
#define UWRITE1(sc, r, x) bus_space_write_1((sc)->iot, (sc)->ioh, (r), (x)) #define UWRITE1(sc, r, x) bus_space_write_1((sc)->iot, (sc)->ioh, (r), (x))
@ -770,19 +772,24 @@ uhci_dump_qh(sqh)
} }
#if 0 #if 1
void void
uhci_dump() uhci_dump()
{ {
uhci_softc_t *sc = thesc; uhci_dump_all(thesc);
uhci_dumpregs(sc);
printf("intrs=%d\n", sc->sc_bus.no_intrs);
printf("framelist[i].link = %08x\n", sc->sc_framelist[0].link);
uhci_dump_qh(sc->sc_ctl_start->qh.hlink);
} }
#endif #endif
void
uhci_dump_all(sc)
uhci_softc_t *sc;
{
uhci_dumpregs(sc);
printf("intrs=%d\n", sc->sc_bus.no_intrs);
/*printf("framelist[i].link = %08x\n", sc->sc_framelist[0].link);*/
uhci_dump_qh(sc->sc_ctl_start);
}
void void
uhci_dump_qhs(sqh) uhci_dump_qhs(sqh)
@ -1062,6 +1069,10 @@ uhci_intr(arg)
printf("%s: host controller halted\n", printf("%s: host controller halted\n",
USBDEVNAME(sc->sc_bus.bdev)); USBDEVNAME(sc->sc_bus.bdev));
sc->sc_dying = 1; sc->sc_dying = 1;
#ifdef UHCI_DEBUG
uhci_dump_all(sc);
#endif
} }
if (ack) /* acknowledge the ints */ if (ack) /* acknowledge the ints */