Lines Matching refs:hdev

67 static __u8 *lenovo_report_fixup(struct hid_device *hdev, __u8 *rdesc,  in lenovo_report_fixup()  argument
70 switch (hdev->product) { in lenovo_report_fixup()
87 static int lenovo_input_mapping_tpkbd(struct hid_device *hdev, in lenovo_input_mapping_tpkbd() argument
93 hid_set_drvdata(hdev, (void *)1); in lenovo_input_mapping_tpkbd()
100 static int lenovo_input_mapping_cptkbd(struct hid_device *hdev, in lenovo_input_mapping_cptkbd() argument
174 static int lenovo_input_mapping_scrollpoint(struct hid_device *hdev, in lenovo_input_mapping_scrollpoint() argument
185 static int lenovo_input_mapping(struct hid_device *hdev, in lenovo_input_mapping() argument
189 switch (hdev->product) { in lenovo_input_mapping()
191 return lenovo_input_mapping_tpkbd(hdev, hi, field, in lenovo_input_mapping()
195 return lenovo_input_mapping_cptkbd(hdev, hi, field, in lenovo_input_mapping()
203 return lenovo_input_mapping_scrollpoint(hdev, hi, field, in lenovo_input_mapping()
213 static int lenovo_send_cmd_cptkbd(struct hid_device *hdev, in lenovo_send_cmd_cptkbd() argument
227 switch (hdev->product) { in lenovo_send_cmd_cptkbd()
229 ret = hid_hw_raw_request(hdev, 0x13, buf, 3, in lenovo_send_cmd_cptkbd()
233 ret = hid_hw_output_report(hdev, buf, 3); in lenovo_send_cmd_cptkbd()
245 static void lenovo_features_set_cptkbd(struct hid_device *hdev) in lenovo_features_set_cptkbd() argument
248 struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); in lenovo_features_set_cptkbd()
250 ret = lenovo_send_cmd_cptkbd(hdev, 0x05, cptkbd_data->fn_lock); in lenovo_features_set_cptkbd()
252 hid_err(hdev, "Fn-lock setting failed: %d\n", ret); in lenovo_features_set_cptkbd()
254 ret = lenovo_send_cmd_cptkbd(hdev, 0x02, cptkbd_data->sensitivity); in lenovo_features_set_cptkbd()
256 hid_err(hdev, "Sensitivity setting failed: %d\n", ret); in lenovo_features_set_cptkbd()
263 struct hid_device *hdev = to_hid_device(dev); in attr_fn_lock_show_cptkbd() local
264 struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); in attr_fn_lock_show_cptkbd()
274 struct hid_device *hdev = to_hid_device(dev); in attr_fn_lock_store_cptkbd() local
275 struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); in attr_fn_lock_store_cptkbd()
284 lenovo_features_set_cptkbd(hdev); in attr_fn_lock_store_cptkbd()
293 struct hid_device *hdev = to_hid_device(dev); in attr_sensitivity_show_cptkbd() local
294 struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); in attr_sensitivity_show_cptkbd()
305 struct hid_device *hdev = to_hid_device(dev); in attr_sensitivity_store_cptkbd() local
306 struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); in attr_sensitivity_store_cptkbd()
313 lenovo_features_set_cptkbd(hdev); in attr_sensitivity_store_cptkbd()
340 static int lenovo_raw_event(struct hid_device *hdev, in lenovo_raw_event() argument
348 if (unlikely(hdev->product == USB_DEVICE_ID_LENOVO_CUSBKBD in lenovo_raw_event()
360 static int lenovo_event_cptkbd(struct hid_device *hdev, in lenovo_event_cptkbd() argument
363 struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); in lenovo_event_cptkbd()
395 static int lenovo_event(struct hid_device *hdev, struct hid_field *field, in lenovo_event() argument
398 switch (hdev->product) { in lenovo_event()
401 return lenovo_event_cptkbd(hdev, field, usage, value); in lenovo_event()
407 static int lenovo_features_set_tpkbd(struct hid_device *hdev) in lenovo_features_set_tpkbd() argument
410 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in lenovo_features_set_tpkbd()
412 report = hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[4]; in lenovo_features_set_tpkbd()
422 hid_hw_request(hdev, report, HID_REQ_SET_REPORT); in lenovo_features_set_tpkbd()
430 struct hid_device *hdev = to_hid_device(dev); in attr_press_to_select_show_tpkbd() local
431 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in attr_press_to_select_show_tpkbd()
441 struct hid_device *hdev = to_hid_device(dev); in attr_press_to_select_store_tpkbd() local
442 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in attr_press_to_select_store_tpkbd()
451 lenovo_features_set_tpkbd(hdev); in attr_press_to_select_store_tpkbd()
460 struct hid_device *hdev = to_hid_device(dev); in attr_dragging_show_tpkbd() local
461 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in attr_dragging_show_tpkbd()
471 struct hid_device *hdev = to_hid_device(dev); in attr_dragging_store_tpkbd() local
472 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in attr_dragging_store_tpkbd()
481 lenovo_features_set_tpkbd(hdev); in attr_dragging_store_tpkbd()
490 struct hid_device *hdev = to_hid_device(dev); in attr_release_to_select_show_tpkbd() local
491 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in attr_release_to_select_show_tpkbd()
501 struct hid_device *hdev = to_hid_device(dev); in attr_release_to_select_store_tpkbd() local
502 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in attr_release_to_select_store_tpkbd()
511 lenovo_features_set_tpkbd(hdev); in attr_release_to_select_store_tpkbd()
520 struct hid_device *hdev = to_hid_device(dev); in attr_select_right_show_tpkbd() local
521 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in attr_select_right_show_tpkbd()
531 struct hid_device *hdev = to_hid_device(dev); in attr_select_right_store_tpkbd() local
532 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in attr_select_right_store_tpkbd()
541 lenovo_features_set_tpkbd(hdev); in attr_select_right_store_tpkbd()
550 struct hid_device *hdev = to_hid_device(dev); in attr_sensitivity_show_tpkbd() local
551 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in attr_sensitivity_show_tpkbd()
562 struct hid_device *hdev = to_hid_device(dev); in attr_sensitivity_store_tpkbd() local
563 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in attr_sensitivity_store_tpkbd()
570 lenovo_features_set_tpkbd(hdev); in attr_sensitivity_store_tpkbd()
579 struct hid_device *hdev = to_hid_device(dev); in attr_press_speed_show_tpkbd() local
580 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in attr_press_speed_show_tpkbd()
591 struct hid_device *hdev = to_hid_device(dev); in attr_press_speed_store_tpkbd() local
592 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in attr_press_speed_store_tpkbd()
599 lenovo_features_set_tpkbd(hdev); in attr_press_speed_store_tpkbd()
652 struct hid_device *hdev = to_hid_device(dev); in lenovo_led_brightness_get_tpkbd() local
653 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in lenovo_led_brightness_get_tpkbd()
668 struct hid_device *hdev = to_hid_device(dev); in lenovo_led_brightness_set_tpkbd() local
669 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in lenovo_led_brightness_set_tpkbd()
681 report = hdev->report_enum[HID_OUTPUT_REPORT].report_id_hash[3]; in lenovo_led_brightness_set_tpkbd()
684 hid_hw_request(hdev, report, HID_REQ_SET_REPORT); in lenovo_led_brightness_set_tpkbd()
687 static int lenovo_probe_tpkbd(struct hid_device *hdev) in lenovo_probe_tpkbd() argument
689 struct device *dev = &hdev->dev; in lenovo_probe_tpkbd()
700 if (!hid_get_drvdata(hdev)) in lenovo_probe_tpkbd()
703 hid_set_drvdata(hdev, NULL); in lenovo_probe_tpkbd()
707 if (!hid_validate_values(hdev, HID_FEATURE_REPORT, 4, i, 1)) in lenovo_probe_tpkbd()
710 if (!hid_validate_values(hdev, HID_OUTPUT_REPORT, 3, 0, 2)) in lenovo_probe_tpkbd()
713 ret = sysfs_create_group(&hdev->dev.kobj, &lenovo_attr_group_tpkbd); in lenovo_probe_tpkbd()
715 hid_warn(hdev, "Could not create sysfs group: %d\n", ret); in lenovo_probe_tpkbd()
717 data_pointer = devm_kzalloc(&hdev->dev, in lenovo_probe_tpkbd()
721 hid_err(hdev, "Could not allocate memory for driver data\n"); in lenovo_probe_tpkbd()
730 name_mute = devm_kzalloc(&hdev->dev, name_sz, GFP_KERNEL); in lenovo_probe_tpkbd()
731 name_micmute = devm_kzalloc(&hdev->dev, name_sz, GFP_KERNEL); in lenovo_probe_tpkbd()
733 hid_err(hdev, "Could not allocate memory for led data\n"); in lenovo_probe_tpkbd()
740 hid_set_drvdata(hdev, data_pointer); in lenovo_probe_tpkbd()
756 lenovo_features_set_tpkbd(hdev); in lenovo_probe_tpkbd()
760 sysfs_remove_group(&hdev->dev.kobj, &lenovo_attr_group_tpkbd); in lenovo_probe_tpkbd()
764 static int lenovo_probe_cptkbd(struct hid_device *hdev) in lenovo_probe_cptkbd() argument
770 if (hdev->product == USB_DEVICE_ID_LENOVO_CUSBKBD in lenovo_probe_cptkbd()
771 && hdev->type != HID_TYPE_USBMOUSE) { in lenovo_probe_cptkbd()
772 hid_dbg(hdev, "Ignoring keyboard half of device\n"); in lenovo_probe_cptkbd()
776 cptkbd_data = devm_kzalloc(&hdev->dev, in lenovo_probe_cptkbd()
780 hid_err(hdev, "can't alloc keyboard descriptor\n"); in lenovo_probe_cptkbd()
783 hid_set_drvdata(hdev, cptkbd_data); in lenovo_probe_cptkbd()
789 ret = lenovo_send_cmd_cptkbd(hdev, 0x01, 0x03); in lenovo_probe_cptkbd()
791 hid_warn(hdev, "Failed to switch F7/9/11 mode: %d\n", ret); in lenovo_probe_cptkbd()
794 ret = lenovo_send_cmd_cptkbd(hdev, 0x09, 0x01); in lenovo_probe_cptkbd()
796 hid_warn(hdev, "Failed to switch middle button: %d\n", ret); in lenovo_probe_cptkbd()
802 lenovo_features_set_cptkbd(hdev); in lenovo_probe_cptkbd()
804 ret = sysfs_create_group(&hdev->dev.kobj, &lenovo_attr_group_cptkbd); in lenovo_probe_cptkbd()
806 hid_warn(hdev, "Could not create sysfs group: %d\n", ret); in lenovo_probe_cptkbd()
811 static int lenovo_probe(struct hid_device *hdev, in lenovo_probe() argument
816 ret = hid_parse(hdev); in lenovo_probe()
818 hid_err(hdev, "hid_parse failed\n"); in lenovo_probe()
822 ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT); in lenovo_probe()
824 hid_err(hdev, "hid_hw_start failed\n"); in lenovo_probe()
828 switch (hdev->product) { in lenovo_probe()
830 ret = lenovo_probe_tpkbd(hdev); in lenovo_probe()
834 ret = lenovo_probe_cptkbd(hdev); in lenovo_probe()
845 hid_hw_stop(hdev); in lenovo_probe()
850 static void lenovo_remove_tpkbd(struct hid_device *hdev) in lenovo_remove_tpkbd() argument
852 struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); in lenovo_remove_tpkbd()
861 sysfs_remove_group(&hdev->dev.kobj, in lenovo_remove_tpkbd()
867 hid_set_drvdata(hdev, NULL); in lenovo_remove_tpkbd()
870 static void lenovo_remove_cptkbd(struct hid_device *hdev) in lenovo_remove_cptkbd() argument
872 sysfs_remove_group(&hdev->dev.kobj, in lenovo_remove_cptkbd()
876 static void lenovo_remove(struct hid_device *hdev) in lenovo_remove() argument
878 switch (hdev->product) { in lenovo_remove()
880 lenovo_remove_tpkbd(hdev); in lenovo_remove()
884 lenovo_remove_cptkbd(hdev); in lenovo_remove()
888 hid_hw_stop(hdev); in lenovo_remove()
891 static int lenovo_input_configured(struct hid_device *hdev, in lenovo_input_configured() argument
894 switch (hdev->product) { in lenovo_input_configured()