Lines Matching defs:hdev

154 	struct hid_device *hdev;
527 static struct dj_receiver_dev *dj_find_receiver_dev(struct hid_device *hdev,
542 hid_compare_device_paths(hdev, djrcv_dev->mouse, sep)) {
547 hid_compare_device_paths(hdev, djrcv_dev->keyboard, sep)) {
552 hid_compare_device_paths(hdev, djrcv_dev->hidpp, sep)) {
570 static void dj_put_receiver_dev(struct hid_device *hdev)
572 struct dj_receiver_dev *djrcv_dev = hid_get_drvdata(hdev);
576 if (djrcv_dev->mouse == hdev)
578 if (djrcv_dev->keyboard == hdev)
580 if (djrcv_dev->hidpp == hdev)
588 static struct dj_receiver_dev *dj_get_receiver_dev(struct hid_device *hdev,
597 djrcv_dev = dj_find_receiver_dev(hdev, type);
619 djrcv_dev->keyboard = hdev;
621 djrcv_dev->mouse = hdev;
623 djrcv_dev->hidpp = hdev;
625 hid_set_drvdata(hdev, djrcv_dev);
644 hid_destroy_device(dj_dev->hdev);
725 dj_dev->hdev = dj_hiddev;
881 static void logi_hidpp_dev_conn_notif_equad(struct hid_device *hdev,
885 struct dj_receiver_dev *djrcv_dev = hid_get_drvdata(hdev);
914 static void logi_hidpp_dev_conn_notif_27mhz(struct hid_device *hdev,
933 hid_warn(hdev, "%s: unexpected device-index %d", __func__,
938 static void logi_hidpp_recv_queue_notif(struct hid_device *hdev,
942 struct dj_receiver_dev *djrcv_dev = hid_get_drvdata(hdev);
953 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
956 hid_info(hdev, "Non Logitech device connected on slot %d\n",
963 logi_hidpp_dev_conn_notif_27mhz(hdev, hidpp_report, &workitem);
967 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
971 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
978 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
982 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
990 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
994 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
999 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
1005 logi_hidpp_dev_conn_notif_equad(hdev, hidpp_report, &workitem);
1016 hid_warn(hdev,
1024 hid_info(hdev, "device of type %s (0x%02x) connected on slot %d",
1047 if (hid_input_report(djdev->hdev,
1072 if (hid_input_report(dj_device->hdev,
1083 if (hid_input_report(dj_dev->hdev, HID_INPUT_REPORT, data, size, 1))
1087 static void logi_dj_recv_forward_input_report(struct hid_device *hdev,
1090 struct dj_receiver_dev *djrcv_dev = hid_get_drvdata(hdev);
1097 hid_err(hdev, "Unexpected input report number %d\n", report);
1120 struct hid_device *hdev = djrcv_dev->hidpp;
1126 output_report_enum = &hdev->report_enum[HID_OUTPUT_REPORT];
1130 hid_err(hdev, "%s: unable to find dj report\n", __func__);
1137 hid_hw_request(hdev, report, HID_REQ_SET_REPORT);
1194 struct hid_device *hdev = djrcv_dev->hidpp;
1246 retval = hid_hw_raw_request(hdev, REPORT_ID_HIDPP_SHORT, buf,
1353 djdev->hdev->version = 0x0111;
1354 djdev->hdev->country = 0x00;
1441 static int logi_dj_dj_event(struct hid_device *hdev,
1445 struct dj_receiver_dev *djrcv_dev = hid_get_drvdata(hdev);
1475 hid_err(hdev, "%s: invalid device index:%d\n",
1511 static int logi_dj_hidpp_event(struct hid_device *hdev,
1515 struct dj_receiver_dev *djrcv_dev = hid_get_drvdata(hdev);
1547 hid_err(hdev, "%s: invalid device index:%d\n", __func__,
1564 dj_dev->hdev->product) {
1578 logi_hidpp_recv_queue_notif(hdev, hidpp_report);
1588 static int logi_dj_raw_event(struct hid_device *hdev,
1592 struct dj_receiver_dev *djrcv_dev = hid_get_drvdata(hdev);
1598 if (!hdev->report_enum[HID_INPUT_REPORT].numbered) {
1609 logi_dj_recv_forward_input_report(hdev, data, size);
1626 logi_dj_recv_forward_input_report(hdev, mouse_report,
1636 hid_err(hdev, "Short DJ report bad size (%d)", size);
1639 return logi_dj_dj_event(hdev, report, data, size);
1642 hid_err(hdev, "Long DJ report bad size (%d)", size);
1645 return logi_dj_dj_event(hdev, report, data, size);
1648 hid_err(hdev, "Short HID++ report bad size (%d)", size);
1651 return logi_dj_hidpp_event(hdev, report, data, size);
1654 hid_err(hdev, "Long HID++ report bad size (%d)", size);
1657 return logi_dj_hidpp_event(hdev, report, data, size);
1660 logi_dj_recv_forward_input_report(hdev, data, size);
1665 static int logi_dj_probe(struct hid_device *hdev,
1682 retval = hid_parse(hdev);
1684 hid_err(hdev, "%s: parse failed\n", __func__);
1702 if (hid_is_usb(hdev)) {
1703 intf = to_usb_interface(hdev->dev.parent);
1706 hdev->quirks |= HID_QUIRK_INPUT_PER_APP;
1707 return hid_hw_start(hdev, HID_CONNECT_DEFAULT);
1711 rep_enum = &hdev->report_enum[HID_INPUT_REPORT];
1736 djrcv_dev = dj_get_receiver_dev(hdev, id->driver_data,
1739 hid_err(hdev, "%s: dj_get_receiver_dev failed\n", __func__);
1748 retval = hid_hw_start(hdev, HID_CONNECT_HIDRAW|HID_CONNECT_HIDDEV);
1750 hid_err(hdev, "%s: hid_hw_start returned error\n", __func__);
1757 hid_err(hdev, "%s: logi_dj_recv_switch_to_dj_mode returned error:%d\n",
1764 retval = hid_hw_open(hdev);
1766 hid_err(hdev, "%s: hid_hw_open returned error:%d\n",
1772 hid_device_io_start(hdev);
1780 hid_err(hdev, "%s: logi_dj_recv_query_paired_devices error:%d\n",
1793 hid_hw_stop(hdev);
1796 dj_put_receiver_dev(hdev);
1801 static int logi_dj_reset_resume(struct hid_device *hdev)
1804 struct dj_receiver_dev *djrcv_dev = hid_get_drvdata(hdev);
1806 if (!djrcv_dev || djrcv_dev->hidpp != hdev)
1811 hid_err(hdev, "%s: logi_dj_recv_switch_to_dj_mode returned error:%d\n",
1819 static void logi_dj_remove(struct hid_device *hdev)
1821 struct dj_receiver_dev *djrcv_dev = hid_get_drvdata(hdev);
1829 return hid_hw_stop(hdev);
1841 hid_hw_close(hdev);
1842 hid_hw_stop(hdev);
1857 hid_destroy_device(dj_dev->hdev);
1862 dj_put_receiver_dev(hdev);