#8894 HIGH Not Tri: Synaptics touchpad takes two seconds to wake up after resume

Zarro Boogs per Child bugtracker at laptop.org
Sun Nov 2 19:07:42 EST 2008


#8894: Synaptics touchpad takes two seconds to wake up after resume
----------------------+-----------------------------------------------------
   Reporter:  wad     |       Owner:  dsaxena       
       Type:  defect  |      Status:  assigned      
   Priority:  high    |   Milestone:  Not Triaged   
  Component:  kernel  |     Version:  not specified 
 Resolution:          |    Keywords:  CL1-A touchpad
Next_action:  design  |    Verified:  0             
  Blockedby:  8901    |    Blocking:                
----------------------+-----------------------------------------------------
Changes (by dsaxena):

  * next_action:  diagnose => design
  * blockedby:  => 8901


Comment:

 I've tried a couple of different things in the code to make it not cause
 the
 2nd delayed rescan and the best __temporary__ solution I could come with
 is
 the following patch I have pushed to testing and master branches:

 {{{
 commit fd3ef663a9b2729a6f626326d6692fc77323f11d
 Author: Deepak Saxena <dsaxena at laptop.org>
 Date:   Sun Nov 2 15:22:05 2008 -0800

     Don't detect PSMOUSE_SYNAPTICS if Synaptics protocol is not enabled

     When the kernel is built w/o Synaptics protocol support, we configure
     a PSMOUSE_PS2 protocol device during initialization; however
     during suspend/resume, we report it as a PSMOUSE_SYNAPTICS protocol
     device. This caused the kernel to think it is not the device that
     was attached at resume time and so we end up doing a deffered
     reinitialization, which takes > 2s.  This patch causes to not
     report a Synaptics protocol extension when protocol support
     is disabled and allows us to resume w/o reinitializing the device.

     Signed-off-by: Deepak Saxena <dsaxena at laptop.org>

 diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse
 /psmouse-base.c
 index 28aa38d..2e5cdd4 100644
 --- a/drivers/input/mouse/psmouse-base.c
 +++ b/drivers/input/mouse/psmouse-base.c
 @@ -603,7 +603,12 @@ static int psmouse_extensions(struct psmouse
 *psmouse,

                 if (max_proto > PSMOUSE_IMEX) {
                         if (!set_properties || synaptics_init(psmouse) ==
 0)
 +#ifdef CONFIG_MOUSE_PS2_SYNAPTICS
                                 return PSMOUSE_SYNAPTICS;
 +#else
 +                               return PSMOUSE_PS2;
 +#endif
 +
  /*
   * Some Synaptics touchpads can emulate extended protocols (like IMPS/2).
   * Unfortunately Logitech/Genius probes confuse some firmware versions so

 }}}

 I say temporary b/c I will submit upstream and see what happens. I think
 that
 the proper solution might be to fix the issues in #8901 so that we can
 just
 run in Synaptics  protocol mode. Marking that as a blocker to this.

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


More information about the Bugs mailing list