linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jaikumar Ganesh <jaikumarg@android.com>
To: linux-input@vger.kernel.org
Cc: Jiri Kosina <jkosina@suse.cz>, Jaikumar Ganesh <jaikumarg@android.com>
Subject: [PATCH] HID: magicmouse: ignore 'ivalid report id' while switching modes
Date: Wed, 17 Aug 2011 12:59:42 -0700	[thread overview]
Message-ID: <1313611182-19924-1-git-send-email-jaikumarg@android.com> (raw)

From: Jiri Kosina <jkosina@suse.cz>

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@suse.cz>

Signed-off-by: Jaikumar Ganesh <jaikumarg@android.com>
---
 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


             reply	other threads:[~2011-08-17 20:00 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-17 19:59 Jaikumar Ganesh [this message]
2011-08-18 16:25 ` [PATCH] HID: magicmouse: ignore 'ivalid report id' while switching modes Chase Douglas
     [not found]   ` <CAA8bQNjQ2s4EY=2r455z-3r7yyV0uwSjhQ6m5g2+TCyMRvu0sQ@mail.gmail.com>
2011-08-18 16:48     ` Chase Douglas
2011-08-18 19:32       ` Chase Douglas
2011-08-18 19:45         ` Jaikumar Ganesh
2011-08-23  8:53           ` Jiri Kosina
2011-08-23 18:17             ` Jaikumar Ganesh
2011-08-25 12:22               ` Jiri Kosina
2011-08-24 15:13             ` Chase Douglas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1313611182-19924-1-git-send-email-jaikumarg@android.com \
    --to=jaikumarg@android.com \
    --cc=jkosina@suse.cz \
    --cc=linux-input@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).