summaryrefslogtreecommitdiff
path: root/usr/src/dkms_source_tree/hid-mosart.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/dkms_source_tree/hid-mosart.c')
-rw-r--r--usr/src/dkms_source_tree/hid-mosart.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/usr/src/dkms_source_tree/hid-mosart.c b/usr/src/dkms_source_tree/hid-mosart.c
index 3ac9be6..4c56007 100644
--- a/usr/src/dkms_source_tree/hid-mosart.c
+++ b/usr/src/dkms_source_tree/hid-mosart.c
@@ -92,6 +92,11 @@ static int mosart_input_mapping(struct hid_device *hdev, struct hid_input *hi,
92 case 0xff000000: 92 case 0xff000000:
93 /* ignore HID features */ 93 /* ignore HID features */
94 return -1; 94 return -1;
95
96 case HID_UP_BUTTON:
97 /* ignore buttons */
98 return -1;
99
95 } 100 }
96 101
97 return 0; 102 return 0;
@@ -232,6 +237,19 @@ static int mosart_probe(struct hid_device *hdev, const struct hid_device_id *id)
232 return ret; 237 return ret;
233} 238}
234 239
240#ifdef CONFIG_PM
241static int mosart_reset_resume(struct hid_device *hdev)
242{
243 struct hid_report_enum *re = hdev->report_enum
244 + HID_FEATURE_REPORT;
245 struct hid_report *r = re->report_id_hash[7];
246
247 r->field[0]->value[0] = 0x02;
248 usbhid_submit_report(hdev, r, USB_DIR_OUT);
249 return 0;
250}
251#endif
252
235static void mosart_remove(struct hid_device *hdev) 253static void mosart_remove(struct hid_device *hdev)
236{ 254{
237 hid_hw_stop(hdev); 255 hid_hw_stop(hdev);
@@ -260,6 +278,9 @@ static struct hid_driver mosart_driver = {
260 .input_mapped = mosart_input_mapped, 278 .input_mapped = mosart_input_mapped,
261 .usage_table = mosart_grabbed_usages, 279 .usage_table = mosart_grabbed_usages,
262 .event = mosart_event, 280 .event = mosart_event,
281#ifdef CONFIG_PM
282 .reset_resume = mosart_reset_resume,
283#endif
263}; 284};
264 285
265static int __init mosart_init(void) 286static int __init mosart_init(void)