mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-31 19:26:42 +00:00
[USBEHCI]
- When releasing a low or full speed device, set the EHCI_PRT_RELEASEOWNERSHIP bit with the current port status so that any change bits are acknowledged - Fixes detecting new devices after a companion controller handoff svn path=/trunk/; revision=55742
This commit is contained in:
@@ -963,7 +963,7 @@ CUSBHardwareDevice::ResetPort(
|
||||
if (PortStatus & EHCI_PRT_SLOWSPEEDLINE)
|
||||
{
|
||||
DPRINT1("Non HighSpeed device. Releasing Ownership\n");
|
||||
EHCI_WRITE_REGISTER_ULONG(EHCI_PORTSC + (4 * PortIndex), EHCI_PRT_RELEASEOWNERSHIP);
|
||||
EHCI_WRITE_REGISTER_ULONG(EHCI_PORTSC + (4 * PortIndex), PortStatus | EHCI_PRT_RELEASEOWNERSHIP);
|
||||
return STATUS_DEVICE_NOT_CONNECTED;
|
||||
}
|
||||
|
||||
@@ -1132,7 +1132,7 @@ CUSBHardwareDevice::ClearPortStatus(
|
||||
if (Value & EHCI_PRT_SLOWSPEEDLINE)
|
||||
{
|
||||
DPRINT1("Non HighSpeed device. Releasing Ownership\n");
|
||||
EHCI_WRITE_REGISTER_ULONG(EHCI_PORTSC + (4 * PortId), EHCI_PRT_RELEASEOWNERSHIP);
|
||||
EHCI_WRITE_REGISTER_ULONG(EHCI_PORTSC + (4 * PortId), Value | EHCI_PRT_RELEASEOWNERSHIP);
|
||||
return STATUS_DEVICE_NOT_CONNECTED;
|
||||
}
|
||||
|
||||
@@ -1478,9 +1478,6 @@ EhciDefferedRoutine(
|
||||
{
|
||||
DPRINT1("Device connected on port %d\n", i);
|
||||
|
||||
//
|
||||
//FIXME: Determine device speed
|
||||
//
|
||||
if (This->m_Capabilities.HCSParams.CHCCount)
|
||||
{
|
||||
if (PortStatus & EHCI_PRT_ENABLED)
|
||||
@@ -1491,7 +1488,7 @@ EhciDefferedRoutine(
|
||||
if (PortStatus & EHCI_PRT_SLOWSPEEDLINE)
|
||||
{
|
||||
DPRINT1("Non HighSpeed device connected. Release ownership\n");
|
||||
This->EHCI_WRITE_REGISTER_ULONG(EHCI_PORTSC + (4 * i), EHCI_PRT_RELEASEOWNERSHIP);
|
||||
This->EHCI_WRITE_REGISTER_ULONG(EHCI_PORTSC + (4 * i), PortStatus | EHCI_PRT_RELEASEOWNERSHIP);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user