Lines Matching defs:hdev
145 struct hid_device *hdev;
373 static int magicmouse_raw_event(struct hid_device *hdev,
376 struct magicmouse_sc *msc = hid_get_drvdata(hdev);
388 hid_warn(hdev, "invalid size value (%d) for TRACKPAD_REPORT_ID\n",
410 hid_warn(hdev, "invalid size value (%d) for TRACKPAD2_USB_REPORT_ID\n",
426 hid_warn(hdev, "invalid size value (%d) for MOUSE_REPORT_ID\n",
454 hid_warn(hdev, "invalid size value (%d) for MOUSE2_REPORT_ID\n",
480 magicmouse_raw_event(hdev, report, data + 2, data[1]);
481 magicmouse_raw_event(hdev, report, data + 2 + data[1],
505 static int magicmouse_event(struct hid_device *hdev, struct hid_field *field,
508 struct magicmouse_sc *msc = hid_get_drvdata(hdev);
522 static int magicmouse_setup_input(struct input_dev *input, struct hid_device *hdev)
554 if (hdev->vendor == BT_VENDOR_ID_APPLE) {
560 input->name = hdev->name;
674 static int magicmouse_input_mapping(struct hid_device *hdev,
678 struct magicmouse_sc *msc = hid_get_drvdata(hdev);
692 static int magicmouse_input_configured(struct hid_device *hdev,
696 struct magicmouse_sc *msc = hid_get_drvdata(hdev);
699 ret = magicmouse_setup_input(msc->input, hdev);
701 hid_err(hdev, "magicmouse setup input failed (%d)\n", ret);
710 static int magicmouse_enable_multitouch(struct hid_device *hdev)
721 if (hdev->product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) {
722 if (hdev->vendor == BT_VENDOR_ID_APPLE) {
729 } else if (hdev->product == USB_DEVICE_ID_APPLE_MAGICMOUSE2) {
741 ret = hid_hw_raw_request(hdev, buf[0], buf, feature_size,
753 ret = magicmouse_enable_multitouch(msc->hdev);
755 hid_err(msc->hdev, "unable to request touch data (%d)\n", ret);
758 static int magicmouse_fetch_battery(struct hid_device *hdev)
764 if (!hdev->battery || hdev->vendor != USB_VENDOR_ID_APPLE ||
765 (hdev->product != USB_DEVICE_ID_APPLE_MAGICMOUSE2 &&
766 hdev->product != USB_DEVICE_ID_APPLE_MAGICTRACKPAD2))
769 report_enum = &hdev->report_enum[hdev->battery_report_type];
770 report = report_enum->report_id_hash[hdev->battery_report_id];
775 if (hdev->battery_capacity == hdev->battery_max)
778 hid_hw_request(hdev, report, HID_REQ_GET_REPORT);
788 struct hid_device *hdev = msc->hdev;
790 if (magicmouse_fetch_battery(hdev) == 0) {
796 static int magicmouse_probe(struct hid_device *hdev,
803 msc = devm_kzalloc(&hdev->dev, sizeof(*msc), GFP_KERNEL);
805 hid_err(hdev, "can't alloc magicmouse descriptor\n");
810 msc->hdev = hdev;
814 hid_set_drvdata(hdev, msc);
816 ret = hid_parse(hdev);
818 hid_err(hdev, "magicmouse hid parse failed\n");
822 ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
824 hid_err(hdev, "magicmouse hw start failed\n");
831 magicmouse_fetch_battery(hdev);
835 (id->product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 && hdev->type != HID_TYPE_USBMOUSE)))
839 hid_err(hdev, "magicmouse input not registered\n");
845 report = hid_register_report(hdev, HID_INPUT_REPORT,
848 report = hid_register_report(hdev, HID_INPUT_REPORT,
852 report = hid_register_report(hdev, HID_INPUT_REPORT,
855 report = hid_register_report(hdev, HID_INPUT_REPORT,
858 report = hid_register_report(hdev, HID_INPUT_REPORT,
860 report = hid_register_report(hdev, HID_INPUT_REPORT,
865 hid_err(hdev, "unable to register touch report\n");
879 ret = magicmouse_enable_multitouch(hdev);
881 hid_err(hdev, "unable to request touch data (%d)\n", ret);
891 hid_hw_stop(hdev);
895 static void magicmouse_remove(struct hid_device *hdev)
897 struct magicmouse_sc *msc = hid_get_drvdata(hdev);
904 hid_hw_stop(hdev);
907 static __u8 *magicmouse_report_fixup(struct hid_device *hdev, __u8 *rdesc,
918 if (hdev->vendor == USB_VENDOR_ID_APPLE &&
919 (hdev->product == USB_DEVICE_ID_APPLE_MAGICMOUSE2 ||
920 hdev->product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) &&
922 hid_info(hdev,