Comment 26 for bug 512192

Revision history for this message
Florian Ragwitz (rafl) wrote : Re: [Bug 512192] Re: Can't configure Elan tech touchpad on Dell Inspiron 11z, Asus K7I0C and maybe also Dell Mini 10 (not V), ASUS k40in, Asus U81A and ASUS UL80-VT.

On Sun, Apr 25, 2010 at 01:13:33PM -0000, ALLurGroceries wrote:
> Wow, nice timing. I had just finished a patch but before I could clean
> it up you had already posted your (much better) patch set.

Hah! Sorry, mate :)

> For reference, I attached my quick-and-dirty patch that works on the
> ASUS U80V-B2. Unfortunately I don't have any more time with the system
> as it belongs to a friend, so I cannot test your patch set right now,
> but once I do I will report back.

Excellent, thank you!

> It seems like this particular touchpad gets stuck in relative mode
> unless it gets 0x0c (anywhere thru 3f) to reg_10

I see. This isn't necessary for my device, reporting firmware version
0x04 0x01 0x01. The register settings currently used for v2 hardware in
the driver just work for me.

I'd be interested in the exact firmware version reported by the device
you've been working with.

> Also, here are some register values I was able to dig up for this
> particular touchpad:
>
> reg_11 0xc0 turns on the lights 0xb0 turns off
> reg_26 0x10 strobes up lights once, 0x80 strobes them across each other (demo mode?)
> reg_26 0x02 strobes from top to bottom, 0x04 bottom to top, 0x01 flashes all once

Also interesting. However, this should probably just be exposed as an
LED class device, if the appropriate kernel subsystem is enabled.

Unfortunately tho, my device doesn't have lights, so I'm unable to work
on that. Sorry.

> Here's the relevant syslog stuff:
> elantech.c: Synaptics capabilities query result 0x79, 0x13, 0x0d.
> elantech.c: Elantech version query result 0x04, 0x04, 0x11.

Oh, there they are.

My device's capability bits are 0x7e 0x13 0x0d. The firmware is reported
as 0x04 0x01 0x01, as mentioned earlier.

I'll go add the magic register values to put your device into absolute
mode to the patch, and also whitelist your device accordingly.

I'm not entirely sure what I should be using to decide what sort of
register values should be sent, based on the firmware version, yet. I
think I'll start off with always sending the old-style magic, except
when a device is known to require the new bits (i.e. just the fw version
you reported), or if sending the new magic is forced somehow (I'll
probably just turn force_elan from a bool to an uint).

Thanks a lot for your input. It's much appreciated!

--
BOFH excuse #27:
radiosity depletion