/linux-6.12.1/drivers/hid/ |
D | Makefile | 5 hid-y := hid-core.o hid-input.o hid-quirks.o 6 hid-$(CONFIG_DEBUG_FS) += hid-debug.o 10 obj-$(CONFIG_HID) += hid.o 13 obj-$(CONFIG_HID_GENERIC) += hid-generic.o 15 hid-$(CONFIG_HIDRAW) += hidraw.o 17 hid-logitech-y := hid-lg.o 18 hid-logitech-$(CONFIG_LOGITECH_FF) += hid-lgff.o 19 hid-logitech-$(CONFIG_LOGIRUMBLEPAD2_FF) += hid-lg2ff.o 20 hid-logitech-$(CONFIG_LOGIG940_FF) += hid-lg3ff.o 21 hid-logitech-$(CONFIG_LOGIWHEELS_FF) += hid-lg4ff.o [all …]
|
D | hid-lg4ff.c | 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); 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 307 hid_err(hid, "Device properties not found"); in lg4ff_adjust_input_event() 408 struct hid_device *hid = input_get_drvdata(dev); in lg4ff_play() local 415 drv_data = hid_get_drvdata(hid); in lg4ff_play() 417 hid_err(hid, "Private driver data not found!\n"); in lg4ff_play() 423 hid_err(hid, "Device properties not found!\n"); in lg4ff_play() [all …]
|
D | hid-cmedia.c | 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() 112 hp_ev(hid, cm, 1); in cmhid_raw_event() 120 static int cmhid_input_configured(struct hid_device *hid, in cmhid_input_configured() argument 124 struct cmhid *cm = hid_get_drvdata(hid); in cmhid_input_configured() 136 static int cmhid_input_mapping(struct hid_device *hid, in cmhid_input_mapping() argument 143 static int cmhid_probe(struct hid_device *hid, const struct hid_device_id *id) in cmhid_probe() argument [all …]
|
D | hid-bigbenff.c | 175 struct hid_device *hid; member 235 hid_hw_raw_request(bigben->hid, bigben->report->id, buf, len, in bigben_worker() 259 hid_hw_raw_request(bigben->hid, bigben->report->id, buf, len, in bigben_worker() 269 struct hid_device *hid = input_get_drvdata(dev); in hid_bigben_play_effect() local 270 struct bigben_device *bigben = hid_get_drvdata(hid); in hid_bigben_play_effect() 276 hid_err(hid, "no device data\n"); in hid_bigben_play_effect() 304 struct hid_device *hid = to_hid_device(dev); in bigben_set_led() local 305 struct bigben_device *bigben = hid_get_drvdata(hid); in bigben_set_led() 311 hid_err(hid, "no device data\n"); in bigben_set_led() 339 struct hid_device *hid = to_hid_device(dev); in bigben_get_led() local [all …]
|
D | hid-appleir.c | 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() 182 static int appleir_raw_event(struct hid_device *hid, struct hid_report *report, in appleir_raw_event() argument 185 struct appleir *appleir = hid_get_drvdata(hid); in appleir_raw_event() 203 key_up(hid, appleir, appleir->current_key); in appleir_raw_event() 214 key_down(hid, appleir, appleir->current_key); in appleir_raw_event() 232 key_down(hid, appleir, appleir->current_key); in appleir_raw_event() [all …]
|
D | hid-mf.c | 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() 107 hid_hw_request(hid, mf->report, HID_REQ_SET_REPORT); in mf_init() 110 hid_info(hid, "Force feedback for HJZ Mayflash game controller " in mf_init() [all …]
|
D | hid-samsung.c | 94 if (ifnum != 1 || HID_UP_CONSUMER != (usage->hid & HID_USAGE_PAGE)) in samsung_kbd_mouse_input_mapping() 98 usage->hid & HID_USAGE); in samsung_kbd_mouse_input_mapping() 100 switch (usage->hid & HID_USAGE) { in samsung_kbd_mouse_input_mapping() 146 if (!(HID_UP_CONSUMER == (usage->hid & HID_USAGE_PAGE) || in samsung_kbd_input_mapping() 147 HID_UP_KEYBOARD == (usage->hid & HID_USAGE_PAGE))) in samsung_kbd_input_mapping() 151 usage->hid & HID_USAGE); in samsung_kbd_input_mapping() 153 if (HID_UP_KEYBOARD == (usage->hid & HID_USAGE_PAGE)) { in samsung_kbd_input_mapping() 155 switch (usage->hid & HID_USAGE) { in samsung_kbd_input_mapping() 171 if (HID_UP_CONSUMER == (usage->hid & HID_USAGE_PAGE)) { in samsung_kbd_input_mapping() 172 switch (usage->hid & HID_USAGE) { in samsung_kbd_input_mapping() [all …]
|
D | hid-input.c | 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 141 list_for_each_entry(report, &hid->report_enum[k].report_list, list) { in hidinput_find_key() 160 static struct hid_usage *hidinput_locate_usage(struct hid_device *hid, in hidinput_locate_usage() argument 168 usage = hidinput_find_key(hid, match_index, ke->index, index); in hidinput_locate_usage() 170 usage = hidinput_find_key(hid, match_scancode, scancode, index); in hidinput_locate_usage() 180 struct hid_device *hid = input_get_drvdata(dev); in hidinput_getkeycode() local 184 usage = hidinput_locate_usage(hid, ke, &index); in hidinput_getkeycode() 189 scancode = usage->hid & (HID_USAGE_PAGE | HID_USAGE); in hidinput_getkeycode() 202 struct hid_device *hid = input_get_drvdata(dev); in hidinput_setkeycode() local [all …]
|
D | hid-holtekff.c | 76 struct hid_device *hid, in holtekff_send() argument 87 hid_hw_request(hid, holtekff->field->report, HID_REQ_SET_REPORT); in holtekff_send() 93 struct hid_device *hid = input_get_drvdata(dev); in holtekff_play() local 105 holtekff_send(holtekff, hid, stop_all6); in holtekff_play() 117 holtekff_send(holtekff, hid, buf); in holtekff_play() 118 holtekff_send(holtekff, hid, start_effect_1); in holtekff_play() 123 static int holtekff_init(struct hid_device *hid) in holtekff_init() argument 129 &hid->report_enum[HID_OUTPUT_REPORT].report_list; in holtekff_init() 133 if (list_empty(&hid->inputs)) { in holtekff_init() 134 hid_err(hid, "no inputs found\n"); in holtekff_init() [all …]
|
D | hid-google-stadiaff.c | 18 struct hid_device *hid; member 39 hid_hw_request(stadiaff->hid, stadiaff->report, HID_REQ_SET_REPORT); in stadiaff_work() 45 struct hid_device *hid = input_get_drvdata(dev); in stadiaff_play() local 46 struct stadiaff_device *stadiaff = hid_get_drvdata(hid); in stadiaff_play() 60 static int stadiaff_init(struct hid_device *hid) in stadiaff_init() argument 68 if (list_empty(&hid->inputs)) { in stadiaff_init() 69 hid_err(hid, "no inputs found\n"); in stadiaff_init() 72 hidinput = list_entry(hid->inputs.next, struct hid_input, list); in stadiaff_init() 75 report = hid_validate_values(hid, HID_OUTPUT_REPORT, in stadiaff_init() 80 stadiaff = devm_kzalloc(&hid->dev, sizeof(struct stadiaff_device), in stadiaff_init() [all …]
|
D | hid-creative-sb0540.c | 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() 209 static int creative_sb0540_input_mapping(struct hid_device *hid, in creative_sb0540_input_mapping() argument 220 static int creative_sb0540_probe(struct hid_device *hid, in creative_sb0540_probe() argument 226 creative_sb0540 = devm_kzalloc(&hid->dev, in creative_sb0540_probe() 232 creative_sb0540->hid = hid; in creative_sb0540_probe() [all …]
|
D | uhid.c | 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() 103 hid_warn(uhid->hid, "Output queue is full\n"); in uhid_queue() 126 static int uhid_hid_start(struct hid_device *hid) in uhid_hid_start() argument 128 struct uhid_device *uhid = hid->driver_data; in uhid_hid_start() 138 if (hid->report_enum[HID_FEATURE_REPORT].numbered) in uhid_hid_start() 140 if (hid->report_enum[HID_OUTPUT_REPORT].numbered) in uhid_hid_start() 142 if (hid->report_enum[HID_INPUT_REPORT].numbered) in uhid_hid_start() 152 static void uhid_hid_stop(struct hid_device *hid) in uhid_hid_stop() argument [all …]
|
D | hid-tmff.c | 76 struct hid_device *hid = input_get_drvdata(dev); in tmff_play() local 94 hid_hw_request(hid, tmff->report, HID_REQ_SET_REPORT); in tmff_play() 106 if (hid->product == THRUSTMASTER_DEVICE_ID_2_IN_1_DT) in tmff_play() 112 hid_hw_request(hid, tmff->report, HID_REQ_SET_REPORT); in tmff_play() 118 static int tmff_init(struct hid_device *hid, const signed short *ff_bits) in tmff_init() argument 128 if (list_empty(&hid->inputs)) { in tmff_init() 129 hid_err(hid, "no inputs found\n"); in tmff_init() 132 hidinput = list_entry(hid->inputs.next, struct hid_input, list); in tmff_init() 140 report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list; in tmff_init() 150 switch (field->usage[0].hid) { in tmff_init() [all …]
|
D | hid-goodix-spi.c | 94 struct hid_device *hid; member 243 static int goodix_hid_parse(struct hid_device *hid) in goodix_hid_parse() argument 245 struct goodix_ts_data *ts = hid->driver_data; in goodix_hid_parse() 265 error = hid_parse_report(hid, rdesc, rsize); in goodix_hid_parse() 280 static void goodix_hid_find_max_report(struct hid_device *hid, unsigned int type, in goodix_hid_find_max_report() argument 286 list_for_each_entry(report, &hid->report_enum[type].report_list, list) { in goodix_hid_find_max_report() 293 static int goodix_hid_start(struct hid_device *hid) in goodix_hid_start() argument 295 struct goodix_ts_data *ts = hid->driver_data; in goodix_hid_start() 299 goodix_hid_find_max_report(hid, HID_INPUT_REPORT, &bufsize); in goodix_hid_start() 300 goodix_hid_find_max_report(hid, HID_OUTPUT_REPORT, &bufsize); in goodix_hid_start() [all …]
|
D | hid-dr.c | 34 struct hid_device *hid = input_get_drvdata(dev); in drff_play() local 57 hid_hw_request(hid, drff->report, HID_REQ_SET_REPORT); in drff_play() 69 hid_hw_request(hid, drff->report, HID_REQ_SET_REPORT); in drff_play() 74 static int drff_init(struct hid_device *hid) in drff_init() argument 80 &hid->report_enum[HID_OUTPUT_REPORT].report_list; in drff_init() 84 if (list_empty(&hid->inputs)) { in drff_init() 85 hid_err(hid, "no inputs found\n"); in drff_init() 88 hidinput = list_first_entry(&hid->inputs, struct hid_input, list); in drff_init() 92 hid_err(hid, "no output reports found\n"); in drff_init() 98 hid_err(hid, "no fields in the report\n"); in drff_init() [all …]
|
D | hid-core.c | 318 field->usage[i].hid = parser->local.usage[j]; in hid_add_field() 707 struct hid_device *hid = container_of(ref, struct hid_device, ref); in hiddev_free() local 709 hid_close_report(hid); in hiddev_free() 710 kfree(hid->dev_rdesc); in hiddev_free() 711 kfree(hid); in hiddev_free() 716 struct hid_device *hid = to_hid_device(dev); in hid_device_release() local 718 kref_put(&hid->ref, hiddev_free); in hid_device_release() 790 struct hid_device *hid = parser->device; in hid_scan_input_usage() local 793 hid->group = HID_GROUP_MULTITOUCH; in hid_scan_input_usage() 809 struct hid_device *hid = parser->device; in hid_scan_collection() local [all …]
|
/linux-6.12.1/drivers/hid/intel-ish-hid/ |
D | ishtp-hid.c | 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 45 static int ishtp_hid_open(struct hid_device *hid) in ishtp_hid_open() argument 50 static void ishtp_hid_close(struct hid_device *hid) in ishtp_hid_close() argument 54 static int ishtp_raw_request(struct hid_device *hid, unsigned char reportnum, in ishtp_raw_request() argument 58 struct ishtp_hid_data *hid_data = hid->driver_data; in ishtp_raw_request() 73 hid_ishtp_get_report(hid, reportnum, rtype); in ishtp_raw_request() [all …]
|
/linux-6.12.1/drivers/hid/usbhid/ |
D | hid-core.c | 75 static void hid_io_error(struct hid_device *hid); 76 static int hid_submit_out(struct hid_device *hid); 77 static int hid_submit_ctrl(struct hid_device *hid); 81 static int hid_start_in(struct hid_device *hid) in hid_start_in() argument 85 struct usbhid_device *usbhid = hid->driver_data; in hid_start_in() 109 struct hid_device *hid = usbhid->hid; in hid_retry_timeout() local 112 if (hid_start_in(hid)) in hid_retry_timeout() 113 hid_io_error(hid); in hid_retry_timeout() 121 struct hid_device *hid = usbhid->hid; in hid_reset() local 126 rc = usb_clear_halt(hid_to_usb_dev(hid), usbhid->urbin->pipe); in hid_reset() [all …]
|
D | hiddev.c | 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() 166 void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, in hiddev_hid_event() argument 179 uref.usage_code = usage->hid; in hiddev_hid_event() 182 hiddev_send_event(hid, &uref); in hiddev_hid_event() [all …]
|
D | hid-pidff.c | 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() 456 hid_hw_request(pidff->hid, pidff->reports[PID_CREATE_NEW_EFFECT], in pidff_request_effect_upload() 458 hid_dbg(pidff->hid, "create_new_effect sent, type: %d\n", efnum); in pidff_request_effect_upload() [all …]
|
/linux-6.12.1/drivers/hid/amd-sfh-hid/ |
D | amd_sfh_hid.c | 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 61 static void amdtp_hid_request(struct hid_device *hid, struct hid_report *rep, int reqtype) in amdtp_hid_request() argument 67 rc = amd_sfh_get_report(hid, rep->id, rep->type); in amdtp_hid_request() 69 dev_err(&hid->dev, "AMDSFH get report error\n"); in amdtp_hid_request() [all …]
|
/linux-6.12.1/drivers/staging/greybus/ |
D | hid.c | 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() 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 213 &hid->report_enum[HID_INPUT_REPORT].report_list, in gb_hid_init_reports() 218 &hid->report_enum[HID_FEATURE_REPORT].report_list, in gb_hid_init_reports() 223 static int __gb_hid_get_raw_report(struct hid_device *hid, in __gb_hid_get_raw_report() argument 227 struct gb_hid *ghid = hid->driver_data; in __gb_hid_get_raw_report() [all …]
|
/linux-6.12.1/drivers/hid/surface-hid/ |
D | surface_hid_core.c | 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() 126 static int surface_hid_open(struct hid_device *hid) in surface_hid_open() argument 131 static void surface_hid_close(struct hid_device *hid) in surface_hid_close() argument 135 static int surface_hid_parse(struct hid_device *hid) in surface_hid_parse() argument 137 struct surface_hid_device *shid = hid->driver_data; in surface_hid_parse() 151 status = hid_parse_report(hid, buf, len); in surface_hid_parse() 157 static int surface_hid_raw_request(struct hid_device *hid, unsigned char reportnum, u8 *buf, in surface_hid_raw_request() argument [all …]
|
/linux-6.12.1/drivers/hid/bpf/progs/ |
D | README | 9 They should be loaded in the kernel by `udev-hid-bpf`: 11 https://gitlab.freedesktop.org/libevdev/udev-hid-bpf 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/ 42 $> udev-hid-bpf inspect xppen-ArtistPro16Gen2.bpf.o 61 $> cat <EOF > /etc/udev/rules.d/99-load-hid-bpf-xppen-ArtistPro16Gen2.rules [all …]
|
/linux-6.12.1/drivers/hid/i2c-hid/ |
D | i2c-hid-core.c | 94 struct hid_device *hid; /* pointer to corresponding HID dev */ member 555 if (ihid->hid->group != HID_GROUP_RMI) in i2c_hid_get_input() 558 hid_input_report(ihid->hid, HID_INPUT_REPORT, in i2c_hid_get_input() 584 static void i2c_hid_find_max_report(struct hid_device *hid, unsigned int type, in i2c_hid_find_max_report() argument 592 list_for_each_entry(report, &hid->report_enum[type].report_list, list) { in i2c_hid_find_max_report() 639 static int i2c_hid_get_raw_report(struct hid_device *hid, in i2c_hid_get_raw_report() argument 643 struct i2c_client *client = hid->driver_data; in i2c_hid_get_raw_report() 671 static int i2c_hid_output_raw_report(struct hid_device *hid, u8 report_type, in i2c_hid_output_raw_report() argument 674 struct i2c_client *client = hid->driver_data; in i2c_hid_output_raw_report() 703 static int i2c_hid_output_report(struct hid_device *hid, u8 *buf, size_t count) in i2c_hid_output_report() argument [all …]
|