Re: [PATCH v2] input: mouse: add qci touchpad driver
From: Neil Leeder <hidden>
Date: 2010-08-25 18:26:24
Also in:
linux-arm-msm, lkml
On 8/19/2010 6:19 PM, Neil Leeder wrote:
Hi Dmitry, On 8/19/2010 1:33 AM, Dmitry Torokhov wrote:quoted
On Wed, Aug 18, 2010 at 05:38:38PM -0400, Neil Leeder wrote:quoted
Using proto=bare gets around the GETINFO failure, but doesn't help with the more important GETID failure.Does it help if you change write() to transmit (and read) 1 byte at a time?Thanks for the suggestions. Nothing I change seems able to get a consistent valid response to GETID. I think this is the first time anyone has written anything other than 0xF4 to the firmware in the EC and it's just not passing through the other PS/2 commands and responses reliably.quoted
One way would be to look for PSMOUSE_CMD_ENABLE/PSMOUSE_CMD_DISABLE (0xf4/0xf5) in ->write() method to switch between 1 and 3-byte transfers.If I force my way past GETID and set the receive length to 3 based on seeing F4/F5 being written then the touchpad does work. However the serio driver is now a touchpad-specific driver rather than a generic PS/2 one. I have a keyboard on the same device. I'm not sure if it will work with serio, but if so it will probably have its own requirements for the length of data sent on responses, probably not 3. BTW, using 1 as the receive length for commands has its own problems as some commands require more than one byte response (GETID, GETINFO). I can work around it, but it's not particularly clean and getting further away from a generic driver. At this point I'm thinking that the interface is close to being able to work with serio/psmouse, but just not close enough. The unreliability of responding to basic commands as well as the length of data problems indicates some custom driver is going to be needed. That could either be Quanta's original touchpad driver I posted, or a modification of your serio driver. I'd lean towards not having a serio driver which includes workarounds for a specific device, but I'd appreciate hearing your opinion. Thanks.
Hi Dmitry, Any comment on the above alternatives? A third suggestion might be to have a fairly general serio driver, and rewrite the original Quanta driver to use serio rather than using i2c directly. I think that has its own set of problems, but thought I'd mention it anyway. The nuvoTon EC doesn't present a fully-working and reliable PS/2 interface to the driver so I'd lean toward using the Quanta touchpad driver by itself. Thanks. -- Neil -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.