satip-axe/kernel/drivers/stm/mali/common/pmm/mali_pmm_policy_jobcontrol.h
2015-03-26 17:24:57 +01:00

81 lines
2.4 KiB
C

/*
* Copyright (C) 2010-2011 ARM Limited. All rights reserved.
*
* This program is free software and is provided to you under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation, and any use by you of this program is subject to the terms of such GNU licence.
*
* A copy of the licence is included with the program, and can also be obtained from Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/**
* @file mali_pmm_policy.h
* Defines the power management module policies
*/
#ifndef __MALI_PMM_POLICY_JOBCONTROL_H__
#define __MALI_PMM_POLICY_JOBCONTROL_H__
#ifdef __cplusplus
extern "C"
{
#endif
/**
* @addtogroup pmmapi_policy Power Management Module Policies
*
* @{
*/
/** @brief The jobcontrol policy inactivity latency timeout (in ticks)
* before the hardware is switched off
*
* @note Setting this low whilst tracing or producing debug output can
* cause alot of timeouts to fire which can affect the PMM behaviour
*/
#define MALI_PMM_POLICY_JOBCONTROL_INACTIVITY_TIMEOUT 50
/** @brief Job control policy initialization
*
* @return _MALI_OSK_ERR_OK if the policy could be initialized, or a suitable
* _mali_osk_errcode_t otherwise.
*/
_mali_osk_errcode_t pmm_policy_init_job_control(_mali_pmm_internal_state_t *pmm);
/** @brief Job control policy termination
*/
void pmm_policy_term_job_control(void);
/** @brief Job control policy state changer
*
* Given the next available event message, this routine processes it
* for the policy and changes state as needed.
*
* Job control policy depends on events from the Mali cores, and will
* power down all cores after an inactivity latency timeout. It will
* power the cores back on again when a job is scheduled to run.
*
* @param pmm internal PMM state
* @param event PMM event to process
* @return _MALI_OSK_ERR_OK if the policy state completed okay, or a suitable
* _mali_osk_errcode_t otherwise.
*/
_mali_osk_errcode_t pmm_policy_process_job_control( _mali_pmm_internal_state_t *pmm, mali_pmm_message_t *event );
/** @brief Job control policy checker
*
* The latency timer has fired and we need to raise the correct event to
* handle it
*
* @param pmm internal PMM state
*/
void pmm_policy_check_job_control(void);
/** @} */ /* End group pmmapi_policy */
#ifdef __cplusplus
}
#endif
#endif /* __MALI_PMM_POLICY_JOBCONTROL_H__ */