#11260 NORM Not Tri: i8042 data loss over suspend/resume

Zarro Boogs per Child bugtracker at laptop.org
Sat Oct 8 07:22:13 EDT 2011


#11260: i8042 data loss over suspend/resume
-------------------------------------------+--------------------------------
           Reporter:  dsd                  |       Owner:  rsmith     
               Type:  defect               |      Status:  new        
           Priority:  normal               |   Milestone:  Not Triaged
          Component:  embedded controller  |     Version:  1.5-C2     
         Resolution:                       |    Keywords:             
        Next_action:  never set            |    Verified:  0          
Deployment_affected:                       |   Blockedby:             
           Blocking:                       |  
-------------------------------------------+--------------------------------

Comment(by dsd):

 Richard reproduced and has found a possible workaround in the EC. Testing
 with http://dev.laptop.org/~rsmith/11260.rom

 Observations:

 1. When suspending with `sleep 5; echo mem > /sys/power/state` (i.e. no
 keypresses for a long time before suspend) and resuming with the power
 button, a 1c (make enter) 9c (break enter) interrupt sequence is correctly
 received before suspend, however on resume a duplicate 9c (break enter)
 interrupt is received.

 2. The same experiment repeated but waking the system with the 'j' key
 results in 1c,9c before suspend, and 24,a4 on resume. (all correct)

 3. Reproducing the conditions described on this ticket, where the system
 suspends on a 1c event (make enter) before the 9c break interrupt has been
 received, upon power-button-triggered resume, the Linux-simulated 'soft'
 interrupt receives a 9c interrupt, then Linux receives a 'real' interrupt
 with no data.

 4. If the system suspends on a 1c event (make enter) before the 9c break
 interrupt has been received, if I resume with the 'j' key the wrong thing
 happens. The system wakes with 24,a4 (j make, j break) codes, but no '9c'
 enter break is ever received, so Linux continues believing that enter is
 held down.

 5. If the system suspends on a 1c event (make enter) before the 9c break
 interrupt has been received, if I resume with the 'j' key the wrong thing
 happens. The system wakes with 1c,9c (enter make, enter break). However,
 this interrupt pattern suggests that I had held enter down long enough for
 one interrupt-autorepeat to happen, and then released just once. In
 reality, I pressed and released enter once to suspend, and pressed and
 released enter once to resume.


 In summary, I think (1) is probably no big deal on its own, (3) similarly
 a bit strange behaviour but unlikely to have adverse effects, (4) is a
 problem however because it would cause Linux/X to effectively ignore the
 next keypress of the "stuck key", and (5) is also a problem because I
 effectively lose a keypress/keyrelease from the userspace perspective.

-- 
Ticket URL: <http://dev.laptop.org/ticket/11260#comment:4>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system


More information about the Bugs mailing list