mirror of https://github.com/thesofproject/sof.git
pm-runtime: add pm runtime active, enable, disable interfaces
PM enable and disable is an interface to control the power management of a resource. PM is_active is an interface to query the pm management status of the resource. Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
This commit is contained in:
parent
edea885ba5
commit
80c1460f9b
|
@ -93,6 +93,32 @@ void pm_runtime_put(enum pm_runtime_context context, uint32_t index);
|
||||||
*/
|
*/
|
||||||
void pm_runtime_put_sync(enum pm_runtime_context context, uint32_t index);
|
void pm_runtime_put_sync(enum pm_runtime_context context, uint32_t index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Enables power management operations for the resource.
|
||||||
|
*
|
||||||
|
* \param[in] context Type of power management context.
|
||||||
|
* \param[in] index Index of the device.
|
||||||
|
*/
|
||||||
|
void pm_runtime_enable(enum pm_runtime_context context, uint32_t index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Disables power management operations for the resource.
|
||||||
|
*
|
||||||
|
* \param[in] context Type of power management context.
|
||||||
|
* \param[in] index Index of the device.
|
||||||
|
*/
|
||||||
|
void pm_runtime_disable(enum pm_runtime_context context, uint32_t index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Reports state of the power managed resource.
|
||||||
|
*
|
||||||
|
* @param context Type of power management context.
|
||||||
|
* @param index Index of the resource.
|
||||||
|
*
|
||||||
|
* @return true if the resource is active or pm disabled, false otherwise.
|
||||||
|
*/
|
||||||
|
bool pm_runtime_is_active(enum pm_runtime_context context, uint32_t index);
|
||||||
|
|
||||||
/** @}*/
|
/** @}*/
|
||||||
|
|
||||||
#endif /* __SOF_LIB_PM_RUNTIME_H__ */
|
#endif /* __SOF_LIB_PM_RUNTIME_H__ */
|
||||||
|
|
|
@ -72,3 +72,35 @@ void pm_runtime_put_sync(enum pm_runtime_context context, uint32_t index)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pm_runtime_enable(enum pm_runtime_context context, uint32_t index)
|
||||||
|
{
|
||||||
|
tracev_pm("pm_runtime_enable()");
|
||||||
|
|
||||||
|
switch (context) {
|
||||||
|
default:
|
||||||
|
platform_pm_runtime_enable(context, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void pm_runtime_disable(enum pm_runtime_context context, uint32_t index)
|
||||||
|
{
|
||||||
|
tracev_pm("pm_runtime_disable()");
|
||||||
|
|
||||||
|
switch (context) {
|
||||||
|
default:
|
||||||
|
platform_pm_runtime_disable(context, index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool pm_runtime_is_active(enum pm_runtime_context context, uint32_t index)
|
||||||
|
{
|
||||||
|
tracev_pm("pm_runtime_is_active()");
|
||||||
|
|
||||||
|
switch (context) {
|
||||||
|
default:
|
||||||
|
return platform_pm_runtime_is_active(context, index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -44,6 +44,11 @@ void platform_pm_runtime_get(uint32_t context, uint32_t index, uint32_t flags);
|
||||||
*/
|
*/
|
||||||
void platform_pm_runtime_put(uint32_t context, uint32_t index, uint32_t flags);
|
void platform_pm_runtime_put(uint32_t context, uint32_t index, uint32_t flags);
|
||||||
|
|
||||||
|
void platform_pm_runtime_enable(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
|
void platform_pm_runtime_disable(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
|
bool platform_pm_runtime_is_active(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Power gates platform specific hardware resources.
|
* \brief Power gates platform specific hardware resources.
|
||||||
|
|
|
@ -46,6 +46,18 @@ static inline void platform_pm_runtime_get(uint32_t context, uint32_t index,
|
||||||
static inline void platform_pm_runtime_put(uint32_t context, uint32_t index,
|
static inline void platform_pm_runtime_put(uint32_t context, uint32_t index,
|
||||||
uint32_t flags) { }
|
uint32_t flags) { }
|
||||||
|
|
||||||
|
static inline void platform_pm_runtime_enable(uint32_t context,
|
||||||
|
uint32_t index) {}
|
||||||
|
|
||||||
|
static inline void platform_pm_runtime_disable(uint32_t context,
|
||||||
|
uint32_t index) {}
|
||||||
|
|
||||||
|
static inline bool platform_pm_runtime_is_active(uint32_t context,
|
||||||
|
uint32_t index)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* __PLATFORM_LIB_PM_RUNTIME_H__ */
|
#endif /* __PLATFORM_LIB_PM_RUNTIME_H__ */
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -43,6 +43,12 @@ void platform_pm_runtime_get(uint32_t context, uint32_t index, uint32_t flags);
|
||||||
*/
|
*/
|
||||||
void platform_pm_runtime_put(uint32_t context, uint32_t index, uint32_t flags);
|
void platform_pm_runtime_put(uint32_t context, uint32_t index, uint32_t flags);
|
||||||
|
|
||||||
|
void platform_pm_runtime_enable(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
|
void platform_pm_runtime_disable(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
|
bool platform_pm_runtime_is_active(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Power gates platform specific hardware resources.
|
* \brief Power gates platform specific hardware resources.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -46,6 +46,18 @@ static inline void platform_pm_runtime_get(uint32_t context, uint32_t index,
|
||||||
static inline void platform_pm_runtime_put(uint32_t context, uint32_t index,
|
static inline void platform_pm_runtime_put(uint32_t context, uint32_t index,
|
||||||
uint32_t flags) { }
|
uint32_t flags) { }
|
||||||
|
|
||||||
|
static inline void platform_pm_runtime_enable(uint32_t context,
|
||||||
|
uint32_t index) {}
|
||||||
|
|
||||||
|
static inline void platform_pm_runtime_disable(uint32_t context,
|
||||||
|
uint32_t index) {}
|
||||||
|
|
||||||
|
static inline bool platform_pm_runtime_is_active(uint32_t context,
|
||||||
|
uint32_t index)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* __PLATFORM_LIB_PM_RUNTIME_H__ */
|
#endif /* __PLATFORM_LIB_PM_RUNTIME_H__ */
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -43,6 +43,12 @@ void platform_pm_runtime_get(uint32_t context, uint32_t index, uint32_t flags);
|
||||||
*/
|
*/
|
||||||
void platform_pm_runtime_put(uint32_t context, uint32_t index, uint32_t flags);
|
void platform_pm_runtime_put(uint32_t context, uint32_t index, uint32_t flags);
|
||||||
|
|
||||||
|
void platform_pm_runtime_enable(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
|
void platform_pm_runtime_disable(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
|
bool platform_pm_runtime_is_active(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
#endif /* __PLATFORM_LIB_PM_RUNTIME_H__ */
|
#endif /* __PLATFORM_LIB_PM_RUNTIME_H__ */
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -40,6 +40,18 @@ static inline void platform_pm_runtime_get(uint32_t context, uint32_t index,
|
||||||
static inline void platform_pm_runtime_put(uint32_t context, uint32_t index,
|
static inline void platform_pm_runtime_put(uint32_t context, uint32_t index,
|
||||||
uint32_t flags) { }
|
uint32_t flags) { }
|
||||||
|
|
||||||
|
static inline void platform_pm_runtime_enable(uint32_t context,
|
||||||
|
uint32_t index) {}
|
||||||
|
|
||||||
|
static inline void platform_pm_runtime_disable(uint32_t context,
|
||||||
|
uint32_t index) {}
|
||||||
|
|
||||||
|
static inline bool platform_pm_runtime_is_active(uint32_t context,
|
||||||
|
uint32_t index)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* __PLATFORM_LIB_PM_RUNTIME_H__ */
|
#endif /* __PLATFORM_LIB_PM_RUNTIME_H__ */
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -351,6 +351,27 @@ void platform_pm_runtime_put(enum pm_runtime_context context, uint32_t index,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void platform_pm_runtime_enable(uint32_t context, uint32_t index)
|
||||||
|
{
|
||||||
|
switch (context) {
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void platform_pm_runtime_disable(uint32_t context, uint32_t index)
|
||||||
|
{
|
||||||
|
switch (context) {
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool platform_pm_runtime_is_active(uint32_t context, uint32_t index)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
#if CONFIG_APOLLOLAKE || CONFIG_CANNONLAKE
|
#if CONFIG_APOLLOLAKE || CONFIG_CANNONLAKE
|
||||||
void platform_pm_runtime_power_off(void)
|
void platform_pm_runtime_power_off(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -43,6 +43,12 @@ void platform_pm_runtime_get(uint32_t context, uint32_t index, uint32_t flags);
|
||||||
*/
|
*/
|
||||||
void platform_pm_runtime_put(uint32_t context, uint32_t index, uint32_t flags);
|
void platform_pm_runtime_put(uint32_t context, uint32_t index, uint32_t flags);
|
||||||
|
|
||||||
|
void platform_pm_runtime_enable(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
|
void platform_pm_runtime_disable(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
|
bool platform_pm_runtime_is_active(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
#endif /* __PLATFORM_LIB_PM_RUNTIME_H__ */
|
#endif /* __PLATFORM_LIB_PM_RUNTIME_H__ */
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -43,6 +43,12 @@ void platform_pm_runtime_get(uint32_t context, uint32_t index, uint32_t flags);
|
||||||
*/
|
*/
|
||||||
void platform_pm_runtime_put(uint32_t context, uint32_t index, uint32_t flags);
|
void platform_pm_runtime_put(uint32_t context, uint32_t index, uint32_t flags);
|
||||||
|
|
||||||
|
void platform_pm_runtime_enable(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
|
void platform_pm_runtime_disable(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
|
bool platform_pm_runtime_is_active(uint32_t context, uint32_t index);
|
||||||
|
|
||||||
#endif /* __PLATFORM_LIB_PM_RUNTIME_H__ */
|
#endif /* __PLATFORM_LIB_PM_RUNTIME_H__ */
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue