Lines Matching refs:ev

58 static void uhid_queue(struct uhid_device *uhid, struct uhid_event *ev)  in uhid_queue()  argument
65 uhid->outq[uhid->head] = ev; in uhid_queue()
70 kfree(ev); in uhid_queue()
77 struct uhid_event *ev; in uhid_queue_event() local
79 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_queue_event()
80 if (!ev) in uhid_queue_event()
83 ev->type = event; in uhid_queue_event()
86 uhid_queue(uhid, ev); in uhid_queue_event()
95 struct uhid_event *ev; in uhid_hid_start() local
98 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_hid_start()
99 if (!ev) in uhid_hid_start()
102 ev->type = UHID_START; in uhid_hid_start()
105 ev->u.start.dev_flags |= UHID_DEV_NUMBERED_FEATURE_REPORTS; in uhid_hid_start()
107 ev->u.start.dev_flags |= UHID_DEV_NUMBERED_OUTPUT_REPORTS; in uhid_hid_start()
109 ev->u.start.dev_flags |= UHID_DEV_NUMBERED_INPUT_REPORTS; in uhid_hid_start()
112 uhid_queue(uhid, ev); in uhid_hid_start()
149 struct uhid_event *ev, in __uhid_report_queue_and_wait() argument
157 uhid->report_type = ev->type + 1; in __uhid_report_queue_and_wait()
159 uhid_queue(uhid, ev); in __uhid_report_queue_and_wait()
178 const struct uhid_event *ev) in uhid_report_wake_up() argument
185 if (uhid->report_type != ev->type || uhid->report_id != id) in uhid_report_wake_up()
190 memcpy(&uhid->report_buf, ev, sizeof(*ev)); in uhid_report_wake_up()
203 struct uhid_event *ev; in uhid_hid_get_report() local
209 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_hid_get_report()
210 if (!ev) in uhid_hid_get_report()
213 ev->type = UHID_GET_REPORT; in uhid_hid_get_report()
214 ev->u.get_report.rnum = rnum; in uhid_hid_get_report()
215 ev->u.get_report.rtype = rtype; in uhid_hid_get_report()
219 kfree(ev); in uhid_hid_get_report()
224 ret = __uhid_report_queue_and_wait(uhid, ev, &ev->u.get_report.id); in uhid_hid_get_report()
245 struct uhid_event *ev; in uhid_hid_set_report() local
251 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_hid_set_report()
252 if (!ev) in uhid_hid_set_report()
255 ev->type = UHID_SET_REPORT; in uhid_hid_set_report()
256 ev->u.set_report.rnum = rnum; in uhid_hid_set_report()
257 ev->u.set_report.rtype = rtype; in uhid_hid_set_report()
258 ev->u.set_report.size = count; in uhid_hid_set_report()
259 memcpy(ev->u.set_report.data, buf, count); in uhid_hid_set_report()
263 kfree(ev); in uhid_hid_set_report()
268 ret = __uhid_report_queue_and_wait(uhid, ev, &ev->u.set_report.id); in uhid_hid_set_report()
318 struct uhid_event *ev; in uhid_hid_output_raw() local
334 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_hid_output_raw()
335 if (!ev) in uhid_hid_output_raw()
338 ev->type = UHID_OUTPUT; in uhid_hid_output_raw()
339 ev->u.output.size = count; in uhid_hid_output_raw()
340 ev->u.output.rtype = rtype; in uhid_hid_output_raw()
341 memcpy(ev->u.output.data, buf, count); in uhid_hid_output_raw()
344 uhid_queue(uhid, ev); in uhid_hid_output_raw()
455 const struct uhid_event *ev) in uhid_dev_create2() argument
465 rd_size = ev->u.create2.rd_size; in uhid_dev_create2()
469 rd_data = kmemdup(ev->u.create2.rd_data, rd_size, GFP_KERNEL); in uhid_dev_create2()
482 len = min(sizeof(hid->name), sizeof(ev->u.create2.name)) - 1; in uhid_dev_create2()
483 strncpy(hid->name, ev->u.create2.name, len); in uhid_dev_create2()
484 len = min(sizeof(hid->phys), sizeof(ev->u.create2.phys)) - 1; in uhid_dev_create2()
485 strncpy(hid->phys, ev->u.create2.phys, len); in uhid_dev_create2()
486 len = min(sizeof(hid->uniq), sizeof(ev->u.create2.uniq)) - 1; in uhid_dev_create2()
487 strncpy(hid->uniq, ev->u.create2.uniq, len); in uhid_dev_create2()
490 hid->bus = ev->u.create2.bus; in uhid_dev_create2()
491 hid->vendor = ev->u.create2.vendor; in uhid_dev_create2()
492 hid->product = ev->u.create2.product; in uhid_dev_create2()
493 hid->version = ev->u.create2.version; in uhid_dev_create2()
494 hid->country = ev->u.create2.country; in uhid_dev_create2()
521 struct uhid_event *ev) in uhid_dev_create() argument
525 orig = ev->u.create; in uhid_dev_create()
529 if (copy_from_user(&ev->u.create2.rd_data, orig.rd_data, orig.rd_size)) in uhid_dev_create()
532 memcpy(ev->u.create2.name, orig.name, sizeof(orig.name)); in uhid_dev_create()
533 memcpy(ev->u.create2.phys, orig.phys, sizeof(orig.phys)); in uhid_dev_create()
534 memcpy(ev->u.create2.uniq, orig.uniq, sizeof(orig.uniq)); in uhid_dev_create()
535 ev->u.create2.rd_size = orig.rd_size; in uhid_dev_create()
536 ev->u.create2.bus = orig.bus; in uhid_dev_create()
537 ev->u.create2.vendor = orig.vendor; in uhid_dev_create()
538 ev->u.create2.product = orig.product; in uhid_dev_create()
539 ev->u.create2.version = orig.version; in uhid_dev_create()
540 ev->u.create2.country = orig.country; in uhid_dev_create()
542 return uhid_dev_create2(uhid, ev); in uhid_dev_create()
559 static int uhid_dev_input(struct uhid_device *uhid, struct uhid_event *ev) in uhid_dev_input() argument
564 hid_input_report(uhid->hid, HID_INPUT_REPORT, ev->u.input.data, in uhid_dev_input()
565 min_t(size_t, ev->u.input.size, UHID_DATA_MAX), 0); in uhid_dev_input()
570 static int uhid_dev_input2(struct uhid_device *uhid, struct uhid_event *ev) in uhid_dev_input2() argument
575 hid_input_report(uhid->hid, HID_INPUT_REPORT, ev->u.input2.data, in uhid_dev_input2()
576 min_t(size_t, ev->u.input2.size, UHID_DATA_MAX), 0); in uhid_dev_input2()
582 struct uhid_event *ev) in uhid_dev_get_report_reply() argument
587 uhid_report_wake_up(uhid, ev->u.get_report_reply.id, ev); in uhid_dev_get_report_reply()
592 struct uhid_event *ev) in uhid_dev_set_report_reply() argument
597 uhid_report_wake_up(uhid, ev->u.set_report_reply.id, ev); in uhid_dev_set_report_reply()