static void clear_time(void)
{
	int i;

	profile_start_time.tv64 = 0;
	profile_finish_time.tv64 = 0;

	for_each_possible_cpu(i)
		clear_profile_info(&per_cpu(profile_info, i), state_count);
}
static void clear_time(void)
{
	int i;

	profile_start_time.tv64 = 0;
	profile_finish_time.tv64 = 0;

	for_each_possible_cpu(i)
		clear_profile_info(&per_cpu(profile_info, i), state_count);

	for (i = 0; i < NUM_CLUSTER; i++)
		clear_profile_info(&cpd_info[i], 1);

	clear_profile_info(&lpc_info, 1);
	clear_profile_info(&lpm_info, NUM_SYS_POWERDOWN);

	for (i = 0; i < MAX_NUM_BLOCKER; i++)
		lpa_blocker[i] = 0;
}
static void cpuidle_profile_main_start(void)
{
	if (profile_ongoing) {
		pr_err("cpuidle profile is ongoing\n");
		return;
	}

	clear_time();
	profile_start_time = ktime_get();

	profile_ongoing = 1;

	/* Wakeup all cpus and clear own profile data to start profile */
	preempt_disable();
	clear_profile_info(&per_cpu(profile_info, smp_processor_id()), state_count);
	smp_call_function(call_cpu_start_profile, NULL, 1);
	preempt_enable();

	pr_info("cpuidle profile start\n");
}