Christoph, The setres cmds don't seem to be working. We end up falling back to the generic driver again and failing in psmouse_probe. Logs attached with some instrumentation and i8042.debug enabled. Peter On 04/29/2010 12:57 PM, Christoph Fritz wrote: > On Wed, 2010-04-28 at 16:17 -0400, Peter M. Petrakis wrote: >> Dmitry, >> >> This Dell in question do not have an option to disable the >> touchpad. The BIOS options are unremarkable. >> >> Peter >> >> On 04/28/2010 01:07 PM, Dmitry Torokhov wrote: >>> On Fri, Apr 23, 2010 at 02:46:52PM -0400, Peter M. Petrakis wrote: >>>> Here are the dmesg boot logs with i8042.debug. >>>> >>>> On 04/23/2010 12:53 PM, Dmitry Torokhov wrote: >>>>> On Thursday 22 April 2010 05:47:48 pm Christoph Fritz wrote: >>>>>> Am Donnerstag, den 22.04.2010, 14:55 -0700 schrieb Dmitry Torokhov: >>>>>>> On Thu, Apr 22, 2010 at 05:48:21PM -0400, Peter M. Petrakis wrote: >>>>>>>> Hi, >>>>>>>> >>>>>>>> This one is a winner. with regards to your follow up. I wouldn't >>>>>>>> want to reset something unless we have cause to. This code >>>>>>>> seems to be doing the right thing e.g. I see "unable to query >>>>>>>> synaptics hardware" followed by it's (re)discovery on return >>>>>>>> from S3. >>>>>>>> >>>>>>>> When it's fully supported by the Synaptics driver, the initial >>>>>>>> reconnect will succeed and we'll never get to this additional >>>>>>>> failsafe code which is essentially a catch all for the bleeding >>>>>>>> edge. >>>>>>> >>>>>>> I am confused here... what protocol does the kernel select upon fresh >>>>>>> boot? >>>>>> >>>>>> Peter's dmesg: >>>>>> >>>>>> [ 7.428561] Unable to query Synaptics hardware. >>>>>> >>>>>> It's plain PS/2 or IMPS/2 because this bleeding edge device fails >>>>>> somewehre in synaptics_query_hardware(). Most likely the test on >>>>>> priv->identity. >>>>> >>>>> Ah, I missed that. Peter, could you boot with i8042.debug so we could see >>>>> where exactly Synaptics detection fails? >>>>> >>> >>> Indeed, capability request returns "d0 00 73" whereas we expect 0x47 in >>> the middle byte. > > The synaptics docu [1] about "information queries" is a bit imprecise in > my view. It's clear to get "Identify TouchPad" with "E8 00 E8 00 E8 00 > E8 00 E9". But as I understand it, to get "Read Capabilities" we should > do "E8 02 E8 02 E8 02 E8 02 E9" instead of "E8 00 E8 00 E8 00 E8 02 E9". > > Peter, does the touchpad works with synaptics driver when you apply this > patch below? > > diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c > index 026df60..aa25fbd 100644 > --- a/drivers/input/mouse/synaptics.c > +++ b/drivers/input/mouse/synaptics.c > @@ -103,8 +103,12 @@ void synaptics_reset(struct psmouse *psmouse) > */ > static int synaptics_send_cmd(struct psmouse *psmouse, unsigned char c, unsigned char *param) > { > - if (psmouse_sliced_command(psmouse, c)) > - return -1; > + int i; > + > + for (i = 0; i < 4; i++) { > + if (ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_SETRES)) > + return -1; > + } > if (ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_GETINFO)) > return -1; > return 0; > --- > > Thanks, > chf > > [1]: http://www.synaptics.com/sites/default/files/511-000275-01rA.pdf > >
Attachment:
resume_i8042.debug_setres.log.bz2
Description: application/bzip