PS/2 mouse (i8042prt) Fast Initialization checkbox

hi

For a PS/2 style mouse (driver based on the i8042prt sample) information under Device Manager, there is a checkbox setting under the Advanced Setting tab labeled “Fast Initialization”.

  1. What does this checkbox do?
  2. What is the difference between normal and fast initialization for the mouse?
  3. Does it affect the boot process and command sequence issued to the device?
  4. Does it affect device timeouts for commands/responses?
  5. In terms of the sample driver, how does this checkbox affect the code path? (I briefly searched for fast in the driver, but didn’t find that.)

I see that this checkbox apparently is used to fix drift issues of the mouse. How so?

thanks in advance

If set (the default), the i8042prt driver uses the mouse’s interrupt to asynchronously program the mouse on power up. If clear, the i8042prt driver will synchronously poll the device and block the start irp until the device has been initialized. Note that the async init is the same code path as when we detect that a mouse was unplugged/reinserted at runtime, so if your ps2 device can’t handle it, I would suggest fixing your device rather then the driver.

The same commands are sent in both cases.

The timeouts are bit different since you can poll while doing a synchronous init and only have a watch dog async timer in the interrupt case. The code that makes this check is in moudep.c, I8xInitializeMouse()

//
// If we are going to initialize the mouse via the interrupt (the default),
// then quit here
//
if (!deviceExtension->InitializePolled) {
Print(DBG_SS_NOISE, (“Initializing via the interrupt\n”));
return STATUS_SUCCESS;
}

The time savings are siginificant, it can be up to 10 seconds depending on if there is no wheel mouse attached (the knocking mechanism times out). This settings exists for some win2k era machines which could not handle that much ps2 mouse traffic in the ISR in a short period of time. These were primarily a couple of laptops which did not have a lot of market share. Everything else ran just fine with the async init

d


From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of S. Drasnin
Sent: Tuesday, February 07, 2006 11:07 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] PS/2 mouse (i8042prt) Fast Initialization checkbox

hi
?
For a PS/2 style mouse (driver based on the i8042prt sample) information under?Device Manager, there is a checkbox setting under the Advanced Setting tab labeled “Fast Initialization”.
?
?

  1. What does this checkbox do??
  2. What is the difference between normal and fast initialization for the mouse?
  3. Does it affect the boot process and command sequence issued to the device?
  4. Does it affect device timeouts for commands/responses?
  5. In terms of the sample driver, how does this checkbox affect the code path? (I briefly searched for fast in the driver, but didn’t find that.)
    ?
    I see that this checkbox apparently is used to fix drift issues of the mouse. How so?
    ?
    thanks in advance

Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

Doron - thank you very much for the very thorough and helpful info (as always)!
----- Original Message -----
From: Doron Holanmailto:xxxxx
To: Windows System Software Devs Interest Listmailto:xxxxx
Sent: Tuesday, February 07, 2006 11:27 AM
Subject: RE: [ntdev] PS/2 mouse (i8042prt) Fast Initialization checkbox

If set (the default), the i8042prt driver uses the mouse’s interrupt to asynchronously program the mouse on power up. If clear, the i8042prt driver will synchronously poll the device and block the start irp until the device has been initialized. Note that the async init is the same code path as when we detect that a mouse was unplugged/reinserted at runtime, so if your ps2 device can’t handle it, I would suggest fixing your device rather then the driver.

The same commands are sent in both cases.

The timeouts are bit different since you can poll while doing a synchronous init and only have a watch dog async timer in the interrupt case. The code that makes this check is in moudep.c, I8xInitializeMouse()

//
// If we are going to initialize the mouse via the interrupt (the default),
// then quit here
//
if (!deviceExtension->InitializePolled) {
Print(DBG_SS_NOISE, (“Initializing via the interrupt\n”));
return STATUS_SUCCESS;
}

The time savings are siginificant, it can be up to 10 seconds depending on if there is no wheel mouse attached (the knocking mechanism times out). This settings exists for some win2k era machines which could not handle that much ps2 mouse traffic in the ISR in a short period of time. These were primarily a couple of laptops which did not have a lot of market share. Everything else ran just fine with the async init

d

________________________________________
From: xxxxx@lists.osr.commailto:xxxxx [mailto:xxxxx@lists.osr.com] On Behalf Of S. Drasnin
Sent: Tuesday, February 07, 2006 11:07 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] PS/2 mouse (i8042prt) Fast Initialization checkbox

hi

For a PS/2 style mouse (driver based on the i8042prt sample) information under Device Manager, there is a checkbox setting under the Advanced Setting tab labeled “Fast Initialization”.

1) What does this checkbox do?
2) What is the difference between normal and fast initialization for the mouse?
3) Does it affect the boot process and command sequence issued to the device?
4) Does it affect device timeouts for commands/responses?
5) In terms of the sample driver, how does this checkbox affect the code path? (I briefly searched for fast in the driver, but didn’t find that.)

I see that this checkbox apparently is used to fix drift issues of the mouse. How so?

thanks in advance


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256http:

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.commailto:xxxxx


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256http:

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.commailto:xxxxx</mailto:xxxxx></http:></mailto:xxxxx></http:></mailto:xxxxx></mailto:xxxxx></mailto:xxxxx>