Lines Matching refs:ev

92 static void uhid_queue(struct uhid_device *uhid, struct uhid_event *ev)  in uhid_queue()  argument
99 uhid->outq[uhid->head] = ev; in uhid_queue()
104 kfree(ev); in uhid_queue()
111 struct uhid_event *ev; in uhid_queue_event() local
113 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_queue_event()
114 if (!ev) in uhid_queue_event()
117 ev->type = event; in uhid_queue_event()
120 uhid_queue(uhid, ev); in uhid_queue_event()
129 struct uhid_event *ev; in uhid_hid_start() local
132 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_hid_start()
133 if (!ev) in uhid_hid_start()
136 ev->type = UHID_START; in uhid_hid_start()
139 ev->u.start.dev_flags |= UHID_DEV_NUMBERED_FEATURE_REPORTS; in uhid_hid_start()
141 ev->u.start.dev_flags |= UHID_DEV_NUMBERED_OUTPUT_REPORTS; in uhid_hid_start()
143 ev->u.start.dev_flags |= UHID_DEV_NUMBERED_INPUT_REPORTS; in uhid_hid_start()
146 uhid_queue(uhid, ev); in uhid_hid_start()
183 struct uhid_event *ev, in __uhid_report_queue_and_wait() argument
191 uhid->report_type = ev->type + 1; in __uhid_report_queue_and_wait()
193 uhid_queue(uhid, ev); in __uhid_report_queue_and_wait()
212 const struct uhid_event *ev) in uhid_report_wake_up() argument
219 if (uhid->report_type != ev->type || uhid->report_id != id) in uhid_report_wake_up()
224 memcpy(&uhid->report_buf, ev, sizeof(*ev)); in uhid_report_wake_up()
237 struct uhid_event *ev; in uhid_hid_get_report() local
243 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_hid_get_report()
244 if (!ev) in uhid_hid_get_report()
247 ev->type = UHID_GET_REPORT; in uhid_hid_get_report()
248 ev->u.get_report.rnum = rnum; in uhid_hid_get_report()
249 ev->u.get_report.rtype = rtype; in uhid_hid_get_report()
253 kfree(ev); in uhid_hid_get_report()
258 ret = __uhid_report_queue_and_wait(uhid, ev, &ev->u.get_report.id); in uhid_hid_get_report()
279 struct uhid_event *ev; in uhid_hid_set_report() local
285 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_hid_set_report()
286 if (!ev) in uhid_hid_set_report()
289 ev->type = UHID_SET_REPORT; in uhid_hid_set_report()
290 ev->u.set_report.rnum = rnum; in uhid_hid_set_report()
291 ev->u.set_report.rtype = rtype; in uhid_hid_set_report()
292 ev->u.set_report.size = count; in uhid_hid_set_report()
293 memcpy(ev->u.set_report.data, buf, count); in uhid_hid_set_report()
297 kfree(ev); in uhid_hid_set_report()
302 ret = __uhid_report_queue_and_wait(uhid, ev, &ev->u.set_report.id); in uhid_hid_set_report()
352 struct uhid_event *ev; in uhid_hid_output_raw() local
368 ev = kzalloc(sizeof(*ev), GFP_KERNEL); in uhid_hid_output_raw()
369 if (!ev) in uhid_hid_output_raw()
372 ev->type = UHID_OUTPUT; in uhid_hid_output_raw()
373 ev->u.output.size = count; in uhid_hid_output_raw()
374 ev->u.output.rtype = rtype; in uhid_hid_output_raw()
375 memcpy(ev->u.output.data, buf, count); in uhid_hid_output_raw()
378 uhid_queue(uhid, ev); in uhid_hid_output_raw()
490 const struct uhid_event *ev) in uhid_dev_create2() argument
500 rd_size = ev->u.create2.rd_size; in uhid_dev_create2()
504 rd_data = kmemdup(ev->u.create2.rd_data, rd_size, GFP_KERNEL); in uhid_dev_create2()
518 len = min(sizeof(hid->name), sizeof(ev->u.create2.name)) - 1; in uhid_dev_create2()
519 strncpy(hid->name, ev->u.create2.name, len); in uhid_dev_create2()
520 len = min(sizeof(hid->phys), sizeof(ev->u.create2.phys)) - 1; in uhid_dev_create2()
521 strncpy(hid->phys, ev->u.create2.phys, len); in uhid_dev_create2()
522 len = min(sizeof(hid->uniq), sizeof(ev->u.create2.uniq)) - 1; in uhid_dev_create2()
523 strncpy(hid->uniq, ev->u.create2.uniq, len); in uhid_dev_create2()
526 hid->bus = ev->u.create2.bus; in uhid_dev_create2()
527 hid->vendor = ev->u.create2.vendor; in uhid_dev_create2()
528 hid->product = ev->u.create2.product; in uhid_dev_create2()
529 hid->version = ev->u.create2.version; in uhid_dev_create2()
530 hid->country = ev->u.create2.country; in uhid_dev_create2()
553 struct uhid_event *ev) in uhid_dev_create() argument
557 orig = ev->u.create; in uhid_dev_create()
561 if (copy_from_user(&ev->u.create2.rd_data, orig.rd_data, orig.rd_size)) in uhid_dev_create()
564 memcpy(ev->u.create2.name, orig.name, sizeof(orig.name)); in uhid_dev_create()
565 memcpy(ev->u.create2.phys, orig.phys, sizeof(orig.phys)); in uhid_dev_create()
566 memcpy(ev->u.create2.uniq, orig.uniq, sizeof(orig.uniq)); in uhid_dev_create()
567 ev->u.create2.rd_size = orig.rd_size; in uhid_dev_create()
568 ev->u.create2.bus = orig.bus; in uhid_dev_create()
569 ev->u.create2.vendor = orig.vendor; in uhid_dev_create()
570 ev->u.create2.product = orig.product; in uhid_dev_create()
571 ev->u.create2.version = orig.version; in uhid_dev_create()
572 ev->u.create2.country = orig.country; in uhid_dev_create()
574 return uhid_dev_create2(uhid, ev); in uhid_dev_create()
594 static int uhid_dev_input(struct uhid_device *uhid, struct uhid_event *ev) in uhid_dev_input() argument
599 hid_input_report(uhid->hid, HID_INPUT_REPORT, ev->u.input.data, in uhid_dev_input()
600 min_t(size_t, ev->u.input.size, UHID_DATA_MAX), 0); in uhid_dev_input()
605 static int uhid_dev_input2(struct uhid_device *uhid, struct uhid_event *ev) in uhid_dev_input2() argument
610 hid_input_report(uhid->hid, HID_INPUT_REPORT, ev->u.input2.data, in uhid_dev_input2()
611 min_t(size_t, ev->u.input2.size, UHID_DATA_MAX), 0); in uhid_dev_input2()
617 struct uhid_event *ev) in uhid_dev_get_report_reply() argument
622 uhid_report_wake_up(uhid, ev->u.get_report_reply.id, ev); in uhid_dev_get_report_reply()
627 struct uhid_event *ev) in uhid_dev_set_report_reply() argument
632 uhid_report_wake_up(uhid, ev->u.set_report_reply.id, ev); in uhid_dev_set_report_reply()