diff --git a/src/platform/intel/cavs/include/cavs/lib/pm_runtime.h b/src/platform/intel/cavs/include/cavs/lib/pm_runtime.h index 1d421586ada1..6054ae5055ca 100644 --- a/src/platform/intel/cavs/include/cavs/lib/pm_runtime.h +++ b/src/platform/intel/cavs/include/cavs/lib/pm_runtime.h @@ -20,7 +20,7 @@ struct pm_runtime_data; /** \brief cAVS specific runtime power management data. */ struct cavs_pm_runtime_data { - int dsp_d0_sref; /**< simple ref counter, accessed by core 0 only */ + bool dsp_d0; /**< dsp target D0(true) or D0ix(false) */ int host_dma_l1_sref; /**< ref counter for Host DMA accesses */ uint32_t sleep_core_mask; /**< represents cores in waiti state */ }; diff --git a/src/platform/intel/cavs/lib/pm_runtime.c b/src/platform/intel/cavs/lib/pm_runtime.c index 849bed888331..2f7f503343d7 100644 --- a/src/platform/intel/cavs/lib/pm_runtime.c +++ b/src/platform/intel/cavs/lib/pm_runtime.c @@ -97,14 +97,14 @@ static inline void cavs_pm_runtime_enable_dsp(bool enable) */ irq_local_disable(flags); - enable ? --pprd->dsp_d0_sref : ++pprd->dsp_d0_sref; + pprd->dsp_d0 = !enable; platform_shared_commit(prd, sizeof(*prd)); irq_local_enable(flags); tr_info(&power_tr, "pm_runtime_enable_dsp dsp_d0_sref %d", - pprd->dsp_d0_sref); + pprd->dsp_d0); platform_shared_commit(pprd, sizeof(*pprd)); @@ -114,7 +114,7 @@ static inline void cavs_pm_runtime_enable_dsp(bool enable) if (!clk_info) return; - if (pprd->dsp_d0_sref > 0) { + if (pprd->dsp_d0) { if (clk_info->current_freq_idx == CPU_LPRO_FREQ_IDX) report_dsp_r_state(r1_r_state); else @@ -129,12 +129,11 @@ static inline bool cavs_pm_runtime_is_active_dsp(void) { struct pm_runtime_data *prd = pm_runtime_data_get(); struct cavs_pm_runtime_data *pprd = prd->platform_data; - int is_active = pprd->dsp_d0_sref > 0; platform_shared_commit(prd, sizeof(*prd)); platform_shared_commit(pprd, sizeof(*pprd)); - return is_active; + return pprd->dsp_d0; } #if CONFIG_INTEL_SSP