Re: [PATCH] Reset ps/2 port should psmouse_probe fail before retrying

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

 



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


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux