diff options
| author | Hidetoshi Shimokawa <simokawa@FreeBSD.org> | 2003-01-29 15:32:35 +0000 |
|---|---|---|
| committer | Hidetoshi Shimokawa <simokawa@FreeBSD.org> | 2003-01-29 15:32:35 +0000 |
| commit | 7054e8482e9104b248993e36e3cd0476f78a2adb (patch) | |
| tree | 07ab66f03ac7f1aef6d1069d6523e1db73012070 /sys/dev | |
| parent | 501901c61d1488b11f2d46275ec8ad9d2444b7a1 (diff) | |
Notes
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/firewire/fwohci.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/sys/dev/firewire/fwohci.c b/sys/dev/firewire/fwohci.c index c6516225045c..a05becfad0d0 100644 --- a/sys/dev/firewire/fwohci.c +++ b/sys/dev/firewire/fwohci.c @@ -586,15 +586,15 @@ fwohci_init(struct fwohci_softc *sc, device_t dev) device_printf(dev, "OHCI version %x.%x (ROM=%d)\n", (reg>>16) & 0xff, reg & 0xff, (reg>>24) & 1); -/* XXX: Available Isochrounous DMA channel probe */ - for( i = 0 ; i < 0x20 ; i ++ ){ - OWRITE(sc, OHCI_IRCTL(i), OHCI_CNTL_DMA_RUN); - reg = OREAD(sc, OHCI_IRCTL(i)); - if(!(reg & OHCI_CNTL_DMA_RUN)) break; - OWRITE(sc, OHCI_ITCTL(i), OHCI_CNTL_DMA_RUN); - reg = OREAD(sc, OHCI_ITCTL(i)); - if(!(reg & OHCI_CNTL_DMA_RUN)) break; - } +/* Available Isochrounous DMA channel probe */ + OWRITE(sc, OHCI_IT_MASK, 0xffffffff); + OWRITE(sc, OHCI_IR_MASK, 0xffffffff); + reg = OREAD(sc, OHCI_IT_MASK) & OREAD(sc, OHCI_IR_MASK); + OWRITE(sc, OHCI_IT_MASKCLR, 0xffffffff); + OWRITE(sc, OHCI_IR_MASKCLR, 0xffffffff); + for (i = 0; i < 0x20; i++) + if ((reg & (1 << i)) == 0) + break; sc->fc.nisodma = i; device_printf(dev, "No. of Isochronous channel is %d.\n", i); |
