linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4] HID: add missing hid usages
@ 2014-04-25 18:26 Olivier Gay
  2014-04-25 18:30 ` Dmitry Torokhov
  0 siblings, 1 reply; 4+ messages in thread
From: Olivier Gay @ 2014-04-25 18:26 UTC (permalink / raw)
  To: linux-input
  Cc: Dmitry Torokhov, Jiri Kosina, Nestor Lopez Casado, Olivier Gay,
	Mathieu Meisser

Add some missing hid usages from consumer page, add
some display brightness control usages from approved hid usage
table request HUTTR41:
http://www.usb.org/developers/hidpage/HUTRR41.pdf
and add voice command usage from approved request HUTTR45:
http://www.usb.org/developers/hidpage/Voice_Command_Usage.pdf

Signed-off-by: Olivier Gay <ogay@logitech.com>
Signed-off-by: Mathieu Meisser <mmeisser@logitech.com>
---
 drivers/hid/hid-debug.c    | 11 +++++++++++
 drivers/hid/hid-input.c    | 14 ++++++++++++++
 include/uapi/linux/input.h | 17 ++++++++++++++++-
 3 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
index 53b771d..826c847 100644
--- a/drivers/hid/hid-debug.c
+++ b/drivers/hid/hid-debug.c
@@ -855,6 +855,17 @@ static const char *keys[KEY_MAX + 1] = {
 	[KEY_KBDILLUMDOWN] = "KbdIlluminationDown",
 	[KEY_KBDILLUMUP] = "KbdIlluminationUp",
 	[KEY_SWITCHVIDEOMODE] = "SwitchVideoMode",
+	[KEY_BUTTONCONFIG] = "ButtonConfig",
+	[KEY_TASKMANAGER] = "TaskManager",
+	[KEY_JOURNAL] = "Journal",
+	[KEY_CONTROLPANEL] = "ControlPanel",
+	[KEY_APPSELECT] = "AppSelect",
+	[KEY_SCREENSAVER] = "ScreenSaver",
+	[KEY_VOICECOMMAND] = "VoiceCommand",
+	[KEY_BRIGHTNESS_TOGGLE] = "BrightnessToggle",
+	[KEY_BRIGHTNESS_MIN] = "BrightnessMin",
+	[KEY_BRIGHTNESS_MAX] = "BrightnessMax",
+	[KEY_BRIGHTNESS_AUTO] = "BrightnessAuto",
 };
 
 static const char *relatives[REL_MAX + 1] = {
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index e7e8b19..9f2076a 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -721,6 +721,13 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
 		case 0x06c: map_key_clear(KEY_YELLOW);		break;
 		case 0x06d: map_key_clear(KEY_ZOOM);		break;
 
+		case 0x06f: map_key_clear(KEY_BRIGHTNESSUP);		break;
+		case 0x070: map_key_clear(KEY_BRIGHTNESSDOWN);		break;
+		case 0x072: map_key_clear(KEY_BRIGHTNESS_TOGGLE);	break;
+		case 0x073: map_key_clear(KEY_BRIGHTNESS_MIN);		break;
+		case 0x074: map_key_clear(KEY_BRIGHTNESS_MAX);		break;
+		case 0x075: map_key_clear(KEY_BRIGHTNESS_AUTO);		break;
+
 		case 0x082: map_key_clear(KEY_VIDEO_NEXT);	break;
 		case 0x083: map_key_clear(KEY_LAST);		break;
 		case 0x084: map_key_clear(KEY_ENTER);		break;
@@ -761,6 +768,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
 		case 0x0bf: map_key_clear(KEY_SLOW);		break;
 
 		case 0x0cd: map_key_clear(KEY_PLAYPAUSE);	break;
+		case 0x0cf: map_key_clear(KEY_VOICECOMMAND);	break;
 		case 0x0e0: map_abs_clear(ABS_VOLUME);		break;
 		case 0x0e2: map_key_clear(KEY_MUTE);		break;
 		case 0x0e5: map_key_clear(KEY_BASSBOOST);	break;
@@ -768,6 +776,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
 		case 0x0ea: map_key_clear(KEY_VOLUMEDOWN);	break;
 		case 0x0f5: map_key_clear(KEY_SLOW);		break;
 
+		case 0x181: map_key_clear(KEY_BUTTONCONFIG);	break;
 		case 0x182: map_key_clear(KEY_BOOKMARKS);	break;
 		case 0x183: map_key_clear(KEY_CONFIG);		break;
 		case 0x184: map_key_clear(KEY_WORDPROCESSOR);	break;
@@ -781,6 +790,8 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
 		case 0x18c: map_key_clear(KEY_VOICEMAIL);	break;
 		case 0x18d: map_key_clear(KEY_ADDRESSBOOK);	break;
 		case 0x18e: map_key_clear(KEY_CALENDAR);	break;
+		case 0x18f: map_key_clear(KEY_TASKMANAGER);	break;
+		case 0x190: map_key_clear(KEY_JOURNAL);		break;
 		case 0x191: map_key_clear(KEY_FINANCE);		break;
 		case 0x192: map_key_clear(KEY_CALC);		break;
 		case 0x193: map_key_clear(KEY_PLAYER);		break;
@@ -789,12 +800,15 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
 		case 0x199: map_key_clear(KEY_CHAT);		break;
 		case 0x19c: map_key_clear(KEY_LOGOFF);		break;
 		case 0x19e: map_key_clear(KEY_COFFEE);		break;
+		case 0x19f: map_key_clear(KEY_CONTROLPANEL);		break;
+		case 0x1a2: map_key_clear(KEY_APPSELECT);		break;
 		case 0x1a3: map_key_clear(KEY_NEXT);		break;
 		case 0x1a4: map_key_clear(KEY_PREVIOUS);	break;
 		case 0x1a6: map_key_clear(KEY_HELP);		break;
 		case 0x1a7: map_key_clear(KEY_DOCUMENTS);	break;
 		case 0x1ab: map_key_clear(KEY_SPELLCHECK);	break;
 		case 0x1ae: map_key_clear(KEY_KEYBOARD);	break;
+		case 0x1b1: map_key_clear(KEY_SCREENSAVER);		break;
 		case 0x1b4: map_key_clear(KEY_FILE);		break;
 		case 0x1b6: map_key_clear(KEY_IMAGES);		break;
 		case 0x1b7: map_key_clear(KEY_AUDIO);		break;
diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h
index bd24470..b75b5d6 100644
--- a/include/uapi/linux/input.h
+++ b/include/uapi/linux/input.h
@@ -461,7 +461,10 @@ struct input_keymap_entry {
 #define KEY_VIDEO_NEXT		241	/* drive next video source */
 #define KEY_VIDEO_PREV		242	/* drive previous video source */
 #define KEY_BRIGHTNESS_CYCLE	243	/* brightness up, after max is min */
-#define KEY_BRIGHTNESS_ZERO	244	/* brightness off, use ambient */
+#define KEY_BRIGHTNESS_AUTO	244	/* Set Auto Brightness: manual
+					  brightness control is off,
+					  rely on ambient */
+#define KEY_BRIGHTNESS_ZERO	KEY_BRIGHTNESS_AUTO
 #define KEY_DISPLAY_OFF		245	/* display device to off state */
 
 #define KEY_WWAN		246	/* Wireless WAN (LTE, UMTS, GSM, etc.) */
@@ -631,6 +634,7 @@ struct input_keymap_entry {
 #define KEY_ADDRESSBOOK		0x1ad	/* AL Contacts/Address Book */
 #define KEY_MESSENGER		0x1ae	/* AL Instant Messaging */
 #define KEY_DISPLAYTOGGLE	0x1af	/* Turn display (LCD) on and off */
+#define KEY_BRIGHTNESS_TOGGLE	KEY_DISPLAYTOGGLE
 #define KEY_SPELLCHECK		0x1b0   /* AL Spell Check */
 #define KEY_LOGOFF		0x1b1   /* AL Logoff */
 
@@ -722,6 +726,17 @@ struct input_keymap_entry {
 
 #define KEY_ALS_TOGGLE		0x230	/* Ambient light sensor */
 
+#define KEY_BUTTONCONFIG		0x240	/* AL Button Configuration */
+#define KEY_TASKMANAGER		0x241	/* AL Task/Project Manager */
+#define KEY_JOURNAL		0x242	/* AL Log/Journal/Timecard */
+#define KEY_CONTROLPANEL		0x243	/* AL Control Panel */
+#define KEY_APPSELECT		0x244	/* AL Select Task/Application */
+#define KEY_SCREENSAVER		0x245	/* AL Screen Saver */
+#define KEY_VOICECOMMAND		0x246	/* Listening Voice Command */
+
+#define KEY_BRIGHTNESS_MIN		0x250	/* Set Brightness to Minimum */
+#define KEY_BRIGHTNESS_MAX		0x251	/* Set Brightness to Maximum */
+
 #define BTN_TRIGGER_HAPPY		0x2c0
 #define BTN_TRIGGER_HAPPY1		0x2c0
 #define BTN_TRIGGER_HAPPY2		0x2c1
-- 
1.9.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v4] HID: add missing hid usages
  2014-04-25 18:26 [PATCH v4] HID: add missing hid usages Olivier Gay
@ 2014-04-25 18:30 ` Dmitry Torokhov
  2014-04-28 15:00   ` Jiri Kosina
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Torokhov @ 2014-04-25 18:30 UTC (permalink / raw)
  To: Olivier Gay
  Cc: linux-input, Jiri Kosina, Nestor Lopez Casado, Mathieu Meisser

On Fri, Apr 25, 2014 at 08:26:44PM +0200, Olivier Gay wrote:
> Add some missing hid usages from consumer page, add
> some display brightness control usages from approved hid usage
> table request HUTTR41:
> http://www.usb.org/developers/hidpage/HUTRR41.pdf
> and add voice command usage from approved request HUTTR45:
> http://www.usb.org/developers/hidpage/Voice_Command_Usage.pdf
> 
> Signed-off-by: Olivier Gay <ogay@logitech.com>
> Signed-off-by: Mathieu Meisser <mmeisser@logitech.com>

Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

with a small nit below. Probably Jiri can fix it up without resubmitting.

> ---
>  drivers/hid/hid-debug.c    | 11 +++++++++++
>  drivers/hid/hid-input.c    | 14 ++++++++++++++
>  include/uapi/linux/input.h | 17 ++++++++++++++++-
>  3 files changed, 41 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
> index 53b771d..826c847 100644
> --- a/drivers/hid/hid-debug.c
> +++ b/drivers/hid/hid-debug.c
> @@ -855,6 +855,17 @@ static const char *keys[KEY_MAX + 1] = {
>  	[KEY_KBDILLUMDOWN] = "KbdIlluminationDown",
>  	[KEY_KBDILLUMUP] = "KbdIlluminationUp",
>  	[KEY_SWITCHVIDEOMODE] = "SwitchVideoMode",
> +	[KEY_BUTTONCONFIG] = "ButtonConfig",
> +	[KEY_TASKMANAGER] = "TaskManager",
> +	[KEY_JOURNAL] = "Journal",
> +	[KEY_CONTROLPANEL] = "ControlPanel",
> +	[KEY_APPSELECT] = "AppSelect",
> +	[KEY_SCREENSAVER] = "ScreenSaver",
> +	[KEY_VOICECOMMAND] = "VoiceCommand",
> +	[KEY_BRIGHTNESS_TOGGLE] = "BrightnessToggle",

This needs to go as it smashes KEY_DISPLAYTOGGLE.

Thanks.

> +	[KEY_BRIGHTNESS_MIN] = "BrightnessMin",
> +	[KEY_BRIGHTNESS_MAX] = "BrightnessMax",
> +	[KEY_BRIGHTNESS_AUTO] = "BrightnessAuto",
>  };
>  
>  static const char *relatives[REL_MAX + 1] = {
> diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
> index e7e8b19..9f2076a 100644
> --- a/drivers/hid/hid-input.c
> +++ b/drivers/hid/hid-input.c
> @@ -721,6 +721,13 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
>  		case 0x06c: map_key_clear(KEY_YELLOW);		break;
>  		case 0x06d: map_key_clear(KEY_ZOOM);		break;
>  
> +		case 0x06f: map_key_clear(KEY_BRIGHTNESSUP);		break;
> +		case 0x070: map_key_clear(KEY_BRIGHTNESSDOWN);		break;
> +		case 0x072: map_key_clear(KEY_BRIGHTNESS_TOGGLE);	break;
> +		case 0x073: map_key_clear(KEY_BRIGHTNESS_MIN);		break;
> +		case 0x074: map_key_clear(KEY_BRIGHTNESS_MAX);		break;
> +		case 0x075: map_key_clear(KEY_BRIGHTNESS_AUTO);		break;
> +
>  		case 0x082: map_key_clear(KEY_VIDEO_NEXT);	break;
>  		case 0x083: map_key_clear(KEY_LAST);		break;
>  		case 0x084: map_key_clear(KEY_ENTER);		break;
> @@ -761,6 +768,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
>  		case 0x0bf: map_key_clear(KEY_SLOW);		break;
>  
>  		case 0x0cd: map_key_clear(KEY_PLAYPAUSE);	break;
> +		case 0x0cf: map_key_clear(KEY_VOICECOMMAND);	break;
>  		case 0x0e0: map_abs_clear(ABS_VOLUME);		break;
>  		case 0x0e2: map_key_clear(KEY_MUTE);		break;
>  		case 0x0e5: map_key_clear(KEY_BASSBOOST);	break;
> @@ -768,6 +776,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
>  		case 0x0ea: map_key_clear(KEY_VOLUMEDOWN);	break;
>  		case 0x0f5: map_key_clear(KEY_SLOW);		break;
>  
> +		case 0x181: map_key_clear(KEY_BUTTONCONFIG);	break;
>  		case 0x182: map_key_clear(KEY_BOOKMARKS);	break;
>  		case 0x183: map_key_clear(KEY_CONFIG);		break;
>  		case 0x184: map_key_clear(KEY_WORDPROCESSOR);	break;
> @@ -781,6 +790,8 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
>  		case 0x18c: map_key_clear(KEY_VOICEMAIL);	break;
>  		case 0x18d: map_key_clear(KEY_ADDRESSBOOK);	break;
>  		case 0x18e: map_key_clear(KEY_CALENDAR);	break;
> +		case 0x18f: map_key_clear(KEY_TASKMANAGER);	break;
> +		case 0x190: map_key_clear(KEY_JOURNAL);		break;
>  		case 0x191: map_key_clear(KEY_FINANCE);		break;
>  		case 0x192: map_key_clear(KEY_CALC);		break;
>  		case 0x193: map_key_clear(KEY_PLAYER);		break;
> @@ -789,12 +800,15 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
>  		case 0x199: map_key_clear(KEY_CHAT);		break;
>  		case 0x19c: map_key_clear(KEY_LOGOFF);		break;
>  		case 0x19e: map_key_clear(KEY_COFFEE);		break;
> +		case 0x19f: map_key_clear(KEY_CONTROLPANEL);		break;
> +		case 0x1a2: map_key_clear(KEY_APPSELECT);		break;
>  		case 0x1a3: map_key_clear(KEY_NEXT);		break;
>  		case 0x1a4: map_key_clear(KEY_PREVIOUS);	break;
>  		case 0x1a6: map_key_clear(KEY_HELP);		break;
>  		case 0x1a7: map_key_clear(KEY_DOCUMENTS);	break;
>  		case 0x1ab: map_key_clear(KEY_SPELLCHECK);	break;
>  		case 0x1ae: map_key_clear(KEY_KEYBOARD);	break;
> +		case 0x1b1: map_key_clear(KEY_SCREENSAVER);		break;
>  		case 0x1b4: map_key_clear(KEY_FILE);		break;
>  		case 0x1b6: map_key_clear(KEY_IMAGES);		break;
>  		case 0x1b7: map_key_clear(KEY_AUDIO);		break;
> diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h
> index bd24470..b75b5d6 100644
> --- a/include/uapi/linux/input.h
> +++ b/include/uapi/linux/input.h
> @@ -461,7 +461,10 @@ struct input_keymap_entry {
>  #define KEY_VIDEO_NEXT		241	/* drive next video source */
>  #define KEY_VIDEO_PREV		242	/* drive previous video source */
>  #define KEY_BRIGHTNESS_CYCLE	243	/* brightness up, after max is min */
> -#define KEY_BRIGHTNESS_ZERO	244	/* brightness off, use ambient */
> +#define KEY_BRIGHTNESS_AUTO	244	/* Set Auto Brightness: manual
> +					  brightness control is off,
> +					  rely on ambient */
> +#define KEY_BRIGHTNESS_ZERO	KEY_BRIGHTNESS_AUTO
>  #define KEY_DISPLAY_OFF		245	/* display device to off state */
>  
>  #define KEY_WWAN		246	/* Wireless WAN (LTE, UMTS, GSM, etc.) */
> @@ -631,6 +634,7 @@ struct input_keymap_entry {
>  #define KEY_ADDRESSBOOK		0x1ad	/* AL Contacts/Address Book */
>  #define KEY_MESSENGER		0x1ae	/* AL Instant Messaging */
>  #define KEY_DISPLAYTOGGLE	0x1af	/* Turn display (LCD) on and off */
> +#define KEY_BRIGHTNESS_TOGGLE	KEY_DISPLAYTOGGLE
>  #define KEY_SPELLCHECK		0x1b0   /* AL Spell Check */
>  #define KEY_LOGOFF		0x1b1   /* AL Logoff */
>  
> @@ -722,6 +726,17 @@ struct input_keymap_entry {
>  
>  #define KEY_ALS_TOGGLE		0x230	/* Ambient light sensor */
>  
> +#define KEY_BUTTONCONFIG		0x240	/* AL Button Configuration */
> +#define KEY_TASKMANAGER		0x241	/* AL Task/Project Manager */
> +#define KEY_JOURNAL		0x242	/* AL Log/Journal/Timecard */
> +#define KEY_CONTROLPANEL		0x243	/* AL Control Panel */
> +#define KEY_APPSELECT		0x244	/* AL Select Task/Application */
> +#define KEY_SCREENSAVER		0x245	/* AL Screen Saver */
> +#define KEY_VOICECOMMAND		0x246	/* Listening Voice Command */
> +
> +#define KEY_BRIGHTNESS_MIN		0x250	/* Set Brightness to Minimum */
> +#define KEY_BRIGHTNESS_MAX		0x251	/* Set Brightness to Maximum */
> +
>  #define BTN_TRIGGER_HAPPY		0x2c0
>  #define BTN_TRIGGER_HAPPY1		0x2c0
>  #define BTN_TRIGGER_HAPPY2		0x2c1
> -- 
> 1.9.0
> 

-- 
Dmitry

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v4] HID: add missing hid usages
  2014-04-25 18:30 ` Dmitry Torokhov
@ 2014-04-28 15:00   ` Jiri Kosina
  2014-04-28 15:51     ` Olivier Gay
  0 siblings, 1 reply; 4+ messages in thread
From: Jiri Kosina @ 2014-04-28 15:00 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Olivier Gay, linux-input, Nestor Lopez Casado, Mathieu Meisser

On Fri, 25 Apr 2014, Dmitry Torokhov wrote:

> > Add some missing hid usages from consumer page, add
> > some display brightness control usages from approved hid usage
> > table request HUTTR41:
> > http://www.usb.org/developers/hidpage/HUTRR41.pdf
> > and add voice command usage from approved request HUTTR45:
> > http://www.usb.org/developers/hidpage/Voice_Command_Usage.pdf
> > 
> > Signed-off-by: Olivier Gay <ogay@logitech.com>
> > Signed-off-by: Mathieu Meisser <mmeisser@logitech.com>
> 
> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> 
> with a small nit below. Probably Jiri can fix it up without resubmitting.

Absolutely; applied now.

Thanks,

-- 
Jiri Kosina
SUSE Labs

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v4] HID: add missing hid usages
  2014-04-28 15:00   ` Jiri Kosina
@ 2014-04-28 15:51     ` Olivier Gay
  0 siblings, 0 replies; 4+ messages in thread
From: Olivier Gay @ 2014-04-28 15:51 UTC (permalink / raw)
  To: Jiri Kosina
  Cc: Dmitry Torokhov, linux-input, Nestor Lopez Casado,
	Mathieu Meisser

On Mon, Apr 28, 2014 at 5:00 PM, Jiri Kosina <jkosina@suse.cz> wrote:

> > with a small nit below. Probably Jiri can fix it up without resubmitting.
>
> Absolutely; applied now.

Great, thank you both!

Olivier

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-04-28 15:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-25 18:26 [PATCH v4] HID: add missing hid usages Olivier Gay
2014-04-25 18:30 ` Dmitry Torokhov
2014-04-28 15:00   ` Jiri Kosina
2014-04-28 15:51     ` Olivier Gay

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).