Re: [PATCH v2 2/4] HID: magicmouse: fix 3 button emulation of Mouse 2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 30 Mar 2021, John Chen wrote:

> It is observed that, with 3 button emulation, when middle button is
> clicked, either the left button or right button is clicked as well. It
> is caused by hidinput "correctly" acting on the event, oblivious to the
> 3 button emulation.
> 
> As raw_event has taken care of everything, no further processing is
> needed. However, the only way to stop at raw_event is to return an error
> (negative) value. Therefore, the processing is stopped at event instead.
> 
> Signed-off-by: John Chen <johnchen902@xxxxxxxxx>
> ---
>  drivers/hid/hid-magicmouse.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
> index 7aad6ca56780..c646b4cd3783 100644
> --- a/drivers/hid/hid-magicmouse.c
> +++ b/drivers/hid/hid-magicmouse.c
> @@ -440,6 +440,21 @@ static int magicmouse_raw_event(struct hid_device *hdev,
>  	return 1;
>  }
>  
> +static int magicmouse_event(struct hid_device *hdev, struct hid_field *field,
> +		struct hid_usage *usage, __s32 value)
> +{
> +	struct magicmouse_sc *msc = hid_get_drvdata(hdev);
> +	if (msc->input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2 &&
> +	    field->report->id == MOUSE2_REPORT_ID) {
> +		// magic_mouse_raw_event has done all the work. Skip hidinput.
> +		//
> +		// Specifically, hidinput may modify BTN_LEFT and BTN_RIGHT,
> +		// breaking emulate_3button.
> +		return 1;

I have fixed the comment style here, and applied the series. Thanks,

-- 
Jiri Kosina
SUSE Labs




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux