Lines Matching refs:ev

72 static void uhid_queue(struct uhid_device *uhid, struct uhid_event *ev)  in uhid_queue()  argument
79 uhid->outq[uhid->head] = ev; in uhid_queue()
84 kfree(ev); in uhid_queue()
91 struct uhid_event *ev; in uhid_queue_event() local
93 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_queue_event()
94 if (!ev) in uhid_queue_event()
97 ev->type = event; in uhid_queue_event()
100 uhid_queue(uhid, ev); in uhid_queue_event()
109 struct uhid_event *ev; in uhid_hid_start() local
112 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_hid_start()
113 if (!ev) in uhid_hid_start()
116 ev->type = UHID_START; in uhid_hid_start()
119 ev->u.start.dev_flags |= UHID_DEV_NUMBERED_FEATURE_REPORTS; in uhid_hid_start()
121 ev->u.start.dev_flags |= UHID_DEV_NUMBERED_OUTPUT_REPORTS; in uhid_hid_start()
123 ev->u.start.dev_flags |= UHID_DEV_NUMBERED_INPUT_REPORTS; in uhid_hid_start()
126 uhid_queue(uhid, ev); in uhid_hid_start()
163 struct uhid_event *ev, in __uhid_report_queue_and_wait() argument
171 uhid->report_type = ev->type + 1; in __uhid_report_queue_and_wait()
173 uhid_queue(uhid, ev); in __uhid_report_queue_and_wait()
192 const struct uhid_event *ev) in uhid_report_wake_up() argument
199 if (uhid->report_type != ev->type || uhid->report_id != id) in uhid_report_wake_up()
204 memcpy(&uhid->report_buf, ev, sizeof(*ev)); in uhid_report_wake_up()
217 struct uhid_event *ev; in uhid_hid_get_report() local
223 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_hid_get_report()
224 if (!ev) in uhid_hid_get_report()
227 ev->type = UHID_GET_REPORT; in uhid_hid_get_report()
228 ev->u.get_report.rnum = rnum; in uhid_hid_get_report()
229 ev->u.get_report.rtype = rtype; in uhid_hid_get_report()
233 kfree(ev); in uhid_hid_get_report()
238 ret = __uhid_report_queue_and_wait(uhid, ev, &ev->u.get_report.id); in uhid_hid_get_report()
259 struct uhid_event *ev; in uhid_hid_set_report() local
265 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_hid_set_report()
266 if (!ev) in uhid_hid_set_report()
269 ev->type = UHID_SET_REPORT; in uhid_hid_set_report()
270 ev->u.set_report.rnum = rnum; in uhid_hid_set_report()
271 ev->u.set_report.rtype = rtype; in uhid_hid_set_report()
272 ev->u.set_report.size = count; in uhid_hid_set_report()
273 memcpy(ev->u.set_report.data, buf, count); in uhid_hid_set_report()
277 kfree(ev); in uhid_hid_set_report()
282 ret = __uhid_report_queue_and_wait(uhid, ev, &ev->u.set_report.id); in uhid_hid_set_report()
332 struct uhid_event *ev; in uhid_hid_output_raw() local
348 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_hid_output_raw()
349 if (!ev) in uhid_hid_output_raw()
352 ev->type = UHID_OUTPUT; in uhid_hid_output_raw()
353 ev->u.output.size = count; in uhid_hid_output_raw()
354 ev->u.output.rtype = rtype; in uhid_hid_output_raw()
355 memcpy(ev->u.output.data, buf, count); in uhid_hid_output_raw()
358 uhid_queue(uhid, ev); in uhid_hid_output_raw()
470 const struct uhid_event *ev) in uhid_dev_create2() argument
480 rd_size = ev->u.create2.rd_size; in uhid_dev_create2()
484 rd_data = kmemdup(ev->u.create2.rd_data, rd_size, GFP_KERNEL); in uhid_dev_create2()
498 len = min(sizeof(hid->name), sizeof(ev->u.create2.name)) - 1; in uhid_dev_create2()
499 strncpy(hid->name, ev->u.create2.name, len); in uhid_dev_create2()
500 len = min(sizeof(hid->phys), sizeof(ev->u.create2.phys)) - 1; in uhid_dev_create2()
501 strncpy(hid->phys, ev->u.create2.phys, len); in uhid_dev_create2()
502 len = min(sizeof(hid->uniq), sizeof(ev->u.create2.uniq)) - 1; in uhid_dev_create2()
503 strncpy(hid->uniq, ev->u.create2.uniq, len); in uhid_dev_create2()
506 hid->bus = ev->u.create2.bus; in uhid_dev_create2()
507 hid->vendor = ev->u.create2.vendor; in uhid_dev_create2()
508 hid->product = ev->u.create2.product; in uhid_dev_create2()
509 hid->version = ev->u.create2.version; in uhid_dev_create2()
510 hid->country = ev->u.create2.country; in uhid_dev_create2()
533 struct uhid_event *ev) in uhid_dev_create() argument
537 orig = ev->u.create; in uhid_dev_create()
541 if (copy_from_user(&ev->u.create2.rd_data, orig.rd_data, orig.rd_size)) in uhid_dev_create()
544 memcpy(ev->u.create2.name, orig.name, sizeof(orig.name)); in uhid_dev_create()
545 memcpy(ev->u.create2.phys, orig.phys, sizeof(orig.phys)); in uhid_dev_create()
546 memcpy(ev->u.create2.uniq, orig.uniq, sizeof(orig.uniq)); in uhid_dev_create()
547 ev->u.create2.rd_size = orig.rd_size; in uhid_dev_create()
548 ev->u.create2.bus = orig.bus; in uhid_dev_create()
549 ev->u.create2.vendor = orig.vendor; in uhid_dev_create()
550 ev->u.create2.product = orig.product; in uhid_dev_create()
551 ev->u.create2.version = orig.version; in uhid_dev_create()
552 ev->u.create2.country = orig.country; in uhid_dev_create()
554 return uhid_dev_create2(uhid, ev); in uhid_dev_create()
573 static int uhid_dev_input(struct uhid_device *uhid, struct uhid_event *ev) in uhid_dev_input() argument
578 hid_input_report(uhid->hid, HID_INPUT_REPORT, ev->u.input.data, in uhid_dev_input()
579 min_t(size_t, ev->u.input.size, UHID_DATA_MAX), 0); in uhid_dev_input()
584 static int uhid_dev_input2(struct uhid_device *uhid, struct uhid_event *ev) in uhid_dev_input2() argument
589 hid_input_report(uhid->hid, HID_INPUT_REPORT, ev->u.input2.data, in uhid_dev_input2()
590 min_t(size_t, ev->u.input2.size, UHID_DATA_MAX), 0); in uhid_dev_input2()
596 struct uhid_event *ev) in uhid_dev_get_report_reply() argument
601 uhid_report_wake_up(uhid, ev->u.get_report_reply.id, ev); in uhid_dev_get_report_reply()
606 struct uhid_event *ev) in uhid_dev_set_report_reply() argument
611 uhid_report_wake_up(uhid, ev->u.set_report_reply.id, ev); in uhid_dev_set_report_reply()