void AudDrv_I2S_Clk_Off(void) { unsigned long flags; //PRINTK_AUD_CLK("+AudDrv_I2S_Clk_Off, Aud_I2S_Clk_cntr:%d \n", Aud_I2S_Clk_cntr); spin_lock_irqsave(&auddrv_Clk_lock, flags); Aud_I2S_Clk_cntr--; if (Aud_I2S_Clk_cntr == 0) { #ifdef PM_MANAGER_API if (disable_clock(MT_CG_AUDIO_I2S, "AUDIO")) { PRINTK_AUD_ERROR("disable_clock MT_CG_AUDIO_I2S fail"); } #else Afe_Set_Reg(AUDIO_TOP_CON0, 0x00000000, 0x00000040); //power off I2S clock #endif } else if (Aud_I2S_Clk_cntr < 0) { PRINTK_AUD_ERROR("!! AudDrv_I2S_Clk_Off, Aud_I2S_Clk_cntr<0 (%d) \n", Aud_I2S_Clk_cntr); AUDIO_ASSERT(true); Aud_I2S_Clk_cntr = 0; } spin_unlock_irqrestore(&auddrv_Clk_lock, flags); //PRINTK_AUD_CLK("-AudDrv_I2S_Clk_Off, Aud_I2S_Clk_cntr:%d \n",Aud_I2S_Clk_cntr); }
void AudDrv_Clk_Off(void) { unsigned long flags; //PRINTK_AUD_CLK("+!! AudDrv_Clk_Off, Aud_AFE_Clk_cntr:%d \n",Aud_AFE_Clk_cntr); spin_lock_irqsave(&auddrv_Clk_lock, flags); Aud_AFE_Clk_cntr--; if (Aud_AFE_Clk_cntr == 0) { PRINTK_AUD_CLK("+ AudDrv_Clk_Off, Aud_AFE_Clk_cntr:%d \n", Aud_AFE_Clk_cntr); { // Disable AFE clock #ifdef PM_MANAGER_API if (disable_clock(MT_CG_AUDIO_AFE, "AUDIO")) { xlog_printk(ANDROID_LOG_ERROR, "Sound", "disable_clock MT_CG_AUDIO_AFE fail"); } #else //Afe_Set_Reg(AUDIO_TOP_CON0, 0x00000000, 0x00000004); // bit2: afe power on #endif } } else if (Aud_AFE_Clk_cntr < 0) { PRINTK_AUD_ERROR("!! AudDrv_Clk_Off, Aud_AFE_Clk_cntr<0 (%d) \n", Aud_AFE_Clk_cntr); AUDIO_ASSERT(true); Aud_AFE_Clk_cntr = 0; } spin_unlock_irqrestore(&auddrv_Clk_lock, flags); }
void AudDrv_Core_Clk_Off(void) { //PRINTK_AUD_CLK("+AudDrv_Core_Clk_On, Aud_Core_Clk_cntr:%d \n", Aud_Core_Clk_cntr); unsigned long flags; spin_lock_irqsave(&auddrv_Clk_lock, flags); if (Aud_Core_Clk_cntr == 0) { #ifdef PM_MANAGER_API #if defined(CONFIG_MTK_LEGACY) if (disable_clock(MT_CG_AUDIO_AFE, "AUDIO")) { PRINTK_AUD_ERROR("AudDrv_Core_Clk_On Aud disable_clock MT_CG_AUDIO_AFE fail !!!\n"); } #else if (paudclk->aud_afe_clk_status) { clk_disable_unprepare(paudclk->aud_afe_clk); } #endif #endif } Aud_Core_Clk_cntr++; spin_unlock_irqrestore(&auddrv_Clk_lock, flags); //PRINTK_AUD_CLK("-AudDrv_Core_Clk_On, Aud_Core_Clk_cntr:%d \n", Aud_Core_Clk_cntr); }
void AudDrv_HDMI_Clk_Off(void) { PRINTK_AUD_CLK("+AudDrv_HDMI_Clk_Off, Aud_I2S_Clk_cntr:%d \n", Aud_HDMI_Clk_cntr); Aud_HDMI_Clk_cntr--; if (Aud_HDMI_Clk_cntr == 0) { AudDrv_ANA_Clk_Off(); AudDrv_Clk_Off(); } else if (Aud_HDMI_Clk_cntr < 0) { PRINTK_AUD_ERROR("!! AudDrv_Linein_Clk_Off, Aud_I2S_Clk_cntr<0 (%d) \n", Aud_HDMI_Clk_cntr); AUDIO_ASSERT(true); Aud_HDMI_Clk_cntr = 0; } PRINTK_AUD_CLK("-AudDrv_I2S_Clk_Off, Aud_I2S_Clk_cntr:%d \n", Aud_HDMI_Clk_cntr); }
void AudDrv_Core_Clk_Off(void) { //PRINTK_AUD_CLK("+AudDrv_Core_Clk_On, Aud_Core_Clk_cntr:%d \n", Aud_Core_Clk_cntr); unsigned long flags; spin_lock_irqsave(&auddrv_Clk_lock, flags); if (Aud_Core_Clk_cntr == 0) { #ifdef PM_MANAGER_API if (disable_clock(MT_CG_AUDIO_AFE, "AUDIO")) { PRINTK_AUD_ERROR("AudDrv_Core_Clk_On Aud disable_clock MT_CG_AUDIO_AFE fail !!!\n"); } #endif } Aud_Core_Clk_cntr++; spin_unlock_irqrestore(&auddrv_Clk_lock, flags); //PRINTK_AUD_CLK("-AudDrv_Core_Clk_On, Aud_Core_Clk_cntr:%d \n", Aud_Core_Clk_cntr); }
void AudDrv_APLL2Tuner_Clk_Off(void) { unsigned long flags; spin_lock_irqsave(&auddrv_Clk_lock, flags); Aud_APLL2_Tuner_cntr--; if (Aud_APLL2_Tuner_cntr == 0) { Afe_Set_Reg(AUDIO_TOP_CON0, 0x1 << 18, 0x1 << 18); } // handle for clock error else if (Aud_APLL2_Tuner_cntr < 0) { PRINTK_AUD_ERROR("!! AudDrv_APLL2Tuner_Clk_Off, Aud_APLL1_Tuner_cntr<0 (%d) \n", Aud_APLL2_Tuner_cntr); Aud_APLL2_Tuner_cntr = 0; } spin_unlock_irqrestore(&auddrv_Clk_lock, flags); }
/***************************************************************************** * FUNCTION * AudDrv_I2S_Clk_On / AudDrv_I2S_Clk_Off * * DESCRIPTION * Enable/Disable analog part clock * *****************************************************************************/ void AudDrv_I2S_Clk_On(void) { unsigned long flags; //PRINTK_AUD_CLK("+AudDrv_I2S_Clk_On, Aud_I2S_Clk_cntr:%d \n", Aud_I2S_Clk_cntr); spin_lock_irqsave(&auddrv_Clk_lock, flags); if (Aud_I2S_Clk_cntr == 0) { #ifdef PM_MANAGER_API if (enable_clock(MT_CG_AUDIO_I2S, "AUDIO")) { PRINTK_AUD_ERROR("Aud enable_clock MT65XX_PDN_AUDIO_I2S fail !!!\n"); } #else Afe_Set_Reg(AUDIO_TOP_CON0, 0x00000040, 0x00000040); //power on I2S clock #endif } Aud_I2S_Clk_cntr++; spin_unlock_irqrestore(&auddrv_Clk_lock, flags); }
void AudDrv_APLL1Tuner_Clk_Off(void) { unsigned long flags; spin_lock_irqsave(&auddrv_Clk_lock, flags); Aud_APLL1_Tuner_cntr--; if (Aud_APLL1_Tuner_cntr == 0) { Afe_Set_Reg(AUDIO_TOP_CON0, 0x1 << 19, 0x1 << 19); Afe_Set_Reg(AFE_APLL1_TUNER_CFG, 0x00000033, 0x1 << 19); SetpllCfg(AP_PLL_CON5, 0x0, 0x1); } // handle for clock error else if (Aud_APLL1_Tuner_cntr < 0) { PRINTK_AUD_ERROR("!! AudDrv_APLLTuner_Clk_Off, Aud_APLL1_Tuner_cntr<0 (%d) \n", Aud_APLL1_Tuner_cntr); Aud_APLL1_Tuner_cntr = 0; } spin_unlock_irqrestore(&auddrv_Clk_lock, flags); }
/***************************************************************************** * FUNCTION * AudDrv_I2S_Clk_On / AudDrv_I2S_Clk_Off * * DESCRIPTION * Enable/Disable analog part clock * *****************************************************************************/ void AudDrv_I2S_Clk_On(void) { unsigned long flags; #if !defined(CONFIG_MTK_LEGACY) int ret = 0; #endif //PRINTK_AUD_CLK("+AudDrv_I2S_Clk_On, Aud_I2S_Clk_cntr:%d \n", Aud_I2S_Clk_cntr); spin_lock_irqsave(&auddrv_Clk_lock, flags); if (Aud_I2S_Clk_cntr == 0) { #ifdef PM_MANAGER_API #if defined(CONFIG_MTK_LEGACY) if (enable_clock(MT_CG_AUDIO_I2S, "AUDIO")) { PRINTK_AUD_ERROR("Aud enable_clock MT65XX_PDN_AUDIO_I2S fail !!!\n"); } #else if (paudclk->aud_i2s_clk_status) { ret = clk_prepare_enable(paudclk->aud_i2s_clk); if (!ret) { pr_err("%s Aud enable_clock enable_clock aud_i2s_clk fail", __func__); BUG(); return; } } else { pr_err("%s clk_status error Aud enable_clock aud_i2s_clk fail", __func__); BUG(); return; } #endif #else Afe_Set_Reg(AUDIO_TOP_CON0, 0x00000000, 0x00000040); //power on I2S clock #endif } Aud_I2S_Clk_cntr++; spin_unlock_irqrestore(&auddrv_Clk_lock, flags); }
void AudDrv_Core_Clk_On(void) { //PRINTK_AUD_CLK("+AudDrv_Core_Clk_On, Aud_Core_Clk_cntr:%d \n", Aud_Core_Clk_cntr); unsigned long flags; #if !defined(CONFIG_MTK_LEGACY) int ret = 0; #endif spin_lock_irqsave(&auddrv_Clk_lock, flags); if (Aud_Core_Clk_cntr == 0) { #ifdef PM_MANAGER_API #if defined(CONFIG_MTK_LEGACY) if (enable_clock(MT_CG_AUDIO_AFE, "AUDIO")) { PRINTK_AUD_ERROR("AudDrv_Core_Clk_On Aud enable_clock MT_CG_AUDIO_AFE fail !!!\n"); } #else if (paudclk->aud_afe_clk_status) { ret = clk_prepare_enable(paudclk->aud_afe_clk); if (!ret) { pr_err("%s Aud enable_clock enable_clock aud_afe_clk fail", __func__); BUG(); return; } } else { pr_err("%s clk_status error Aud enable_clock aud_afe_clk fail", __func__); BUG(); return; } #endif #endif } Aud_Core_Clk_cntr++; spin_unlock_irqrestore(&auddrv_Clk_lock, flags); //PRINTK_AUD_CLK("-AudDrv_Core_Clk_On, Aud_Core_Clk_cntr:%d \n", Aud_Core_Clk_cntr); }
void AudDrv_ANA_Clk_Off(void) { //PRINTK_AUD_CLK("+AudDrv_ANA_Clk_Off, Aud_ADC_Clk_cntr:%d \n", Aud_ANA_Clk_cntr); mutex_lock(&auddrv_pmic_mutex); Aud_ANA_Clk_cntr--; if (Aud_ANA_Clk_cntr == 0) { PRINTK_AUD_CLK("+AudDrv_ANA_Clk_Off disable_clock Ana clk(%x)\n", Aud_ANA_Clk_cntr); // Disable ADC clock #ifdef PM_MANAGER_API #else // TODO:: open ADC clock.... #endif } else if (Aud_ANA_Clk_cntr < 0) { PRINTK_AUD_ERROR("!! AudDrv_ANA_Clk_Off, Aud_ADC_Clk_cntr<0 (%d) \n", Aud_ANA_Clk_cntr); AUDIO_ASSERT(true); Aud_ANA_Clk_cntr = 0; } mutex_unlock(&auddrv_pmic_mutex); //PRINTK_AUD_CLK("-AudDrv_ANA_Clk_Off, Aud_ADC_Clk_cntr:%d \n", Aud_ANA_Clk_cntr); }
void AudDrv_Suspend_Clk_On(void) { unsigned long flags; spin_lock_irqsave(&auddrv_Clk_lock, flags); if (Aud_Core_Clk_cntr > 0) { #ifdef PM_MANAGER_API if (Aud_AFE_Clk_cntr > 0) { if (enable_clock(MT_CG_AUDIO_AFE, "AUDIO")) { xlog_printk(ANDROID_LOG_ERROR, "Sound", "Aud enable_clock MT_CG_AUDIO_AFE fail !!!\n"); } } if (Aud_I2S_Clk_cntr > 0) { if (enable_clock(MT_CG_AUDIO_I2S, "AUDIO")) { PRINTK_AUD_ERROR("enable_clock MT_CG_AUDIO_I2S fail"); } } if (Aud_ADC_Clk_cntr > 0) { Afe_Set_Reg(AUDIO_TOP_CON0, 0 << 24 , 1 << 24); } if (Aud_ADC2_Clk_cntr > 0) { #if 0 //K2 removed if (enable_clock(MT_CG_AUDIO_ADDA2, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } #endif } if (Aud_ADC3_Clk_cntr > 0) { #if 0 //K2 removed if (enable_clock(MT_CG_AUDIO_ADDA3, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } #endif } if (Aud_ANA_Clk_cntr > 0) { } if (Aud_HDMI_Clk_cntr > 0) { } if (Aud_APLL22M_Clk_cntr > 0) { enable_mux(MT_MUX_AUD1, "AUDIO"); clkmux_sel(MT_MUX_AUD1, 1 , "AUDIO"); //select APLL1 if (enable_clock(MT_CG_AUDIO_22M, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } if (enable_clock(MT_CG_AUDIO_APLL_TUNER, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } } if (Aud_APLL24M_Clk_cntr > 0) { enable_mux(MT_MUX_AUD2, "AUDIO"); clkmux_sel(MT_MUX_AUD2, 1, "AUDIO"); //APLL2 if (enable_clock(MT_CG_AUDIO_24M, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } if (enable_clock(MT_CG_AUDIO_APLL2_TUNER, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } } #endif } spin_unlock_irqrestore(&auddrv_Clk_lock, flags); }
void AudDrv_Clk_Off(void) { unsigned long flags; PRINTK_AUD_CLK("+!! AudDrv_Clk_Off, Aud_AFE_Clk_cntr:%d \n",Aud_AFE_Clk_cntr); spin_lock_irqsave(&auddrv_Clk_lock, flags); Aud_AFE_Clk_cntr--; if (Aud_AFE_Clk_cntr == 0) { pr_err("------------AudDrv_Clk_Off, Aud_AFE_Clk_cntr:%d \n", Aud_AFE_Clk_cntr); { // Disable AFE clock #ifdef PM_MANAGER_API #if defined(CONFIG_MTK_LEGACY) if (disable_clock(MT_CG_AUDIO_AFE, "AUDIO")) { PRINTK_AUD_CLK("%s disable_clock MT_CG_AUDIO_AFE fail", __func__); } if (disable_clock(MT_CG_AUDIO_DAC, "AUDIO")) { PRINTK_AUD_CLK("%s MT_CG_AUDIO_DAC fail", __func__); } if (disable_clock(MT_CG_AUDIO_DAC_PREDIS, "AUDIO")) { PRINTK_AUD_CLK("%s MT_CG_AUDIO_DAC_PREDIS fail", __func__); } if (disable_clock(MT_CG_INFRA_AUDIO, "AUDIO")) { PRINTK_AUD_CLK("%s disable_clock MT_CG_INFRA_AUDIO fail", __func__); } #else pr_err("-----------[CCF]AudDrv_Clk_Off, paudclk->aud_infra_clk_status:%d \n", paudclk->aud_infra_clk_status); if (paudclk->aud_afe_clk_status) { clk_disable_unprepare(paudclk->aud_afe_clk); } if (paudclk->aud_dac_clk_status) { clk_disable_unprepare(paudclk->aud_dac_clk); } if (paudclk->aud_dac_predis_clk_status) { clk_disable_unprepare(paudclk->aud_dac_predis_clk); } if (paudclk->aud_infra_clk_status) { clk_disable_unprepare(paudclk->aud_infra_clk); } #endif #else Afe_Set_Reg(AUDIO_TOP_CON0, 0x06000044, 0x06000044); SetInfraCfg(AUDIO_CG_SET, 0x2000000, 0x2000000); //bit25=1, with 133m mastesr and 66m slave bus clock cg gating #endif } } else if (Aud_AFE_Clk_cntr < 0) { PRINTK_AUD_ERROR("!! AudDrv_Clk_Off, Aud_AFE_Clk_cntr<0 (%d) \n", Aud_AFE_Clk_cntr); AUDIO_ASSERT(true); Aud_AFE_Clk_cntr = 0; } PRINTK_AUD_CLK("-!! AudDrv_Clk_Off, Aud_AFE_Clk_cntr:%d \n",Aud_AFE_Clk_cntr); spin_unlock_irqrestore(&auddrv_Clk_lock, flags); }
void AudDrv_Suspend_Clk_On(void) { unsigned long flags; #if !defined(CONFIG_MTK_LEGACY) int ret = 0; #endif spin_lock_irqsave(&auddrv_Clk_lock, flags); if (Aud_Core_Clk_cntr > 0) { #ifdef PM_MANAGER_API #if defined(CONFIG_MTK_LEGACY) if (enable_clock(MT_CG_AUDIO_AFE, "AUDIO")) { PRINTK_AUD_ERROR("Aud enable_clock MT_CG_AUDIO_AFE fail !!!\n"); } #else if (paudclk->aud_afe_clk_status) { ret = clk_prepare_enable(paudclk->aud_afe_clk); if (!ret) { pr_err("%s Aud enable_clock enable_clock aud_afe_clk fail", __func__); BUG(); return; } } else { pr_err("%s clk_status error Aud enable_clock aud_afe_clk fail", __func__); BUG(); return; } #endif if (Aud_I2S_Clk_cntr > 0) { #if defined(CONFIG_MTK_LEGACY) if (enable_clock(MT_CG_AUDIO_I2S, "AUDIO")) { PRINTK_AUD_ERROR("enable_clock MT_CG_AUDIO_I2S fail"); } #else if (paudclk->aud_i2s_clk_status) { ret = clk_prepare_enable(paudclk->aud_i2s_clk); if (!ret) { pr_err("%s Aud enable_clock enable_clock aud_i2s_clk fail", __func__); BUG(); return; } } else { pr_err("%s clk_status error Aud enable_clock aud_i2s_clk fail", __func__); BUG(); return; } #endif } if (Aud_ADC_Clk_cntr > 0) { Afe_Set_Reg(AUDIO_TOP_CON0, 0 << 24 , 1 << 24); } if (Aud_ADC2_Clk_cntr > 0) { #if 0 //K2 removed if (enable_clock(MT_CG_AUDIO_ADDA2, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } #endif } if (Aud_ADC3_Clk_cntr > 0) { #if 0 //K2 removed if (enable_clock(MT_CG_AUDIO_ADDA3, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } #endif } if (Aud_ANA_Clk_cntr > 0) { } if (Aud_HDMI_Clk_cntr > 0) { } if (Aud_APLL22M_Clk_cntr > 0) { enable_mux(MT_MUX_AUD1, "AUDIO"); clkmux_sel(MT_MUX_AUD1, 1 , "AUDIO"); //select APLL1 #if defined(CONFIG_MTK_LEGACY) if (enable_clock(MT_CG_AUDIO_22M, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } if (enable_clock(MT_CG_AUDIO_APLL_TUNER, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } #else if (paudclk->aud_apll22m_clk_status) { ret = clk_prepare_enable(paudclk->aud_apll22m_clk); if (!ret) { pr_err("%s Aud enable_clock enable_clock aud_apll22m_clk fail", __func__); BUG(); return; } } else { pr_err("%s clk_status error Aud enable_clock aud_apll22m_clk fail", __func__); BUG(); return; } if (paudclk->aud_apll1_tuner_clk_status) { ret = clk_prepare_enable(paudclk->aud_apll1_tuner_clk); if (!ret) { pr_err("%s Aud enable_clock enable_clock aud_apll1_tuner_clk fail", __func__); BUG(); return; } } else { pr_err("%s clk_status error Aud enable_clock aud_apll1_tuner_clk fail", __func__); BUG(); return; } #endif } if (Aud_APLL24M_Clk_cntr > 0) { enable_mux(MT_MUX_AUD2, "AUDIO"); clkmux_sel(MT_MUX_AUD2, 1, "AUDIO"); //APLL2 #if defined(CONFIG_MTK_LEGACY) if (enable_clock(MT_CG_AUDIO_24M, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } if (enable_clock(MT_CG_AUDIO_APLL2_TUNER, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } #else if (paudclk->aud_apll24m_clk_status) { ret = clk_prepare_enable(paudclk->aud_apll24m_clk); if (!ret) { pr_err("%s Aud enable_clock enable_clock aud_apll24m_clk fail", __func__); BUG(); return; } } else { pr_err("%s clk_status error Aud enable_clock aud_apll24m_clk fail", __func__); BUG(); return; } if (paudclk->aud_apll2_tuner_clk_status) { ret = clk_prepare_enable(paudclk->aud_apll2_tuner_clk); if (!ret) { pr_err("%s Aud enable_clock enable_clock aud_apll2_tuner_clk fail", __func__); BUG(); return; } } else { pr_err("%s clk_status error Aud enable_clock aud_apll2_tuner_clk fail", __func__); BUG(); return; } #endif } #endif } spin_unlock_irqrestore(&auddrv_Clk_lock, flags); }
void AudDrv_Suspend_Clk_Off(void) { unsigned long flags; spin_lock_irqsave(&auddrv_Clk_lock, flags); if (Aud_Core_Clk_cntr > 0) { #ifdef PM_MANAGER_API if (Aud_AFE_Clk_cntr > 0) { #if defined(CONFIG_MTK_LEGACY) if (disable_clock(MT_CG_AUDIO_AFE, "AUDIO")) { printk("Aud enable_clock MT_CG_AUDIO_AFE fail !!!\n"); } #else if (paudclk->aud_afe_clk_status) { clk_disable_unprepare(paudclk->aud_afe_clk); } #endif } if (Aud_I2S_Clk_cntr > 0) { #if defined(CONFIG_MTK_LEGACY) if (disable_clock(MT_CG_AUDIO_I2S, "AUDIO")) { PRINTK_AUD_ERROR("disable_clock MT_CG_AUDIO_I2S fail"); } #else if (paudclk->aud_i2s_clk_status) { clk_disable_unprepare(paudclk->aud_i2s_clk); } #endif } if (Aud_ADC_Clk_cntr > 0) { Afe_Set_Reg(AUDIO_TOP_CON0, 1 << 24 , 1 << 24); } if (Aud_ADC2_Clk_cntr > 0) { #if 0 //K2 removed if (disable_clock(MT_CG_AUDIO_ADDA2, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } #endif } if (Aud_ADC3_Clk_cntr > 0) { #if 0 //K2 removed if (disable_clock(MT_CG_AUDIO_ADDA3, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } #endif } if (Aud_ANA_Clk_cntr > 0) { } if (Aud_HDMI_Clk_cntr > 0) { } if (Aud_APLL22M_Clk_cntr > 0) { #if defined(CONFIG_MTK_LEGACY) if (disable_clock(MT_CG_AUDIO_22M, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } if (disable_clock(MT_CG_AUDIO_APLL_TUNER, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } #else if (paudclk->aud_apll22m_clk_status) { clk_disable_unprepare(paudclk->aud_apll22m_clk); } if (paudclk->aud_apll1_tuner_clk_status) { clk_disable_unprepare(paudclk->aud_apll1_tuner_clk); } #endif clkmux_sel(MT_MUX_AUD1, 0, "AUDIO"); //select 26M disable_mux(MT_MUX_AUD1, "AUDIO"); } if (Aud_APLL24M_Clk_cntr > 0) { #if defined(CONFIG_MTK_LEGACY) if (disable_clock(MT_CG_AUDIO_24M, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } if (disable_clock(MT_CG_AUDIO_APLL2_TUNER, "AUDIO")) { PRINTK_AUD_CLK("%s fail", __func__); } clkmux_sel(MT_MUX_AUD2, 0, "AUDIO"); //select 26M disable_mux(MT_MUX_AUD2, "AUDIO"); #else if (paudclk->aud_apll24m_clk_status) { clk_disable_unprepare(paudclk->aud_apll24m_clk); } if (paudclk->aud_apll2_tuner_clk_status) { clk_disable_unprepare(paudclk->aud_apll2_tuner_clk); } #endif } #endif } spin_unlock_irqrestore(&auddrv_Clk_lock, flags); }