Loading asoc/codecs/bolero/bolero-cdc.c +1 −0 Original line number Diff line number Diff line Loading @@ -599,6 +599,7 @@ static void bolero_ssr_disable(struct device *dev, void *data) struct bolero_priv *priv = data; int macro_idx; bolero_cdc_notifier_call(priv, BOLERO_WCD_EVT_PA_OFF_PRE_SSR); regcache_cache_only(priv->regmap, true); mutex_lock(&priv->clk_lock); Loading asoc/codecs/bolero/internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ /* from bolero to WCD events */ enum { BOLERO_WCD_EVT_TX_CH_HOLD_CLEAR = 1, BOLERO_WCD_EVT_PA_OFF_PRE_SSR, BOLERO_WCD_EVT_SSR_DOWN, BOLERO_WCD_EVT_SSR_UP, }; Loading asoc/codecs/bolero/rx-macro.c +4 −3 Original line number Diff line number Diff line Loading @@ -1122,7 +1122,7 @@ static int rx_macro_mclk_ctrl(struct device *dev, bool enable) static int rx_macro_event_handler(struct snd_soc_codec *codec, u16 event, u32 data) { u16 reg = 0, reg_mix = 0, rx_idx = 0, mute = 0x0; u16 reg = 0, reg_mix = 0, rx_idx = 0, mute = 0x0, val = 0; struct device *rx_dev = NULL; struct rx_macro_priv *rx_priv = NULL; Loading @@ -1133,12 +1133,13 @@ static int rx_macro_event_handler(struct snd_soc_codec *codec, u16 event, case BOLERO_MACRO_EVT_RX_MUTE: rx_idx = data >> 0x10; mute = data & 0xffff; val = mute ? 0x10 : 0x00; reg = BOLERO_CDC_RX_RX0_RX_PATH_CTL + (rx_idx * RX_MACRO_RX_PATH_OFFSET); reg_mix = BOLERO_CDC_RX_RX0_RX_PATH_MIX_CTL + (rx_idx * RX_MACRO_RX_PATH_OFFSET); snd_soc_update_bits(codec, reg, 0x10, mute << 0x10); snd_soc_update_bits(codec, reg_mix, 0x10, mute << 0x10); snd_soc_update_bits(codec, reg, 0x10, val); snd_soc_update_bits(codec, reg_mix, 0x10, val); break; case BOLERO_MACRO_EVT_IMPED_TRUE: rx_macro_wcd_clsh_imped_config(codec, data, true); Loading asoc/codecs/wcd937x/internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,7 @@ enum { enum { BOLERO_WCD_EVT_TX_CH_HOLD_CLEAR = 1, BOLERO_WCD_EVT_PA_OFF_PRE_SSR, BOLERO_WCD_EVT_SSR_DOWN, BOLERO_WCD_EVT_SSR_UP, }; Loading asoc/codecs/wcd937x/wcd937x.c +5 −0 Original line number Diff line number Diff line Loading @@ -1295,6 +1295,11 @@ static int wcd937x_event_notify(struct notifier_block *block, mask = 0x20; snd_soc_update_bits(codec, reg, mask, 0x00); break; case BOLERO_WCD_EVT_PA_OFF_PRE_SSR: snd_soc_update_bits(codec, WCD937X_ANA_HPH, 0xC0, 0x00); snd_soc_update_bits(codec, WCD937X_ANA_EAR, 0x80, 0x00); snd_soc_update_bits(codec, WCD937X_AUX_AUXPA, 0x80, 0x00); break; case BOLERO_WCD_EVT_SSR_DOWN: wcd937x_reset_low(wcd937x->dev); break; Loading Loading
asoc/codecs/bolero/bolero-cdc.c +1 −0 Original line number Diff line number Diff line Loading @@ -599,6 +599,7 @@ static void bolero_ssr_disable(struct device *dev, void *data) struct bolero_priv *priv = data; int macro_idx; bolero_cdc_notifier_call(priv, BOLERO_WCD_EVT_PA_OFF_PRE_SSR); regcache_cache_only(priv->regmap, true); mutex_lock(&priv->clk_lock); Loading
asoc/codecs/bolero/internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ /* from bolero to WCD events */ enum { BOLERO_WCD_EVT_TX_CH_HOLD_CLEAR = 1, BOLERO_WCD_EVT_PA_OFF_PRE_SSR, BOLERO_WCD_EVT_SSR_DOWN, BOLERO_WCD_EVT_SSR_UP, }; Loading
asoc/codecs/bolero/rx-macro.c +4 −3 Original line number Diff line number Diff line Loading @@ -1122,7 +1122,7 @@ static int rx_macro_mclk_ctrl(struct device *dev, bool enable) static int rx_macro_event_handler(struct snd_soc_codec *codec, u16 event, u32 data) { u16 reg = 0, reg_mix = 0, rx_idx = 0, mute = 0x0; u16 reg = 0, reg_mix = 0, rx_idx = 0, mute = 0x0, val = 0; struct device *rx_dev = NULL; struct rx_macro_priv *rx_priv = NULL; Loading @@ -1133,12 +1133,13 @@ static int rx_macro_event_handler(struct snd_soc_codec *codec, u16 event, case BOLERO_MACRO_EVT_RX_MUTE: rx_idx = data >> 0x10; mute = data & 0xffff; val = mute ? 0x10 : 0x00; reg = BOLERO_CDC_RX_RX0_RX_PATH_CTL + (rx_idx * RX_MACRO_RX_PATH_OFFSET); reg_mix = BOLERO_CDC_RX_RX0_RX_PATH_MIX_CTL + (rx_idx * RX_MACRO_RX_PATH_OFFSET); snd_soc_update_bits(codec, reg, 0x10, mute << 0x10); snd_soc_update_bits(codec, reg_mix, 0x10, mute << 0x10); snd_soc_update_bits(codec, reg, 0x10, val); snd_soc_update_bits(codec, reg_mix, 0x10, val); break; case BOLERO_MACRO_EVT_IMPED_TRUE: rx_macro_wcd_clsh_imped_config(codec, data, true); Loading
asoc/codecs/wcd937x/internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,7 @@ enum { enum { BOLERO_WCD_EVT_TX_CH_HOLD_CLEAR = 1, BOLERO_WCD_EVT_PA_OFF_PRE_SSR, BOLERO_WCD_EVT_SSR_DOWN, BOLERO_WCD_EVT_SSR_UP, }; Loading
asoc/codecs/wcd937x/wcd937x.c +5 −0 Original line number Diff line number Diff line Loading @@ -1295,6 +1295,11 @@ static int wcd937x_event_notify(struct notifier_block *block, mask = 0x20; snd_soc_update_bits(codec, reg, mask, 0x00); break; case BOLERO_WCD_EVT_PA_OFF_PRE_SSR: snd_soc_update_bits(codec, WCD937X_ANA_HPH, 0xC0, 0x00); snd_soc_update_bits(codec, WCD937X_ANA_EAR, 0x80, 0x00); snd_soc_update_bits(codec, WCD937X_AUX_AUXPA, 0x80, 0x00); break; case BOLERO_WCD_EVT_SSR_DOWN: wcd937x_reset_low(wcd937x->dev); break; Loading