Merge tag '5.15-rc-ksmbd-part2' of git://git.samba.org/ksmbd
[linux-2.6-microblaze.git] / drivers / hid / hid-asus.c
index fb807c8..f3ecddc 100644 (file)
@@ -82,6 +82,7 @@ MODULE_DESCRIPTION("Asus HID Keyboard and TouchPad");
 #define QUIRK_T90CHI                   BIT(9)
 #define QUIRK_MEDION_E1239T            BIT(10)
 #define QUIRK_ROG_NKEY_KEYBOARD                BIT(11)
+#define QUIRK_ROG_CLAYMORE_II_KEYBOARD BIT(12)
 
 #define I2C_KEYBOARD_QUIRKS                    (QUIRK_FIX_NOTEBOOK_REPORT | \
                                                 QUIRK_NO_INIT_REPORTS | \
@@ -366,6 +367,17 @@ static int asus_raw_event(struct hid_device *hdev,
 
        }
 
+       if (drvdata->quirks & QUIRK_ROG_CLAYMORE_II_KEYBOARD) {
+               /*
+                * CLAYMORE II keyboard sends this packet when it goes to sleep
+                * this causes the whole system to go into suspend.
+               */
+
+               if(size == 2 && data[0] == 0x02 && data[1] == 0x00) {
+                       return -1;
+               }
+       }
+
        return 0;
 }
 
@@ -1225,6 +1237,9 @@ static const struct hid_device_id asus_devices[] = {
        { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
            USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD2),
          QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
+           USB_DEVICE_ID_ASUSTEK_ROG_CLAYMORE_II_KEYBOARD),
+         QUIRK_ROG_CLAYMORE_II_KEYBOARD },
        { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
                USB_DEVICE_ID_ASUSTEK_T100TA_KEYBOARD),
          QUIRK_T100_KEYBOARD | QUIRK_NO_CONSUMER_USAGES },