void deinit_mali_dvfs_status(void) { if (mali_dvfs_wq) destroy_workqueue(mali_dvfs_wq); _mali_osk_atomic_term(&bottomlock_status); mali_dvfs_wq = NULL; }
void deinit_mali_dvfs_status(void) { #if MALI_GPU_BOTTOM_LOCK _mali_osk_atomic_term(&bottomlock_status); #endif if (mali_dvfs_wq) destroy_workqueue(mali_dvfs_wq); mali_dvfs_wq = NULL; }
void MTK_mali_osk_pm_dev_disable(void) { if (mtk_mali_pm_wq) { flush_workqueue(mtk_mali_pm_wq); destroy_workqueue(mtk_mali_pm_wq); mtk_mali_pm_wq = NULL; } if (mtk_mali_pm_wq2) { flush_workqueue(mtk_mali_pm_wq2); destroy_workqueue(mtk_mali_pm_wq2); mtk_mali_pm_wq2 = NULL; } _mali_osk_atomic_term(&mtk_mali_pm_ref_count); _mali_osk_atomic_term(&mtk_mali_suspend_called); _mali_osk_mutex_term(mtk_pm_lock); }
void _mali_osk_pm_dev_disable(void) { #if MALI_LICENSE_IS_GPL if (mali_pm_wq) { flush_workqueue(mali_pm_wq); destroy_workqueue(mali_pm_wq); mali_pm_wq = NULL; } #else flush_scheduled_work(); #endif _mali_osk_atomic_term(&mali_pm_ref_count); _mali_osk_atomic_term(&mali_suspend_called); if (NULL != pm_timer) { _mali_osk_timer_term(pm_timer); pm_timer = NULL; } _mali_osk_mutex_term(pm_lock); }
_mali_osk_errcode_t mali_platform_deinit() { deinit_mali_clock(); #if MALI_VOLTAGE_LOCK _mali_osk_atomic_term(&voltage_lock_status); #endif #if MALI_DVFS_ENABLED deinit_mali_dvfs_status(); if (clk_register_map ) { _mali_osk_mem_unmapioregion(CLK_DIV_STAT_G3D, 0x20, clk_register_map); clk_register_map=0; } #endif MALI_SUCCESS; }
_mali_osk_errcode_t mali_pegasus_platform_deinit() { deinit_mali_pegasus_clock(); #ifdef CONFIG_EXYNOS_TMU_TC _mali_osk_atomic_term(&voltage_lock_status); #endif #if MALI_DVFS_ENABLED deinit_mali_pegasus_dvfs_status(); if (clk_pegasus_register_map ) { _mali_osk_mem_unmapioregion(CLK_DIV_STAT_G3D, 0x20, clk_pegasus_register_map); clk_pegasus_register_map=0; } #endif MALI_SUCCESS; }
void malipmm_kernel_subsystem_terminate( mali_kernel_subsystem_identifier id ) { /* Check this is the right system */ MALI_DEBUG_ASSERT( id == mali_subsystem_pmm_id ); MALI_DEBUG_ASSERT_POINTER(pmm_state); if( pmm_state ) { #if PMM_OS_TEST power_test_end(); #endif /* Get the lock so we can shutdown */ MALI_PMM_LOCK(pmm_state); #if MALI_STATE_TRACKING pmm_state->mali_pmm_lock_acquired = 1; #endif /* MALI_STATE_TRACKING */ pmm_state->status = MALI_PMM_STATUS_OFF; #if MALI_STATE_TRACKING pmm_state->mali_pmm_lock_acquired = 0; #endif /* MALI_STATE_TRACKING */ MALI_PMM_UNLOCK(pmm_state); _mali_osk_pmm_ospmm_cleanup(); pmm_policy_term(pmm_state); _mali_osk_irq_term( pmm_state->irq ); _mali_osk_notification_queue_term( pmm_state->queue ); _mali_osk_notification_queue_term( pmm_state->iqueue ); if (pmm_state->cores_registered) malipmm_powerdown(pmm_state->cores_registered,MALI_POWER_MODE_LIGHT_SLEEP); #if USING_MALI_PMU if( pmm_state->pmu_initialized ) { _mali_osk_resource_type_t t = PMU; mali_pmm_pmu_deinit(&t); } #endif /* USING_MALI_PMU */ _mali_osk_atomic_term( &(pmm_state->messages_queued) ); MALI_PMM_LOCK_TERM(pmm_state); _mali_osk_free(pmm_state); pmm_state = NULL; } MALIPMM_DEBUG_PRINT( ("PMM: subsystem terminated\n") ); }
void mali_soft_job_destroy(struct mali_soft_job *job) { MALI_DEBUG_ASSERT_POINTER(job); MALI_DEBUG_ASSERT_POINTER(job->system); MALI_DEBUG_PRINT(4, ("Mali Soft Job: destroying soft job %u (0x%08X)\n", job->id, job)); if (NULL != job) { if (0 < _mali_osk_atomic_dec_return(&job->refcount)) return; _mali_osk_atomic_term(&job->refcount); if (NULL != job->activated_notification) { _mali_osk_notification_delete(job->activated_notification); job->activated_notification = NULL; } mali_soft_job_system_free_job(job->system, job); } }
void _mali_osk_pm_dev_disable(void) { _mali_osk_atomic_term(&mali_pm_ref_count); }
void mali_scheduler_terminate(void) { _mali_osk_atomic_term(&mali_job_autonumber); }
void mali_pp_job_terminate(void) { _mali_osk_atomic_term(&pp_counter_per_sub_job_count); }
/** * Free fence waiter tracker. * * @param wait Fence wait tracker to free. */ static void mali_timeline_fence_wait_tracker_free(struct mali_timeline_fence_wait_tracker *wait) { MALI_DEBUG_ASSERT_POINTER(wait); _mali_osk_atomic_term(&wait->refcount); _mali_osk_free(wait); }