Ticket #7449: ehci.5.patch
File ehci.5.patch, 2.4 KB (added by , 13 years ago) |
---|
-
home/gabe/haiku/haiku/src/add-ons/kernel/busses/usb/ehci.cpp
381 381 382 382 uint32 frameListSize = (ReadOpReg(EHCI_USBCMD) >> EHCI_USBCMD_FLS_SHIFT) 383 383 & EHCI_USBCMD_FLS_MASK; 384 WriteOpReg(EHCI_USBCMD, ReadOpReg(EHCI_USBCMD) | EHCI_USBCMD_RUNSTOP 385 | EHCI_USBCMD_ASENABLE | EHCI_USBCMD_PSENABLE 386 | (frameListSize << EHCI_USBCMD_FLS_SHIFT) 387 | (1 << EHCI_USBCMD_ITC_SHIFT)); 384 // frameListSizes defined by values between 00b and 10b. 11b is Reserved 385 if (frameListSize > 2) { 386 TRACE_ERROR("unsupported frame list size (%lu)\n", frameListSize); 387 return B_ERROR; 388 } 388 389 390 uint32 opRegInput = ReadOpReg(EHCI_USBCMD); 391 opRegInput = opRegInput & ~(EHCI_USBCMD_ITC_MASK << EHCI_USBCMD_ITC_SHIFT); 392 opRegInput = opRegInput | EHCI_USBCMD_RUNSTOP 393 | EHCI_USBCMD_ASENABLE | EHCI_USBCMD_PSENABLE 394 | (frameListSize << EHCI_USBCMD_FLS_SHIFT) 395 | (1 << EHCI_USBCMD_ITC_SHIFT); 396 397 bool asyncParkCapable = (ReadCapReg32(EHCI_HCCPARAMS) 398 & EHCI_HCCPARAMS_ASPM_MASK) != 0; 399 if (asyncParkCapable) { 400 opRegInput = opRegInput 401 & ~(EHCI_USBCMD_ASPMC_MASK << EHCI_USBCMD_ASPMC_SHIFT); 402 opRegInput = opRegInput | EHCI_USBCMD_ASPME 403 | (0x03 << EHCI_USBCMD_ASPMC_SHIFT); 404 } 405 406 WriteOpReg(EHCI_USBCMD, opRegInput); 407 389 408 bool running = false; 390 409 for (int32 i = 0; i < 10; i++) { 391 410 uint32 status = ReadOpReg(EHCI_USBSTS); … … 400 419 } 401 420 402 421 if (!running) { 403 TRACE ("host controller didn't start\n");422 TRACE_ERROR("host controller didn't start\n"); 404 423 return B_ERROR; 405 424 } 406 425 -
home/gabe/haiku/haiku/src/add-ons/kernel/busses/usb/ehci_hardware.h
14 14 #define EHCI_HCIVERSION 0x02 // Interface Version Number 15 15 #define EHCI_HCSPARAMS 0x04 // Structural Parameters 16 16 #define EHCI_HCCPARAMS 0x08 // Capability Parameters 17 #define EHCI_HCCPARAMS_ASPM_MASK 0x04 // Asynchronous Schedule Park Mode 17 18 #define EHCI_HCSP_PORTROUTE 0x0c // Companion Port Route Description 18 19 19 20