<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/hid/hid-multitouch.c, branch linux-4.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.1.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.1.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-04-12T02:07:35Z</updated>
<entry>
<title>HID: multitouch: fix input mode switching on some Elan panels</title>
<updated>2016-04-12T02:07:35Z</updated>
<author>
<name>Benjamin Tissoires</name>
</author>
<published>2015-12-01T11:41:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=93d310f6cfd51d7158e2901b0f75babeaf97f3c3'/>
<id>urn:sha1:93d310f6cfd51d7158e2901b0f75babeaf97f3c3</id>
<content type='text'>
[ Upstream commit 73e7d63efb4d774883a338997943bfa59e127085 ]

as reported by https://bugzilla.kernel.org/show_bug.cgi?id=108481

This bug reports mentions 6d4f5440 ("HID: multitouch: Fetch feature
reports on demand for Win8 devices") as the origin of the problem but this
commit actually masked 2 firmware bugs that are annihilating each other:

The report descriptor declares two features in reports 3 and 5:

0x05, 0x0d,                    // Usage Page (Digitizers)             318
0x09, 0x0e,                    // Usage (Device Configuration)        320
0xa1, 0x01,                    // Collection (Application)            322
0x85, 0x03,                    //  Report ID (3)                      324
0x09, 0x22,                    //  Usage (Finger)                     326
0xa1, 0x00,                    //  Collection (Physical)              328
0x09, 0x52,                    //   Usage (Inputmode)                 330
0x15, 0x00,                    //   Logical Minimum (0)               332
0x25, 0x0a,                    //   Logical Maximum (10)              334
0x75, 0x08,                    //   Report Size (8)                   336
0x95, 0x02,                    //   Report Count (2)                  338
0xb1, 0x02,                    //   Feature (Data,Var,Abs)            340
0xc0,                          //  End Collection                     342
0x09, 0x22,                    //  Usage (Finger)                     343
0xa1, 0x00,                    //  Collection (Physical)              345
0x85, 0x05,                    //   Report ID (5)                     347
0x09, 0x57,                    //   Usage (Surface Switch)            349
0x09, 0x58,                    //   Usage (Button Switch)             351
0x15, 0x00,                    //   Logical Minimum (0)               353
0x75, 0x01,                    //   Report Size (1)                   355
0x95, 0x02,                    //   Report Count (2)                  357
0x25, 0x03,                    //   Logical Maximum (3)               359
0xb1, 0x02,                    //   Feature (Data,Var,Abs)            361
0x95, 0x0e,                    //   Report Count (14)                 363
0xb1, 0x03,                    //   Feature (Cnst,Var,Abs)            365
0xc0,                          //  End Collection                     367

The report ID 3 presents 2 input mode features, while only the first one
is handled by the device. Given that we did not checked if one was
previously assigned, we were dealing with the ignored featured and we
should never have been able to switch this panel into the multitouch mode.

However, the firmware presents an other bugs which allowed 6d4f5440
to counteract the faulty report descriptor. When we request the values
of the feature 5, the firmware answers "03 03 00". The fields are correct
but the report id is wrong. Before 6d4f5440, we retrieved all the features
and injected them in the system. So when we called report 5, we injected
in the system the report 3 with the values "03 00".
Setting the second input mode to 03 in this report changed it to "03 03"
and the touchpad switched to the mt mode. We could have set anything
in the second field because the actual value (the first 03 in this report)
was given by the query of report ID 5.

To sum up: 2 bugs in the firmware were hiding that we were accessing the
wrong feature.

Signed-off-by: Benjamin Tissoires &lt;benjamin.tissoires@redhat.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>Merge branches 'for-4.0/upstream-fixes', 'for-4.1/genius', 'for-4.1/huion-uclogic-merge', 'for-4.1/i2c-hid', 'for-4.1/kconfig-drop-expert-dependency', 'for-4.1/logitech', 'for-4.1/multitouch', 'for-4.1/rmi', 'for-4.1/sony', 'for-4.1/upstream' and 'for-4.1/wacom' into for-linus</title>
<updated>2015-04-13T21:41:15Z</updated>
<author>
<name>Jiri Kosina</name>
</author>
<published>2015-04-13T21:41:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=05f6d02521d4c7a656c5135d6d81c345ce531ac0'/>
<id>urn:sha1:05f6d02521d4c7a656c5135d6d81c345ce531ac0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>HID: multitouch: Add support for button type usage</title>
<updated>2015-03-12T04:04:13Z</updated>
<author>
<name>Seth Forshee</name>
</author>
<published>2015-03-11T22:26:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2c6e0277e1eab3df5db81c59e408b7b1c14b1b72'/>
<id>urn:sha1:2c6e0277e1eab3df5db81c59e408b7b1c14b1b72</id>
<content type='text'>
According to [1], Windows Precision Touchpad devices must supply
a button type usage in the device capabilities feature report. A
value of 0 indicates that the device contains a depressible
button (i.e. it's a click-pad) whereas a value of 1 indicates
a non-depressible button. Add support for this usage and set
INPUT_PROP_BUTTONPAD on the touchpad input device whenever a
depressible button is present.

[1] https://msdn.microsoft.com/en-us/library/windows/hardware/dn467314(v=vs.85).aspx

Signed-off-by: Seth Forshee &lt;seth.forshee@canonical.com&gt;
Reviewed-by: Benjamin Tissoires &lt;benjamin.tissoires@redhat.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>HID: multitouch: add support of clickpads</title>
<updated>2015-03-06T21:54:01Z</updated>
<author>
<name>Benjamin Tissoires</name>
</author>
<published>2015-03-06T16:14:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=015fdaa9f8edd89a456b3331088e1b77ebdad9d0'/>
<id>urn:sha1:015fdaa9f8edd89a456b3331088e1b77ebdad9d0</id>
<content type='text'>
Touchpads that have only one button are called clickpads and should
be advertised as such by the kernel.

Signed-off-by: Benjamin Tissoires &lt;benjamin.tissoires@redhat.com&gt;
Tested-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>HID: remove 2 unused usb.h includes</title>
<updated>2015-02-26T23:36:23Z</updated>
<author>
<name>Benjamin Tissoires</name>
</author>
<published>2015-02-26T18:39:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=68c18c61b23c28d4741fda0df81bc6ec40bfd14b'/>
<id>urn:sha1:68c18c61b23c28d4741fda0df81bc6ec40bfd14b</id>
<content type='text'>
These 2 are left over from the USB dependency cleaning, so there is
no need to keep them.

[jkosina@suse.cz: fix filename]
Signed-off-by: Benjamin Tissoires &lt;benjamin.tissoires@redhat.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>HID: make hid_report_len as a static inline function in hid.h</title>
<updated>2014-12-01T20:34:17Z</updated>
<author>
<name>Mathieu Magnaudet</name>
</author>
<published>2014-11-27T15:02:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dabb05c6670e6e4415d7b56cd5864a5dbd90207f'/>
<id>urn:sha1:dabb05c6670e6e4415d7b56cd5864a5dbd90207f</id>
<content type='text'>
In several hid drivers it is necessary to calculate the length of an
hid_report. This patch exports the existing static function hid_report_len of
hid-core.c as an inline function in hid.h

Signed-off-by: Mathieu Magnaudet &lt;mathieu.magnaudet@enac.fr&gt;
Reviewed-by: Benjamin Tissoires &lt;benjamin.tissoires@gmail.com&gt;
Reviewed-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>HID: multitouch: Add quirk for VTL touch panels</title>
<updated>2014-11-25T14:28:12Z</updated>
<author>
<name>Mathieu Magnaudet</name>
</author>
<published>2014-11-22T11:02:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=da10bc252476a8d1d1bdf7b94502ad2cbd7f30b1'/>
<id>urn:sha1:da10bc252476a8d1d1bdf7b94502ad2cbd7f30b1</id>
<content type='text'>
VTL panels do not switch to the multitouch mode until the input mode
feature is read by the host. This should normally be done by
usbhid, but it looks like an other bug prevents usbhid to properly
retrieve the feature state. As a workaround, we force the reading of
the feature in mt_set_input_mode for such devices.

Reviewed-by: Benjamin Tissoires &lt;benjamin.tissoires@redhat.com&gt;
Signed-off-by: Mathieu Magnaudet &lt;mathieu.magnaudet@enac.fr&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>HID: multitouch: add support of EliteGroup 05D8 panels</title>
<updated>2014-04-24T09:45:56Z</updated>
<author>
<name>Tomas Sokorai</name>
</author>
<published>2014-04-23T14:42:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7c7606a2464fee1cf50efef34aa44aee1edf453a'/>
<id>urn:sha1:7c7606a2464fee1cf50efef34aa44aee1edf453a</id>
<content type='text'>
They need to have the class SERIAL.

Note: it is a Win 7 panel, not Win 8 certified.

Signed-off-by: Tomas Sokorai &lt;tsokorai@gmail.com&gt;
Signed-off-by: Benjamin Tissoires &lt;benjamin.tissoires@redhat.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>Merge branches 'for-3.15/multitouch', 'for-3.15/sony' and 'for-3.15/uhid' into for-linus</title>
<updated>2014-04-01T17:06:50Z</updated>
<author>
<name>Jiri Kosina</name>
</author>
<published>2014-04-01T17:06:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fa1054a29b21e4c932b5c93def600149451cec32'/>
<id>urn:sha1:fa1054a29b21e4c932b5c93def600149451cec32</id>
<content type='text'>
</content>
</entry>
<entry>
<title>HID: multitouch: add support for Win 8.1 multitouch touchpads</title>
<updated>2014-03-20T09:01:44Z</updated>
<author>
<name>Andrew Duggan</name>
</author>
<published>2014-03-19T20:39:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9abebedb123a577ecc5b69b2a2515499e430be24'/>
<id>urn:sha1:9abebedb123a577ecc5b69b2a2515499e430be24</id>
<content type='text'>
Multitouch touchpads built for Win 8.1 need to be sent an input mode feature report
in order to start reporting multitouch events. This is the same process sent
to Win 7 multitouch touchscreens except the value of the feature report is 3 for
touchpads.

Signed-off-by: Andrew Duggan &lt;aduggan@synaptics.com&gt;
Reviewed-by: Benjamin Tissoires &lt;benjamin.tissoires@redhat.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
</feed>
