fe73965d07
By allowing the drivers to return a "const *" they can constify their static report arrays. This makes it clear to driver authors that the HID core will not modify those reports and they can be reused for multiple devices. Furthermore security is slightly improved as those reports are protected against accidental or malicious modifications. [bentiss: fixup hid-cougar.c and hid-multitouch.c for latest version of the master branch] Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://patch.msgid.link/20240803-hid-const-fixup-v2-6-f53d7a7b29d8@weissschuh.net Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
46 lines
1.1 KiB
C
46 lines
1.1 KiB
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* HID driver for quirky Macally devices
|
|
*
|
|
* Copyright (c) 2019 Alex Henrie <alexhenrie24@gmail.com>
|
|
*/
|
|
|
|
#include <linux/hid.h>
|
|
#include <linux/module.h>
|
|
|
|
#include "hid-ids.h"
|
|
|
|
MODULE_AUTHOR("Alex Henrie <alexhenrie24@gmail.com>");
|
|
MODULE_DESCRIPTION("Macally devices");
|
|
MODULE_LICENSE("GPL");
|
|
|
|
/*
|
|
* The Macally ikey keyboard says that its logical and usage maximums are both
|
|
* 101, but the power key is 102 and the equals key is 103
|
|
*/
|
|
static const __u8 *macally_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
|
unsigned int *rsize)
|
|
{
|
|
if (*rsize >= 60 && rdesc[53] == 0x65 && rdesc[59] == 0x65) {
|
|
hid_info(hdev,
|
|
"fixing up Macally ikey keyboard report descriptor\n");
|
|
rdesc[53] = rdesc[59] = 0x67;
|
|
}
|
|
return rdesc;
|
|
}
|
|
|
|
static const struct hid_device_id macally_id_table[] = {
|
|
{ HID_USB_DEVICE(USB_VENDOR_ID_SOLID_YEAR,
|
|
USB_DEVICE_ID_MACALLY_IKEY_KEYBOARD) },
|
|
{ }
|
|
};
|
|
MODULE_DEVICE_TABLE(hid, macally_id_table);
|
|
|
|
static struct hid_driver macally_driver = {
|
|
.name = "macally",
|
|
.id_table = macally_id_table,
|
|
.report_fixup = macally_report_fixup,
|
|
};
|
|
|
|
module_hid_driver(macally_driver);
|