root/drivers/hid/hid-macally.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. macally_report_fixup

   1 // SPDX-License-Identifier: GPL-2.0+
   2 /*
   3  *  HID driver for quirky Macally devices
   4  *
   5  *  Copyright (c) 2019 Alex Henrie <alexhenrie24@gmail.com>
   6  */
   7 
   8 #include <linux/hid.h>
   9 #include <linux/module.h>
  10 
  11 #include "hid-ids.h"
  12 
  13 MODULE_AUTHOR("Alex Henrie <alexhenrie24@gmail.com>");
  14 MODULE_DESCRIPTION("Macally devices");
  15 MODULE_LICENSE("GPL");
  16 
  17 /*
  18  * The Macally ikey keyboard says that its logical and usage maximums are both
  19  * 101, but the power key is 102 and the equals key is 103
  20  */
  21 static __u8 *macally_report_fixup(struct hid_device *hdev, __u8 *rdesc,
  22                                  unsigned int *rsize)
  23 {
  24         if (*rsize >= 60 && rdesc[53] == 0x65 && rdesc[59] == 0x65) {
  25                 hid_info(hdev,
  26                         "fixing up Macally ikey keyboard report descriptor\n");
  27                 rdesc[53] = rdesc[59] = 0x67;
  28         }
  29         return rdesc;
  30 }
  31 
  32 static struct hid_device_id macally_id_table[] = {
  33         { HID_USB_DEVICE(USB_VENDOR_ID_SOLID_YEAR,
  34                          USB_DEVICE_ID_MACALLY_IKEY_KEYBOARD) },
  35         { }
  36 };
  37 MODULE_DEVICE_TABLE(hid, macally_id_table);
  38 
  39 static struct hid_driver macally_driver = {
  40         .name                   = "macally",
  41         .id_table               = macally_id_table,
  42         .report_fixup           = macally_report_fixup,
  43 };
  44 
  45 module_hid_driver(macally_driver);

/* [<][>][^][v][top][bottom][index][help] */