Linux 内核使用的 HID 怪癖是什么意思?

Linux 内核使用的 HID 怪癖是什么意思?

正如标题所示,我想知道 HID 的实际含义怪癖Linux 内核中使用的内容在某处有文档记录。

有些术语很容易理解(例如,HID_QUIRK_ALWAYS_POLLHID_QUIRK_IGNORE,但其他术语(例如,HID_QUIRK_HIDDEV_FORCE)则不然。

在哪里可以找到更多有关此内容的信息?

答案1

例如如何从源头找出HID_QUIRK_HIDDEV_FORCE

使用在线索引,它设置_连接_HIDDEV_FORCE通过几种方法最终force得到hiddev_connect,其中如果 HID 类型为 HID_APPLICATION_COLLECTION 且用途为 INPUT_DEVICE,则禁用检查。

换句话说,即使设备提供的 HID 上的类型或用法错误,它也会强制显示 hiddev。因此,此怪癖可以解决来自设备的虚假数据问题。

应该可以用类似的方法找出其他的意思。是的,这意味着要花一点时间跟踪调用链。

答案2

我在代码中发现的唯一内容是:

/**
 * DOC: HID quirks
 * | @HID_QUIRK_NOTOUCH:
 * | @HID_QUIRK_IGNORE: ignore this device
 * | @HID_QUIRK_NOGET:
 * | @HID_QUIRK_HIDDEV_FORCE:
 * | @HID_QUIRK_BADPAD:
 * | @HID_QUIRK_MULTI_INPUT:
 * | @HID_QUIRK_HIDINPUT_FORCE:
 * | @HID_QUIRK_ALWAYS_POLL:
 * | @HID_QUIRK_INPUT_PER_APP:
 * | @HID_QUIRK_X_INVERT:
 * | @HID_QUIRK_Y_INVERT:
 * | @HID_QUIRK_SKIP_OUTPUT_REPORTS:
 * | @HID_QUIRK_SKIP_OUTPUT_REPORT_ID:
 * | @HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP:
 * | @HID_QUIRK_HAVE_SPECIAL_DRIVER:
 * | @HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE:
 * | @HID_QUIRK_FULLSPEED_INTERVAL:
 * | @HID_QUIRK_NO_INIT_REPORTS:
 * | @HID_QUIRK_NO_IGNORE:
 * | @HID_QUIRK_NO_INPUT_SYNC:
 */

linux/include/linux/hid.h

相关内容