ASoC: rockchip: rk817-codec: enable dac when play

In this case playback_path set to ON, and then play music.
when playback close, stream mute power off the dac,
but the playback_path do not be set to OFF, so we must
power on the dac again.

Signed-off-by: XiaoTan Luo <lxt@rock-chips.com>
Change-Id: I7baa8518ccbb567cb146c5739f9a125da320e674
This commit is contained in:
XiaoTan Luo
2021-08-16 14:18:16 +08:00
committed by Tao Huang
parent 20d8a7925f
commit e877670daa

View File

@@ -944,6 +944,19 @@ static int rk817_digital_mute(struct snd_soc_dai *dai, int mute)
switch (rk817->playback_path) {
case SPK_PATH:
case RING_SPK:
if (rk817->out_l2spk_r2hp) {
snd_soc_component_write(component, RK817_CODEC_ADAC_CFG1,
PWD_DACBIAS_ON | PWD_DACD_ON |
PWD_DACL_ON | PWD_DACR_ON);
} else if (!rk817->use_ext_amplifier) {
snd_soc_component_write(component, RK817_CODEC_ADAC_CFG1,
PWD_DACBIAS_ON | PWD_DACD_ON |
PWD_DACL_DOWN | PWD_DACR_DOWN);
} else {
snd_soc_component_write(component, RK817_CODEC_ADAC_CFG1,
PWD_DACBIAS_ON | PWD_DACD_DOWN |
PWD_DACL_ON | PWD_DACR_ON);
}
rk817_codec_ctl_gpio(rk817, CODEC_SET_SPK, 1);
rk817_codec_ctl_gpio(rk817, CODEC_SET_HP, 0);
break;
@@ -951,11 +964,17 @@ static int rk817_digital_mute(struct snd_soc_dai *dai, int mute)
case HP_NO_MIC:
case RING_HP:
case RING_HP_NO_MIC:
snd_soc_component_write(component, RK817_CODEC_ADAC_CFG1,
PWD_DACBIAS_ON | PWD_DACD_DOWN |
PWD_DACL_ON | PWD_DACR_ON);
rk817_codec_ctl_gpio(rk817, CODEC_SET_SPK, 0);
rk817_codec_ctl_gpio(rk817, CODEC_SET_HP, 1);
break;
case SPK_HP:
case RING_SPK_HP:
snd_soc_component_write(component, RK817_CODEC_ADAC_CFG1,
PWD_DACBIAS_ON | PWD_DACD_ON |
PWD_DACL_ON | PWD_DACR_ON);
rk817_codec_ctl_gpio(rk817, CODEC_SET_SPK, 1);
rk817_codec_ctl_gpio(rk817, CODEC_SET_HP, 1);
break;