diff options
| -rw-r--r-- | drivers/hid/hid-rmi.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c index 9c9362149641..9e33165250a3 100644 --- a/drivers/hid/hid-rmi.c +++ b/drivers/hid/hid-rmi.c | |||
| @@ -413,6 +413,24 @@ static int rmi_event(struct hid_device *hdev, struct hid_field *field, | |||
| 413 | return 0; | 413 | return 0; |
| 414 | } | 414 | } |
| 415 | 415 | ||
| 416 | static void rmi_report(struct hid_device *hid, struct hid_report *report) | ||
| 417 | { | ||
| 418 | struct hid_field *field = report->field[0]; | ||
| 419 | |||
| 420 | if (!(hid->claimed & HID_CLAIMED_INPUT)) | ||
| 421 | return; | ||
| 422 | |||
| 423 | switch (report->id) { | ||
| 424 | case RMI_READ_DATA_REPORT_ID: | ||
| 425 | /* fall-through */ | ||
| 426 | case RMI_ATTN_REPORT_ID: | ||
| 427 | return; | ||
| 428 | } | ||
| 429 | |||
| 430 | if (field && field->hidinput && field->hidinput->input) | ||
| 431 | input_sync(field->hidinput->input); | ||
| 432 | } | ||
| 433 | |||
| 416 | #ifdef CONFIG_PM | 434 | #ifdef CONFIG_PM |
| 417 | static int rmi_suspend(struct hid_device *hdev, pm_message_t message) | 435 | static int rmi_suspend(struct hid_device *hdev, pm_message_t message) |
| 418 | { | 436 | { |
| @@ -637,6 +655,7 @@ static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) | |||
| 637 | hid_set_drvdata(hdev, data); | 655 | hid_set_drvdata(hdev, data); |
| 638 | 656 | ||
| 639 | hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS; | 657 | hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS; |
| 658 | hdev->quirks |= HID_QUIRK_NO_INPUT_SYNC; | ||
| 640 | 659 | ||
| 641 | ret = hid_parse(hdev); | 660 | ret = hid_parse(hdev); |
| 642 | if (ret) { | 661 | if (ret) { |
| @@ -744,6 +763,7 @@ static struct hid_driver rmi_driver = { | |||
| 744 | .remove = rmi_remove, | 763 | .remove = rmi_remove, |
| 745 | .event = rmi_event, | 764 | .event = rmi_event, |
| 746 | .raw_event = rmi_raw_event, | 765 | .raw_event = rmi_raw_event, |
| 766 | .report = rmi_report, | ||
| 747 | .input_mapping = rmi_input_mapping, | 767 | .input_mapping = rmi_input_mapping, |
| 748 | .input_configured = rmi_input_configured, | 768 | .input_configured = rmi_input_configured, |
| 749 | #ifdef CONFIG_PM | 769 | #ifdef CONFIG_PM |
