Lines Matching refs:hid
71 static void hid_lg4ff_set_range_dfp(struct hid_device *hid, u16 range);
72 static void hid_lg4ff_set_range_g25(struct hid_device *hid, u16 range);
88 void (*set_range)(struct hid_device *hid, u16 range);
102 void (*set_range)(struct hid_device *hid, u16 range);
271 int lg4ff_adjust_input_event(struct hid_device *hid, struct hid_field *field, in lg4ff_adjust_input_event() argument
278 hid_err(hid, "Device properties not found"); in lg4ff_adjust_input_event()
299 struct hid_device *hid = input_get_drvdata(dev); in hid_lg4ff_play() local
300 struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list; in hid_lg4ff_play()
322 hid_hw_request(hid, report, HID_REQ_SET_REPORT); in hid_lg4ff_play()
334 hid_hw_request(hid, report, HID_REQ_SET_REPORT); in hid_lg4ff_play()
344 struct hid_device *hid = input_get_drvdata(dev); in hid_lg4ff_set_autocenter_default() local
345 struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list; in hid_lg4ff_set_autocenter_default()
352 drv_data = hid_get_drvdata(hid); in hid_lg4ff_set_autocenter_default()
354 hid_err(hid, "Private driver data not found!\n"); in hid_lg4ff_set_autocenter_default()
360 hid_err(hid, "Device properties not found!\n"); in hid_lg4ff_set_autocenter_default()
374 hid_hw_request(hid, report, HID_REQ_SET_REPORT); in hid_lg4ff_set_autocenter_default()
404 hid_hw_request(hid, report, HID_REQ_SET_REPORT); in hid_lg4ff_set_autocenter_default()
415 hid_hw_request(hid, report, HID_REQ_SET_REPORT); in hid_lg4ff_set_autocenter_default()
421 struct hid_device *hid = input_get_drvdata(dev); in hid_lg4ff_set_autocenter_ffex() local
422 struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list; in hid_lg4ff_set_autocenter_ffex()
435 hid_hw_request(hid, report, HID_REQ_SET_REPORT); in hid_lg4ff_set_autocenter_ffex()
439 static void hid_lg4ff_set_range_g25(struct hid_device *hid, u16 range) in hid_lg4ff_set_range_g25() argument
441 struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list; in hid_lg4ff_set_range_g25()
455 hid_hw_request(hid, report, HID_REQ_SET_REPORT); in hid_lg4ff_set_range_g25()
459 static void hid_lg4ff_set_range_dfp(struct hid_device *hid, __u16 range) in hid_lg4ff_set_range_dfp() argument
461 struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list; in hid_lg4ff_set_range_dfp()
484 hid_hw_request(hid, report, HID_REQ_SET_REPORT); in hid_lg4ff_set_range_dfp()
496 hid_hw_request(hid, report, HID_REQ_SET_REPORT); in hid_lg4ff_set_range_dfp()
510 hid_hw_request(hid, report, HID_REQ_SET_REPORT); in hid_lg4ff_set_range_dfp()
570 static int lg4ff_switch_compatibility_mode(struct hid_device *hid, const struct lg4ff_compat_mode_s… in lg4ff_switch_compatibility_mode() argument
572 struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list; in lg4ff_switch_compatibility_mode()
583 hid_hw_request(hid, report, HID_REQ_SET_REPORT); in lg4ff_switch_compatibility_mode()
585 hid_hw_wait(hid); in lg4ff_switch_compatibility_mode()
591 struct hid_device *hid = to_hid_device(dev); in lg4ff_alternate_modes_show() local
597 drv_data = hid_get_drvdata(hid); in lg4ff_alternate_modes_show()
599 hid_err(hid, "Private driver data not found!\n"); in lg4ff_alternate_modes_show()
605 hid_err(hid, "Device properties not found!\n"); in lg4ff_alternate_modes_show()
610 hid_err(hid, "NULL pointer to string\n"); in lg4ff_alternate_modes_show()
640 struct hid_device *hid = to_hid_device(dev); in lg4ff_alternate_modes_store() local
648 drv_data = hid_get_drvdata(hid); in lg4ff_alternate_modes_store()
650 hid_err(hid, "Private driver data not found!\n"); in lg4ff_alternate_modes_store()
656 hid_err(hid, "Device properties not found!\n"); in lg4ff_alternate_modes_store()
690 hid_info(hid, "Requested mode \"%s\" is not supported by the device\n", lbuf); in lg4ff_alternate_modes_store()
701 …hid_info(hid, "\"%s\" cannot be switched to \"DF-EX\" mode. Load the \"hid_logitech\" module with … in lg4ff_alternate_modes_store()
709 …hid_info(hid, "\"%s\" cannot be switched back into \"%s\" mode\n", entry->real_name, lg4ff_alterna… in lg4ff_alternate_modes_store()
715 hid_err(hid, "Invalid target product ID %X\n", target_product_id); in lg4ff_alternate_modes_store()
719 ret = lg4ff_switch_compatibility_mode(hid, s); in lg4ff_alternate_modes_store()
728 struct hid_device *hid = to_hid_device(dev); in range_show() local
733 drv_data = hid_get_drvdata(hid); in range_show()
735 hid_err(hid, "Private driver data not found!\n"); in range_show()
741 hid_err(hid, "Device properties not found!\n"); in range_show()
754 struct hid_device *hid = to_hid_device(dev); in range_store() local
759 drv_data = hid_get_drvdata(hid); in range_store()
761 hid_err(hid, "Private driver data not found!\n"); in range_store()
767 hid_err(hid, "Device properties not found!\n"); in range_store()
777 entry->set_range(hid, range); in range_store()
787 struct hid_device *hid = to_hid_device(dev); in lg4ff_real_id_show() local
792 drv_data = hid_get_drvdata(hid); in lg4ff_real_id_show()
794 hid_err(hid, "Private driver data not found!\n"); in lg4ff_real_id_show()
800 hid_err(hid, "Device properties not found!\n"); in lg4ff_real_id_show()
805 hid_err(hid, "NULL pointer to string\n"); in lg4ff_real_id_show()
821 static void lg4ff_set_leds(struct hid_device *hid, __u8 leds) in lg4ff_set_leds() argument
823 struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list; in lg4ff_set_leds()
834 hid_hw_request(hid, report, HID_REQ_SET_REPORT); in lg4ff_set_leds()
841 struct hid_device *hid = container_of(dev, struct hid_device, dev); in lg4ff_led_set_brightness() local
842 struct lg_drv_data *drv_data = hid_get_drvdata(hid); in lg4ff_led_set_brightness()
847 hid_err(hid, "Device data not found."); in lg4ff_led_set_brightness()
854 hid_err(hid, "Device properties not found."); in lg4ff_led_set_brightness()
864 lg4ff_set_leds(hid, entry->led_state); in lg4ff_led_set_brightness()
867 lg4ff_set_leds(hid, entry->led_state); in lg4ff_led_set_brightness()
876 struct hid_device *hid = container_of(dev, struct hid_device, dev); in lg4ff_led_get_brightness() local
877 struct lg_drv_data *drv_data = hid_get_drvdata(hid); in lg4ff_led_get_brightness()
882 hid_err(hid, "Device data not found."); in lg4ff_led_get_brightness()
889 hid_err(hid, "Device properties not found."); in lg4ff_led_get_brightness()
903 static u16 lg4ff_identify_multimode_wheel(struct hid_device *hid, const u16 reported_product_id, co… in lg4ff_identify_multimode_wheel() argument
951 static int lg4ff_handle_multimode_wheel(struct hid_device *hid, u16 *real_product_id, const u16 bcd… in lg4ff_handle_multimode_wheel() argument
953 const u16 reported_product_id = hid->product; in lg4ff_handle_multimode_wheel()
956 *real_product_id = lg4ff_identify_multimode_wheel(hid, reported_product_id, bcdDevice); in lg4ff_handle_multimode_wheel()
972 hid_err(hid, "Invalid product id %X\n", *real_product_id); in lg4ff_handle_multimode_wheel()
976 ret = lg4ff_switch_compatibility_mode(hid, s); in lg4ff_handle_multimode_wheel()
980 hid_err(hid, "Unable to switch wheel mode, errno %d\n", ret); in lg4ff_handle_multimode_wheel()
990 int lg4ff_init(struct hid_device *hid) in lg4ff_init() argument
992 struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list); in lg4ff_init()
994 const struct usb_device_descriptor *udesc = &(hid_to_usb_dev(hid)->descriptor); in lg4ff_init()
1003 if (!hid_validate_values(hid, HID_OUTPUT_REPORT, 0, 0, 7)) in lg4ff_init()
1008 mmode_ret = lg4ff_handle_multimode_wheel(hid, &real_product_id, bcdDevice); in lg4ff_init()
1018 if (hid->product == lg4ff_devices[i].product_id) { in lg4ff_init()
1025 …hid_err(hid, "Device is not supported by lg4ff driver. If you think it should be, consider reporti… in lg4ff_init()
1037 hid_err(hid, "Device product ID %X is not listed as a multimode wheel", real_product_id); in lg4ff_init()
1052 drv_data = hid_get_drvdata(hid); in lg4ff_init()
1054 hid_err(hid, "Cannot add device, private driver data not allocated\n"); in lg4ff_init()
1061 hid_err(hid, "Cannot add device, insufficient memory to allocate device properties.\n"); in lg4ff_init()
1092 error = device_create_file(&hid->dev, &dev_attr_range); in lg4ff_init()
1096 error = device_create_file(&hid->dev, &dev_attr_real_id); in lg4ff_init()
1099 error = device_create_file(&hid->dev, &dev_attr_alternate_modes); in lg4ff_init()
1108 entry->set_range(hid, entry->range); in lg4ff_init()
1121 lg4ff_set_leds(hid, 0); in lg4ff_init()
1123 name_sz = strlen(dev_name(&hid->dev)) + 8; in lg4ff_init()
1128 hid_err(hid, "can't allocate memory for LED %d\n", j); in lg4ff_init()
1133 snprintf(name, name_sz, "%s::RPM%d", dev_name(&hid->dev), j+1); in lg4ff_init()
1141 error = led_classdev_register(&hid->dev, led); in lg4ff_init()
1144 hid_err(hid, "failed to register LED %d. Aborting.\n", j); in lg4ff_init()
1161 hid_info(hid, "Force feedback support for Logitech Gaming Wheels\n"); in lg4ff_init()
1165 int lg4ff_deinit(struct hid_device *hid) in lg4ff_deinit() argument
1170 drv_data = hid_get_drvdata(hid); in lg4ff_deinit()
1172 hid_err(hid, "Error while deinitializing device, no private driver data.\n"); in lg4ff_deinit()
1179 device_remove_file(&hid->dev, &dev_attr_range); in lg4ff_deinit()
1183 device_remove_file(&hid->dev, &dev_attr_real_id); in lg4ff_deinit()
1184 device_remove_file(&hid->dev, &dev_attr_alternate_modes); in lg4ff_deinit()