DragonFly BSD
DragonFly commits List (threaded) for 2004-12
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

cvs commit: src/sys/dev/misc/kbd


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 16 Dec 2004 00:30:15 -0800 (PST)

dillon      2004/12/16 00:30:15 PST

DragonFly src repository

  Modified files:
    sys/dev/misc/kbd     kbd.c 
  Log:
  Fix the keyboard lockup problem.  There were two big clues:  The first was a
  report that it sometimes seemed to occur during heavy video operations.  The
  second was a set of kernel dates from Jansen Gotis and Michael Powell that
  focused me in on the right part of the code.
  
  Simply put, there is a hack for AT keyboards that polls the keyboard for
  data 10 times a second in order to catch lost interrupts.  Lost interrupts
  can occur because unlike other interrupts the AT keyboard interrupt is
  edge-triggered.  This means that latency in the system can cause the
  keyboard interrupt to retrigger before it is reenabled after an earlier
  event but not cause any further interrupts.
  
  There is a big hack in the system that polls for keyboard data 10 times a
  second in order to detect this 'lost' interrupt case.  However, that code
  was broken by the timeout->callout work I did on September 19th.  An
  incorrectly placed callout_reset() stopped the polling code in its tracks.
  
  Reported-by: Jeroen Ruigrok/asmodai <asmodai@xxxxxx>,
  		Chris Pressey <cpressey@xxxxxxxxxxxxxxx>,
  		Michael Powell <nightrecon@xxxxxxxxxxx>,
  		Jansen Gotis <jtgotis@xxxxxxxxx>,
  		And others.
  
  Revision  Changes    Path
  1.14      +2 -2      src/sys/dev/misc/kbd/kbd.c


http://www.dragonflybsd.org/cvsweb/src/sys/dev/misc/kbd/kbd.c.diff?r1=1.13&r2=1.14&f=u



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]