>Anyway, I am now considering the following experiment.
>
>- We make the psm driver count the number of the "out-of-sync" errors.
>- When the error is detected for the first time, the psm driver will
> throw few data bytes (up to entire packet size) and see if it can
> get back to sync.
>- If the error still persists, the psm driver disable/enable the mouse
> and see if it works.
>- If the error still persists and the count goes up to N (10 or 20?),
> the psm driver reset and reinitialize the mouse. The counter
> is reset to zero.
>
>Too complicated?
>
>Kazu
Ok, here is an experimental patch. It tries to implement the above
scheme.
http://people.freebsd.org/~yokota/psm-out-of-sync.diff.gz
It also discards an incomplete data packet when the interval between two
consequtive bytes are longer than pre-defined timeout (2 seconds in
this patch). The last byte which arrived late will be regarded as
the first byte of a new packet. This is louie's idea.
Watch out for the followin messages:
"psmintr: delay too long; resetting byte count"
"psmintr: out of sync (%04x != %04x)"
"psmintr: discard a byte (%d)"
"psmintr: re-enable the mouse"
"psmintr: reset the mouse"
Please test if you are suffering from the out-of-sync errors!
Kazu
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message