Loading asoc/codecs/wcd937x/wcd937x.c +17 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. */ #include <linux/module.h> Loading Loading @@ -987,6 +987,22 @@ static int wcd937x_codec_enable_ear_pa(struct snd_soc_dapm_widget *w, snd_soc_component_update_bits(component, WCD937X_DIGITAL_PDM_WD_CTL0, 0x17, 0x00); usleep_range(10000, 10010); /* disable EAR CnP FSM */ snd_soc_component_update_bits(component, WCD937X_EAR_EAR_EN_REG, 0x02, 0x00); /* toggle EAR PA to let PA control registers take effect */ snd_soc_component_update_bits(component, WCD937X_ANA_EAR, 0x80, 0x80); snd_soc_component_update_bits(component, WCD937X_ANA_EAR, 0x80, 0x00); /* enable EAR CnP FSM */ snd_soc_component_update_bits(component, WCD937X_EAR_EAR_EN_REG, 0x02, 0x02); break; }; return ret; Loading Loading
asoc/codecs/wcd937x/wcd937x.c +17 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. */ #include <linux/module.h> Loading Loading @@ -987,6 +987,22 @@ static int wcd937x_codec_enable_ear_pa(struct snd_soc_dapm_widget *w, snd_soc_component_update_bits(component, WCD937X_DIGITAL_PDM_WD_CTL0, 0x17, 0x00); usleep_range(10000, 10010); /* disable EAR CnP FSM */ snd_soc_component_update_bits(component, WCD937X_EAR_EAR_EN_REG, 0x02, 0x00); /* toggle EAR PA to let PA control registers take effect */ snd_soc_component_update_bits(component, WCD937X_ANA_EAR, 0x80, 0x80); snd_soc_component_update_bits(component, WCD937X_ANA_EAR, 0x80, 0x00); /* enable EAR CnP FSM */ snd_soc_component_update_bits(component, WCD937X_EAR_EAR_EN_REG, 0x02, 0x02); break; }; return ret; Loading