Lines Matching defs:hdev
95 struct hid_device *hdev;
114 struct hid_device *hdev;
309 static int asus_event(struct hid_device *hdev, struct hid_field *field,
315 hid_warn(hdev, "Unmapped Asus vendor usagepage code 0x%02x\n",
322 static int asus_raw_event(struct hid_device *hdev,
325 struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
339 static int asus_kbd_set_report(struct hid_device *hdev, const u8 *buf, size_t buf_size)
348 ret = hid_hw_raw_request(hdev, FEATURE_KBD_REPORT_ID, dmabuf,
356 static int asus_kbd_init(struct hid_device *hdev)
362 ret = asus_kbd_set_report(hdev, buf, sizeof(buf));
364 hid_err(hdev, "Asus failed to send init command: %d\n", ret);
369 static int asus_kbd_get_functions(struct hid_device *hdev,
376 ret = asus_kbd_set_report(hdev, buf, sizeof(buf));
378 hid_err(hdev, "Asus failed to send configuration command: %d\n", ret);
386 ret = hid_hw_raw_request(hdev, FEATURE_KBD_REPORT_ID, readbuf,
390 hid_err(hdev, "Asus failed to request functions: %d\n", ret);
450 ret = asus_kbd_set_report(led->hdev, buf, sizeof(buf));
452 hid_err(led->hdev, "Asus failed to set keyboard backlight: %d\n", ret);
459 static bool asus_kbd_wmi_led_control_present(struct hid_device *hdev)
469 hid_dbg(hdev, "WMI backlight check: rc %d value %x", ret, value);
476 static int asus_kbd_register_leds(struct hid_device *hdev)
478 struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
483 ret = asus_kbd_init(hdev);
488 ret = asus_kbd_get_functions(hdev, &kbd_func);
496 drvdata->kbd_backlight = devm_kzalloc(&hdev->dev,
504 drvdata->kbd_backlight->hdev = hdev;
512 ret = devm_led_classdev_register(&hdev->dev, &drvdata->kbd_backlight->cdev);
515 devm_kfree(&hdev->dev, drvdata->kbd_backlight);
578 ret = hid_hw_raw_request(drvdata->hdev, BATTERY_REPORT_ID,
631 val->strval = drvdata->hdev->name;
641 static int asus_battery_probe(struct hid_device *hdev)
643 struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
656 drvdata->battery_desc.name = devm_kasprintf(&hdev->dev, GFP_KERNEL,
658 strlen(hdev->uniq) ?
659 hdev->uniq : dev_name(&hdev->dev));
665 drvdata->battery = devm_power_supply_register(&hdev->dev,
670 hid_err(hdev, "Unable to register battery device\n");
674 power_supply_powers(drvdata->battery, &hdev->dev);
679 static int asus_input_configured(struct hid_device *hdev, struct hid_input *hi)
682 struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
730 hid_err(hdev, "Asus input mt init slots failed: %d\n", ret);
738 !asus_kbd_wmi_led_control_present(hdev) &&
739 asus_kbd_register_leds(hdev))
740 hid_warn(hdev, "Failed to initialize backlight.\n");
747 static int asus_input_mapping(struct hid_device *hdev,
752 struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
877 static int asus_start_multitouch(struct hid_device *hdev)
887 hid_err(hdev, "Asus failed to alloc dma buf: %d\n", ret);
891 ret = hid_hw_raw_request(hdev, dmabuf[0], dmabuf, sizeof(buf),
897 hid_err(hdev, "Asus failed to start multitouch: %d\n", ret);
904 static int __maybe_unused asus_resume(struct hid_device *hdev) {
905 struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
911 ret = asus_kbd_set_report(hdev, buf, sizeof(buf));
913 hid_err(hdev, "Asus failed to set keyboard backlight: %d\n", ret);
922 static int __maybe_unused asus_reset_resume(struct hid_device *hdev)
924 struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
927 return asus_start_multitouch(hdev);
932 static int asus_probe(struct hid_device *hdev, const struct hid_device_id *id)
937 drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL);
939 hid_err(hdev, "Can't alloc Asus descriptor\n");
943 hid_set_drvdata(hdev, drvdata);
951 if (strstr(hdev->name, "T90CHI")) {
959 if ((drvdata->quirks & QUIRK_T100_KEYBOARD) && hid_is_usb(hdev)) {
960 struct usb_interface *intf = to_usb_interface(hdev->dev.parent);
983 hdev->quirks |= HID_QUIRK_MULTI_INPUT;
987 if ((drvdata->quirks & QUIRK_MEDION_E1239T) && hid_is_usb(hdev)) {
989 to_usb_interface(hdev->dev.parent)->altsetting;
993 hdev->quirks |= HID_QUIRK_MULTI_INPUT;
1000 hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS;
1002 drvdata->hdev = hdev;
1005 ret = asus_battery_probe(hdev);
1007 hid_err(hdev,
1013 ret = hid_parse(hdev);
1015 hid_err(hdev, "Asus hid parse failed: %d\n", ret);
1021 hdev->collection->usage == HID_GD_MOUSE)
1024 ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
1026 hid_err(hdev, "Asus hw start failed: %d\n", ret);
1031 hid_err(hdev, "Asus input not registered\n");
1043 ret = asus_start_multitouch(hdev);
1050 hid_hw_stop(hdev);
1054 static void asus_remove(struct hid_device *hdev)
1056 struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
1067 hid_hw_stop(hdev);
1075 static __u8 *asus_report_fixup(struct hid_device *hdev, __u8 *rdesc,
1078 struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
1082 hid_info(hdev, "Fixing up Asus notebook report descriptor\n");
1089 hid_info(hdev, "Fixing up Asus T100 keyb report descriptor\n");
1118 hid_info(hdev, "Fixing up %s keyb report descriptor\n",
1136 new_rdesc = devm_kzalloc(&hdev->dev, new_size, GFP_KERNEL);
1140 hid_info(hdev, "Fixing up Asus G752 keyb report descriptor\n");