brintos

brintos / linux-shallow public Read only

0
0
Text · 1.1 KiB · fe75764 Raw
46 lines · c
1// SPDX-License-Identifier: GPL-2.0+2/*3 *  HID driver for quirky Macally devices4 *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 13MODULE_AUTHOR("Alex Henrie <alexhenrie24@gmail.com>");14MODULE_DESCRIPTION("Macally devices");15MODULE_LICENSE("GPL");16 17/*18 * The Macally ikey keyboard says that its logical and usage maximums are both19 * 101, but the power key is 102 and the equals key is 10320 */21static const __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 32static const 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};37MODULE_DEVICE_TABLE(hid, macally_id_table);38 39static struct hid_driver macally_driver = {40	.name			= "macally",41	.id_table		= macally_id_table,42	.report_fixup		= macally_report_fixup,43};44 45module_hid_driver(macally_driver);46