Hi, Paul, I understand the current situation. We have three devices that have ID: E7=73 03 28.
DELL: Normal Pad type (There are Left and right button below Touchpad.) ID: E7=73 03 28, EC=73 01 13 ID: E7=73 03 28, EC=73 01 22 TOSHIBA: Button Pad type ID: E7=73 03 28, EC=73 01 14 I think Nick mentioned about TOSHIBA device. I have checked the source code and I guess EC=73 01 14 device does not have "ALPS_BUTTONPAD" Flag, although it is the Button Pad. Because "alps_update_btn_info_ss4_v2()" does not support E7=73 03 28 devices. E7=73 03 14 device can use below code. is_btnless = (otp[1][1] >> 3) & 0x01; E7=73 03 28 device has to use below bit. is_btnless = (otp[1][0] >> 1) & 0x01; I will check other parts of source code. Best Regards, Masaki Ota -----Original Message----- From: Paul Donohue [mailto:linux-ker...@paulsd.com] Sent: Monday, March 06, 2017 3:09 AM To: Nick Fletcher <nick.m.fletc...@gmail.com>; 太田 真喜 Masaki Ota <masaki....@jp.alps.com> Cc: Joseph Salisbury <joseph.salisb...@canonical.com>; b...@smart-cactus.org; mho...@suse.com; dmitry.torok...@gmail.com; pali.ro...@gmail.com; rydb...@bitmath.org; li...@roeck-us.net; open list:HID CORE LAYER <linux-in...@vger.kernel.org>; LKML <linux-kernel@vger.kernel.org>; sta...@vger.kernel.org Subject: Re: [REGRESSION][v4.9.y][v4.10.y] Input: ALPS - set DualPoint flag for 74 03 28 devices Oops, forgot the attachments On Sun, Mar 05, 2017 at 12:56:19PM -0500, Paul Donohue wrote: > Masaki: Do you have any information about this touchpad you can share? Is > the third byte in EC relevant to the protocol and something we should look > for when identifying devices in the driver? > > Nick: > > Unfortunately, I didn't print quite enough information in the two-finger > message, but yeah, this kinda looks like a different protocol. > > I've attached two tarballs this time: > 1) alps_2a.tar.gz prints some additional info in the two-finger message which > may help figure out what protocol your device is speaking: > sudo -s > dkms remove alps_ss5/1.0 --all > cd /usr/src/ > rm -rf alps_ss5-1.0 > tar -xvzf alps_2a.tar.gz > dkms install alps_ss5/1.0 > modprobe -r psmouse ; modprobe psmouse # Try two-finger scrolling, > then run: > dmesg | grep 'two-finger' > > 2) alps_2b.tar.gz disables the driver unless the third byte in EC is 0x13 > (the value my device uses) ... This driver should make your mouse work > properly: > sudo -s > dkms remove alps_ss5/1.0 --all > cd /usr/src/ > rm -rf alps_ss5-1.0 > tar -xvzf alps_2b.tar.gz > dkms install alps_ss5/1.0 > modprobe -r psmouse ; modprobe psmouse > > Try those out and let's see where that gets us. > > When you are done testing, you can revert back to whatever driver came with > your kernel by running: > sudo -s > dkms remove alps_ss5/1.0 --all > modprobe -r psmouse ; modprobe psmouse > > -Paul > > On Sun, Mar 05, 2017 at 09:09:01AM +0000, Nick Fletcher wrote: > > Hi All, > > > > My touchpad has the physical buttons above the touchpad. > > > > I have cut and pasted the the results of the two dmesg commands > > below. The trackpad of course stopped working correctly again after > > installing alps_ss5-1.0. > > > > I'm afraid any experimenting with the code myself may be beyond my ability. > > :-( > > > > root@brassneck-test:/usr/src# modprobe -r psmouse ; modprobe psmouse > > root@brassneck-test:/usr/src# dmesg | grep 'ALPS ID' > > [ 239.983818] psmouse serio1: alps: ALPS ID: E7=73 03 28, EC=73 01 > > 14 [ 240.433532] psmouse serio1: alps: ALPS ID: E7=73 03 28, EC=73 > > 01 14 root@brassneck-test:/usr/src# dmesg | grep two-finger [ > > 279.294490] psmouse serio1: alps: ALPS two-finger packet w/ button > > (buttonpad: 0): d9 73 24 > > > > > > Thank you for your help in this and thank you to Joseph for building > > all the test kernels whilst attempting to find out which commit > > first caused my issue. > > > > Cheers, > > Nick. > > > > On 4 March 2017 at 16:15, Paul Donohue <linux-ker...@paulsd.com> wrote: > > > > > I have a 74 03 28 device on a Dell Precision laptop that handles > > > two-finger scrolling fine. Without this patch, my mouse functions > > > only as a dumb PS/2 mouse, which means I lose all multi-touch and > > > scrolling capabilities entirely. So I would rather not see this > > > reverted. :) > > > > > > I suspect one of two things: > > > 1) My device has physical buttons below the touchpad. There are > > > some different code paths for devices without physical buttons > > > below the touchpad. Perhaps there is a bug in those alternate > > > code paths? Does the buggy device have physical buttons? > > > 2) Perhaps this is a new ALPS variant which speaks a new protocol > > > that is not currently handled by the driver but which isn't > > > properly identified/differentiated by the alps_identify() function? > > > > > > To get some additional data, grab the attached tarball, then: > > > sudo -s > > > cd /usr/src/ > > > tar -xvzf alps_1.tar.gz > > > apt install dkms > > > dkms install alps_ss5/1.0 > > > # Do not copy and paste the modprobe command! Type it manually! > > > # Otherwise the mouse click used to paste the command at the same > > > time as # reloading the driver may crash the kernel. > > > modprobe -r psmouse ; modprobe psmouse dmesg | grep 'ALPS ID' > > > > > > In the dmesg output, you should see something like: > > > psmouse serio1: alps: ALPS ID: E7=73 03 28, EC=73 01 13 > > > > > > Are the E7 and EC numbers identical to the above? > > > > > > Then try two-finger scrolling, then run: > > > dmesg | grep 'two-finger' > > > > > > In the dmesg output, I expect you should see something like: > > > psmouse serio1: alps: ALPS two-finger packet (buttonpad: 0): 1c 51 > > > 46 > > > > > > We can compare your output to mine to see what is different. > > > > > > If you're willing to experiment with the code yourself to try to > > > figure out more, the relevant code is in alps_decode_ss4_v2() in > > > src/alps.c in that tarball. You should see the "ALPS two-finger > > > packet" debug message I added there ... you can add additional > > > debugging messages to figure out what exactly the decoder is > > > doing. The SS4_* macros for bit manipulation and field extraction > > > are defined near the top of src/alps.h. To recompile/reload the driver > > > after making changes: > > > dkms remove alps_ss5/1.0 --all > > > dkms install alps_ss5/1.0 > > > modprobe -r psmouse ; modprobe psmouse > > > > > > On Fri, Mar 03, 2017 at 02:58:34PM -0500, Joseph Salisbury wrote: > > > > Hi Ben, > > > > > > > > A kernel bug report was opened against Ubuntu [0]. After a > > > > kernel bisect, it was found that reverting the following commit > > > > resolved this > > > bug: > > > > > > > > commit aeaa881f9b17823028b464893b89c42db797b717 > > > > Author: Ben Gamari <b...@smart-cactus.org> > > > > Date: Tue Oct 4 11:43:30 2016 -0700 > > > > > > > > Input: ALPS - set DualPoint flag for 74 03 28 devices > > > > > > > > The regression was introduced as of v4.9-rc1. > > > > > > > > I was hoping to get your feedback, since you are the patch > > > > author. Do you think gathering any additional data will help > > > > diagnose this issue, or would it be best to submit a revert request? > > > > > > > > > > > > Thanks, > > > > > > > > Joe > > > > > > > > [0] http://pad.lv/1662589 > > > > > > >