Lines Matching defs:hdev

571 	struct hid_device *hdev;
642 (ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_JOYCONL || \
643 ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_JOYCONR || \
644 ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_CHRGGRIP)
646 (ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_PROCON)
648 (ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_CHRGGRIP)
674 return ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_PROCON;
679 return ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_CHRGGRIP;
684 return ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_SNESCON;
689 return ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_GENCON;
694 return ctlr->hdev->product == USB_DEVICE_ID_NINTENDO_N64CON;
795 return ctlr->hdev->bus == BUS_USB;
798 static int __joycon_hid_send(struct hid_device *hdev, u8 *data, size_t len)
806 ret = hid_hw_output_report(hdev, buf, len);
809 hid_dbg(hdev, "Failed to send output report ret=%d\n", ret);
833 hid_warn(ctlr->hdev,
849 #define JC_SUBCMD_RATE_LIMITER_MS(ctlr) ((ctlr)->hdev->bus == BUS_USB ? JC_SUBCMD_RATE_LIMITER_USB_MS : JC_SUBCMD_RATE_LIMITER_BT_MS)
877 hid_warn(ctlr->hdev, "%s: exceeded max attempts", __func__);
905 ret = __joycon_hid_send(ctlr->hdev, data, len);
914 hid_dbg(ctlr->hdev,
917 hid_dbg(ctlr->hdev,
942 hid_dbg(ctlr->hdev, "send usb command failed; ret=%d\n", ret);
976 hid_dbg(ctlr->hdev, "send subcommand failed; ret=%d\n", ret);
992 hid_dbg(ctlr->hdev, "setting player leds\n");
1011 hid_dbg(ctlr->hdev, "setting home led brightness\n");
1033 hid_dbg(ctlr->hdev, "requesting SPI flash data\n");
1036 hid_err(ctlr->hdev, "failed reading SPI flash; ret=%d\n", ret);
1081 x_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 0), 0,
1083 y_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 1), 4,
1085 cal_x->center = hid_field_extract(ctlr->hdev, (raw_cal + 3), 0,
1087 cal_y->center = hid_field_extract(ctlr->hdev, (raw_cal + 4), 4,
1089 x_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 6), 0,
1091 y_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 7), 4,
1094 cal_x->center = hid_field_extract(ctlr->hdev, (raw_cal + 0), 0,
1096 cal_y->center = hid_field_extract(ctlr->hdev, (raw_cal + 1), 4,
1098 x_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 3), 0,
1100 y_min_below = hid_field_extract(ctlr->hdev, (raw_cal + 4), 4,
1102 x_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 6), 0,
1104 y_max_above = hid_field_extract(ctlr->hdev, (raw_cal + 7), 4,
1124 static void joycon_use_default_calibration(struct hid_device *hdev,
1129 hid_warn(hdev,
1144 hid_dbg(ctlr->hdev, "requesting cal data\n");
1149 hid_info(ctlr->hdev, "using user cal for left stick\n");
1151 hid_info(ctlr->hdev, "using factory cal for left stick\n");
1155 hid_info(ctlr->hdev, "using user cal for right stick\n");
1157 hid_info(ctlr->hdev, "using factory cal for right stick\n");
1167 joycon_use_default_calibration(ctlr->hdev,
1179 joycon_use_default_calibration(ctlr->hdev,
1184 hid_dbg(ctlr->hdev, "calibration:\n"
1232 hid_warn(ctlr->hdev, "inaccurate IMU divisors (%d)\n", divz);
1249 hid_info(ctlr->hdev, "using user cal for IMU\n");
1251 hid_info(ctlr->hdev, "using factory cal for IMU\n");
1255 hid_dbg(ctlr->hdev, "requesting IMU cal data\n");
1259 hid_warn(ctlr->hdev,
1285 hid_dbg(ctlr->hdev, "IMU calibration:\n"
1315 hid_dbg(ctlr->hdev, "setting controller report mode\n");
1328 hid_dbg(ctlr->hdev, "enabling rumble\n");
1341 hid_dbg(ctlr->hdev, "enabling IMU\n");
1468 hid_warn(ctlr->hdev, "calculated avg imu delta of 0\n");
1472 hid_dbg(ctlr->hdev,
1482 hid_warn(ctlr->hdev,
1485 hid_warn(ctlr->hdev,
1541 hid_dbg(ctlr->hdev, "raw_gyro: g_x=%d g_y=%d g_z=%d\n",
1544 hid_dbg(ctlr->hdev, "raw_accel: a_x=%d a_y=%d a_z=%d\n",
1636 hid_warn(ctlr->hdev, "Invalid battery status\n");
1651 raw_x = hid_field_extract(ctlr->hdev, rep->left_stick, 0, 12);
1652 raw_y = hid_field_extract(ctlr->hdev, rep->left_stick + 1, 4, 12);
1669 raw_x = hid_field_extract(ctlr->hdev, rep->right_stick, 0, 12);
1670 raw_y = hid_field_extract(ctlr->hdev, rep->right_stick + 1, 4, 12);
1684 u32 btns = hid_field_extract(ctlr->hdev, rep->button_status, 0, 24);
1705 u32 status = hid_field_extract(ctlr->hdev, rep->button_status, 0, 24);
1775 if (ctlr->hdev->bus == BUS_USB)
1824 ret = __joycon_hid_send(ctlr->hdev, (u8 *)&rumble_output,
1846 hid_warn(ctlr->hdev, "Failed to set rumble; e=%d", ret);
1973 hid_dbg(ctlr->hdev, "rumble queue is full");
2081 struct hid_device *hdev;
2085 hdev = ctlr->hdev;
2088 ctlr->imu_input = devm_input_allocate_device(&hdev->dev);
2092 ctlr->imu_input->id.bustype = hdev->bus;
2093 ctlr->imu_input->id.vendor = hdev->vendor;
2094 ctlr->imu_input->id.product = hdev->product;
2095 ctlr->imu_input->id.version = hdev->version;
2097 ctlr->imu_input->phys = hdev->phys;
2099 imu_name = devm_kasprintf(&hdev->dev, GFP_KERNEL, "%s (IMU)", ctlr->input->name);
2148 struct hid_device *hdev;
2151 hdev = ctlr->hdev;
2153 ctlr->input = devm_input_allocate_device(&hdev->dev);
2156 ctlr->input->id.bustype = hdev->bus;
2157 ctlr->input->id.vendor = hdev->vendor;
2158 ctlr->input->id.product = hdev->product;
2159 ctlr->input->id.version = hdev->version;
2161 ctlr->input->name = hdev->name;
2162 ctlr->input->phys = hdev->phys;
2216 struct hid_device *hdev = to_hid_device(dev);
2222 ctlr = hid_get_drvdata(hdev);
2224 hid_err(hdev, "No controller data\n");
2242 struct hid_device *hdev = to_hid_device(dev);
2246 ctlr = hid_get_drvdata(hdev);
2248 hid_err(hdev, "No controller data\n");
2261 struct hid_device *hdev = ctlr->hdev;
2262 struct device *dev = &hdev->dev;
2275 hid_warn(hdev, "Failed to allocate player ID, skipping; ret=%d\n", ret);
2280 hid_info(ctlr->hdev, "assigned player %d led pattern", player_led_pattern + 1);
2304 hid_warn(hdev, "Failed to set players LEDs, skipping registration; ret=%d\n", ret);
2310 ret = devm_led_classdev_register(&hdev->dev, led);
2312 hid_err(hdev, "Failed to register player %d LED; ret=%d\n", i + 1, ret);
2339 hid_warn(hdev, "Failed to set home LED, skipping registration; ret=%d\n", ret);
2343 ret = devm_led_classdev_register(&hdev->dev, led);
2345 hid_err(hdev, "Failed to register home LED; ret=%d\n", ret);
2405 struct hid_device *hdev = ctlr->hdev;
2420 ctlr->battery_desc.name = devm_kasprintf(&hdev->dev, GFP_KERNEL,
2422 dev_name(&hdev->dev));
2426 ctlr->battery = devm_power_supply_register(&hdev->dev,
2431 hid_err(hdev, "Failed to register battery; ret=%d\n", ret);
2435 return power_supply_powers(ctlr->battery, &hdev->dev);
2449 hid_err(ctlr->hdev, "Failed to get joycon info; ret=%d\n", ret);
2458 ctlr->mac_addr_str = devm_kasprintf(&ctlr->hdev->dev, GFP_KERNEL,
2468 hid_info(ctlr->hdev, "controller MAC = %s\n", ctlr->mac_addr_str);
2472 * Unfortantly the hdev->product can't always be used due to a ?bug?
2480 hid_dbg(ctlr->hdev, "controller type = 0x%02X\n", ctlr->ctlr_type);
2485 static int joycon_init(struct hid_device *hdev)
2487 struct joycon_ctlr *ctlr = hid_get_drvdata(hdev);
2493 hid_dbg(hdev, "detected USB controller\n");
2501 hid_warn(hdev, "Failed to set baudrate (ret=%d), continuing anyway\n", ret);
2506 hid_err(hdev, "Failed handshake; ret=%d\n", ret);
2515 hid_err(hdev, "Failed charging grip handshake\n");
2523 hid_err(hdev, "Failed to retrieve controller info; ret=%d\n",
2536 hid_warn(hdev, "Analog stick positions may be inaccurate\n");
2548 hid_warn(hdev, "Unable to read IMU calibration data\n");
2554 hid_err(hdev, "Failed to enable the IMU; ret=%d\n", ret);
2562 hid_err(hdev, "Failed to set report mode; ret=%d\n", ret);
2570 hid_err(hdev, "Failed to enable rumble; ret=%d\n", ret);
2641 static int nintendo_hid_event(struct hid_device *hdev,
2644 struct joycon_ctlr *ctlr = hid_get_drvdata(hdev);
2652 static int nintendo_hid_probe(struct hid_device *hdev,
2658 hid_dbg(hdev, "probe - start\n");
2660 ctlr = devm_kzalloc(&hdev->dev, sizeof(*ctlr), GFP_KERNEL);
2666 ctlr->hdev = hdev;
2670 hid_set_drvdata(hdev, ctlr);
2682 ret = hid_parse(hdev);
2684 hid_err(hdev, "HID parse failed\n");
2695 hdev->version |= 0x8000;
2697 ret = hid_hw_start(hdev, HID_CONNECT_HIDRAW);
2699 hid_err(hdev, "HW start failed\n");
2703 ret = hid_hw_open(hdev);
2705 hid_err(hdev, "cannot start hardware I/O\n");
2709 hid_device_io_start(hdev);
2711 ret = joycon_init(hdev);
2713 hid_err(hdev, "Failed to initialize controller; ret=%d\n", ret);
2720 hid_err(hdev, "Failed to create leds; ret=%d\n", ret);
2727 hid_err(hdev, "Failed to create power_supply; ret=%d\n", ret);
2733 hid_err(hdev, "Failed to create input device; ret=%d\n", ret);
2739 hid_dbg(hdev, "probe - success\n");
2743 hid_hw_close(hdev);
2745 hid_hw_stop(hdev);
2749 hid_err(hdev, "probe - fail = %d\n", ret);
2753 static void nintendo_hid_remove(struct hid_device *hdev)
2755 struct joycon_ctlr *ctlr = hid_get_drvdata(hdev);
2758 hid_dbg(hdev, "remove\n");
2768 hid_hw_close(hdev);
2769 hid_hw_stop(hdev);
2774 static int nintendo_hid_resume(struct hid_device *hdev)
2776 int ret = joycon_init(hdev);
2779 hid_err(hdev, "Failed to restore controller after resume");