_mali_osk_errcode_t mali_platform_powerdown(u32 cores)
{
	if(is_run_time == 1)
	{
		_mali_osk_pmm_dev_idle();
		is_run_time =0;
	}
	MALI_SUCCESS;
}
Beispiel #2
0
_mali_osk_errcode_t g3d_power_domain_control(int bpower_on)
{
	if (bpower_on)
	{
#if MALI_PMM_RUNTIME_JOB_CONTROL_ON
		MALI_DEBUG_PRINT(3,("_mali_osk_pmm_dev_activate \n"));
		_mali_osk_pmm_dev_activate();
#else //MALI_PMM_RUNTIME_JOB_CONTROL_ON
		void __iomem *status;
		u32 timeout;
		__raw_writel(S5P_INT_LOCAL_PWR_EN, S5P_PMU_G3D_CONF);
		status = S5P_PMU_G3D_CONF + 0x4;

		timeout = 10;
		while ((__raw_readl(status) & S5P_INT_LOCAL_PWR_EN)
				!= S5P_INT_LOCAL_PWR_EN) {
			if (timeout == 0) {
				MALI_PRINTF(("Power domain  enable failed.\n"));
				return -ETIMEDOUT;
			}
			timeout--;
			_mali_osk_time_ubusydelay(100);
		}
#endif //MALI_PMM_RUNTIME_JOB_CONTROL_ON
	}
	else
	{
#if MALI_PMM_RUNTIME_JOB_CONTROL_ON
		MALI_DEBUG_PRINT( 4,("_mali_osk_pmm_dev_idle\n"));
		_mali_osk_pmm_dev_idle();

#else //MALI_PMM_RUNTIME_JOB_CONTROL_ON
		void __iomem *status;
		u32 timeout;
		__raw_writel(0, S5P_PMU_G3D_CONF);

		status = S5P_PMU_G3D_CONF + 0x4;
		/* Wait max 1ms */
		timeout = 10;
		while (__raw_readl(status) & S5P_INT_LOCAL_PWR_EN)
		{
			if (timeout == 0) {
				MALI_PRINTF(("Power domain  disable failed.\n" ));
				return -ETIMEDOUT;
			}
			timeout--;
			_mali_osk_time_ubusydelay( 100);
		}
#endif //MALI_PMM_RUNTIME_JOB_CONTROL_ON
	}

	MALI_SUCCESS;
}
Beispiel #3
0
_mali_osk_errcode_t malipmm_powerdown( u32 cores, mali_power_mode power_mode )
{
        _mali_osk_errcode_t err = _MALI_OSK_ERR_OK;
        _mali_pmm_internal_state_t *pmm = GET_PMM_STATE_PTR;

#if MALI_PMM_RUNTIME_JOB_CONTROL_ON
		mali_platform_powerdown(cores);
#endif

#if USING_MALI_PMU
        err = mali_pmm_pmu_powerdown( cores );
#endif

	/* If all cores are powered down, power off the MALI */
        if (pmm->cores_powered == 0)
        {
#if MALI_PMM_RUNTIME_JOB_CONTROL_ON
		/* Initiate the power down */
                _mali_osk_pmm_dev_idle();
#endif
                mali_platform_power_mode_change(power_mode);
        }
        return err;
}