[I8042PRT]

- Revert hack from r63126 to make some notebook controllers work, and which also broke the mouse wheel on other systems, and replace it with an #ifdef.
See CORE-6901, CORE-4048, CORE-8572 

svn path=/trunk/; revision=66762
This commit is contained in:
Timo Kreuzer 2015-03-17 19:58:14 +00:00
parent a8b91177ab
commit 1d21ec19a9

View file

@ -476,13 +476,15 @@ StartProcedure(
{ {
WARN_(I8042PRT, "i8042ConnectMouseInterrupt failed: %lx\n", Status); WARN_(I8042PRT, "i8042ConnectMouseInterrupt failed: %lx\n", Status);
} }
/* Start the mouse */ /* Start the mouse */
Irql = KeAcquireInterruptSpinLock(DeviceExtension->HighestDIRQLInterrupt); Irql = KeAcquireInterruptSpinLock(DeviceExtension->HighestDIRQLInterrupt);
/* HACK: the mouse has already been reset in i8042DetectMouse. This second /* HACK: the mouse has already been reset in i8042DetectMouse. This second
reset prevents some touchpads/mice from working (Dell D531, D600). reset prevents some touchpads/mice from working (Dell D531, D600).
See CORE-6901 See CORE-6901 */
i8042IsrWritePort(DeviceExtension, MOU_CMD_RESET, CTRL_WRITE_MOUSE); */ #ifndef __I8042PRT_HACK_FOR_NOTEBOOK__
i8042IsrWritePort(DeviceExtension, MOU_CMD_RESET, CTRL_WRITE_MOUSE);
#endif
KeReleaseInterruptSpinLock(DeviceExtension->HighestDIRQLInterrupt, Irql); KeReleaseInterruptSpinLock(DeviceExtension->HighestDIRQLInterrupt, Irql);
} }
@ -654,13 +656,13 @@ i8042RemoveDevice(
DriverExtension = (PI8042_DRIVER_EXTENSION)IoGetDriverObjectExtension(DeviceObject->DriverObject, DeviceObject->DriverObject); DriverExtension = (PI8042_DRIVER_EXTENSION)IoGetDriverObjectExtension(DeviceObject->DriverObject, DeviceObject->DriverObject);
DeviceExtension = (PFDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension; DeviceExtension = (PFDO_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
KeAcquireSpinLock(&DriverExtension->DeviceListLock, &OldIrql); KeAcquireSpinLock(&DriverExtension->DeviceListLock, &OldIrql);
RemoveEntryList(&DeviceExtension->ListEntry); RemoveEntryList(&DeviceExtension->ListEntry);
KeReleaseSpinLock(&DriverExtension->DeviceListLock, OldIrql); KeReleaseSpinLock(&DriverExtension->DeviceListLock, OldIrql);
IoDetachDevice(DeviceExtension->LowerDevice); IoDetachDevice(DeviceExtension->LowerDevice);
IoDeleteDevice(DeviceObject); IoDeleteDevice(DeviceObject);
} }