Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754660AbdCNBfh (ORCPT ); Mon, 13 Mar 2017 21:35:37 -0400 Received: from mail-by2nam01on0074.outbound.protection.outlook.com ([104.47.34.74]:27853 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752235AbdCNBfe (ORCPT ); Mon, 13 Mar 2017 21:35:34 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=synaptics.com; Subject: Re: Synaptics RMI4 touchpad regression in 4.11-rc1 To: Benjamin Tissoires , Thorsten Leemhuis , Jiri Kosina References: <375e67b5-2cb8-3491-1d71-d8650d6e9451@gmail.com> <7964888d-05dd-b109-973a-e0503884e2e2@leemhuis.info> <20170313131356.GH4378@mail.corp.redhat.com> <20170313131537.GI4378@mail.corp.redhat.com> Cc: Cameron Gutman , nick@shmanahar.org, cheiny@synaptics.com, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org From: Andrew Duggan Message-ID: <07543e67-efef-a764-02e6-d81d30b89a1c@synaptics.com> Date: Mon, 13 Mar 2017 18:35:01 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <20170313131537.GI4378@mail.corp.redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [192.147.44.15] X-ClientProxiedBy: MWHPR15CA0052.namprd15.prod.outlook.com (10.174.254.14) To CY1PR0301MB2042.namprd03.prod.outlook.com (10.164.2.24) X-MS-Office365-Filtering-Correlation-Id: 092b260b-ac04-402c-9c3d-08d46a7a66ab X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY1PR0301MB2042; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB2042;3:K7oLzP6PiCFk2r3z+fCOwOh/NySvrq/KzXOQstVm6scKotHRhvioi3KsXo9TO9jbrl4nILjelVMv1qePHRrfeCJc431rSODUktMrY8aYjjvIOm2mJ0r7xTau/YzbH8LKXeqtBavZGpW9Q2ssjO7BizKucM85V/q2VFILZ04izGg/62olJFrQ5Mk0PYK93xhIlegwZaEnnp67Emz1Yi0PeegH2QT/SYu27xevIB8//bJueO1InZMfF0hK41waVHN/LaecBGPxpMOspMMhsMXnTw==;25:BDd7F5BJa9rwSawDSXE0iBqzc7a7JmHtA7uAeWC+xsZgDI1IXMpJJCUjDYpz6EamRpl8k9A0dTi4MTtbREYjNb6PX4MFLm7G5zjOCpdyueL6zRhqIuBurCMRWkyUAAZjm650Y8jrKUV//HiOgN3IcrZWJhb5Ree/d281LNyO6Q3e2y82POBNpush0FwygyyjdMBElJgcvMYc4ygA4fGIIn5cAEldn0m+EL4DnL8EgR/eGhmQiI2yGyTPBFoBfpOV/bdFfBbbQQk3pSQtul10JtRzK9mrikJNg3le7pH4lVrbFcLqZ+nLxtgscmC+MuhGxyPS8pZ4Nm1ue3uuTBYHNJxGEtXNWYchslnyhrxyjV9dMJPH9r6nAlfb/7OE/A1ztWN/nhJz7XnRLvsT0791CMqXccZqYMN67iPRAy0e9Lgpgvnam3IBnEvqs7WRLrMx+Ox137oHguBybX1I5qqtDw== X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB2042;31:rt4DVbvEyJ9mR0f/hEqrKvF/h1dx5uIWVD1gPDOgcW0BdJ3iuDbnGF/xmaYemnXYqbEfBQMcr48N57mxctcmLjOxLcyp0pOLcd5a74H4kLO9tL+kpbY9VTKmohLCx+EDydqZfw0e+9uN/nTCrqepy1do2LplMkHj6w7GdMSwfE7OHmiv4Ip65G/nHrVaBHpz0CflLfUuaQd7d+UqhHZSMP0roti7WB8K+Bg20P8om7E=;20:l042ujZ4aVW3SB/NDxJlRKeOy3qikhA/eGuIn8J3CnY67LEJGp/snw6aQqH63sEuHRWmq8vBctBQAkZjsuiZEw+FZ2vZ58ACBsFdIfkD5fI93nkFLstYaD6+MW7E5SvyIna6iWOVM8eqXxjhKYHmZm1JN4eH7crzDpvz8MX87arveGvqUhUMmcOd6UsVt03PXTKx8c5p89QVeAeAr0AuCTs8eaJYKHCtdBi4SFAi7MtzKRFJHAHnlEzrRiETAQGlOukKWGoHE5LdajQBu1dIB2wcfa5RCxN0crJ/zl6zvlljvWC0QAiBojblQ725jOTKFevn8dkGw1jKETUFWFtcjQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(20558992708506); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(20161123558025)(6072148);SRVR:CY1PR0301MB2042;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB2042; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB2042;4:RjuN0GaBvlPbHQjpNiUqIm5ZSTP45Q7ZbaqPHfv4iCc53ibzzLXihiDv2QqonBCGcrccklDFdwaIUZKFxPf3h9tOU7encNtmFKnE4oRhWYJk9YixT04mXwtunJXxgKiuqOY32+XD6wkq7jHYJJHddVdVOcZsJv2KJwlpYjU4wE3UhcCO7AE7rgssSwUBw14R05vjfgtBH78nbbTy9hTGcjEnY4c5CO2F38M2ucClyQOsgwCU5MYlS1yEWA7mdMD3NrQOd6EMwg3feDc9wXwAY52ivlv2Mo1YtEE00peOK/qWu6Wihw4O4F1tbyR4+m4iZypyE3YQP/PAmAYPUXNW7wT/LGbuQjP1+OiEguR6dWwtXWNnZDx5qszWzO+WZrRmDe+U5Q6+e+f6hdKGyfgNWB1bBk7IgrIMDtT7B7qZbFvgBuv44SAF6bFKLTMVPtOO9WGB9B40D/JxjULb5x8rPX58E5cXiQDBD1vMBnVFtHJ/eZg75HawHgEbxK+X9v6SW2fuEj2FRcFfieqgQc1nzk2TgIjUggzRRZFZn9wW4BWEvW+X2cS3Mkf1oVihAJ2vtlVVIrRmK9ij5QmYlSTUzSidckNe3W6FaMITkQ3LaT1c2QGct8Rk6x3ojhImA/+hemBniI5/059qHNkzaNBZpQ== X-Forefront-PRVS: 02462830BE X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(979002)(6049001)(6009001)(39450400003)(24454002)(377454003)(31696002)(86362001)(47776003)(25786008)(50466002)(5660300001)(90366009)(6486002)(2950100002)(7736002)(36756003)(305945005)(77096006)(65806001)(65956001)(66066001)(229853002)(6666003)(53546007)(4001350100001)(4326008)(65826007)(93886004)(189998001)(81166006)(8676002)(33646002)(38730400002)(42186005)(6246003)(31686004)(64126003)(23676002)(2906002)(3846002)(53936002)(54356999)(2870700001)(6116002)(83506001)(76176999)(50986999)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR0301MB2042;H:[10.4.10.154];FPR:;SPF:None;MLV:ovrnspm;PTR:InfoNoRecords;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjAzMDFNQjIwNDI7MjM6OTVNbjNsS3Irc1J3SldDYXJ3NFlLd0pY?= =?utf-8?B?RndpOWlCYXQ2SnlTUlNJd0Y1RjhEYnBQelpKVEQzc2VDTjhLSUdPSysvL1J3?= =?utf-8?B?Um5jRW9LalFLL2gzM3diYStTRmpJTnJvMlJCV3ZwS1dCbi9uY3ByaTJmVlhG?= =?utf-8?B?dFdqcitJV2hLRktSZ2Uvamk1c2Y5YnRIYmIvb2YvbUpPWk1wU3RmL1hJakxy?= =?utf-8?B?T2swNGEvK01UT09wYk44a3Nhck1GMy9jQ3NFS0VCV3NIU0h5NS9CMWx5ZXpt?= =?utf-8?B?OVJnaHNyeFMrblUwblNSZDh0MWVEbEtIVnhNb1RLSDVGd3VtajZ5Uzg3MVBD?= =?utf-8?B?ek5LclVFMnpkTWxBZU5vNFFDQ2J0cG8zNGFYN3NCWEFUS2R2TVZSNG80MHBR?= =?utf-8?B?OWVqdUFHWk9Odms0RWY5bm9kMUZnWjB2MHlkc0xLeVFnUG9DMHJWZElUL1Zz?= =?utf-8?B?b0FNVnoreER5N3JsZC9jNFVTU0wrOXlBdnRScG5nbmd5R1FZZ2RiQkMveDU4?= =?utf-8?B?cnBOQjRiUVVVNmNWNStHTnp6c1p0KzdyV1N3aSsyVWdTVGZkTjlUa0V5WkxJ?= =?utf-8?B?TWZlVXhjUEdleTlSVlBTMGZBVFN6SURObjhabGR1Q29lRzEwZElxTThRZC83?= =?utf-8?B?aFU3TUI5SFRrRjhGRURqcm93N2QwWlpsQ0JZdlBnVlFROGFHbEpIVGpQRCs1?= =?utf-8?B?MzduYTJFNzdHNCs1elc2cGZTbm95dUVvZG1ybDRadTJHMnpPVDBpandJZVFY?= =?utf-8?B?UEtaZGlkRndFdnFjSXJ3V3orc25YQ2NaVXZlQ2Z2ajZNeTNyZEVXK3hlcTNO?= =?utf-8?B?aC9nWHc2cTVtUUdOQXlxejJndkFQSUdUbzlZQk5SbmoxcnRZNS9uMDhrMmpB?= =?utf-8?B?eDU5WlVjMjJzYXZCbVh4eTVSaDJmZDJZcmJibnVmYUhLRWh6R0gxYjJ0M2dP?= =?utf-8?B?YUVEVS9VSllUcXFtcm11NVdUS25pUTF1dXZCRUhPUU56VXFMdSsxU0k0alJw?= =?utf-8?B?U0VEVTJuNlhhTmlNVy9KUlFycktzcEYrcG95R0hUTlVyVXZKV0RkZlRJUHdu?= =?utf-8?B?RmRVSEV4MWNYSENRQS90eC9MVC8rR3FreVk3OXhNcmdMUEx0MkxhOW02RVdE?= =?utf-8?B?Nkw3SWh0TUJvVUw1N3U3VWs0SkVkaWZlRlJRYUw2WW5uUHJlRStBZHZ3YUFp?= =?utf-8?B?SkdYVy9nN1VOU1czMnZ3c1ltYTZ2UEpPNlFZbmx0ZnFLQUJmQUowektsbjEz?= =?utf-8?B?aHVTNThkTjNxVGtEYTZnT05OUUFhYnZiQTRvVlhHWHpYMjhvOFZwclNDL2tl?= =?utf-8?B?SGMyZlBBdkUyeHNSb2xUUEFob25HNFZ0akhEUStqTE42am1aRmxkQUh5dGh0?= =?utf-8?B?WWo1R0p4SUVTVWc2YjhGNVRPUFd6Y1NQT3hEWXEwNVQzV1UxTHI0V0ZoWmk4?= =?utf-8?B?eHRWQVhOQjJ3M0tTUFZ0enBrVkd6YmRsQVdvUWk0VWpwMXFnNGg5UkdXTVpy?= =?utf-8?B?d043M25mTDN1YUZqSlUyQlN1R2hrUlFlb3M3eW4xc1BtRGo5dDRIMTZITWNh?= =?utf-8?B?cjQ2QXRLMThVOWVORm5QTDdjaFNrZ2RmQ3U1b0ErMWU1K1BOTTFTdjdFNDhP?= =?utf-8?B?dERuVVdzelQ5VHhJL2xoZjVYQUgrVS9CZnVaTVNVUlRWdTFVRmhnTlZuSDAr?= =?utf-8?B?TEI1OFExQVdvZndRMjU4amtRTXRpLzhxMXBsQUtFSnZ6Mk1nL3Z5VC9DVGQ4?= =?utf-8?B?YTd0QmtjUnVGendNWHEwRFN3PT0=?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB2042;6:mqO9YaQH9AR0cCpyc+SqJa05kKMcssMhlyX/IRPDKicu0UGFuJOZ0HBR1zjnz+XIFKE5otg6gdbtpRExRiJ5T7ojIecgRW+Hvwcj75RoWHMxi6Xve1XGGKPjnzwpeO06F1XW5/FM+XrH92xRtvMfDsik9hMKuMpz3aRgFv8l4T2AuaF4gjbNvN+mhEmz6/aeOm/KF0nGfpVh9/u9dsdXFHbRQr5VjfBGvETDIb2g0j4EpucBaNwcKxJWrzmq/wPBVC8lUbp/cpZbaD4K983uDEoO0QpOnHmR0V/+hwHE+xrP+laYph+R+9qFtspy2sRDf16pJPUST38z23PrRNtF0A1GaOWJZ/VkKfyMdGTNbycyL3+pekP5NBy5OJ5tgvEKYaCFktUIgL6ksEqLStR3uA==;5:4Ilf3DWiRUyQqSL1UGroQ7Op6QJ6pdnfAryclcOFl8Sz7bTYE89soIPya8xkmZtODea+uYQZinW6L+Yh1evMljoGVEidxFB6IlXGH2fplwLYdh6wNfoGnXk5vOqbZls88LVZwrX1skelzwaDiVqQnw==;24:a/xM3dmXOpkKbnkbOeoMSgRpKXYS3xNDygVMy9z1h485mLbr2tEhHyv3B8zZZTUCiunFwc7ATcOiV02anhBHS9iChZUrLMJLT4YqPwCxVdo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB2042;7:hE6oGgg0FxRWKfl0Q9tDcvzaCNRGRIhJ/Fx5Sq+/3BgnNJsjVLcm05TA0DLmusg8oaQGcGCiuv0OSlO5s3P/eOka4So+h+VhAK/Z3ClMlDSX80riiDyJYLN976efxQz9g+iAz3EoDqfh02gA4LJ81nqcGGrwO+/UV+i7pIG1NH1plIiVuj+IW3TPPyl3sHmZm5cXLbQHLeeealoyiVb13jFPpDgKG5lijmlowZHF41BAPm58XJgS1ILXpTFugVZ6M7LXCImg8/mSj0Ny5jCKSLvmh7tqnpl9bkNvGDuZ543oK7LohF9MmCan2re1SSOXsGu0g4ts8vnUWQVJpz7GTg== X-OriginatorOrg: synaptics.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2017 01:35:30.2159 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0301MB2042 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6917 Lines: 140 On 03/13/2017 06:15 AM, Benjamin Tissoires wrote: > [Resending, forgot to add Jiri in CC] > > On Mar 13 2017 or thereabouts, Benjamin Tissoires wrote: >> On Mar 13 2017 or thereabouts, Thorsten Leemhuis wrote: >>> Lo! On 12.03.2017 02:55, Cameron Gutman wrote: >>>> Beginning in 4.11-rc1, it looks like RMI4 is binding to my XPS 13 9343's >>>> Synaptics touchpad and dropping some errors into dmesg. Here are the >>>> messages that seem RMI-related: >>>> >>>> rmi4_f34 rmi4-00.fn34: rmi_f34v7_probe: Unrecognized bootloader version >>>> rmi4_f34: probe of rmi4-00.fn34 failed with error -22 >>>> rmi4_f01 rmi4-00.fn01: found RMI device, manufacturer: Synaptics, product: TM3038-001, fw id: 1832324 >>>> input: Synaptics TM3038-001 as /devices/pci0000:00/INT3433:00/i2c-7/i2c-DLL0665:01/0018:06CB:76AD.0001/input/input19 >>>> hid-rmi 0018:06CB:76AD.0001: input,hidraw0: I2C HID v1.00 Mouse [DLL0665:01 06CB:76AD] on i2c-DLL0665:01 >>> FWIW, I get this on my XPS 13 DE (9360) with 4.11-rc1: >>> >>> input: SynPS/2 Synaptics TouchPad as >>> /devices/platform/i8042/serio1/input/input6 >>> rmi4_f34 rmi4-00.fn34: rmi_f34v7_probe: Unrecognized bootloader version >>> rmi4_f34: probe of rmi4-00.fn34 failed with error -22 >>> rmi4_f01 rmi4-00.fn01: found RMI device, manufacturer: Synaptics, >>> product: TM3038-003, fw id: 2375007 >>> input: Synaptics TM3038-003 as >>> /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-8/i2c-DLL075B:01/0018:06CB:76AF.0001/input/input20 >>> hid-rmi 0018:06CB:76AF.0001: input,hidraw0: I2C HID v1.00 Mouse >>> [DLL075B:01 06CB:76AF] on i2c-DLL075B:01 >>> >>>> […] >>>> Compared to hid-multitouch, the RMI stack seems to have completely broken >>>> palm rejection and introduced some random jumpiness during fine pointing >>>> motions. I don't know if these issues are caused by the above errors or >>>> are a separate issue. The error about the bootloader version not being recognized just means that updating the firmware is not supported on this touchpad. It is only the F34 firmware update functionality which is failing to load. The palm rejection and jumps are not related to this error. Looking at how hid-multitouch handles palms it looks like palms should not be reported as active when calling input_mt_report_slot_state(). I'm setting the tool type to MT_TOOL_PALM when the firmware determines that a contact is a palm. But, that does not seem to be sufficient enough to have the palms filtered out. After some quick testing it looks like the change below will restore palm rejection similar to that provided by hid-multitouch. >>> Just to confirm: I noticed "jumpiness during fine pointing motions" as >>> well since switching to 4.11-rc. One of my test systems is a XPS 13 9343 and I have not really seen any jumpiness. But, based on the data I am seeing that if I lift my finger and place it again in a short period of time the first event or so will be at the location of the previous contact. Then it will switch over to the current location. When switching over to hid-multitouch I was unable to reproduce this behavior. This definitely could be the source of the jumps. >> Thanks both of you for the reports. >> Andrew, Jiri, I think switching everybody to rmi4-core was maybe not the >> best move. Could we add a module parameter somewhere to force switching >> back to hid-multitouch? (Or the other way around more likely). >> >> We might need to have users testing rmi4-core and report libinput bugs, >> but introducing such regressions for everybody is IMO not the right way. If we added a module parameter it seems like we would need to add it to hid-core since that is where the decision on which driver to bind to is made. I'm a little hesitant to apply a hopefully temporary and very specific parameter to hid-core. I also think it probably depends on if these issues end up being quick bugfixes in the RMI driver or if fixes are needed in libinput. Worst case, we just revert the commit 279967a65b32 (HID: rmi: Handle all Synaptics touchpads using hid-rmi) and have PTP touchpads go back to hid-multitouch.c until things are sorted out. >> Note that I do not see any differences besides bug fixes when switching >> from PS/2 to RMI4-core on my Lenovo T450s, so maybe the hid-multitouch >> capable firmware does some more filtering (the Lenovos are not using HID >> for the touchpads). The touchpads which work with hid-multitouch typically use a newer generation chip which report 2D using F12 instead of F11. SMBus touchpads generally use F11. This is the first wide ranging test of the F12 implementation for touchpads. Another recent change is the storing of HID attention reports in the FIFO queue. If somehow an old report in the FIFO is being sent as the initial event with the coordinates from the previous contact. But, I did not see anything after a quick look at the FIFO code. I'll test on a non PTP HID / I2C touchpad to try to narrow down if t he issue is in HID or F12. Finally, the problem could be in the firmware. But, I have been told that the data sent through the PTP collection is identical to the data reported in the RMI registers and that no additional filtering is taking place. Andrew >>> @benjamin: Just wondering: Could that have something to do with the >>> ps2->rmi handover? I noticed that patches to improve things in this area >>> are still circulating, which lead me to wonder if that might have >>> anything to do with this. But it's just a wild guess. >> This has nothing to do. ps2->rmi is not used at all by hid-rmi as the >> enumeration is done in the ACPI. The series you are mentioning are for >> touchpads that do not enumerate. Once enumerated (either through PS/2 or >> HID), the code should be the same. >> >> Cheers, >> Benjamin >> >>>> The affected machine is an XPS 13 9343 running Fedora 25 with 4.11-rc1 >>>> and libinput 1.6.3-3.fc25 (latest in F25). >>> Same setup here. In case it matters: I'm running Gnome-Shell in Wayland >>> mode. >>> >>> Ciao, Thorsten >>> >>> P.S.: I fixed the model number in above quotes from Cameron to avoid >>> confusion (he has a 9343, and not a 9443, as initially stated; see a >>> different mail in this thread for details) --- diff --git a/drivers/input/rmi4/rmi_2d_sensor.c b/drivers/input/rmi4/rmi_2d_sensor.c index 8bb866c..8d1f295 100644 --- a/drivers/input/rmi4/rmi_2d_sensor.c +++ b/drivers/input/rmi4/rmi_2d_sensor.c @@ -80,7 +80,8 @@ void rmi_2d_sensor_abs_report(struct rmi_2d_sensor *sensor, input_mt_slot(input, slot); input_mt_report_slot_state(input, obj->mt_tool, - obj->type != RMI_2D_OBJECT_NONE); + (obj->type != RMI_2D_OBJECT_NONE) + && (obj->type != RMI_2D_OBJECT_PALM)); if (obj->type != RMI_2D_OBJECT_NONE) { obj->x = sensor->tracking_pos[slot].x;