From e26f3a113ffe311ba2f95e371dfc9646e4533898 Mon Sep 17 00:00:00 2001 From: Niels Sascha Reedijk Date: Mon, 25 Sep 2006 17:55:21 +0000 Subject: [PATCH] Now the ports are powered on and seem to work... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18928 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/busses/usb/ohci.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/add-ons/kernel/busses/usb/ohci.cpp b/src/add-ons/kernel/busses/usb/ohci.cpp index b8bc69db90..a3bf79aa2e 100644 --- a/src/add-ons/kernel/busses/usb/ohci.cpp +++ b/src/add-ons/kernel/busses/usb/ohci.cpp @@ -329,6 +329,15 @@ OHCI::OHCI(pci_info *info, Stack *stack) uint32 interval = OHCI_GET_IVAL(frameinterval); WriteReg(OHCI_PERIODIC_START, OHCI_PERIODIC(interval)); + //Work on some Roothub settings + uint32 desca = ReadReg(OHCI_RH_DESCRIPTOR_A); + WriteReg(OHCI_RH_DESCRIPTOR_A, desca | OHCI_NOCP); //FreeBSD source does this to avoid a chip bug + //Enable power + WriteReg(OHCI_RH_STATUS, OHCI_LPSC); + snooze(5000); //Wait for power to stabilize (5ms) + WriteReg(OHCI_RH_DESCRIPTOR_A, desca); + snooze(5000); //Delay required by the AMD756 because else the # of ports might be misread + fInitOK = true; }