intel_adsp: power: SoC restores the clock
The SoC restores the clock only when leaving soft-off only. Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
This commit is contained in:
parent
4c5ee9b2db
commit
5ca3bc92c8
4 changed files with 16 additions and 8 deletions
|
@ -212,7 +212,6 @@ void smp_timer_init(void)
|
|||
{
|
||||
}
|
||||
|
||||
/* Runs on core 0 only */
|
||||
static int sys_clock_driver_init(void)
|
||||
{
|
||||
uint64_t curr = count();
|
||||
|
@ -224,14 +223,11 @@ static int sys_clock_driver_init(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
||||
void sys_clock_idle_exit(void)
|
||||
/* Runs on core 0 only */
|
||||
void intel_adsp_clock_soft_off_exit(void)
|
||||
{
|
||||
sys_clock_driver_init();
|
||||
(void)sys_clock_driver_init();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
SYS_INIT(sys_clock_driver_init, PRE_KERNEL_2,
|
||||
CONFIG_SYSTEM_CLOCK_INIT_PRIORITY);
|
||||
|
|
|
@ -88,6 +88,12 @@ static ALWAYS_INLINE bool soc_cpu_is_powered(int cpu_num)
|
|||
return (ACE_PWRSTS->dsphpxpgs & BIT(cpu_num)) == BIT(cpu_num);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Restore timer after leaving soft-off.
|
||||
*
|
||||
*/
|
||||
void intel_adsp_clock_soft_off_exit(void);
|
||||
|
||||
/**
|
||||
* @brief Retrieve node identifier for Intel ADSP HOST power domain.
|
||||
*/
|
||||
|
|
|
@ -89,6 +89,12 @@ static ALWAYS_INLINE bool soc_cpu_is_powered(int cpu_num)
|
|||
return (ACE_PWRSTS->dsphpxpgs & BIT(cpu_num)) == BIT(cpu_num);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Restore timer after leaving soft-off.
|
||||
*
|
||||
*/
|
||||
void intel_adsp_clock_soft_off_exit(void);
|
||||
|
||||
/**
|
||||
* @brief Retrieve node identifier for Intel ADSP HOST power domain.
|
||||
*/
|
||||
|
|
|
@ -388,7 +388,7 @@ void pm_state_exit_post_ops(enum pm_state state, uint8_t substate_id)
|
|||
imr_layout->imr_state.header.adsp_imr_magic = 0;
|
||||
imr_layout->imr_state.header.imr_restore_vector = NULL;
|
||||
imr_layout->imr_state.header.imr_ram_storage = NULL;
|
||||
sys_clock_idle_exit();
|
||||
intel_adsp_clock_soft_off_exit();
|
||||
mem_window_idle_exit();
|
||||
soc_mp_on_d3_exit();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue