Ejemplo n.º 1
0
void mali_pm_core_event(enum mali_core_event core_event)
{
	MALI_DEBUG_ASSERT(MALI_CORE_EVENT_GP_START == core_event ||
	                  MALI_CORE_EVENT_PP_START == core_event ||
	                  MALI_CORE_EVENT_GP_STOP  == core_event ||
	                  MALI_CORE_EVENT_PP_STOP  == core_event);

	if (MALI_CORE_EVENT_GP_START == core_event || MALI_CORE_EVENT_PP_START == core_event)
	{      
		_mali_osk_pm_dev_ref_add();
		
		if (mali_utilization_enabled())
		{
			mali_utilization_core_start(_mali_osk_time_get_ns());
		}
	}
	else
	{
		_mali_osk_pm_dev_ref_dec();		
		if (mali_utilization_enabled())
		{
			mali_utilization_core_end(_mali_osk_time_get_ns());
		}
	}
}
Ejemplo n.º 2
0
static void mali_control_timer_callback(void *arg)
{
	if (mali_utilization_enabled()) {
		struct mali_gpu_utilization_data *util_data = NULL;
		u64 time_period = 0;

		/* Calculate gpu utilization */
		util_data = mali_utilization_calculate(&period_start_time, &time_period);

		if (util_data) {
#if defined(CONFIG_MALI_DVFS)
			mali_dvfs_policy_realize(util_data, time_period);
#else
			mali_utilization_platform_realize(util_data);
#endif
		}

		if (MALI_TRUE == timer_running) {
			mali_control_timer_add(mali_control_timeout);
		}
	}
}