Home
last modified time | relevance | path

Searched full:hid (Results 1 – 25 of 571) sorted by relevance

12345678910>>...23

/linux/drivers/hid/amd-sfh-hid/hid_descriptor/
H A Damd_sfh_hid_report_desc.h3 * 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/drivers/hid/intel-ish-hid/
H A Dishtp-hid.c3 * 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 …]
/linux/drivers/hid/usbhid/
H A Dhid-core.c3 * USB HID support for Linux
33 #include <linux/hid.h>
35 #include <linux/hid-debug.h>
38 #include "hid-pidff.h"
44 #define DRIVER_DESC "USB HID core driver"
69 MODULE_PARM_DESC(quirks, "Add/modify USB HID quirks by specifying "
76 static void hid_io_error(struct hid_device *hid);
77 static int hid_submit_out(struct hid_device *hid);
78 static int hid_submit_ctrl(struct hid_device *hid);
82 static int hid_start_in(struct hid_device *hid) in hid_start_in() argument
[all …]
H A Dhiddev.c6 * 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 …]
/linux/Documentation/hid/
H A Dhid-transport.rst2 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 …]
H A Dhidintro.rst4 Introduction to HID report descriptors
7 This chapter is meant to give a broad overview of what HID report
9 with HID devices that are not working well with Linux.
24 HID stands for Human Interface Device, and can be whatever device you
28 Many HID devices work out the box, even if their hardware is different.
35 This is because modern HID devices do advertise their capabilities
36 through the *HID report descriptor*, a fixed set of bytes describing
37 exactly what *HID reports* may be sent between the device and the host
39 a HID Report Descriptor may specify that "in a report with ID 3 the
42 The HID report itself then merely carries the actual data values
[all …]
H A Damd-sfh-hid.rst7 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 …]
H A Dhid-bpf.rst4 HID-BPF
7 HID is a standard protocol for input devices but some devices may require
10 existing HID interfaces.
17 When (and why) to use HID-BPF
20 There are several use cases when using HID-BPF is better
30 With HID-BPF, we can apply this filtering in the kernel directly so userspace
38 HID-BPF allows the userspace program to load the program itself, ensuring we
44 In the HID tree, half of the drivers only fix one key or one byte
61 channels of communication that our HID and input stack do not support.
70 The kernel has a relatively static mapping of HID items to evdev bits.
[all …]
/linux/drivers/hid/amd-sfh-hid/
H A Damd_sfh_hid.c10 #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/drivers/staging/greybus/
H A Dhid.c3 * 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/sound/soc/sdca/
H A Dsdca_hid.c13 #include <linux/hid.h>
24 static int sdwhid_parse(struct hid_device *hid) in sdwhid_parse()
26 struct sdca_entity *entity = hid->driver_data; in sdwhid_parse()
33 dev_err(&hid->dev, "invalid size of report descriptor (%u)\n", rsize); in sdwhid_parse()
37 ret = hid_parse_report(hid, entity->hide.hid_report_desc, rsize); in sdwhid_parse()
42 dev_err(&hid->dev, "parsing report descriptor failed\n");
46 static int sdwhid_start(struct hid_device *hid) in sdwhid_start()
51 static void sdwhid_stop(struct hid_device *hid)
55 static int sdwhid_raw_request(struct hid_device *hid, unsigned char reportnum, in sdwhid_raw_request()
70 static int sdwhid_open(struct hid_device *hid) in sdwhid_open()
21 sdwhid_parse(struct hid_device * hid) sdwhid_parse() argument
43 sdwhid_start(struct hid_device * hid) sdwhid_start() argument
48 sdwhid_stop(struct hid_device * hid) sdwhid_stop() argument
52 sdwhid_raw_request(struct hid_device * hid,unsigned char reportnum,__u8 * buf,size_t len,unsigned char rtype,int reqtype) sdwhid_raw_request() argument
67 sdwhid_open(struct hid_device * hid) sdwhid_open() argument
72 sdwhid_close(struct hid_device * hid) sdwhid_close() argument
88 struct hid_device *hid; sdca_add_hid_device() local
[all...]
/linux/drivers/hid/surface-hid/
H A Dsurface_hid_core.c3 * 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/drivers/hid/
H A Dhid-lg4ff.c17 #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 …]
H A Dhid-goodix-spi.c3 * Goodix GT7986U SPI Driver Code for HID.
9 #include <linux/hid.h>
96 struct hid_device *hid; member
103 /* lock for hid raw request operation */
105 /* buffer used to store hid report event */
238 * goodix_hid_parse() - hid-core .parse() callback
239 * @hid: hid device instance
245 static int goodix_hid_parse(struct hid_device *hid) in goodix_hid_parse() argument
247 struct goodix_ts_data *ts = hid->driver_data; in goodix_hid_parse()
267 error = hid_parse_report(hid, rdesc, rsize); in goodix_hid_parse()
[all …]
H A Dhid-mf.c25 #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 …]
H A Duhid.c3 * 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 …]
H A Dhid-cmedia.c3 * 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()
102 if (len != CM6533_JD_RAWEV_LEN || !(hid->claimed & HID_CLAIMED_INPUT)) in cmhid_raw_event()
[all …]
H A Dhid-appleir.c3 * 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 …]
H A Dhid-input.c6 * 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
160 hidinput_locate_usage(struct hid_device * hid,const struct input_keymap_entry * ke,unsigned int * index) hidinput_locate_usage() argument
180 struct hid_device *hid = input_get_drvdata(dev); hidinput_getkeycode() local
202 struct hid_device *hid = input_get_drvdata(dev); hidinput_setkeycode() local
1543 hidinput_hid_event(struct hid_device * hid,struct hid_field * field,struct hid_usage * usage,__s32 value) hidinput_hid_event() argument
1756 hidinput_report_event(struct hid_device * hid,struct hid_report * report) hidinput_report_event() argument
1768 hidinput_find_field(struct hid_device * hid,unsigned int type,unsigned int code,struct hid_field ** field) hidinput_find_field() argument
1785 hidinput_get_led_field(struct hid_device * hid) hidinput_get_led_field() argument
1805 hidinput_count_leds(struct hid_device * hid) hidinput_count_leds() argument
1829 struct hid_device *hid = container_of(work, struct hid_device, hidinput_led_worker() local
1878 struct hid_device *hid = input_get_drvdata(dev); hidinput_input_event() local
1901 struct hid_device *hid = input_get_drvdata(dev); hidinput_open() local
1908 struct hid_device *hid = input_get_drvdata(dev); hidinput_close() local
1913 __hidinput_change_resolution_multipliers(struct hid_device * hid,struct hid_report * report,bool use_logical_max) __hidinput_change_resolution_multipliers() argument
1969 hidinput_change_resolution_multipliers(struct hid_device * hid) hidinput_change_resolution_multipliers() argument
1994 report_features(struct hid_device * hid) report_features() argument
2023 hidinput_allocate(struct hid_device * hid,unsigned int application) hidinput_allocate() argument
2160 hidinput_cleanup_hidinput(struct hid_device * hid,struct hid_input * hidinput) hidinput_cleanup_hidinput() argument
2189 struct hid_device *hid = report->device; hidinput_match() local
2203 struct hid_device *hid = report->device; hidinput_match_application() local
2292 hidinput_connect(struct hid_device * hid,unsigned int force) hidinput_connect() argument
2395 hidinput_disconnect(struct hid_device * hid) hidinput_disconnect() argument
2419 hidinput_reset_resume(struct hid_device * hid) hidinput_reset_resume() argument
[all...]
H A Dhid-core.c3 * 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"
350 field->usage[i].hid = parser->local.usage[j]; in hid_add_field()
455 * nibble due to the common misunderstanding of HID in hid_parser_global()
725 * If the HID driver had a rdesc_fixup() callback, dev->rdesc in hid_close_report()
726 * will be allocated by hid-core and needs to be freed. in hid_close_report()
758 struct hid_device *hid in hiddev_free() local
768 struct hid_device *hid = to_hid_device(dev); hid_device_release() local
836 struct hid_device *hid = parser->device; hid_scan_input_usage() local
855 struct hid_device *hid = parser->device; hid_scan_collection() local
925 hid_scan_report(struct hid_device * hid) hid_scan_report() argument
1004 hid_parse_report(struct hid_device * hid,const __u8 * start,unsigned size) hid_parse_report() argument
1031 hid_validate_values(struct hid_device * hid,enum hid_report_type type,unsigned int id,unsigned int field_index,unsigned int report_counts) hid_validate_values() argument
1082 hid_calculate_multiplier(struct hid_device * hid,struct hid_field * multiplier) hid_calculate_multiplier() argument
1121 hid_apply_multiplier_to_field(struct hid_device * hid,struct hid_field * field,struct hid_collection * multiplier_collection,int effective_multiplier) hid_apply_multiplier_to_field() argument
1151 hid_apply_multiplier(struct hid_device * hid,struct hid_field * multiplier) hid_apply_multiplier() argument
1222 hid_setup_resolution_multiplier(struct hid_device * hid) hid_setup_resolution_multiplier() argument
1416 hid_field_extract(const struct hid_device * hid,u8 * report,unsigned offset,unsigned n) hid_field_extract() argument
1462 implement(const struct hid_device * hid,u8 * report,unsigned offset,unsigned n,u32 value) implement() argument
1504 hid_match_report(struct hid_device * hid,struct hid_report * report) hid_match_report() argument
1527 hid_match_usage(struct hid_device * hid,struct hid_usage * usage) hid_match_usage() argument
1545 hid_process_event(struct hid_device * hid,struct hid_field * field,struct hid_usage * usage,__s32 value,int interrupt) hid_process_event() argument
1592 hid_input_fetch_field(struct hid_device * hid,struct hid_field * field,__u8 * data) hid_input_fetch_field() argument
1628 hid_input_var_field(struct hid_device * hid,struct hid_field * field,int interrupt) hid_input_var_field() argument
1651 hid_input_array_field(struct hid_device * hid,struct hid_field * field,int interrupt) hid_input_array_field() argument
1692 hid_process_report(struct hid_device * hid,struct hid_report * report,__u8 * data,int interrupt) hid_process_report() argument
1750 __hid_insert_field_entry(struct hid_device * hid,struct hid_report * report,struct hid_field_entry * entry,struct hid_field * field,unsigned int usage_index) __hid_insert_field_entry() argument
1780 hid_report_process_ordering(struct hid_device * hid,struct hid_report * report) hid_report_process_ordering() argument
1831 hid_process_ordering(struct hid_device * hid) hid_process_ordering() argument
1844 hid_output_field(const struct hid_device * hid,struct hid_field * field,__u8 * data) hid_output_field() argument
1989 __hid_request(struct hid_device * hid,struct hid_report * report,enum hid_class_request reqtype) __hid_request() argument
2029 hid_report_raw_event(struct hid_device * hid,enum hid_report_type type,u8 * data,u32 size,int interrupt) hid_report_raw_event() argument
2088 __hid_input_report(struct hid_device * hid,enum hid_report_type type,u8 * data,u32 size,int interrupt,u64 source,bool from_bpf,bool lock_already_taken) __hid_input_report() argument
2163 hid_input_report(struct hid_device * hid,enum hid_report_type type,u8 * data,u32 size,int interrupt) hid_input_report() argument
3098 hid_check_keys_pressed(struct hid_device * hid) hid_check_keys_pressed() argument
[all...]
/linux/drivers/hid/bpf/progs/
H A DREADME1 # HID-BPF programs
9 They should be loaded in the kernel by `udev-hid-bpf`:
11 https://gitlab.freedesktop.org/libevdev/udev-hid-bpf
14 "upstream" them, but also this way we can test them thanks to the HID
17 Once a .bpf.c file is accepted here, it is duplicated in `udev-hid-bpf`
20 land in distributions when they update `udev-hid-bpf`
30 Just run `sudo udev-hid-bpf install ./my-awesome-fix.bpf.o`
34 - copy the `.bpf.o` you want in `/etc/udev-hid-bpf/`
37 The following should do the trick (assuming udev-hid-bpf is available in
41 $> cp xppen-ArtistPro16Gen2.bpf.o /etc/udev-hid-bpf/
[all …]
/linux/drivers/hid/i2c-hid/
H A DKconfig3 tristate "I2C HID support"
10 tristate "HID over I2C transport layer ACPI driver"
16 other HID based devices which is connected to your computer via I2C.
22 will be called i2c-hid-acpi. It will also build/depend on the
23 module i2c-hid.
26 tristate "HID over I2C transport layer Open Firmware driver"
28 # (board-file) instantiated "hid-over-i2c" type i2c-clients.
33 other HID based devices which is connected to your computer via I2C.
35 well as binding to manually (board-file) instantiated i2c-hid-clients.
40 will be called i2c-hid-of. It will also build/depend on the
[all …]
H A Di2c-hid-core.c2 * HID over I2C protocol implementation
8 * This code is partly based on "USB HID support for Linux":
37 #include <linux/hid.h>
43 #include "../hid-ids.h"
44 #include "i2c-hid.h"
95 struct hid_device *hid; /* pointer to corresponding HID dev */ member
96 struct i2c_hid_desc hdesc; /* the HID Descriptor */
98 * register of the HID
156 * i2c_hid_lookup_quirk: return any quirks associated with a I2C HID device
337 * @ihid: the i2c hid device
[all …]
/linux/include/linux/
H A Dhid_bpf.h9 #include <uapi/linux/hid.h>
14 * The following is the user facing HID BPF API.
21 * struct hid_bpf_ctx - User accessible data for all HID programs
26 * @hid: the &struct hid_device representing the device itself
30 * by the HID program.
44 * ``hid`` and ``allocated_size`` are read-only, ``size`` and ``retval`` are read-write.
47 struct hid_device *hid; member
56 * Below is HID internal
74 int (*hid_input_report)(struct hid_device *hid, enum hid_report_type type,
84 * struct hid_bpf_ops - A BPF struct_ops of callbacks allowing to attach HID-BPF
[all …]
H A Dhid.h28 #include <uapi/linux/hid.h>
54 * HID report item format
67 * HID report descriptor item type (prefix bit 2,3)
76 * HID report descriptor main item tags
88 * HID report descriptor main item contents
102 * HID report descriptor collection item types
111 * HID report descriptor global item tags
128 * HID report descriptor local item tags
143 * HID usage tables
348 * HID connec
506 unsigned hid; /* hid usage code */ global() member
1051 hid_device_io_start(struct hid_device * hid) hid_device_io_start() argument
1071 hid_device_io_stop(struct hid_device * hid) hid_device_io_stop() argument
1278 hid_err(hid,fmt,...) global() argument
1280 hid_notice(hid,fmt,...) global() argument
1282 hid_warn(hid,fmt,...) global() argument
1284 hid_warn_ratelimited(hid,fmt,...) global() argument
1286 hid_info(hid,fmt,...) global() argument
1288 hid_dbg(hid,fmt,...) global() argument
1291 hid_err_once(hid,fmt,...) global() argument
1293 hid_notice_once(hid,fmt,...) global() argument
1295 hid_warn_once(hid,fmt,...) global() argument
1297 hid_info_once(hid,fmt,...) global() argument
1299 hid_dbg_once(hid,fmt,...) global() argument
1302 hid_err_ratelimited(hid,fmt,...) global() argument
1304 hid_notice_ratelimited(hid,fmt,...) global() argument
1306 hid_warn_ratelimited(hid,fmt,...) global() argument
1308 hid_info_ratelimited(hid,fmt,...) global() argument
1310 hid_dbg_ratelimited(hid,fmt,...) global() argument
[all...]

12345678910>>...23