HID: sensor-hub: Fixup for Lenovo ThinkPad Helix 2 sensor hub report
authorFernando D S Lima <fernandodsl@gmail.com>
Thu, 3 Sep 2015 15:56:31 +0000 (12:56 -0300)
committerJiri Kosina <jkosina@suse.cz>
Fri, 4 Sep 2015 12:47:01 +0000 (14:47 +0200)
commit9fe8eccad4425fd024516fac2ebc0a39610441a0
tree4d2707100449948a406dc4cf36d0165ce454f13e
parent851328feb8c1d4130d3a0acb004e474168702d6d
HID: sensor-hub: Fixup for Lenovo ThinkPad Helix 2 sensor hub report

There is an error in the report descriptor of the Thinkpad Helix 2 where
logical minimum value (557376) is greater than logical maximum (491200)
for all of the magnetic flux axis data fields. This error results in a
report descriptor parsing failure that causes the sensors attached to the
hub not to be detected.

dmesg excerpt:
[   19.866905] drivers/hid/hid-core.c: logical range invalid 0x88140 0x77ec0
[   19.866914] hid-sensor-hub 0018:2047:0855.0007: item 0 1 0 8 parsing failed
[   19.866926] hid-sensor-hub 0018:2047:0855.0007: parse failed
[   19.866933] hid-sensor-hub: probe of 0018:2047:0855.0007 failed with error -22

Add a report fixup to change magnetic flux logical minimums to -557376
for the parsing to succeed and the sensors to get detected.
After applying the fix the sensors get detected, with corresponding drivers
(hid-accel-3d,hid-gyro-3d,etc) loaded, and its possible to read their values.

Signed-off-by: Fernando D S Lima <fernandodsl@gmail.com>
Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-sensor-hub.c