lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <s5hwp7f3rdc.wl-tiwai@suse.de>
Date:   Tue, 11 Jul 2017 17:50:07 +0200
From:   Takashi Iwai <tiwai@...e.de>
To:     Paul Donohue <linux-kernel@...lSD.com>
Cc:     Laura Abbott <labbott@...hat.com>,
        Masaki Ota <masaki.ota@...alps.com>,
        Dmitry Torokhov <dmitry.torokhov@...il.com>,
        Pali Rohar <pali.rohar@...il.com>,
        Nick Fletcher <nick.m.fletcher@...il.com>,
        "linux-input@...r.kernel.org" <linux-input@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        "scott.s.lowe@...il.com" <scott.s.lowe@...il.com>
Subject: Re: [REGRESSION] Touchpad failure after e7348396c6d5 ("Input: ALPS - fix V8+ protocol handling (73 03 28)")

On Tue, 20 Jun 2017 01:20:26 +0200,
Paul Donohue wrote:
> 
> On Mon, Jun 19, 2017 at 01:02:18PM -0700, Laura Abbott wrote:
> > On 06/19/2017 11:43 AM, Paul Donohue wrote:
> > > I get the same results as you - x_max and y_max affect cursor speed, and x_res and y_res seem to have no effect.  I can't seem to come up with any values that cause intermittent cursor issues on one side of the touchpad.
> > > Both max and res do get passed up to the X driver, and I do see references to both max and resolution in xf86-input-evdev, although I haven't actually traced it through to see if/where each value is actually consumed with my setup.
> > > 
> > > Maybe we should ask the user to try a few more tests?
> > > 1) Using the original code (without the modifications from bug 195215), add the following before 'return 0' at the end of alps_update_device_area_ss4_v2(), then run `dmesg | grep num-electrodes` after loading the alps kernel module to get the output.  This should tell us what values the user is actually reading from the hardware:
> > > psmouse_err(psmouse,
> > >     "pitch %dx%d num-electrodes %dx%d physical size %dx%dmm res %dx%d max %dx%d\n",
> > >     x_pitch, y_pitch, num_x_electrode, num_y_electrode,
> > >     x_phys / 10, y_phys / 10, priv->x_res, priv->y_res, priv->x_max, priv->y_max);
> > > 2) Use the old electrode count code but the new pitch code:
> > > 	if (IS_SS4PLUS_DEV(priv->dev_id)) {
> > > 		num_x_electrode =
> > > 			SS4_NUMSENSOR_XOFFSET + (otp[1][0] & 0x0F);
> > > 		num_y_electrode =
> > > 			SS4_NUMSENSOR_YOFFSET + ((otp[1][0] >> 4) & 0x0F);
> > > 
> > > 		priv->x_max =
> > > 			(num_x_electrode - 1) * SS4_COUNT_PER_ELECTRODE;
> > > 		priv->y_max =
> > > 			(num_y_electrode - 1) * SS4_COUNT_PER_ELECTRODE;
> > > 
> > > 		x_pitch = (otp[0][1] & 0x0F) + SS4PLUS_MIN_PITCH_MM;
> > > 		y_pitch = ((otp[0][1] >> 4) & 0x0F) + SS4PLUS_MIN_PITCH_MM;
> > > 
> > > 	} else {
> > > 3) Use the new electrode count code but the old pitch code:
> > > 	if (IS_SS4PLUS_DEV(priv->dev_id)) {
> > > 		num_x_electrode =
> > > 			SS4PLUS_NUMSENSOR_XOFFSET + (otp[0][2] & 0x0F);
> > > 		num_y_electrode =
> > > 			SS4PLUS_NUMSENSOR_YOFFSET + ((otp[0][2] >> 4) & 0x0F);
> > > 
> > > 		priv->x_max =
> > > 			(num_x_electrode - 1) * SS4PLUS_COUNT_PER_ELECTRODE;
> > > 		priv->y_max =
> > > 			(num_y_electrode - 1) * SS4PLUS_COUNT_PER_ELECTRODE;
> > > 
> > > 		x_pitch = ((otp[1][2] >> 2) & 0x07) + SS4_MIN_PITCH_MM;
> > > 		y_pitch = ((otp[1][2] >> 5) & 0x07) + SS4_MIN_PITCH_MM;
> > > 
> > > 	} else {
> > > 
> > 
> > Can you produce patches for these test cases?
> 
> I've reduced it to two test cases.  Patches attached.

Hi, just joining to the party in the middle, as I'm also facing the
same problem on Dell E7270 laptop.  Has this issue already been
addressed?

If not, the following was my result:

- the first patch slowed the pointer movement a lot, it's even slower
  than the old kernel (e.g. 4.4.x).
  The two finger scroll works fine on all touchpad area now.

- the second patch made the pointer movement even faster than now (as
  I feel, not quite sure).  The two finger scroll doesn't work at the
  right side of the touchpad.


The kernel output from the first patch is below:
  psmouse serio1: alps: test1 pitch 37x37 num-electrodes 8x7 physical size 25x22mm res 69x69 max 1792x1536

Let me know if you have any further test.


thanks,

Takashi

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ