On Wed, 2010-09-01 at 09:43 +0200, Henrik Rydberg wrote: > On 09/01/2010 03:56 AM, Chase Douglas wrote: > > > From: Chase Douglas <chase.douglas@xxxxxxxxxx> > > > > 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 <chase.douglas@xxxxxxxxxxxxx> > > Acked-by: Michael Poole <mdpoole@xxxxxxxxxxx> > > --- > > > 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. > > 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); > > > - 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@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- 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