mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user