Lines Matching refs:stats
590 static void update_time_in_state(struct cooling_dev_stats *stats) in update_time_in_state() argument
594 delta = ktime_sub(now, stats->last_time); in update_time_in_state()
595 stats->time_in_state[stats->state] = in update_time_in_state()
596 ktime_add(stats->time_in_state[stats->state], delta); in update_time_in_state()
597 stats->last_time = now; in update_time_in_state()
603 struct cooling_dev_stats *stats = cdev->stats; in thermal_cooling_device_stats_update() local
607 if (!stats) in thermal_cooling_device_stats_update()
610 spin_lock(&stats->lock); in thermal_cooling_device_stats_update()
612 if (stats->state == new_state) in thermal_cooling_device_stats_update()
615 update_time_in_state(stats); in thermal_cooling_device_stats_update()
616 stats->trans_table[stats->state * (cdev->max_state + 1) + new_state]++; in thermal_cooling_device_stats_update()
617 stats->state = new_state; in thermal_cooling_device_stats_update()
618 stats->total_trans++; in thermal_cooling_device_stats_update()
621 spin_unlock(&stats->lock); in thermal_cooling_device_stats_update()
628 struct cooling_dev_stats *stats; in total_trans_show() local
633 stats = cdev->stats; in total_trans_show()
634 if (!stats) in total_trans_show()
637 spin_lock(&stats->lock); in total_trans_show()
638 ret = sysfs_emit(buf, "%u\n", stats->total_trans); in total_trans_show()
639 spin_unlock(&stats->lock); in total_trans_show()
649 struct cooling_dev_stats *stats; in time_in_state_ms_show() local
655 stats = cdev->stats; in time_in_state_ms_show()
656 if (!stats) in time_in_state_ms_show()
659 spin_lock(&stats->lock); in time_in_state_ms_show()
661 update_time_in_state(stats); in time_in_state_ms_show()
665 ktime_to_ms(stats->time_in_state[i])); in time_in_state_ms_show()
667 spin_unlock(&stats->lock); in time_in_state_ms_show()
677 struct cooling_dev_stats *stats; in reset_store() local
682 stats = cdev->stats; in reset_store()
683 if (!stats) in reset_store()
688 spin_lock(&stats->lock); in reset_store()
690 stats->total_trans = 0; in reset_store()
691 stats->last_time = ktime_get(); in reset_store()
692 memset(stats->trans_table, 0, in reset_store()
693 states * states * sizeof(*stats->trans_table)); in reset_store()
696 stats->time_in_state[i] = ktime_set(0, 0); in reset_store()
698 spin_unlock(&stats->lock); in reset_store()
707 struct cooling_dev_stats *stats; in trans_table_show() local
713 stats = cdev->stats; in trans_table_show()
714 if (!stats) in trans_table_show()
735 stats->trans_table[i * (cdev->max_state + 1) + j]); in trans_table_show()
774 struct cooling_dev_stats *stats; in cooling_device_stats_setup() local
779 var = sizeof(*stats); in cooling_device_stats_setup()
780 var += sizeof(*stats->time_in_state) * states; in cooling_device_stats_setup()
781 var += sizeof(*stats->trans_table) * states * states; in cooling_device_stats_setup()
783 stats = kzalloc(var, GFP_KERNEL); in cooling_device_stats_setup()
784 if (!stats) in cooling_device_stats_setup()
787 stats->time_in_state = (ktime_t *)(stats + 1); in cooling_device_stats_setup()
788 stats->trans_table = (unsigned int *)(stats->time_in_state + states); in cooling_device_stats_setup()
789 cdev->stats = stats; in cooling_device_stats_setup()
790 stats->last_time = ktime_get(); in cooling_device_stats_setup()
792 spin_lock_init(&stats->lock); in cooling_device_stats_setup()
804 kfree(cdev->stats); in cooling_device_stats_destroy()
805 cdev->stats = NULL; in cooling_device_stats_destroy()