diff mbox

[5/6] HID: Add vendor specific usage pages for Logitech G920

Message ID 1446912609-2573-6-git-send-email-simon@mungewell.org (mailing list archive)
State New, archived
Delegated to: Jiri Kosina
Headers show

Commit Message

simon@mungewell.org Nov. 7, 2015, 4:10 p.m. UTC
The Logitech G920 uses a couple of vendor specific usage pages,
which results in incorrect number of axis/buttons being detected.

This patch adds these pages to the 'ignore' list.

Reported-by: Elias Vanderstuyft <elias.vds@gmail.com>
Signed-off-by: Simon Wood <simon@mungewell.org>
---
 drivers/hid/hid-input.c | 2 +-
 include/linux/hid.h     | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

Comments

Benjamin Tissoires Nov. 9, 2015, 8:20 a.m. UTC | #1
On Sat, Nov 7, 2015 at 5:10 PM, Simon Wood <simon@mungewell.org> wrote:
> The Logitech G920 uses a couple of vendor specific usage pages,
> which results in incorrect number of axis/buttons being detected.
>
> This patch adds these pages to the 'ignore' list.
>
> Reported-by: Elias Vanderstuyft <elias.vds@gmail.com>
> Signed-off-by: Simon Wood <simon@mungewell.org>
> ---
>  drivers/hid/hid-input.c | 2 +-
>  include/linux/hid.h     | 2 ++
>  2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
> index 53aeaf6..c120be5 100644
> --- a/drivers/hid/hid-input.c
> +++ b/drivers/hid/hid-input.c
> @@ -959,7 +959,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
>                 set_bit(EV_REP, input->evbit);
>                 goto ignore;
>
> -       case HID_UP_LOGIVENDOR:
> +       case HID_UP_LOGIVENDOR: case HID_UP_LOGIVENDOR2: case HID_UP_LOGIVENDOR3:

One line per case, please. Also, IIRC it would be good to add /*
intentional fallback */ between each case to make sure we are not
ignoring usages that should not.

Cheers,
Benjamin

>                 goto ignore;
>
>         case HID_UP_PID:
> diff --git a/include/linux/hid.h b/include/linux/hid.h
> index f17980d..ce1d883 100644
> --- a/include/linux/hid.h
> +++ b/include/linux/hid.h
> @@ -168,6 +168,8 @@ struct hid_item {
>  #define HID_UP_MSVENDOR                0xff000000
>  #define HID_UP_CUSTOM          0x00ff0000
>  #define HID_UP_LOGIVENDOR      0xffbc0000
> +#define HID_UP_LOGIVENDOR2   0xff090000
> +#define HID_UP_LOGIVENDOR3   0xff430000
>  #define HID_UP_LNVENDOR                0xffa00000
>  #define HID_UP_SENSOR          0x00200000
>
> --
> 2.1.4
>
> --
> 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
--
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
Elias Vanderstuyft Nov. 10, 2015, 9:38 p.m. UTC | #2
On Mon, Nov 9, 2015 at 9:20 AM, Benjamin Tissoires
<benjamin.tissoires@gmail.com> wrote:
> On Sat, Nov 7, 2015 at 5:10 PM, Simon Wood <simon@mungewell.org> wrote:
>> The Logitech G920 uses a couple of vendor specific usage pages,
>> which results in incorrect number of axis/buttons being detected.
>>
>> This patch adds these pages to the 'ignore' list.
>>
>> Reported-by: Elias Vanderstuyft <elias.vds@gmail.com>
>> Signed-off-by: Simon Wood <simon@mungewell.org>
>> ---
>>  drivers/hid/hid-input.c | 2 +-
>>  include/linux/hid.h     | 2 ++
>>  2 files changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
>> index 53aeaf6..c120be5 100644
>> --- a/drivers/hid/hid-input.c
>> +++ b/drivers/hid/hid-input.c
>> @@ -959,7 +959,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
>>                 set_bit(EV_REP, input->evbit);
>>                 goto ignore;
>>
>> -       case HID_UP_LOGIVENDOR:
>> +       case HID_UP_LOGIVENDOR: case HID_UP_LOGIVENDOR2: case HID_UP_LOGIVENDOR3:
>
> One line per case, please.

This is my fault, I followed the convention used some lines above:
"case HID_GD_SLIDER: case HID_GD_DIAL: case HID_GD_WHEEL:"
but we expected this would get comments ;-)

Cheers,
Elias
--
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
diff mbox

Patch

diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 53aeaf6..c120be5 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -959,7 +959,7 @@  static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
 		set_bit(EV_REP, input->evbit);
 		goto ignore;
 
-	case HID_UP_LOGIVENDOR:
+	case HID_UP_LOGIVENDOR: case HID_UP_LOGIVENDOR2: case HID_UP_LOGIVENDOR3:
 		goto ignore;
 
 	case HID_UP_PID:
diff --git a/include/linux/hid.h b/include/linux/hid.h
index f17980d..ce1d883 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -168,6 +168,8 @@  struct hid_item {
 #define HID_UP_MSVENDOR		0xff000000
 #define HID_UP_CUSTOM		0x00ff0000
 #define HID_UP_LOGIVENDOR	0xffbc0000
+#define HID_UP_LOGIVENDOR2   0xff090000
+#define HID_UP_LOGIVENDOR3   0xff430000
 #define HID_UP_LNVENDOR		0xffa00000
 #define HID_UP_SENSOR		0x00200000