⛏️ index : haiku.git

author Michael Lotz <mmlr@mlotz.ch> 2011-05-23 22:04:15.0 +00:00:00
committer Michael Lotz <mmlr@mlotz.ch> 2011-05-23 22:04:15.0 +00:00:00
commit
84ba8d05f964689ec481a891dc2e0870ec41f37d [patch]
tree
9857fbdc5b2ba04d1e7d805fbc13a21cc490926d
parent
c372e0fe515a4b2165ada2f6fa138ba3ffd9792e
download
84ba8d05f964689ec481a891dc2e0870ec41f37d.tar.gz

Manually apply r41690 to the r1alpha3 branch as it fixes EHCI interrupt issues on some chipsets.

git-svn-id: file:///srv/svn/repos/haiku/haiku/branches/releases/r1alpha3@41693 a95241bf-73f2-0310-859d-f6bbb57e9c96

Diff

 src/add-ons/kernel/busses/usb/ehci.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/add-ons/kernel/busses/usb/ehci.cpp b/src/add-ons/kernel/busses/usb/ehci.cpp
index b1ec9e5..067892d 100644
--- a/src/add-ons/kernel/busses/usb/ehci.cpp
+++ b/src/add-ons/kernel/busses/usb/ehci.cpp
@@ -524,9 +524,12 @@
	TRACE("starting EHCI host controller\n");
	TRACE("usbcmd: 0x%08lx; usbsts: 0x%08lx\n", ReadOpReg(EHCI_USBCMD), ReadOpReg(EHCI_USBSTS));

	uint32 frameListSize = (ReadOpReg(EHCI_USBCMD) >> EHCI_USBCMD_FLS_SHIFT)
	uint32 config = ReadOpReg(EHCI_USBCMD);
	config &= ~(EHCI_USBCMD_ITC_MASK << EHCI_USBCMD_ITC_SHIFT);
	uint32 frameListSize = (config >> EHCI_USBCMD_FLS_SHIFT)
		& EHCI_USBCMD_FLS_MASK;
	WriteOpReg(EHCI_USBCMD, ReadOpReg(EHCI_USBCMD) | EHCI_USBCMD_RUNSTOP

	WriteOpReg(EHCI_USBCMD, config | EHCI_USBCMD_RUNSTOP
		| EHCI_USBCMD_ASENABLE | EHCI_USBCMD_PSENABLE
		| (frameListSize << EHCI_USBCMD_FLS_SHIFT)
		| (1 << EHCI_USBCMD_ITC_SHIFT));