linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Anders Kaseorg <andersk@mit.edu>
To: Ulrik De Bie <ulrik.debie-os@e2big.org>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org, Hans de Goede <hdegoede@redhat.com>,
	David Herrmann <dh.herrmann@gmail.com>
Subject: Bisected two-finger scrolling regression on Lenovo Y50 (Re: [PATCH 1/5] Input: elantech - use elantech_report_trackpoint for hardware v4 too)
Date: Thu, 20 Nov 2014 01:58:40 -0500	[thread overview]
Message-ID: <546D9120.1040703@mit.edu> (raw)
In-Reply-To: <1409407846-15449-2-git-send-email-ulrik.debie-os@e2big.org>

On 08/30/2014 10:10 AM, Ulrik De Bie wrote:
> The Fujitsu H730 has hardware v4 with a trackpoint. This enables
> the elantech_report_trackpoint for v4.

Kernel 3.18-rc5 has made two-finger scrolling unusably glitchy on my 
Lenovo Y50-70 Touch, and caused an associated kernel warning.  I 
bisected the regression to this commit (caeb0d37).

This may be the same as https://bugzilla.redhat.com/1165390, although 
that only reports the warning, not the glitchy scrolling.

Anders

psmouse serio1: elantech: assuming hardware version 4 (with firmware 
version 0x495f01)
psmouse serio1: elantech: Synaptics capabilities query result 0x70, 
0x15, 0x0e.
input: ETPS/2 Elantech Touchpad as 
/devices/platform/i8042/serio1/input/input6

[…]

------------[ cut here ]------------
WARNING: CPU: 0 PID: 0 at drivers/input/mouse/elantech.c:433 
elantech_report_trackpoint.isra.5+0x199/0x1b0 [psmouse]()
psmouse serio1: elantech: Unexpected trackpoint message
Modules linked in: xt_CHECKSUM iptable_mangle ipt_MASQUERADE iptable_nat 
nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack 
nf_conntrack ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables 
bridge stp llc ctr ccm binfmt_misc bbswitch(OE) arc4 nls_iso8859_1 
iwlmvm snd_hda_codec_hdmi mac80211 snd_hda_codec_realtek 
snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec 
intel_rapl uvcvideo snd_hwdep x86_pkg_temp_thermal videobuf2_vmalloc 
intel_powerclamp snd_pcm videobuf2_memops videobuf2_core coretemp 
v4l2_common snd_seq_midi videodev kvm_intel snd_seq_midi_event iwlwifi 
media kvm joydev btusb snd_rawmidi serio_raw bluetooth cfg80211 
hid_multitouch rtsx_pci_ms memstick snd_seq snd_seq_device snd_timer 
ideapad_laptop mei_me sparse_keymap mei snd ie31200_edac
  lpc_ich mac_hid edac_core soundcore shpchp parport_pc ppdev lp parport 
autofs4 btrfs xor raid6_pq dm_crypt hid_generic usbhid hid 
rtsx_pci_sdmmc crct10dif_pclmul crc32_pclmul ghash_clmulni_intel 
aesni_intel i915 aes_x86_64 lrw gf128mul i2c_algo_bit glue_helper 
ablk_helper drm_kms_helper cryptd psmouse ahci r8169 drm rtsx_pci 
libahci mii wmi video
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G           OE  3.17.0+ #2
Hardware name: LENOVO 20349/Lenovo Y50-70 Touch, BIOS 9ECN30WW(V1.13) 
07/16/2014
  0000000000000009 ffff88045f203cb0 ffffffff8277a436 ffff88045f203cf8
  ffff88045f203ce8 ffffffff8207144d ffff88044352ea00 ffff880448b044f0
  ffff880035da6400 0000000000000002 ffff88044352ea00 ffff88045f203d48
Call Trace:
  <IRQ>  [<ffffffff8277a436>] dump_stack+0x45/0x56
  [<ffffffff8207144d>] warn_slowpath_common+0x7d/0xa0
  [<ffffffff820714bc>] warn_slowpath_fmt+0x4c/0x50
  [<ffffffffc0185309>] elantech_report_trackpoint.isra.5+0x199/0x1b0 
[psmouse]
  [<ffffffffc0185af8>] elantech_process_byte+0x6e8/0xf90 [psmouse]
  [<ffffffffc017bd45>] psmouse_handle_byte+0x15/0x150 [psmouse]
  [<ffffffffc017bf1f>] psmouse_interrupt+0x9f/0x360 [psmouse]
  [<ffffffff825c2d06>] serio_interrupt+0x46/0x90
  [<ffffffff825c44f7>] i8042_interrupt+0x197/0x3a0
  [<ffffffff820c8477>] handle_irq_event_percpu+0x77/0x1a0
  [<ffffffff820c85dd>] handle_irq_event+0x3d/0x60
  [<ffffffff820cb316>] handle_edge_irq+0x66/0x130
  [<ffffffff8201576e>] handle_irq+0x1e/0x40
  [<ffffffff8278522d>] do_IRQ+0x4d/0xe0
  [<ffffffff827830ad>] common_interrupt+0x6d/0x6d
  <EOI>  [<ffffffff82614965>] ? cpuidle_enter_state+0x65/0x160
  [<ffffffff82614b47>] cpuidle_enter+0x17/0x20
  [<ffffffff820b1dc7>] cpu_startup_entry+0x387/0x3c0
  [<ffffffff8276f5f7>] rest_init+0x77/0x80
  [<ffffffff82d45f9b>] start_kernel+0x461/0x46e
  [<ffffffff82d45120>] ? early_idt_handlers+0x120/0x120
  [<ffffffff82d454d7>] x86_64_start_reservations+0x2a/0x2c
  [<ffffffff82d4561c>] x86_64_start_kernel+0x143/0x152
---[ end trace b67972f4dffebd79 ]---
psmouse serio1: elantech: PS/2 packet [
  0x44 , 0x06 , 0xe3 , 0x26 , 0x01 , 0xf3 ]
psmouse serio1: elantech: PS/2 packet [
  0x44 , 0x09 , 0xbd , 0x26 , 0x00 , 0xe5 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x0b , 0x90 , 0x36 , 0xfb , 0xb7 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x0c , 0x84 , 0x36 , 0xfe , 0x9e ]
psmouse serio1: elantech: PS/2 packet [
  0x44 , 0x0c , 0x94 , 0x26 , 0x00 , 0x99 ]
psmouse serio1: elantech: PS/2 packet [
  0x44 , 0x05 , 0x98 , 0x26 , 0x00 , 0x99 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x0d , 0xba , 0x36 , 0xfd , 0xb3 ]
psmouse serio1: elantech: PS/2 packet [
  0x50 , 0x00 , 0x19 , 0x26 , 0x00 , 0x1c ]
psmouse serio1: elantech: PS/2 packet [
  0x50 , 0x04 , 0x1b , 0x26 , 0x00 , 0x19 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x11 , 0x46 , 0x36 , 0x01 , 0x53 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x09 , 0x48 , 0x36 , 0x0d , 0x39 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x0b , 0x30 , 0x36 , 0x06 , 0x30 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x0d , 0x2e , 0x36 , 0x06 , 0x2c ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x0a , 0x1c , 0x36 , 0x01 , 0x18 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x07 , 0x17 , 0x36 , 0x06 , 0x11 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x01 , 0x0b , 0x36 , 0x04 , 0x07 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x02 , 0x03 , 0x36 , 0x02 , 0x02 ]
psmouse serio1: elantech: PS/2 packet [
  0x44 , 0x03 , 0xfe , 0x26 , 0x02 , 0xfd ]
psmouse serio1: elantech: PS/2 packet [
  0x44 , 0x00 , 0xf8 , 0x26 , 0x01 , 0xfb ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x00 , 0x02 , 0x36 , 0x00 , 0x01 ]
psmouse serio1: elantech: PS/2 packet [
  0x44 , 0x01 , 0x09 , 0x26 , 0xff , 0x02 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x07 , 0x18 , 0x36 , 0x00 , 0x07 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x0e , 0x3d , 0x36 , 0x0b , 0x29 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x1d , 0x6f , 0x36 , 0x19 , 0x5f ]
psmouse serio1: elantech: PS/2 packet [
  0x50 , 0x06 , 0x19 , 0x26 , 0x05 , 0x1a ]
psmouse serio1: elantech: PS/2 packet [
  0x50 , 0x07 , 0x1a , 0x26 , 0x06 , 0x18 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x26 , 0x6d , 0x36 , 0x1e , 0x6f ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x27 , 0x5f , 0x36 , 0x1f , 0x62 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x18 , 0x36 , 0x36 , 0x1c , 0x38 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x19 , 0x2a , 0x36 , 0x1b , 0x27 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x13 , 0x19 , 0x36 , 0x11 , 0x14 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x09 , 0x06 , 0x36 , 0x09 , 0x06 ]
psmouse serio1: elantech: PS/2 packet [
  0x44 , 0x01 , 0xfd , 0x26 , 0x07 , 0xf5 ]
psmouse serio1: elantech: PS/2 packet [
  0x44 , 0x00 , 0xf9 , 0x26 , 0x0a , 0xf1 ]
psmouse serio1: elantech: PS/2 packet [
  0x44 , 0x03 , 0xd1 , 0x26 , 0x07 , 0xd0 ]
psmouse serio1: elantech: PS/2 packet [
  0x44 , 0x06 , 0xe5 , 0x26 , 0x08 , 0xd6 ]
psmouse serio1: elantech: PS/2 packet [
  0x44 , 0x04 , 0xf6 , 0x26 , 0x06 , 0xe8 ]
psmouse serio1: elantech: PS/2 packet [
  0x44 , 0x02 , 0xfd , 0x26 , 0x04 , 0xf1 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x11 , 0x1d , 0x36 , 0x0e , 0x0b ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x16 , 0x2b , 0x36 , 0x18 , 0x18 ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x24 , 0x5a , 0x36 , 0x25 , 0x3c ]
psmouse serio1: elantech: PS/2 packet [
  0x40 , 0x28 , 0x53 , 0x36 , 0x1d , 0x4e ]

> Reported-by: Stefan Valouch <stefan@valouch.com>
> Tested-by: Stefan Valouch <stefan@valouch.com>
> Tested-by: Alfredo Gemma <alfredo.gemma@gmail.com>
> Signed-off-by: Ulrik De Bie <ulrik.debie-os@e2big.org>
> ---
>   drivers/input/mouse/elantech.c | 16 ++++++++++++++--
>   1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
> index da51738..f0a55b4d 100644
> --- a/drivers/input/mouse/elantech.c
> +++ b/drivers/input/mouse/elantech.c
> @@ -792,6 +792,9 @@ static int elantech_packet_check_v4(struct psmouse *psmouse)
>   	unsigned char packet_type = packet[3] & 0x03;
>   	bool sanity_check;
>
> +	if ((packet[3]&0x0f) == 0x06)
> +		return PACKET_TRACKPOINT;
> +
>   	/*
>   	 * Sanity check based on the constant bits of a packet.
>   	 * The constant bits change depending on the value of
> @@ -877,10 +880,19 @@ static psmouse_ret_t elantech_process_byte(struct psmouse *psmouse)
>
>   	case 4:
>   		packet_type = elantech_packet_check_v4(psmouse);
> -		if (packet_type == PACKET_UNKNOWN)
> +		switch (packet_type) {
> +		case PACKET_UNKNOWN:
>   			return PSMOUSE_BAD_DATA;
>
> -		elantech_report_absolute_v4(psmouse, packet_type);
> +		case PACKET_TRACKPOINT:
> +			elantech_report_trackpoint(psmouse, packet_type);
> +			break;
> +
> +		default:
> +			elantech_report_absolute_v4(psmouse, packet_type);
> +			break;
> +		}
> +
>   		break;
>   	}
>
>

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2014-11-20  7:03 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-30 14:10 [PATCH 0/5] Input: elantech - support the Fujitsu H730 laptop Ulrik De Bie
2014-08-30 14:10 ` [PATCH 1/5] Input: elantech - use elantech_report_trackpoint for hardware v4 too Ulrik De Bie
2014-11-08  8:21   ` Dmitry Torokhov
2014-11-20  6:58   ` Anders Kaseorg [this message]
2014-11-20  7:42     ` Bisected two-finger scrolling regression on Lenovo Y50 (Re: [PATCH 1/5] Input: elantech - use elantech_report_trackpoint for hardware v4 too) Dmitry Torokhov
2014-11-20  8:21       ` Anders Kaseorg
2014-08-30 14:10 ` [PATCH 2/5] Input: elantech - Fix crc_enabled for Fujitsu H730 Ulrik De Bie
2014-11-08  8:22   ` Dmitry Torokhov
2014-08-30 14:10 ` [PATCH 3/5] Input: elantech - report the middle button of the touchpad Ulrik De Bie
2014-11-08  8:23   ` Dmitry Torokhov
2014-11-09 21:38     ` [PATCH v2 0/3] support for the Fujitsu H730 laptop (update) Ulrik De Bie
2014-11-09 21:38       ` [PATCH v2 1/3] Input: elantech - report the middle button of the touchpad Ulrik De Bie
2014-11-09 21:38       ` [PATCH v2 2/3] Input: elantech - provide a sysfs knob for crc_enabled Ulrik De Bie
2014-11-09 21:38       ` [PATCH v2 3/3] Input: elantech - Update the documentation: trackpoint,v3/v4,crc_enabled Ulrik De Bie
2014-08-30 14:10 ` [PATCH 4/5] Input: elantech - provide a sysfs knob for crc_enabled Ulrik De Bie
2014-11-08  8:25   ` Dmitry Torokhov
2014-08-30 14:10 ` [PATCH 5/5] Input: elantech - Update the documentation: trackpoint,v3/v4,crc_enabled Ulrik De Bie
2014-08-31  9:54 ` [PATCH 0/5] Input: elantech - support the Fujitsu H730 laptop Hans de Goede
2014-08-31 15:14   ` ulrik.debie-os
2014-09-01  7:13     ` Hans de Goede
2014-10-04  9:33 ` Jan Kiszka
2014-10-04  9:36   ` Hans de Goede
2014-10-23 18:36     ` ulrik.debie-os
2014-10-23 18:39       ` Dmitry Torokhov
2014-11-06 19:20         ` ulrik.debie-os

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=546D9120.1040703@mit.edu \
    --to=andersk@mit.edu \
    --cc=dh.herrmann@gmail.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=hdegoede@redhat.com \
    --cc=linux-input@vger.kernel.org \
    --cc=ulrik.debie-os@e2big.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).