Пример #1
0
_mali_osk_errcode_t malipmm_powerup( u32 cores )
{
        _mali_osk_errcode_t err = _MALI_OSK_ERR_OK;
        _mali_pmm_internal_state_t *pmm = GET_PMM_STATE_PTR;

	/* If all the cores are powered down, power up the MALI */
        if (pmm->cores_powered == 0)
        {
                mali_platform_power_mode_change(MALI_POWER_MODE_ON);
#if MALI_PMM_RUNTIME_JOB_CONTROL_ON
		/* Initiate the power up */
                if (_mali_osk_pmm_dev_activate() < 0) {
					MALI_PRINT(("PMM: Mali PMM device activate failed\n"));
					err = _MALI_OSK_ERR_FAULT;
					return err;
				}
#endif
        }

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

#if MALI_PMM_RUNTIME_JOB_CONTROL_ON
		mali_platform_powerup(cores);
#endif

        return err;
}
_mali_osk_errcode_t mali_platform_powerup(u32 cores)
{
	if(is_run_time == 0)
	{
		_mali_osk_pmm_dev_activate();
		is_run_time = 1;
	}
	MALI_SUCCESS;
}
Пример #3
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;
}