From: Jiri Kosina <jkosina@xxxxxxx> 23746a introduced this commit but was reverted in c3a492. The trackpad uses report Ids which are not present in the report descriptor. These reports ids are not documented anywhere. There are devices in the market (Apple magic tracpkad, BT version 2.0 is one such device) with the same device id, which fail when we use 0xd7 as the report id. So we need the EIO change of 23746a as a failsafe to work with these devices. Original Author: Jiri Kosina <jkosina@xxxxxxx> Signed-off-by: Jaikumar Ganesh <jaikumarg@xxxxxxxxxxx> --- drivers/hid/hid-magicmouse.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c index 0ec91c1..a5eda4c 100644 --- a/drivers/hid/hid-magicmouse.c +++ b/drivers/hid/hid-magicmouse.c @@ -501,9 +501,17 @@ static int magicmouse_probe(struct hid_device *hdev, } report->size = 6; + /* + * The device reponds with 'invalid report id' when feature + * report switching it into multitouch mode is sent to it. + * + * This results in -EIO from the _raw low-level transport callback, + * but there seems to be no other way of switching the mode. + * Thus the super-ugly hacky success check below. + */ ret = hdev->hid_output_raw_report(hdev, feature, sizeof(feature), HID_FEATURE_REPORT); - if (ret != sizeof(feature)) { + if (ret != -EIO) { hid_err(hdev, "unable to request touch data (%d)\n", ret); goto err_stop_hw; } -- 1.7.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html