Thread (29 messages) 29 messages, 5 authors, 2010-09-18

Re: [PATCH 2/7 v3] HID: magicmouse: simplify multitouch feature request

From: Chase Douglas <hidden>
Date: 2010-09-01 12:34:51
Also in: lkml

On Wed, 2010-09-01 at 09:43 +0200, Henrik Rydberg wrote:
On 09/01/2010 03:56 AM, Chase Douglas wrote:
quoted
From: Chase Douglas <redacted>

Only the first feature request is required to put the Magic Mouse into
multitouch mode. This is also the case for the Magic Trackpad, for which
support will be added in a later commit.

Signed-off-by: Chase Douglas <redacted>
Acked-by: Michael Poole <redacted>
---

Since this is starting to look awfully similar to the mode switch found in
appletouch and bcm5974, I wonder what happens to the stream from the device when
the connection to hid is closed. It could be that the mode switch should be
moved to open/close instead.
I don't really understand what you are proposing. It sounds like maybe
you want the device to continue to function in a non-multitouch way
after hid disconnection, but the device needs hid to function at all.

The closest thing I can think to what you are saying is to do whatever
it takes on module removal so that it goes back to functioning in the
non-multitouch mode. That may be possible.
quoted
 drivers/hid/hid-magicmouse.c |   16 ++++------------
 1 files changed, 4 insertions(+), 12 deletions(-)
diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
index d38b529..8a2fe78 100644
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -380,8 +380,7 @@ static void magicmouse_setup_input(struct input_dev *input, struct hid_device *h
 static int magicmouse_probe(struct hid_device *hdev,
 	const struct hid_device_id *id)
 {
-	__u8 feature_1[] = { 0xd7, 0x01 };
-	__u8 feature_2[] = { 0xf8, 0x01, 0x32 };
+	__u8 feature[] = { 0xd7, 0x01 };
 	struct input_dev *input;
 	struct magicmouse_sc *msc;
 	struct hid_report *report;
@@ -426,17 +425,10 @@ static int magicmouse_probe(struct hid_device *hdev,
 	}
 	report->size = 6;
 
-	ret = hdev->hid_output_raw_report(hdev, feature_1, sizeof(feature_1),
+	ret = hdev->hid_output_raw_report(hdev, feature, sizeof(feature),
 			HID_FEATURE_REPORT);
quoted
-	if (ret != sizeof(feature_1)) {
-		dev_err(&hdev->dev, "unable to request touch data (1:%d)\n",
-				ret);
-		goto err_stop_hw;
-	}
-	ret = hdev->hid_output_raw_report(hdev, feature_2,
-			sizeof(feature_2), HID_FEATURE_REPORT);
-	if (ret != sizeof(feature_2)) {
-		dev_err(&hdev->dev, "unable to request touch data (2:%d)\n",
+	if (ret != sizeof(feature)) {
+		dev_err(&hdev->dev, "unable to request touch data (%d)\n",
 				ret);
 		goto err_stop_hw;
 	}
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help