2012-06-22 16:39:26

by Yufeng Shen

[permalink] [raw]
Subject: [PATCH] HID: magicmouse: Correct report range of major / minor axes

In patch "HID: magicmouse: Adjust major / minor axes to scale",
touch_major and touch_minor axes are scaled by a factor of
four when reported but the max touch_major/minor is not scaled
accordingly. This patch scales the max touch_major/minor to
be consistent with the reported value.

Signed-off-by: Yufeng Shen <[email protected]>
---
drivers/hid/hid-magicmouse.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
index 7cf3ffe..40ac665 100644
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -426,8 +426,10 @@ static void magicmouse_setup_input(struct input_dev *input, struct hid_device *h
__set_bit(EV_ABS, input->evbit);

input_set_abs_params(input, ABS_MT_TRACKING_ID, 0, 15, 0, 0);
- input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255, 4, 0);
- input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255, 4, 0);
+ input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255 << 2,
+ 4, 0);
+ input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255 << 2,
+ 4, 0);
input_set_abs_params(input, ABS_MT_ORIENTATION, -31, 32, 1, 0);

/* Note: Touch Y position from the device is inverted relative
--
1.7.7.3


2012-06-25 12:55:39

by Henrik Rydberg

[permalink] [raw]
Subject: Re: [PATCH] HID: magicmouse: Correct report range of major / minor axes

On Fri, Jun 22, 2012 at 12:31:53PM -0400, Yufeng Shen wrote:
> In patch "HID: magicmouse: Adjust major / minor axes to scale",
> touch_major and touch_minor axes are scaled by a factor of
> four when reported but the max touch_major/minor is not scaled
> accordingly. This patch scales the max touch_major/minor to
> be consistent with the reported value.
>
> Signed-off-by: Yufeng Shen <[email protected]>
> ---
> drivers/hid/hid-magicmouse.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
> index 7cf3ffe..40ac665 100644
> --- a/drivers/hid/hid-magicmouse.c
> +++ b/drivers/hid/hid-magicmouse.c
> @@ -426,8 +426,10 @@ static void magicmouse_setup_input(struct input_dev *input, struct hid_device *h
> __set_bit(EV_ABS, input->evbit);
>
> input_set_abs_params(input, ABS_MT_TRACKING_ID, 0, 15, 0, 0);
> - input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255, 4, 0);
> - input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255, 4, 0);
> + input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255 << 2,
> + 4, 0);
> + input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255 << 2,
> + 4, 0);
> input_set_abs_params(input, ABS_MT_ORIENTATION, -31, 32, 1, 0);
>
> /* Note: Touch Y position from the device is inverted relative
> --
> 1.7.7.3
>

Acked-by: Henrik Rydberg <[email protected]>

Thanks,
Henrik

2012-06-25 13:30:46

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH] HID: magicmouse: Correct report range of major / minor axes

On Mon, 25 Jun 2012, Henrik Rydberg wrote:

> > In patch "HID: magicmouse: Adjust major / minor axes to scale",
> > touch_major and touch_minor axes are scaled by a factor of
> > four when reported but the max touch_major/minor is not scaled
> > accordingly. This patch scales the max touch_major/minor to
> > be consistent with the reported value.
> >
> > Signed-off-by: Yufeng Shen <[email protected]>
> > ---
> > drivers/hid/hid-magicmouse.c | 6 ++++--
> > 1 files changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
> > index 7cf3ffe..40ac665 100644
> > --- a/drivers/hid/hid-magicmouse.c
> > +++ b/drivers/hid/hid-magicmouse.c
> > @@ -426,8 +426,10 @@ static void magicmouse_setup_input(struct input_dev *input, struct hid_device *h
> > __set_bit(EV_ABS, input->evbit);
> >
> > input_set_abs_params(input, ABS_MT_TRACKING_ID, 0, 15, 0, 0);
> > - input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255, 4, 0);
> > - input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255, 4, 0);
> > + input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255 << 2,
> > + 4, 0);
> > + input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255 << 2,
> > + 4, 0);
> > input_set_abs_params(input, ABS_MT_ORIENTATION, -31, 32, 1, 0);
> >
> > /* Note: Touch Y position from the device is inverted relative
> > --
> > 1.7.7.3
> >
>
> Acked-by: Henrik Rydberg <[email protected]>

Applied, thanks.

--
Jiri Kosina
SUSE Labs