#2401 BLOC Trial-2: Wakeup event is repeated continuously

Zarro Boogs per Child bugtracker at laptop.org
Wed Aug 1 16:18:30 EDT 2007


#2401: Wakeup event is repeated continuously
----------------------+-----------------------------------------------------
  Reporter:  cjb      |       Owner:  dilinger          
      Type:  defect   |      Status:  new               
  Priority:  blocker  |   Milestone:  Trial-2           
 Component:  kernel   |     Version:  Git as of bug date
Resolution:           |    Keywords:                    
  Verified:  0        |  
----------------------+-----------------------------------------------------
Comment (by dilinger):

 Here's what the i8042 driver sees.  Normally when you hit a gamekey, you
 get 4 interrupts:

 {{{
 Aug  1 19:59:35 localhost kernel: [  671.864765]
 drivers/input/serio/i8042.c: e0
  <- i8042 (interrupt, 0, 1) [65598]
 Aug  1 19:59:35 localhost kernel: [  671.864879]
 drivers/input/serio/i8042.c: 66 <- i8042 (interrupt, 0, 1) [65598]
 Aug  1 19:59:35 localhost kernel: [  671.906417]
 drivers/input/serio/i8042.c: e0 <- i8042 (interrupt, 0, 1) [65602]
 Aug  1 19:59:35 localhost kernel: [  671.906520]
 drivers/input/serio/i8042.c: e6 <- i8042 (interrupt, 0, 1) [65602]
 }}}

 e0, 66 <- key down
 e0, e6 <- key up

 When we get those errors, we're losing bytes:

 {{{
 e0 <- i8042 (interrupt, 0, 1) [88540]
 Aug  1 20:03:25 xo-03-55-81 kernel: [  901.215424]
 drivers/input/serio/i8042.c:
 66 <- i8042 (interrupt, 0, 1) [88540]
 Aug  1 20:03:25 xo-03-55-81 kernel: [  901.256872]
 drivers/input/serio/i8042.c:
 e0 <- i8042 (interrupt, 0, 1) [88543]
 Aug  1 20:03:25 xo-03-55-81 kernel: [  901.256985]
 drivers/input/serio/i8042.c:
 66 <- i8042 (interrupt, 0, 1) [88543]
 Aug  1 20:03:25 xo-03-55-81 kernel: [  901.274913]
 drivers/input/serio/i8042.c:
 e0 <- i8042 (interrupt, 0, 1) [88546]
 Aug  1 20:03:25 xo-03-55-81 kernel: [  901.275025]
 drivers/input/serio/i8042.c:
 e6 <- i8042 (interrupt, 0, 1) [88546]
 [  904.391887] olpm-pm:  SCI 0x2 received
 [  904.396672] olpm-pm:  SCI 0x0 received
 [  904.580782] Waited 100 ms for IBF during cmd 0x11!
 [  904.867934] atkbd.c: Unknown key released (translated set 2, code 0xe0
 on isa
 0060/serio0).
 [  904.876214] atkbd.c: Use 'setkeycodes e060 <keycode>' to make it known.
 Aug  1 20:03:28 xo-03-55-81 kernel: [  904.391887] olpm-pm:  SCI 0x2
 received
 Aug  1 20:03:28 xo-03-55-81 kernel: [  904.396672] olpm-pm:  SCI 0x0
 received
 Aug  1 20:03:28 xo-03-55-81 kernel: [  904.580782] Waited 100 ms for IBF
 during
 cmd 0x11!
 Aug  1 20:03:28 xo-03-55-81 kernel: [  904.587786]
 drivers/input/serio/i8042.c:
 e0 <- i8042 (interrupt, 0, 1) [88877]
 Aug  1 20:03:28 xo-03-55-81 kernel: [  904.867864]
 drivers/input/serio/i8042.c:
 e0 <- i8042 (interrupt, 0, 1) [88905]
 Aug  1 20:03:28 xo-03-55-81 kernel: [  904.867934] atkbd.c: Unknown key
 released
  (translated set 2, code 0xe0 on isa0060/serio0).
 Aug  1 20:03:28 xo-03-55-81 kernel: [  904.876214] atkbd.c: Use
 'setkeycodes e06
 0 <keycode>' to make it known.
 Aug  1 20:03:28 xo-03-55-81 kernel: [  904.882985]
 drivers/input/serio/i8042.c:
 66 <- i8042 (interrupt, 0, 1) [88907]
 ...
 e0 <- i8042 (interrupt, 0, 1) [88944]
 Aug  1 20:03:29 xo-03-55-81 kernel: [  905.256612]
 drivers/input/serio/i8042.c:
 66 <- i8042 (interrupt, 0, 1) [88944]
 Aug  1 20:03:29 xo-03-55-81 kernel: [  905.305713]
 drivers/input/serio/i8042.c:
 e0 <- i8042 (interrupt, 0, 1) [88949]
 Aug  1 20:03:29 xo-03-55-81 kernel: [  905.305825]
 drivers/input/serio/i8042.c:
 e6 <- i8042 (interrupt, 0, 1) [88949]
 Aug  1 20:03:29 xo-03-55-81 kernel: [  905.562273] olpm-pm:  SCI 0x2
 received
 Aug  1 20:03:29 xo-03-55-81 kernel: [  905.568435] olpm-pm:  SCI 0x0
 received
 }}}

 At that point, the ebook reader is continuing to scroll down without any
 interrupts showing up.

 e0, 66, e0, 66 <- holding the gamekey down
 e0, e6 <- key up
 SCIs received, 100ms of interrupts being disabled
 atkbd complains about unknown key press; e0
 another SCI, another 100ms of interrupts being disabled
 e0, 66 <- key down
 ...
 e0, 66 <- key down
 e0, e6 <- key up



 We've lost some key presses there.  That is somehow confusing the ebook
 reader.  The ebook reader probably should not get confused (since we *do*
 end on a key down event); it should skip the mangled bits and properly
 process the final keypress(es).

 We also need to not be dropping key presses.  Either we're losing
 interrupts due to the EC cmd function keeping interrupts disabled for so
 long, or the EC is mangling the bytes that it's sending up to us when it
 attempts to both stuff bytes into the LPC bus and respond to EC commands.

-- 
Ticket URL: <http://dev.laptop.org/ticket/2401#comment:7>
One Laptop Per Child <http://laptop.org/>



More information about the Bugs mailing list