freebsd-skq/sys/dev/atkbdc
yokota b087643753 Hack for the "out-of-sync" error.
- Count the number of this error.
- 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 20,
  the psm driver reset and reinitialize the mouse. The counter
  is reset to zero.
- It also discards an incomplete data packet when the interval
  between two consequtive bytes are longer than pre-defined timeout
  (2 seconds).  The last byte which arrived late will be regarded as
  the first byte of a new packet.  This is louie's idea.

You may see the following error logs during the above operations:

  "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"

MFC after:	1 month
2001-10-13 10:28:02 +00:00
..
atkbd_atkbdc.c Reinitialize the keyboard after the ACPI resume event. 2001-09-23 08:42:06 +00:00
atkbd_isa.c Reinitialize the keyboard after the ACPI resume event. 2001-09-23 08:42:06 +00:00
atkbd.c Return consistent key action codes at key press and release 2001-07-20 13:05:57 +00:00
atkbdc_isa.c Yet another turn of workaround for psm/ACPI/PnP BIOS 2001-09-25 16:59:28 +00:00
atkbdc_subr.c Yet another turn of workaround for psm/ACPI/PnP BIOS 2001-09-25 16:59:28 +00:00
atkbdc.c Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
atkbdcreg.h Refine ACPI/PnP BIOS probe/attach routines a bit. 2001-09-15 04:38:20 +00:00
atkbdreg.h - Properly keep track of I/O port resources. 2000-03-19 03:25:13 +00:00
psm.c Hack for the "out-of-sync" error. 2001-10-13 10:28:02 +00:00