/kernel/drivers/hid/hid-core.c
hid总线驱动
/kernel/drivers/hid/hid-generic.c
hid通用驱动
/kernel/drivers/hid/hid-multitouch.c
多点触控面板驱动
/kernel/drivers/hid/hid-quirks.c
hid-quirks.c 是 Linux 内核中的一个文件,用于实现 HID(Human Interface Device)设备的修正和补丁。
在 Linux 系统中,不同的 HID 设备可能存在一些硬件或固件上的问题,导致其在正常使用时出现兼容性或功能方面的限制。
hid-quirks.c 中的驱动程序可以通过对这些设备应用特定的修正和补丁,解决或规避这些问题。
struct hid_device_id hid_quirks[]
struct hid_device_id hid_have_special_driver[]
struct hid_device_id hid_ignore_list[]
struct hid_device_id hid_mouse_ignore_list[]
bool hid_ignore(struct hid_device *hdev) //判断hid设备是否被忽略
static struct hid_device_id *hid_exists_dquirk(const struct hid_device *hdev) //查找hid设备动态quirk
static int hid_modify_dquirk(const struct hid_device_id *id, const unsigned long quirks) //修改hid设备动态quirk
static void hid_remove_all_dquirks(__u16 bus) //删除所有hid设备动态quirk
int hid_quirks_init(char **quirks_param, __u16 bus, int count) //模块加载时应用具体的quirk
void hid_quirks_exit(__u16 bus) //释放内存中的动态quirk
static unsigned long hid_gets_squirk(const struct hid_device *hdev) //查找hid设备静态quirk
unsigned long hid_lookup_quirk(const struct hid_device *hdev) //查找hid设备动态和静态quirk