Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b54ec3c1 authored by Jiri Kosina's avatar Jiri Kosina
Browse files

HID: pass numbered reports properly to hidraw



The numbered reports need to be passed properly to hidraw (i.e. with the first
data field indicating the report number), otherwise userspace has no idea
about the identification of the report.

Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 671d994c
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -988,8 +988,13 @@ int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int i

	if ((hid->claimed & HID_CLAIMED_HIDDEV) && hid->hiddev_report_event)
		hid->hiddev_report_event(hid, report);
	if (hid->claimed & HID_CLAIMED_HIDRAW)
	if (hid->claimed & HID_CLAIMED_HIDRAW) {
		/* numbered reports need to be passed with the report num */
		if (report_enum->numbered)
			hidraw_report_event(hid, data - 1, size + 1);
		else
			hidraw_report_event(hid, data, size);
	}

	for (n = 0; n < report->maxfield; n++)
		hid_input_field(hid, report->field[n], data, interrupt);