Comment 43 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.

For everyone for which the original set of 4 patches worked: there's
good news. They'll probably be in 2.6.34 once it comes out, or at least
in 2.6.35. http://www.spinics.net/lists/linux-input/msg08298.html

On Tue, Apr 27, 2010 at 09:53:11PM -0000, Tyson Williams wrote:
> Yes, one and two figure gestures showed no noticeable difference.

I see.

> As for my firmware version as reported by my kernel log, is that the following?

Yes, firmware version 2.1.

Do you get any further messages from elantech.c or the psmouse module?
In particular anything about about the module losing sync?

My best guess would be that you either have a device sending new-style
6-byte packets (i.e. hardware version 2, as the driver calls it), or
that you have a device with 4-byte packets (hw version 1), which behaves
slightly different from other v1 devices and might need a quirk in the
driver.

I'd suggest trying to force the driver to assume hardware version 2 and
see how that works out.

diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
index 70321b7..8857f4c 100644
--- a/drivers/input/mouse/elantech.c
+++ b/drivers/input/mouse/elantech.c
@@ -675,7 +675,7 @@ int elantech_init(struct psmouse *psmouse)
         * Assume every version greater than this is new EeePC style
         * hardware with 6 byte packets
         */
- if ((etd->fw_version_maj == 0x02 && etd->fw_version_min >= 0x30) ||
+ if (1) {
            etd->fw_version_maj > 0x02) {
                etd->hw_version = 2;
                /* For now show extra debug information */

the above patch will do just that. Also there's already a workaround for a
weird firmware version in the driver. Maybe try force-enabling that with the
following patch, if the previous one didn't do the trick.

diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
index 70321b7..15dcfeb 100644
--- a/drivers/input/mouse/elantech.c
+++ b/drivers/input/mouse/elantech.c
@@ -702,7 +702,7 @@ int elantech_init(struct psmouse *psmouse)
         * a touch action starts causing the mouse cursor or scrolled page
         * to jump. Enable a workaround.
         */
- if (etd->fw_version_maj == 0x02 && etd->fw_version_min == 0x22) {
+ if (1) {
                pr_info("elantech.c: firmware version 2.34 detected, "
                        "enabling jumpy cursor workaround\n");
                etd->jumpy_cursor = 1;

Also note that my original patches were targetted at getting a new version of
the firmware for the 6-packet v2 hardware to work. They shouldn't've
changed any behaviour with older devices. However, I'll still be happy
to work out a fix with you and get it upstream.

--
BOFH excuse #215:
High nuclear activity in your area.