aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/hid/hid-magicmouse.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
index 318cc40df92d..82f0c3d741f2 100644
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -499,9 +499,17 @@ static int magicmouse_probe(struct hid_device *hdev,
499 } 499 }
500 report->size = 6; 500 report->size = 6;
501 501
502 /*
503 * The device reponds with 'invalid report id' when feature
504 * report switching it into multitouch mode is sent to it.
505 *
506 * This results in -EIO from the _raw low-level transport callback,
507 * but there seems to be no other way of switching the mode.
508 * Thus the super-ugly hacky success check below.
509 */
502 ret = hdev->hid_output_raw_report(hdev, feature, sizeof(feature), 510 ret = hdev->hid_output_raw_report(hdev, feature, sizeof(feature),
503 HID_FEATURE_REPORT); 511 HID_FEATURE_REPORT);
504 if (ret != sizeof(feature)) { 512 if (ret != -EIO) {
505 hid_err(hdev, "unable to request touch data (%d)\n", ret); 513 hid_err(hdev, "unable to request touch data (%d)\n", ret);
506 goto err_stop_hw; 514 goto err_stop_hw;
507 } 515 }