diff mbox series

[v2,2/2] input: Add support for "Do Not Disturb"

Message ID ZlZgByQ3TlycC-A_@google.com
State New
Headers show
Series [v2,1/2] input: Add event code for accessibility key | expand

Commit Message

Aseda Aboagye May 28, 2024, 10:51 p.m. UTC
HUTRR94 added support for a new usage titled "System Do Not Disturb"
which toggles a system-wide Do Not Disturb setting. This commit simply
adds a new event code for the usage.

Signed-off-by: Aseda Aboagye <aaboagye@chromium.org>
---
Changes from v1:
 - Modified formatting to match existing code, ignoring checkpatch.pl.

 drivers/hid/hid-debug.c                | 1 +
 drivers/hid/hid-input.c                | 8 ++++++++
 include/uapi/linux/input-event-codes.h | 1 +
 3 files changed, 10 insertions(+)

Comments

Aseda Aboagye May 29, 2024, 12:06 a.m. UTC | #1
On Tue, May 28, 2024 at 04:32:34PM -0700, Dmitry Torokhov wrote:
> On Tue, May 28, 2024 at 05:51:51PM -0500, Aseda Aboagye wrote:
> > HUTRR94 added support for a new usage titled "System Do Not Disturb"
> > which toggles a system-wide Do Not Disturb setting. This commit simply
> > adds a new event code for the usage.
> > 
> > Signed-off-by: Aseda Aboagye <aaboagye@chromium.org>
> > ---
> > Changes from v1:
> >  - Modified formatting to match existing code, ignoring checkpatch.pl.
> > 
> >  drivers/hid/hid-debug.c                | 1 +
> >  drivers/hid/hid-input.c                | 8 ++++++++
> >  include/uapi/linux/input-event-codes.h | 1 +
> >  3 files changed, 10 insertions(+)
> > 
> > diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
> > index 7749c81b6227..78b2dd10cba2 100644
> > --- a/drivers/hid/hid-debug.c
> > +++ b/drivers/hid/hid-debug.c
> > @@ -975,6 +975,7 @@ static const char *keys[KEY_MAX + 1] = {
> >         [KEY_CAMERA_ACCESS_DISABLE] = "CameraAccessDisable",
> >         [KEY_CAMERA_ACCESS_TOGGLE] = "CameraAccessToggle",
> >         [KEY_ACCESSIBILITY] = "Accessibility",
> > +       [KEY_DONOTDISTURB] = "DoNotDisturb",
> >         [KEY_DICTATE] = "Dictate",
> >         [KEY_MICMUTE] = "MicrophoneMute",
> >         [KEY_BRIGHTNESS_MIN] = "BrightnessMin",
> > diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
> > index 1ecc5ad57b56..f023f51b9c08 100644
> > --- a/drivers/hid/hid-input.c
> > +++ b/drivers/hid/hid-input.c
> > @@ -826,6 +826,14 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
> >                         break;
> >                 }
> >  
> > +               if ((usage->hid & 0xf0) == 0x90) { /* SystemControl*/
> > +                       switch (usage->hid & 0xf) {
> > +                       case 0xb: map_key_clear(KEY_DONOTDISTURB); break;
> > +                       default: goto ignore;
> > +                       }
> > +                       break;
> > +               }
> > +
> >                 if ((usage->hid & 0xf0) == 0xa0) {      /* SystemControl */
> >                         switch (usage->hid & 0xf) {
> >                         case 0x9: map_key_clear(KEY_MICMUTE); break;
> > diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h
> > index 7ff6eeef1af0..c971d542e525 100644
> > --- a/include/uapi/linux/input-event-codes.h
> > +++ b/include/uapi/linux/input-event-codes.h
> > @@ -618,6 +618,7 @@
> >  #define KEY_CAMERA_ACCESS_DISABLE      0x24c   /* Disables programmatic access to camera devices. (HUTRR72) */
> >  #define KEY_CAMERA_ACCESS_TOGGLE       0x24d   /* Toggles the current state of the camera access control. (HUTRR72) */
> >  #define KEY_ACCESSIBILITY              0x24e   /* Toggles the system bound accessibility UI/command (HUTRR116) */
> > +#define KEY_DONOTDISTURB               0x24f   /* Toggles the system-wide "Do Not Disturb" control (HUTRR94)*/
> 
> Please spare a few underscores: KEY_DO_NOT_DISTURB.
> 
My apologies, I didn't see your reply on v1 before I sent this. I will
address this in the next version.
> 
> -- 
> Dmitry

--
Aseda Aboagye
diff mbox series

Patch

diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
index 7749c81b6227..78b2dd10cba2 100644
--- a/drivers/hid/hid-debug.c
+++ b/drivers/hid/hid-debug.c
@@ -975,6 +975,7 @@  static const char *keys[KEY_MAX + 1] = {
        [KEY_CAMERA_ACCESS_DISABLE] = "CameraAccessDisable",
        [KEY_CAMERA_ACCESS_TOGGLE] = "CameraAccessToggle",
        [KEY_ACCESSIBILITY] = "Accessibility",
+       [KEY_DONOTDISTURB] = "DoNotDisturb",
        [KEY_DICTATE] = "Dictate",
        [KEY_MICMUTE] = "MicrophoneMute",
        [KEY_BRIGHTNESS_MIN] = "BrightnessMin",
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 1ecc5ad57b56..f023f51b9c08 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -826,6 +826,14 @@  static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
                        break;
                }
 
+               if ((usage->hid & 0xf0) == 0x90) { /* SystemControl*/
+                       switch (usage->hid & 0xf) {
+                       case 0xb: map_key_clear(KEY_DONOTDISTURB); break;
+                       default: goto ignore;
+                       }
+                       break;
+               }
+
                if ((usage->hid & 0xf0) == 0xa0) {      /* SystemControl */
                        switch (usage->hid & 0xf) {
                        case 0x9: map_key_clear(KEY_MICMUTE); break;
diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h
index 7ff6eeef1af0..c971d542e525 100644
--- a/include/uapi/linux/input-event-codes.h
+++ b/include/uapi/linux/input-event-codes.h
@@ -618,6 +618,7 @@ 
 #define KEY_CAMERA_ACCESS_DISABLE      0x24c   /* Disables programmatic access to camera devices. (HUTRR72) */
 #define KEY_CAMERA_ACCESS_TOGGLE       0x24d   /* Toggles the current state of the camera access control. (HUTRR72) */
 #define KEY_ACCESSIBILITY              0x24e   /* Toggles the system bound accessibility UI/command (HUTRR116) */
+#define KEY_DONOTDISTURB               0x24f   /* Toggles the system-wide "Do Not Disturb" control (HUTRR94)*/
 
 #define KEY_BRIGHTNESS_MIN             0x250   /* Set Brightness to Minimum */
 #define KEY_BRIGHTNESS_MAX             0x251   /* Set Brightness to Maximum */