Lines Matching defs:ts

301 static inline void thunderstrike_send_hostcmd_request(struct thunderstrike *ts)
303 struct thunderstrike_hostcmd_req_report *report = ts->req_report_dmabuf;
304 struct shield_device *shield_dev = &ts->base;
308 ts->req_report_dmabuf,
321 struct thunderstrike *ts =
326 report = ts->req_report_dmabuf;
328 if (test_and_clear_bit(THUNDERSTRIKE_FW_VERSION_UPDATE, &ts->update_flags)) {
331 thunderstrike_send_hostcmd_request(ts);
334 if (test_and_clear_bit(THUNDERSTRIKE_LED_UPDATE, &ts->update_flags)) {
337 report->led.state = ts->led_value;
338 thunderstrike_send_hostcmd_request(ts);
341 if (test_and_clear_bit(THUNDERSTRIKE_POWER_SUPPLY_STATS_UPDATE, &ts->update_flags)) {
344 thunderstrike_send_hostcmd_request(ts);
348 thunderstrike_send_hostcmd_request(ts);
351 if (test_and_clear_bit(THUNDERSTRIKE_BOARD_INFO_UPDATE, &ts->update_flags)) {
354 thunderstrike_send_hostcmd_request(ts);
357 if (test_and_clear_bit(THUNDERSTRIKE_HAPTICS_UPDATE, &ts->update_flags)) {
362 spin_lock_irqsave(&ts->haptics_update_lock, flags);
363 report->haptics.motors = ts->haptics_val;
364 spin_unlock_irqrestore(&ts->haptics_update_lock, flags);
366 thunderstrike_send_hostcmd_request(ts);
370 static inline void thunderstrike_request_firmware_version(struct thunderstrike *ts)
372 set_bit(THUNDERSTRIKE_FW_VERSION_UPDATE, &ts->update_flags);
373 schedule_work(&ts->hostcmd_req_work);
376 static inline void thunderstrike_request_board_info(struct thunderstrike *ts)
378 set_bit(THUNDERSTRIKE_BOARD_INFO_UPDATE, &ts->update_flags);
379 schedule_work(&ts->hostcmd_req_work);
383 thunderstrike_update_haptics(struct thunderstrike *ts,
388 spin_lock_irqsave(&ts->haptics_update_lock, flags);
389 ts->haptics_val = *motors;
390 spin_unlock_irqrestore(&ts->haptics_update_lock, flags);
392 set_bit(THUNDERSTRIKE_HAPTICS_UPDATE, &ts->update_flags);
393 schedule_work(&ts->hostcmd_req_work);
404 struct thunderstrike *ts;
410 ts = container_of(shield_dev, struct thunderstrike, base);
419 return thunderstrike_update_haptics(ts, &motors);
427 struct thunderstrike *ts;
429 ts = container_of(shield_dev, struct thunderstrike, base);
431 return ts->led_state;
439 struct thunderstrike *ts;
441 ts = container_of(shield_dev, struct thunderstrike, base);
445 ts->led_value = THUNDERSTRIKE_LED_OFF;
448 ts->led_value = THUNDERSTRIKE_LED_ON;
452 set_bit(THUNDERSTRIKE_LED_UPDATE, &ts->update_flags);
453 schedule_work(&ts->hostcmd_req_work);
462 struct thunderstrike *ts;
465 ts = container_of(shield_dev, struct thunderstrike, base);
466 spin_lock(&ts->psy_stats_lock);
467 prop_values = ts->psy_stats;
468 spin_unlock(&ts->psy_stats_lock);
527 static inline void thunderstrike_request_psy_stats(struct thunderstrike *ts)
529 set_bit(THUNDERSTRIKE_POWER_SUPPLY_STATS_UPDATE, &ts->update_flags);
530 schedule_work(&ts->hostcmd_req_work);
535 struct thunderstrike *ts =
538 thunderstrike_request_psy_stats(ts);
593 struct thunderstrike *ts = container_of(shield_dev, struct thunderstrike, base);
597 ts->led_state = 0;
600 ts->led_state = 1;
611 struct thunderstrike *ts = container_of(shield_dev, struct thunderstrike, base);
630 spin_lock(&ts->psy_stats_lock);
631 ts->psy_stats.voltage_boot = voltage_boot;
632 ts->psy_stats.voltage_avg = voltage_avg;
633 ts->psy_stats.voltage_min = voltage_min;
634 ts->psy_stats.voltage_now = voltage_now;
635 ts->psy_stats.capacity = capacity;
636 ts->psy_stats.temp = temp;
637 spin_unlock(&ts->psy_stats_lock);
659 struct thunderstrike *ts = container_of(shield_dev, struct thunderstrike, base);
706 spin_lock(&ts->psy_stats_lock);
707 ts->psy_stats.charge_type = charge_type;
708 ts->psy_stats.status = status;
709 spin_unlock(&ts->psy_stats_lock);
720 struct thunderstrike *ts =
724 thunderstrike_request_firmware_version(ts);
727 thunderstrike_request_board_info(ts);
731 thunderstrike_psy_stats_timer_handler(&ts->psy_stats_timer);
799 static inline int thunderstrike_led_create(struct thunderstrike *ts)
801 struct led_classdev *led = &ts->led_dev;
803 led->name = devm_kasprintf(&ts->base.hdev->dev, GFP_KERNEL,
804 "thunderstrike%d:blue:led", ts->id);
812 return led_classdev_register(&ts->base.hdev->dev, led);
817 struct thunderstrike *ts = container_of(shield_dev, struct thunderstrike, base);
827 ts->psy_stats.capacity = 100;
828 ts->psy_stats.temp = 182;
836 devm_kasprintf(&ts->base.hdev->dev, GFP_KERNEL,
837 "thunderstrike_%d", ts->id);
864 struct thunderstrike *ts;
867 ts = devm_kzalloc(&hdev->dev, sizeof(*ts), GFP_KERNEL);
868 if (!ts)
871 ts->req_report_dmabuf = devm_kzalloc(
873 if (!ts->req_report_dmabuf)
876 shield_dev = &ts->base;
880 spin_lock_init(&ts->haptics_update_lock);
881 spin_lock_init(&ts->psy_stats_lock);
882 INIT_WORK(&ts->hostcmd_req_work, thunderstrike_hostcmd_req_work_handler);
886 ts->id = ida_alloc(&thunderstrike_ida, GFP_KERNEL);
887 if (ts->id < 0)
888 return ERR_PTR(ts->id);
890 ts->haptics_dev = shield_haptics_create(shield_dev, thunderstrike_play_effect);
891 if (IS_ERR(ts->haptics_dev)) {
893 ret = PTR_ERR(ts->haptics_dev);
903 ret = thunderstrike_led_create(ts);
909 timer_setup(&ts->psy_stats_timer, thunderstrike_psy_stats_timer_handler, 0);
917 if (ts->haptics_dev)
918 input_unregister_device(ts->haptics_dev);
920 ida_free(&thunderstrike_ida, ts->id);
924 static void thunderstrike_destroy(struct thunderstrike *ts)
926 led_classdev_unregister(&ts->led_dev);
927 power_supply_unregister(ts->base.battery_dev.psy);
928 if (ts->haptics_dev)
929 input_unregister_device(ts->haptics_dev);
930 ida_free(&thunderstrike_ida, ts->id);
1047 struct thunderstrike *ts;
1071 ts = container_of(shield_dev, struct thunderstrike, base);
1092 thunderstrike_destroy(ts);
1099 struct thunderstrike *ts;
1101 ts = container_of(dev, struct thunderstrike, base);
1104 thunderstrike_destroy(ts);
1105 del_timer_sync(&ts->psy_stats_timer);
1106 cancel_work_sync(&ts->hostcmd_req_work);