mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 18:15:11 +00:00
[i8042prt]
fix keyboard detection on Dell D531 notebook and on other devices with PS/2 multiplexing controllers svn path=/trunk/; revision=62517
This commit is contained in:
parent
2b427f2fba
commit
14f804f6a4
3 changed files with 15 additions and 6 deletions
|
@ -437,6 +437,7 @@ StartProcedure(
|
|||
Status = EnableInterrupts(DeviceExtension, FlagsToDisable, FlagsToEnable);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
WARN_(I8042PRT, "EnableInterrupts failed: %lx\n", Status);
|
||||
DeviceExtension->Flags &= ~(KEYBOARD_PRESENT | MOUSE_PRESENT);
|
||||
return Status;
|
||||
}
|
||||
|
@ -454,6 +455,10 @@ StartProcedure(
|
|||
{
|
||||
DeviceExtension->Flags |= KEYBOARD_INITIALIZED;
|
||||
}
|
||||
else
|
||||
{
|
||||
WARN_(I8042PRT, "i8042ConnectKeyboardInterrupt failed: %lx\n", Status);
|
||||
}
|
||||
}
|
||||
|
||||
if (DeviceExtension->Flags & MOUSE_PRESENT &&
|
||||
|
@ -467,7 +472,11 @@ StartProcedure(
|
|||
{
|
||||
DeviceExtension->Flags |= MOUSE_INITIALIZED;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
WARN_(I8042PRT, "i8042ConnectMouseInterrupt failed: %lx\n", Status);
|
||||
}
|
||||
|
||||
/* Start the mouse */
|
||||
Irql = KeAcquireInterruptSpinLock(DeviceExtension->HighestDIRQLInterrupt);
|
||||
i8042IsrWritePort(DeviceExtension, MOU_CMD_RESET, CTRL_WRITE_MOUSE);
|
||||
|
@ -533,7 +542,7 @@ i8042PnpStartDevice(
|
|||
{
|
||||
if (ResourceDescriptor->u.Port.Length == 1)
|
||||
{
|
||||
/* We assume that the first ressource will
|
||||
/* We assume that the first resource will
|
||||
* be the control port and the second one
|
||||
* will be the data port...
|
||||
*/
|
||||
|
@ -551,8 +560,8 @@ i8042PnpStartDevice(
|
|||
}
|
||||
else
|
||||
{
|
||||
WARN_(I8042PRT, "Too much I/O ranges provided: 0x%lx\n", ResourceDescriptor->u.Port.Length);
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
/* FIXME: implement PS/2 Active Multiplexing */
|
||||
ERR_(I8042PRT, "Unhandled I/O ranges provided: 0x%lx\n", ResourceDescriptor->u.Port.Length);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
* Notes:
|
||||
* This driver was obsoleted in Windows XP and most functions
|
||||
* became pure stubs. But some of them were retained for backward
|
||||
* compatibilty with existing drivers.
|
||||
* compatibility with existing drivers.
|
||||
*
|
||||
* Preserved functions:
|
||||
*
|
||||
|
|
|
@ -648,7 +648,7 @@ IopStartDevice2(IN PDEVICE_OBJECT DeviceObject)
|
|||
|
||||
ASSERT(!(DeviceNode->Flags & DNF_DISABLED));
|
||||
|
||||
/* Build the I/O stack locaiton */
|
||||
/* Build the I/O stack location */
|
||||
RtlZeroMemory(&Stack, sizeof(IO_STACK_LOCATION));
|
||||
Stack.MajorFunction = IRP_MJ_PNP;
|
||||
Stack.MinorFunction = IRP_MN_START_DEVICE;
|
||||
|
|
Loading…
Reference in a new issue