diff --git a/sound/soc/aml/m8/aml_audio_hw.c b/sound/soc/aml/m8/aml_audio_hw.c
index 5b6c377..aced051 100755
--- a/sound/soc/aml/m8/aml_audio_hw.c
+++ b/sound/soc/aml/m8/aml_audio_hw.c
@@ -1049,10 +1049,38 @@ unsigned audio_spdifout_pg_enable(unsigned char enable)
unsigned audio_aiu_pg_enable(unsigned char enable)
{
if(enable){
- switch_mod_gate_by_name("audio", 1);
+ AUDIO_CLK_GATE_ON(AIU_AMCLK_MEASURE);
+ AUDIO_CLK_GATE_ON(AIU_AIFIFO2);
+ AUDIO_CLK_GATE_ON(AIU_AUD_MIXER);
+ AUDIO_CLK_GATE_ON(AIU_MIXER_REG);
+ AUDIO_CLK_GATE_ON(AIU_AI_TOP_GLUE);
+ AUDIO_CLK_GATE_ON(AIU_AOCLK);
+ AUDIO_CLK_GATE_ON(AIU_I2S_OUT);
+ AUDIO_CLK_GATE_ON(AIU_ADC);
+ AUDIO_CLK_GATE_ON(AUD_IN);
+ AUDIO_CLK_GATE_ON(AIU_IEC958);
+ #if MESON_CPU_TYPE != MESON_CPU_TYPE_MESON8B
+ AUDIO_CLK_GATE_ON(AIU_PCLK);
+ #endif
+ AUDIO_CLK_GATE_ON(AIU_ICE958_AMCLK);
+ AUDIO_CLK_GATE_ON(AIU_TOP_LEVEL);
}
else{
- switch_mod_gate_by_name("audio", 0);
+ AUDIO_CLK_GATE_OFF(AIU_AMCLK_MEASURE);
+ AUDIO_CLK_GATE_OFF(AIU_AIFIFO2);
+ AUDIO_CLK_GATE_OFF(AIU_AUD_MIXER);
+ AUDIO_CLK_GATE_OFF(AIU_MIXER_REG);
+ AUDIO_CLK_GATE_OFF(AIU_AI_TOP_GLUE);
+ AUDIO_CLK_GATE_OFF(AIU_AOCLK);
+ AUDIO_CLK_GATE_OFF(AIU_I2S_OUT);
+ AUDIO_CLK_GATE_OFF(AIU_ADC);
+ AUDIO_CLK_GATE_OFF(AUD_IN);
+ AUDIO_CLK_GATE_OFF(AIU_IEC958);
+ #if MESON_CPU_TYPE != MESON_CPU_TYPE_MESON8B
+ AUDIO_CLK_GATE_OFF(AIU_PCLK);
+ #endif
+ AUDIO_CLK_GATE_OFF(AIU_ICE958_AMCLK);
+ AUDIO_CLK_GATE_OFF(AIU_TOP_LEVEL);
}
return 0;
}
index 5b6c377..aced051 100755
--- a/sound/soc/aml/m8/aml_audio_hw.c
+++ b/sound/soc/aml/m8/aml_audio_hw.c
@@ -1049,10 +1049,38 @@ unsigned audio_spdifout_pg_enable(unsigned char enable)
unsigned audio_aiu_pg_enable(unsigned char enable)
{
if(enable){
- switch_mod_gate_by_name("audio", 1);
+ AUDIO_CLK_GATE_ON(AIU_AMCLK_MEASURE);
+ AUDIO_CLK_GATE_ON(AIU_AIFIFO2);
+ AUDIO_CLK_GATE_ON(AIU_AUD_MIXER);
+ AUDIO_CLK_GATE_ON(AIU_MIXER_REG);
+ AUDIO_CLK_GATE_ON(AIU_AI_TOP_GLUE);
+ AUDIO_CLK_GATE_ON(AIU_AOCLK);
+ AUDIO_CLK_GATE_ON(AIU_I2S_OUT);
+ AUDIO_CLK_GATE_ON(AIU_ADC);
+ AUDIO_CLK_GATE_ON(AUD_IN);
+ AUDIO_CLK_GATE_ON(AIU_IEC958);
+ #if MESON_CPU_TYPE != MESON_CPU_TYPE_MESON8B
+ AUDIO_CLK_GATE_ON(AIU_PCLK);
+ #endif
+ AUDIO_CLK_GATE_ON(AIU_ICE958_AMCLK);
+ AUDIO_CLK_GATE_ON(AIU_TOP_LEVEL);
}
else{
- switch_mod_gate_by_name("audio", 0);
+ AUDIO_CLK_GATE_OFF(AIU_AMCLK_MEASURE);
+ AUDIO_CLK_GATE_OFF(AIU_AIFIFO2);
+ AUDIO_CLK_GATE_OFF(AIU_AUD_MIXER);
+ AUDIO_CLK_GATE_OFF(AIU_MIXER_REG);
+ AUDIO_CLK_GATE_OFF(AIU_AI_TOP_GLUE);
+ AUDIO_CLK_GATE_OFF(AIU_AOCLK);
+ AUDIO_CLK_GATE_OFF(AIU_I2S_OUT);
+ AUDIO_CLK_GATE_OFF(AIU_ADC);
+ AUDIO_CLK_GATE_OFF(AUD_IN);
+ AUDIO_CLK_GATE_OFF(AIU_IEC958);
+ #if MESON_CPU_TYPE != MESON_CPU_TYPE_MESON8B
+ AUDIO_CLK_GATE_OFF(AIU_PCLK);
+ #endif
+ AUDIO_CLK_GATE_OFF(AIU_ICE958_AMCLK);
+ AUDIO_CLK_GATE_OFF(AIU_TOP_LEVEL);
}
return 0;
}