Lines Matching refs:drvdata

174 static void corsair_void_set_wireless_status(struct corsair_void_drvdata *drvdata)  in corsair_void_set_wireless_status()  argument
176 struct usb_interface *usb_if = to_usb_interface(drvdata->dev->parent); in corsair_void_set_wireless_status()
178 if (drvdata->is_wired) in corsair_void_set_wireless_status()
181 usb_set_wireless_status(usb_if, drvdata->connected ? in corsair_void_set_wireless_status()
186 static void corsair_void_set_unknown_batt(struct corsair_void_drvdata *drvdata) in corsair_void_set_unknown_batt() argument
188 struct corsair_void_battery_data *battery_data = &drvdata->battery_data; in corsair_void_set_unknown_batt()
197 static void corsair_void_set_unknown_wireless_data(struct corsair_void_drvdata *drvdata) in corsair_void_set_unknown_wireless_data() argument
200 drvdata->fw_headset_major = 0; in corsair_void_set_unknown_wireless_data()
201 drvdata->fw_headset_minor = 0; in corsair_void_set_unknown_wireless_data()
203 drvdata->connected = false; in corsair_void_set_unknown_wireless_data()
204 drvdata->mic_up = false; in corsair_void_set_unknown_wireless_data()
206 corsair_void_set_wireless_status(drvdata); in corsair_void_set_unknown_wireless_data()
209 static void corsair_void_process_receiver(struct corsair_void_drvdata *drvdata, in corsair_void_process_receiver() argument
214 struct corsair_void_battery_data *battery_data = &drvdata->battery_data; in corsair_void_process_receiver()
251 hid_warn(drvdata->hid_dev, "unknown battery status '%d'", in corsair_void_process_receiver()
258 corsair_void_set_wireless_status(drvdata); in corsair_void_process_receiver()
262 corsair_void_set_unknown_batt(drvdata); in corsair_void_process_receiver()
268 &drvdata->battery_work_flags); in corsair_void_process_receiver()
269 schedule_work(&drvdata->battery_work); in corsair_void_process_receiver()
281 struct corsair_void_drvdata *drvdata = power_supply_get_drvdata(psy); in corsair_void_battery_get_property() local
288 if (!strncmp(drvdata->hid_dev->name, "Corsair ", 8)) in corsair_void_battery_get_property()
289 val->strval = drvdata->hid_dev->name + 8; in corsair_void_battery_get_property()
291 val->strval = drvdata->hid_dev->name; in corsair_void_battery_get_property()
297 val->intval = drvdata->battery_data.status; in corsair_void_battery_get_property()
300 val->intval = drvdata->battery_data.present; in corsair_void_battery_get_property()
303 val->intval = drvdata->battery_data.capacity; in corsair_void_battery_get_property()
306 val->intval = drvdata->battery_data.capacity_level; in corsair_void_battery_get_property()
318 struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev); in microphone_up_show() local
320 if (!drvdata->connected) in microphone_up_show()
323 return sysfs_emit(buf, "%d\n", drvdata->mic_up); in microphone_up_show()
330 struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev); in fw_version_receiver_show() local
332 if (drvdata->fw_receiver_major == 0 && drvdata->fw_receiver_minor == 0) in fw_version_receiver_show()
335 return sysfs_emit(buf, "%d.%02d\n", drvdata->fw_receiver_major, in fw_version_receiver_show()
336 drvdata->fw_receiver_minor); in fw_version_receiver_show()
344 struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev); in fw_version_headset_show() local
346 if (drvdata->fw_headset_major == 0 && drvdata->fw_headset_minor == 0) in fw_version_headset_show()
349 return sysfs_emit(buf, "%d.%02d\n", drvdata->fw_headset_major, in fw_version_headset_show()
350 drvdata->fw_headset_minor); in fw_version_headset_show()
357 struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev); in sidetone_max_show() local
359 return sysfs_emit(buf, "%d\n", drvdata->sidetone_max); in sidetone_max_show()
370 struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev); in send_alert_store() local
371 struct hid_device *hid_dev = drvdata->hid_dev; in send_alert_store()
376 if (!drvdata->connected || drvdata->is_wired) in send_alert_store()
426 struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev); in corsair_void_set_sidetone_wireless() local
427 struct hid_device *hid_dev = drvdata->hid_dev; in corsair_void_set_sidetone_wireless()
457 struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev); in set_sidetone_store() local
458 struct hid_device *hid_dev = drvdata->hid_dev; in set_sidetone_store()
462 if (!drvdata->connected) in set_sidetone_store()
466 if (kstrtouint(buf, 10, &sidetone) || sidetone > drvdata->sidetone_max) in set_sidetone_store()
469 if (drvdata->is_wired) in set_sidetone_store()
506 struct corsair_void_drvdata *drvdata; in corsair_void_status_work_handler() local
511 drvdata = container_of(delayed_work, struct corsair_void_drvdata, in corsair_void_status_work_handler()
514 battery_ret = corsair_void_request_status(drvdata->hid_dev, in corsair_void_status_work_handler()
517 hid_warn(drvdata->hid_dev, in corsair_void_status_work_handler()
524 struct corsair_void_drvdata *drvdata; in corsair_void_firmware_work_handler() local
529 drvdata = container_of(delayed_work, struct corsair_void_drvdata, in corsair_void_firmware_work_handler()
532 firmware_ret = corsair_void_request_status(drvdata->hid_dev, in corsair_void_firmware_work_handler()
535 hid_warn(drvdata->hid_dev, in corsair_void_firmware_work_handler()
541 static void corsair_void_add_battery(struct corsair_void_drvdata *drvdata) in corsair_void_add_battery() argument
546 if (drvdata->battery) in corsair_void_add_battery()
549 psy_cfg.drv_data = drvdata; in corsair_void_add_battery()
550 new_supply = power_supply_register(drvdata->dev, in corsair_void_add_battery()
551 &drvdata->battery_desc, in corsair_void_add_battery()
555 hid_err(drvdata->hid_dev, in corsair_void_add_battery()
557 drvdata->battery_desc.name, in corsair_void_add_battery()
562 if (power_supply_powers(new_supply, drvdata->dev)) { in corsair_void_add_battery()
567 drvdata->battery = new_supply; in corsair_void_add_battery()
572 struct corsair_void_drvdata *drvdata = container_of(work, in corsair_void_battery_work_handler() local
576 &drvdata->battery_work_flags); in corsair_void_battery_work_handler()
578 &drvdata->battery_work_flags); in corsair_void_battery_work_handler()
580 &drvdata->battery_work_flags); in corsair_void_battery_work_handler()
583 corsair_void_add_battery(drvdata); in corsair_void_battery_work_handler()
584 } else if (remove_battery && !add_battery && drvdata->battery) { in corsair_void_battery_work_handler()
585 power_supply_unregister(drvdata->battery); in corsair_void_battery_work_handler()
586 drvdata->battery = NULL; in corsair_void_battery_work_handler()
589 if (update_battery && drvdata->battery) in corsair_void_battery_work_handler()
590 power_supply_changed(drvdata->battery); in corsair_void_battery_work_handler()
594 static void corsair_void_headset_connected(struct corsair_void_drvdata *drvdata) in corsair_void_headset_connected() argument
596 set_bit(CORSAIR_VOID_ADD_BATTERY, &drvdata->battery_work_flags); in corsair_void_headset_connected()
597 schedule_work(&drvdata->battery_work); in corsair_void_headset_connected()
598 schedule_delayed_work(&drvdata->delayed_firmware_work, in corsair_void_headset_connected()
602 static void corsair_void_headset_disconnected(struct corsair_void_drvdata *drvdata) in corsair_void_headset_disconnected() argument
604 set_bit(CORSAIR_VOID_REMOVE_BATTERY, &drvdata->battery_work_flags); in corsair_void_headset_disconnected()
605 schedule_work(&drvdata->battery_work); in corsair_void_headset_disconnected()
607 corsair_void_set_unknown_wireless_data(drvdata); in corsair_void_headset_disconnected()
608 corsair_void_set_unknown_batt(drvdata); in corsair_void_headset_disconnected()
641 struct corsair_void_drvdata *drvdata; in corsair_void_probe() local
647 drvdata = devm_kzalloc(&hid_dev->dev, sizeof(*drvdata), in corsair_void_probe()
649 if (!drvdata) in corsair_void_probe()
652 hid_set_drvdata(hid_dev, drvdata); in corsair_void_probe()
653 dev_set_drvdata(&hid_dev->dev, drvdata); in corsair_void_probe()
655 drvdata->dev = &hid_dev->dev; in corsair_void_probe()
656 drvdata->hid_dev = hid_dev; in corsair_void_probe()
657 drvdata->is_wired = hid_id->driver_data == CORSAIR_VOID_WIRED; in corsair_void_probe()
659 drvdata->sidetone_max = CORSAIR_VOID_SIDETONE_MAX_WIRELESS; in corsair_void_probe()
660 if (drvdata->is_wired) in corsair_void_probe()
661 drvdata->sidetone_max = CORSAIR_VOID_SIDETONE_MAX_WIRED; in corsair_void_probe()
665 corsair_void_set_unknown_wireless_data(drvdata); in corsair_void_probe()
666 corsair_void_set_unknown_batt(drvdata); in corsair_void_probe()
670 drvdata->fw_receiver_major = 0; in corsair_void_probe()
671 drvdata->fw_receiver_minor = 0; in corsair_void_probe()
679 name = devm_kasprintf(drvdata->dev, GFP_KERNEL, in corsair_void_probe()
684 drvdata->battery_desc.name = name; in corsair_void_probe()
685 drvdata->battery_desc.type = POWER_SUPPLY_TYPE_BATTERY; in corsair_void_probe()
686 drvdata->battery_desc.properties = corsair_void_battery_props; in corsair_void_probe()
687 drvdata->battery_desc.num_properties = ARRAY_SIZE(corsair_void_battery_props); in corsair_void_probe()
688 drvdata->battery_desc.get_property = corsair_void_battery_get_property; in corsair_void_probe()
690 drvdata->battery = NULL; in corsair_void_probe()
691 INIT_WORK(&drvdata->battery_work, corsair_void_battery_work_handler); in corsair_void_probe()
705 INIT_DELAYED_WORK(&drvdata->delayed_status_work, in corsair_void_probe()
707 schedule_delayed_work(&drvdata->delayed_status_work, in corsair_void_probe()
711 INIT_DELAYED_WORK(&drvdata->delayed_firmware_work, in corsair_void_probe()
713 schedule_delayed_work(&drvdata->delayed_firmware_work, in corsair_void_probe()
725 struct corsair_void_drvdata *drvdata = hid_get_drvdata(hid_dev); in corsair_void_remove() local
728 cancel_work_sync(&drvdata->battery_work); in corsair_void_remove()
729 if (drvdata->battery) in corsair_void_remove()
730 power_supply_unregister(drvdata->battery); in corsair_void_remove()
732 cancel_delayed_work_sync(&drvdata->delayed_status_work); in corsair_void_remove()
733 cancel_delayed_work_sync(&drvdata->delayed_firmware_work); in corsair_void_remove()
741 struct corsair_void_drvdata *drvdata = hid_get_drvdata(hid_dev); in corsair_void_raw_event() local
742 bool was_connected = drvdata->connected; in corsair_void_raw_event()
746 drvdata->mic_up = FIELD_GET(CORSAIR_VOID_MIC_MASK, data[2]); in corsair_void_raw_event()
747 drvdata->connected = (data[3] == CORSAIR_VOID_WIRELESS_CONNECTED) || in corsair_void_raw_event()
748 drvdata->is_wired; in corsair_void_raw_event()
750 corsair_void_process_receiver(drvdata, in corsair_void_raw_event()
754 drvdata->fw_receiver_major = data[1]; in corsair_void_raw_event()
755 drvdata->fw_receiver_minor = data[2]; in corsair_void_raw_event()
756 drvdata->fw_headset_major = data[3]; in corsair_void_raw_event()
757 drvdata->fw_headset_minor = data[4]; in corsair_void_raw_event()
761 if ((was_connected != drvdata->connected) && !drvdata->is_wired) { in corsair_void_raw_event()
762 if (drvdata->connected) in corsair_void_raw_event()
763 corsair_void_headset_connected(drvdata); in corsair_void_raw_event()
765 corsair_void_headset_disconnected(drvdata); in corsair_void_raw_event()