Loading sound/soc/codecs/rt298.c +20 −0 Original line number Diff line number Diff line Loading @@ -481,6 +481,26 @@ static int rt298_adc_event(struct snd_soc_dapm_widget *w, snd_soc_update_bits(codec, VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, nid, 0), 0x7080, 0x7000); /* If MCLK doesn't exist, reset AD filter */ if (!(snd_soc_read(codec, RT298_VAD_CTRL) & 0x200)) { pr_info("NO MCLK\n"); switch (nid) { case RT298_ADC_IN1: snd_soc_update_bits(codec, RT298_D_FILTER_CTRL, 0x2, 0x2); mdelay(10); snd_soc_update_bits(codec, RT298_D_FILTER_CTRL, 0x2, 0x0); break; case RT298_ADC_IN2: snd_soc_update_bits(codec, RT298_D_FILTER_CTRL, 0x4, 0x4); mdelay(10); snd_soc_update_bits(codec, RT298_D_FILTER_CTRL, 0x4, 0x0); break; } } break; case SND_SOC_DAPM_PRE_PMD: snd_soc_update_bits(codec, Loading sound/soc/codecs/rt298.h +2 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,7 @@ #define RT298_A_BIAS_CTRL2 0x02 #define RT298_POWER_CTRL1 0x03 #define RT298_A_BIAS_CTRL3 0x04 #define RT298_D_FILTER_CTRL 0x05 #define RT298_POWER_CTRL2 0x08 #define RT298_I2S_CTRL1 0x09 #define RT298_I2S_CTRL2 0x0a Loading @@ -148,6 +149,7 @@ #define RT298_IRQ_CTRL 0x33 #define RT298_WIND_FILTER_CTRL 0x46 #define RT298_PLL_CTRL1 0x49 #define RT298_VAD_CTRL 0x4e #define RT298_CBJ_CTRL1 0x4f #define RT298_CBJ_CTRL2 0x50 #define RT298_PLL_CTRL 0x63 Loading Loading
sound/soc/codecs/rt298.c +20 −0 Original line number Diff line number Diff line Loading @@ -481,6 +481,26 @@ static int rt298_adc_event(struct snd_soc_dapm_widget *w, snd_soc_update_bits(codec, VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, nid, 0), 0x7080, 0x7000); /* If MCLK doesn't exist, reset AD filter */ if (!(snd_soc_read(codec, RT298_VAD_CTRL) & 0x200)) { pr_info("NO MCLK\n"); switch (nid) { case RT298_ADC_IN1: snd_soc_update_bits(codec, RT298_D_FILTER_CTRL, 0x2, 0x2); mdelay(10); snd_soc_update_bits(codec, RT298_D_FILTER_CTRL, 0x2, 0x0); break; case RT298_ADC_IN2: snd_soc_update_bits(codec, RT298_D_FILTER_CTRL, 0x4, 0x4); mdelay(10); snd_soc_update_bits(codec, RT298_D_FILTER_CTRL, 0x4, 0x0); break; } } break; case SND_SOC_DAPM_PRE_PMD: snd_soc_update_bits(codec, Loading
sound/soc/codecs/rt298.h +2 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,7 @@ #define RT298_A_BIAS_CTRL2 0x02 #define RT298_POWER_CTRL1 0x03 #define RT298_A_BIAS_CTRL3 0x04 #define RT298_D_FILTER_CTRL 0x05 #define RT298_POWER_CTRL2 0x08 #define RT298_I2S_CTRL1 0x09 #define RT298_I2S_CTRL2 0x0a Loading @@ -148,6 +149,7 @@ #define RT298_IRQ_CTRL 0x33 #define RT298_WIND_FILTER_CTRL 0x46 #define RT298_PLL_CTRL1 0x49 #define RT298_VAD_CTRL 0x4e #define RT298_CBJ_CTRL1 0x4f #define RT298_CBJ_CTRL2 0x50 #define RT298_PLL_CTRL 0x63 Loading