Lines Matching defs:hdev
416 struct hid_device *hdev;
486 (ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_JOYCONL || \
487 ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_JOYCONR || \
488 ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_CHRGGRIP)
490 (ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_PROCON)
492 (ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_CHRGGRIP)
504 static int __joycon_hid_send(struct hid_device *hdev, u8 *data, size_t len)
512 ret = hid_hw_output_report(hdev, buf, len);
515 hid_dbg(hdev, "Failed to send output report ret=%d\n", ret);
539 hid_warn(ctlr->hdev,
555 #define JC_SUBCMD_RATE_LIMITER_MS(ctlr) ((ctlr)->hdev->bus == BUS_USB ? JC_SUBCMD_RATE_LIMITER_USB_MS : JC_SUBCMD_RATE_LIMITER_BT_MS)
583 hid_warn(ctlr->hdev, "%s: exceeded max attempts", __func__);
611 ret = __joycon_hid_send(ctlr->hdev, data, len);
620 hid_dbg(ctlr->hdev,
623 hid_dbg(ctlr->hdev,
648 hid_dbg(ctlr->hdev, "send usb command failed; ret=%d\n", ret);
682 hid_dbg(ctlr->hdev, "send subcommand failed; ret=%d\n", ret);
698 hid_dbg(ctlr->hdev, "setting player leds\n");
720 hid_dbg(ctlr->hdev, "requesting SPI flash data\n");
723 hid_err(ctlr->hdev, "failed reading SPI flash; ret=%d\n", ret);
768 x_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 0), 0,
770 y_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 1), 4,
772 cal_x->center = hid_field_extract(ctlr->hdev, (raw_cal + 3), 0,
774 cal_y->center = hid_field_extract(ctlr->hdev, (raw_cal + 4), 4,
776 x_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 6), 0,
778 y_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 7), 4,
781 cal_x->center = hid_field_extract(ctlr->hdev, (raw_cal + 0), 0,
783 cal_y->center = hid_field_extract(ctlr->hdev, (raw_cal + 1), 4,
785 x_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 3), 0,
787 y_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 4), 4,
789 x_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 6), 0,
791 y_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 7), 4,
811 static void joycon_use_default_calibration(struct hid_device *hdev,
816 hid_warn(hdev,
831 hid_dbg(ctlr->hdev, "requesting cal data\n");
836 hid_info(ctlr->hdev, "using user cal for left stick\n");
838 hid_info(ctlr->hdev, "using factory cal for left stick\n");
842 hid_info(ctlr->hdev, "using user cal for right stick\n");
844 hid_info(ctlr->hdev, "using factory cal for right stick\n");
854 joycon_use_default_calibration(ctlr->hdev,
866 joycon_use_default_calibration(ctlr->hdev,
871 hid_dbg(ctlr->hdev, "calibration:\n"
919 hid_warn(ctlr->hdev, "inaccurate IMU divisors (%d)\n", divz);
936 hid_info(ctlr->hdev, "using user cal for IMU\n");
938 hid_info(ctlr->hdev, "using factory cal for IMU\n");
942 hid_dbg(ctlr->hdev, "requesting IMU cal data\n");
946 hid_warn(ctlr->hdev,
972 hid_dbg(ctlr->hdev, "IMU calibration:\n"
1002 hid_dbg(ctlr->hdev, "setting controller report mode\n");
1015 hid_dbg(ctlr->hdev, "enabling rumble\n");
1028 hid_dbg(ctlr->hdev, "enabling IMU\n");
1155 hid_warn(ctlr->hdev, "calculated avg imu delta of 0\n");
1159 hid_dbg(ctlr->hdev,
1169 hid_warn(ctlr->hdev,
1172 hid_warn(ctlr->hdev,
1228 hid_dbg(ctlr->hdev, "raw_gyro: g_x=%d g_y=%d g_z=%d\n",
1231 hid_dbg(ctlr->hdev, "raw_accel: a_x=%d a_y=%d a_z=%d\n",
1318 hid_warn(ctlr->hdev, "Invalid battery status\n");
1324 btns = hid_field_extract(ctlr->hdev, rep->button_status, 0, 24);
1333 raw_x = hid_field_extract(ctlr->hdev, rep->left_stick, 0, 12);
1334 raw_y = hid_field_extract(ctlr->hdev,
1389 raw_x = hid_field_extract(ctlr->hdev, rep->right_stick, 0, 12);
1390 raw_y = hid_field_extract(ctlr->hdev,
1438 if (ctlr->hdev->bus == BUS_USB)
1487 ret = __joycon_hid_send(ctlr->hdev, (u8 *)&rumble_output,
1509 hid_warn(ctlr->hdev, "Failed to set rumble; e=%d", ret);
1636 hid_dbg(ctlr->hdev, "rumble queue is full");
1690 struct hid_device *hdev;
1696 hdev = ctlr->hdev;
1698 switch (hdev->product) {
1721 hid_err(hdev, "Invalid hid product\n");
1725 ctlr->input = devm_input_allocate_device(&hdev->dev);
1728 ctlr->input->id.bustype = hdev->bus;
1729 ctlr->input->id.vendor = hdev->vendor;
1730 ctlr->input->id.product = hdev->product;
1731 ctlr->input->id.version = hdev->version;
1734 ctlr->input->phys = hdev->phys;
1751 if (hdev->product != USB_DEVICE_ID_NINTENDO_PROCON) {
1778 if (hdev->product == USB_DEVICE_ID_NINTENDO_JOYCONL) {
1781 } else if (hdev->product == USB_DEVICE_ID_NINTENDO_JOYCONR) {
1804 ctlr->imu_input = devm_input_allocate_device(&hdev->dev);
1808 ctlr->imu_input->id.bustype = hdev->bus;
1809 ctlr->imu_input->id.vendor = hdev->vendor;
1810 ctlr->imu_input->id.product = hdev->product;
1811 ctlr->imu_input->id.version = hdev->version;
1814 ctlr->imu_input->phys = hdev->phys;
1860 struct hid_device *hdev = to_hid_device(dev);
1867 ctlr = hid_get_drvdata(hdev);
1869 hid_err(hdev, "No controller data\n");
1898 struct hid_device *hdev = to_hid_device(dev);
1905 ctlr = hid_get_drvdata(hdev);
1907 hid_err(hdev, "No controller data\n");
1920 hid_dbg(hdev, "setting home led brightness\n");
1931 struct hid_device *hdev = ctlr->hdev;
1932 struct device *dev = &hdev->dev;
1945 hid_warn(ctlr->hdev, "Failed to set leds; ret=%d\n", ret);
1967 ret = devm_led_classdev_register(&hdev->dev, led);
1969 hid_err(hdev, "Failed registering %s LED\n", led->name);
1994 ret = devm_led_classdev_register(&hdev->dev, led);
1996 hid_err(hdev, "Failed registering home led\n");
2002 hid_warn(hdev, "Failed to set home LED default, unregistering home LED");
2003 devm_led_classdev_unregister(&hdev->dev, led);
2062 struct hid_device *hdev = ctlr->hdev;
2077 ctlr->battery_desc.name = devm_kasprintf(&hdev->dev, GFP_KERNEL,
2079 dev_name(&hdev->dev));
2083 ctlr->battery = devm_power_supply_register(&hdev->dev,
2088 hid_err(hdev, "Failed to register battery; ret=%d\n", ret);
2092 return power_supply_powers(ctlr->battery, &hdev->dev);
2108 hid_err(ctlr->hdev, "Failed to get joycon info; ret=%d\n", ret);
2117 ctlr->mac_addr_str = devm_kasprintf(&ctlr->hdev->dev, GFP_KERNEL,
2127 hid_info(ctlr->hdev, "controller MAC = %s\n", ctlr->mac_addr_str);
2135 static int joycon_init(struct hid_device *hdev)
2137 struct joycon_ctlr *ctlr = hid_get_drvdata(hdev);
2144 hid_dbg(hdev, "detected USB controller\n");
2148 hid_err(hdev, "Failed to set baudrate; ret=%d\n", ret);
2154 hid_err(hdev, "Failed handshake; ret=%d\n", ret);
2163 hid_err(hdev, "Failed charging grip handshake\n");
2175 hid_warn(hdev, "Analog stick positions may be inaccurate\n");
2185 hid_warn(hdev, "Unable to read IMU calibration data\n");
2191 hid_err(hdev, "Failed to set report mode; ret=%d\n", ret);
2198 hid_err(hdev, "Failed to enable rumble; ret=%d\n", ret);
2205 hid_err(hdev, "Failed to enable the IMU; ret=%d\n", ret);
2275 static int nintendo_hid_event(struct hid_device *hdev,
2278 struct joycon_ctlr *ctlr = hid_get_drvdata(hdev);
2286 static int nintendo_hid_probe(struct hid_device *hdev,
2292 hid_dbg(hdev, "probe - start\n");
2294 ctlr = devm_kzalloc(&hdev->dev, sizeof(*ctlr), GFP_KERNEL);
2300 ctlr->hdev = hdev;
2304 hid_set_drvdata(hdev, ctlr);
2316 ret = hid_parse(hdev);
2318 hid_err(hdev, "HID parse failed\n");
2329 hdev->version |= 0x8000;
2331 ret = hid_hw_start(hdev, HID_CONNECT_HIDRAW);
2333 hid_err(hdev, "HW start failed\n");
2337 ret = hid_hw_open(hdev);
2339 hid_err(hdev, "cannot start hardware I/O\n");
2343 hid_device_io_start(hdev);
2345 ret = joycon_init(hdev);
2347 hid_err(hdev, "Failed to initialize controller; ret=%d\n", ret);
2353 hid_err(hdev, "Failed to retrieve controller info; ret=%d\n",
2361 hid_err(hdev, "Failed to create leds; ret=%d\n", ret);
2368 hid_err(hdev, "Failed to create power_supply; ret=%d\n", ret);
2374 hid_err(hdev, "Failed to create input device; ret=%d\n", ret);
2380 hid_dbg(hdev, "probe - success\n");
2384 hid_hw_close(hdev);
2386 hid_hw_stop(hdev);
2390 hid_err(hdev, "probe - fail = %d\n", ret);
2394 static void nintendo_hid_remove(struct hid_device *hdev)
2396 struct joycon_ctlr *ctlr = hid_get_drvdata(hdev);
2399 hid_dbg(hdev, "remove\n");
2408 hid_hw_close(hdev);
2409 hid_hw_stop(hdev);
2414 static int nintendo_hid_resume(struct hid_device *hdev)
2416 int ret = joycon_init(hdev);
2419 hid_err(hdev, "Failed to restore controller after resume");