|
@@ -621,6 +621,7 @@ static void mt_process_mt_event(struct hid_device *hid, struct hid_field *field,
|
|
|
{
|
|
|
struct mt_device *td = hid_get_drvdata(hid);
|
|
|
__s32 quirks = td->mtclass.quirks;
|
|
|
+ struct input_dev *input = field->hidinput->input;
|
|
|
|
|
|
if (hid->claimed & HID_CLAIMED_INPUT) {
|
|
|
switch (usage->hid) {
|
|
@@ -670,13 +671,16 @@ static void mt_process_mt_event(struct hid_device *hid, struct hid_field *field,
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
+ if (usage->type)
|
|
|
+ input_event(input, usage->type, usage->code,
|
|
|
+ value);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (usage->usage_index + 1 == field->report_count) {
|
|
|
/* we only take into account the last report. */
|
|
|
if (usage->hid == td->last_slot_field)
|
|
|
- mt_complete_slot(td, field->hidinput->input);
|
|
|
+ mt_complete_slot(td, input);
|
|
|
|
|
|
if (field->index == td->last_field_index
|
|
|
&& td->num_received >= td->num_expected)
|