/Linux-v6.1/drivers/hid/ |
D | Makefile | 3 # Makefile for the HID driver 5 hid-y := hid-core.o hid-input.o hid-quirks.o 6 hid-$(CONFIG_DEBUG_FS) += hid-debug.o 8 obj-$(CONFIG_HID) += hid.o 11 obj-$(CONFIG_HID_GENERIC) += hid-generic.o 13 hid-$(CONFIG_HIDRAW) += hidraw.o 15 hid-logitech-y := hid-lg.o 16 hid-logitech-$(CONFIG_LOGITECH_FF) += hid-lgff.o 17 hid-logitech-$(CONFIG_LOGIRUMBLEPAD2_FF) += hid-lg2ff.o 18 hid-logitech-$(CONFIG_LOGIG940_FF) += hid-lg3ff.o [all …]
|
D | Kconfig | 3 # HID driver configuration 5 menu "HID support" 8 config HID config 9 tristate "HID bus support" 13 A human interface device (HID) is a type of computer device that 14 interacts directly with and takes input from humans. The term "HID" 15 most commonly used to refer to the USB-HID specification, but other 17 designed using HID specification (this involves certain keyboards, 18 mice, tablets, etc). This option adds the HID bus to the kernel, 19 together with generic HID layer code. The HID devices are added and [all …]
|
D | hid-lg4ff.c | 17 #include <linux/hid.h> 20 #include "hid-lg.h" 21 #include "hid-lg4ff.h" 22 #include "hid-ids.h" 61 static void lg4ff_set_range_dfp(struct hid_device *hid, u16 range); 62 static void lg4ff_set_range_g25(struct hid_device *hid, u16 range); 79 void (*set_range)(struct hid_device *hid, u16 range); 83 spinlock_t report_lock; /* Protect output HID report */ 103 void (*set_range)(struct hid_device *hid, u16 range); 300 int lg4ff_adjust_input_event(struct hid_device *hid, struct hid_field *field, in lg4ff_adjust_input_event() argument [all …]
|
D | hid-mf.c | 25 #include <linux/hid.h> 28 #include "hid-ids.h" 36 struct hid_device *hid = input_get_drvdata(dev); in mf_play() local 52 hid_hw_request(hid, mf->report, HID_REQ_SET_REPORT); in mf_play() 57 static int mf_init(struct hid_device *hid) in mf_init() argument 62 &hid->report_enum[HID_OUTPUT_REPORT].report_list; in mf_init() 67 struct list_head *input_ptr = &hid->inputs; in mf_init() 79 hid_err(hid, "Invalid report, this should never happen!\n"); in mf_init() 83 if (list_is_last(input_ptr, &hid->inputs)) { in mf_init() 84 hid_err(hid, "Missing input, this should never happen!\n"); in mf_init() [all …]
|
D | uhid.c | 3 * User-space I/O driver support for HID subsystem 15 #include <linux/hid.h> 32 /* This flag tracks whether the HID device is usable for commands from 39 * holding @devlock, it's still fine to access @hid. 47 struct hid_device *hid; member 73 ret = hid_add_device(uhid->hid); in uhid_device_add_worker() 75 hid_err(uhid->hid, "Cannot register HID device: error %d\n", ret); in uhid_device_add_worker() 80 * of using uhid->hid. in uhid_device_add_worker() 81 * Just leave uhid->hid as-is for now, and clean it up when in uhid_device_add_worker() 103 hid_warn(uhid->hid, "Output queue is full\n"); in uhid_queue() [all …]
|
D | hid-cmedia.c | 3 * HID driver for CMedia CM6533 audio jack controls 11 #include <linux/hid.h> 13 #include "hid-ids.h" 17 MODULE_DESCRIPTION("CM6533 HID jack controls and HS100B mute button"); 65 *CM6533 audio jack HID raw events: 87 struct hid_device *hid; member 91 static void hp_ev(struct hid_device *hid, struct cmhid *cm, int value) in hp_ev() argument 97 static int cmhid_raw_event(struct hid_device *hid, struct hid_report *report, in cmhid_raw_event() argument 100 struct cmhid *cm = hid_get_drvdata(hid); in cmhid_raw_event() 108 hp_ev(hid, cm, 0); in cmhid_raw_event() [all …]
|
D | hid-appleir.c | 3 * HID driver for the apple ir device 8 * Ported to HID subsystem by Benjamin Tissoires <benjamin.tissoires@gmail.com> 19 #include <linux/hid.h> 21 #include "hid-ids.h" 25 MODULE_DESCRIPTION("HID Apple IR remote controls"); 109 struct hid_device *hid; member 151 static void key_up(struct hid_device *hid, struct appleir *appleir, int key) in key_up() argument 157 static void key_down(struct hid_device *hid, struct appleir *appleir, int key) in key_down() argument 171 struct hid_device *hid = appleir->hid; in key_up_tick() local 176 key_up(hid, appleir, appleir->current_key); in key_up_tick() [all …]
|
D | hid-core.c | 3 * HID support for Linux 31 #include <linux/hid.h> 33 #include <linux/hid-debug.h> 36 #include "hid-ids.h" 42 #define DRIVER_DESC "HID core driver" 46 MODULE_PARM_DESC(debug, "toggle HID debugging messages"); 319 field->usage[i].hid = parser->local.usage[j]; in hid_add_field() 424 * nibble due to the common misunderstanding of HID in hid_parser_global() 708 struct hid_device *hid = to_hid_device(dev); in hid_device_release() local 710 hid_close_report(hid); in hid_device_release() [all …]
|
D | hid-input.c | 6 * HID to Linux Input mapping 20 #include <linux/hid.h> 21 #include <linux/hid-debug.h> 23 #include "hid-ids.h" 52 __u32 usage; /* the HID usage associated */ 62 * hid-input will convert this list into priorities: 67 * hid-input will then shift the priority by 8 bits to leave some space 73 * If drivers want to add fields before those, hid-input will 110 return (usage->hid & (HID_USAGE_PAGE | HID_USAGE)) == scancode; in match_scancode() 131 static struct hid_usage *hidinput_find_key(struct hid_device *hid, in hidinput_find_key() argument [all …]
|
D | hid-creative-sb0540.c | 3 * HID driver for the Creative SB0540 receiver 10 #include <linux/hid.h> 12 #include "hid-ids.h" 15 MODULE_DESCRIPTION("HID Creative SB0540 receiver"); 119 struct hid_device *hid; member 149 static int creative_sb0540_raw_event(struct hid_device *hid, in creative_sb0540_raw_event() argument 152 struct creative_sb0540 *creative_sb0540 = hid_get_drvdata(hid); in creative_sb0540_raw_event() 172 hid_err(hid, "Could not get a key for main_code %llX\n", in creative_sb0540_raw_event() 185 static int creative_sb0540_input_configured(struct hid_device *hid, in creative_sb0540_input_configured() argument 189 struct creative_sb0540 *creative_sb0540 = hid_get_drvdata(hid); in creative_sb0540_input_configured() [all …]
|
/Linux-v6.1/drivers/hid/amd-sfh-hid/hid_descriptor/ |
D | amd_sfh_hid_report_desc.h | 3 * HID descriptor stuructures 17 0xA1, 0x00, /* HID Collection (Physical) */ 20 0x85, 1, /* HID Report ID */ 21 0x05, 0x20, /* HID usage page sensor */ 23 0x15, 0, /* HID logical MIN_8(0) */ 24 0x25, 2, /* HID logical MAX_8(2) */ 25 0x75, 8, /* HID report size(8) */ 26 0x95, 1, /* HID report count(1) */ 27 0xA1, 0x02, /* HID collection (logical) */ 31 0xB1, 0x00, /* HID feature (Data_Arr_Abs) */ [all …]
|
/Linux-v6.1/drivers/hid/intel-ish-hid/ |
D | ishtp-hid.c | 3 * ISHTP-HID glue driver. 8 #include <linux/hid.h> 11 #include "ishtp-hid.h" 14 * ishtp_hid_parse() - hid-core .parse() callback 15 * @hid: hid device instance 21 static int ishtp_hid_parse(struct hid_device *hid) in ishtp_hid_parse() argument 23 struct ishtp_hid_data *hid_data = hid->driver_data; in ishtp_hid_parse() 27 rv = hid_parse_report(hid, client_data->report_descr[hid_data->index], in ishtp_hid_parse() 36 static int ishtp_hid_start(struct hid_device *hid) in ishtp_hid_start() argument 41 static void ishtp_hid_stop(struct hid_device *hid) in ishtp_hid_stop() argument [all …]
|
D | ishtp-hid.h | 3 * ISHTP-HID glue driver's definitions. 23 /* ISH HID message structure */ 82 * struct ishtp_cl_data - Encapsulate per ISH TP HID Client 84 * @hid_descr_done: HID descriptor complete flag 88 * @num_hid_devices: Number of HID devices enumerated in this client 90 * initialization and registration with HID core 92 * @hid_devices: Store vid/pid/devid for each enumerated HID device 93 * @report_descr: Stores the raw report descriptors for each HID device 95 * @hid_sensor_hubs: Pointer to hid_device for all HID device, so that 97 * @hid_descr: Pointer to hid descriptor for each enumerated hid [all …]
|
D | ishtp-hid-client.c | 3 * ISHTP client driver for HID (ISH) 9 #include <linux/hid.h> 12 #include "ishtp-hid.h" 43 dev_err(cl_data_to_dev(client_data), "[hid-ish]: BAD packet %02X\n" in report_bad_packet() 81 struct hid_device *hid = NULL; in process_recv() local 90 "[hid-ish]: error, received %u which is less than data header %u\n", in process_recv() 134 "Mem alloc failed for hid device info\n"); in process_recv() 142 "[hid-ish]: [ENUM_DEVICES]: content size %zu is bigger than payload_len %zu\n", in process_recv() 226 hid = client_data->hid_sensor_hubs[i]; in process_recv() 227 if (!hid) in process_recv() [all …]
|
/Linux-v6.1/Documentation/hid/ |
D | hid-transport.rst | 2 HID I/O Transport Drivers 5 The HID subsystem is independent of the underlying transport driver. Initially, 6 only USB was supported, but other specifications adopted the HID design and 10 1) HID Bus 13 The HID subsystem is designed as a bus. Any I/O subsystem may provide HID 14 devices and register them with the HID bus. HID core then loads generic device 16 transport and device setup/management. HID core is responsible for 36 | HID Core | 50 - Transport: USB-HID, I2C-HID, BT-HIDP 52 Everything below "HID Core" is simplified in this graph as it is only of [all …]
|
D | amd-sfh-hid.rst | 7 The solution is working well on several OEM products. AMD SFH uses HID over PCIe bus. 9 the HID reports are generated as part of the kernel driver. 17 | HID User Space Applications | 22 | HID Core | 26 | AMD HID Transport | 30 | AMD HID Client | 31 | with HID Report Generator| 45 AMD HID Transport Layer 49 sensor data. The layer, which binds each device (AMD SFH HID driver) identifies the device type and 50 registers with the HID core. Transport layer attaches a constant "struct hid_ll_driver" object with [all …]
|
/Linux-v6.1/drivers/hid/usbhid/ |
D | hid-core.c | 3 * USB HID support for Linux 32 #include <linux/hid.h> 34 #include <linux/hid-debug.h> 42 #define DRIVER_DESC "USB HID core driver" 67 MODULE_PARM_DESC(quirks, "Add/modify USB HID quirks by specifying " 74 static void hid_io_error(struct hid_device *hid); 75 static int hid_submit_out(struct hid_device *hid); 76 static int hid_submit_ctrl(struct hid_device *hid); 80 static int hid_start_in(struct hid_device *hid) in hid_start_in() argument 84 struct usbhid_device *usbhid = hid->driver_data; in hid_start_in() [all …]
|
D | hiddev.c | 6 * HID char devices, giving access to raw HID device events. 22 #include <linux/hid.h> 56 hiddev_lookup_report(struct hid_device *hid, struct hiddev_report_info *rinfo) in hiddev_lookup_report() argument 68 report_enum = hid->report_enum + in hiddev_lookup_report() 109 hiddev_lookup_usage(struct hid_device *hid, struct hiddev_usage_ref *uref) in hiddev_lookup_usage() argument 120 report_enum = hid->report_enum + in hiddev_lookup_usage() 127 if (field->usage[j].hid == uref->usage_code) { in hiddev_lookup_usage() 140 static void hiddev_send_event(struct hid_device *hid, in hiddev_send_event() argument 143 struct hiddev *hiddev = hid->hiddev; in hiddev_send_event() 163 * This is where hid.c calls into hiddev to pass an event that occurred over [all …]
|
D | hid-pidff.c | 3 * Force feedback driver for USB HID PID compliant devices 19 #include <linux/hid.h> 145 struct hid_device *hid; member 250 hid_dbg(pidff->hid, "attack %u => %d\n", in pidff_set_envelope_report() 254 hid_hw_request(pidff->hid, pidff->reports[PID_SET_ENVELOPE], in pidff_set_envelope_report() 281 hid_hw_request(pidff->hid, pidff->reports[PID_SET_CONSTANT], in pidff_set_constant_force_report() 316 hid_hw_request(pidff->hid, pidff->reports[PID_SET_EFFECT], in pidff_set_effect_report() 348 hid_hw_request(pidff->hid, pidff->reports[PID_SET_PERIODIC], in pidff_set_periodic_report() 390 hid_hw_request(pidff->hid, pidff->reports[PID_SET_CONDITION], in pidff_set_condition_report() 431 hid_hw_request(pidff->hid, pidff->reports[PID_SET_RAMP], in pidff_set_ramp_force_report() [all …]
|
/Linux-v6.1/drivers/hid/amd-sfh-hid/ |
D | amd_sfh_hid.c | 10 #include <linux/hid.h> 20 * amdtp_hid_parse() - hid-core .parse() callback 21 * @hid: hid device instance 27 static int amdtp_hid_parse(struct hid_device *hid) in amdtp_hid_parse() argument 29 struct amdtp_hid_data *hid_data = hid->driver_data; in amdtp_hid_parse() 32 return hid_parse_report(hid, cli_data->report_descr[hid_data->index], in amdtp_hid_parse() 37 static int amdtp_hid_start(struct hid_device *hid) in amdtp_hid_start() argument 42 static void amdtp_hid_stop(struct hid_device *hid) in amdtp_hid_stop() argument 46 static int amdtp_hid_open(struct hid_device *hid) in amdtp_hid_open() argument 51 static void amdtp_hid_close(struct hid_device *hid) in amdtp_hid_close() argument [all …]
|
/Linux-v6.1/drivers/staging/greybus/ |
D | hid.c | 3 * HID class driver for the Greybus. 10 #include <linux/hid.h> 17 /* Greybus HID device's structure */ 22 struct hid_device *hid; member 146 hid_input_report(ghid->hid, HID_INPUT_REPORT, in gb_hid_request_handler() 158 static void gb_hid_find_max_report(struct hid_device *hid, unsigned int type, in gb_hid_find_max_report() argument 164 list_for_each_entry(report, &hid->report_enum[type].report_list, list) { in gb_hid_find_max_report() 200 * hid->driver_lock is held as we are in probe function, in gb_hid_init_report() 204 hid_report_raw_event(ghid->hid, report->type, ghid->inbuf, size, 1); in gb_hid_init_report() 209 struct hid_device *hid = ghid->hid; in gb_hid_init_reports() local [all …]
|
/Linux-v6.1/drivers/hid/surface-hid/ |
D | surface_hid_core.c | 3 * Common/core components for the Surface System Aggregator Module (SSAM) HID 4 * transport driver. Provides support for integrated HID devices on Microsoft 11 #include <linux/hid.h> 52 dev_err(shid->dev, "unexpected HID descriptor length: got %u, expected %zu\n", in surface_hid_load_hid_descriptor() 58 dev_err(shid->dev, "unexpected HID descriptor type: got %#04x, expected %#04x\n", in surface_hid_load_hid_descriptor() 102 static int surface_hid_start(struct hid_device *hid) in surface_hid_start() argument 104 struct surface_hid_device *shid = hid->driver_data; in surface_hid_start() 109 static void surface_hid_stop(struct hid_device *hid) in surface_hid_stop() argument 111 struct surface_hid_device *shid = hid->driver_data; in surface_hid_stop() 116 * also includes unregistration of HID events, so we need to check this in surface_hid_stop() [all …]
|
/Linux-v6.1/drivers/hid/i2c-hid/ |
D | Kconfig | 2 menu "I2C HID support" 6 tristate "HID over I2C transport layer ACPI driver" 11 other HID based devices which is connected to your computer via I2C. 17 will be called i2c-hid-acpi. It will also build/depend on the 18 module i2c-hid. 21 tristate "HID over I2C transport layer Open Firmware driver" 26 other HID based devices which is connected to your computer via I2C. 32 will be called i2c-hid-of. It will also build/depend on the 33 module i2c-hid. 36 tristate "Driver for Elan hid-i2c based devices on OF systems" [all …]
|
D | i2c-hid-core.c | 2 * HID over I2C protocol implementation 8 * This code is partly based on "USB HID support for Linux": 36 #include <linux/hid.h> 40 #include "../hid-ids.h" 41 #include "i2c-hid.h" 100 struct hid_device *hid; /* pointer to corresponding HID dev */ member 101 struct i2c_hid_desc hdesc; /* the HID Descriptor */ 103 * register of the HID 150 * i2c_hid_lookup_quirk: return any quirks associated with a I2C HID device 313 * @ihid: the i2c hid device [all …]
|
/Linux-v6.1/include/linux/ |
D | hid.h | 28 #include <uapi/linux/hid.h> 53 * HID report item format 66 * HID report descriptor item type (prefix bit 2,3) 75 * HID report descriptor main item tags 85 * HID report descriptor main item contents 99 * HID report descriptor collection item types 108 * HID report descriptor global item tags 125 * HID report descriptor local item tags 140 * HID usage tables 319 * HID connect requests [all …]
|