Loading asoc/codecs/bolero/rx-macro.c +18 −1 Original line number Diff line number Diff line Loading @@ -769,6 +769,9 @@ static int rx_macro_mclk_enable(struct rx_macro_priv *rx_priv, regmap_update_bits(regmap, BOLERO_CDC_RX_CLK_RST_CTRL_MCLK_CONTROL, 0x01, 0x01); regmap_update_bits(regmap, BOLERO_CDC_RX_CLK_RST_CTRL_MCLK_CONTROL, 0x02, 0x02); regmap_update_bits(regmap, BOLERO_CDC_RX_CLK_RST_CTRL_FS_CNT_CONTROL, 0x01, 0x01); Loading Loading @@ -1022,6 +1025,7 @@ static int rx_macro_enable_mix_path(struct snd_soc_dapm_widget *w, case SND_SOC_DAPM_POST_PMU: snd_soc_write(codec, gain_reg, snd_soc_read(codec, gain_reg)); snd_soc_update_bits(codec, mix_reg, 0x10, 0x00); break; case SND_SOC_DAPM_POST_PMD: /* Clk Disable */ Loading Loading @@ -1071,6 +1075,7 @@ static int rx_macro_enable_main_path(struct snd_soc_dapm_widget *w, case SND_SOC_DAPM_POST_PMU: snd_soc_write(codec, gain_reg, snd_soc_read(codec, gain_reg)); snd_soc_update_bits(codec, reg, 0x10, 0x00); break; case SND_SOC_DAPM_POST_PMD: rx_macro_enable_interp_clk(codec, event, w->shift); Loading Loading @@ -2393,12 +2398,15 @@ static int rx_swrm_clock(void *handle, bool enable) __func__); goto exit; } regmap_update_bits(regmap, BOLERO_CDC_RX_CLK_RST_CTRL_SWR_CONTROL, 0x02, 0x02); regmap_update_bits(regmap, BOLERO_CDC_RX_CLK_RST_CTRL_SWR_CONTROL, 0x01, 0x01); regmap_update_bits(regmap, BOLERO_CDC_RX_CLK_RST_CTRL_SWR_CONTROL, 0x1C, 0x0C); 0x02, 0x00); msm_cdc_pinctrl_select_active_state( rx_priv->rx_swr_gpio_p); } Loading Loading @@ -2471,6 +2479,15 @@ static int rx_macro_init(struct snd_soc_codec *codec) dev_err(rx_dev, "%s: failed to add snd_ctls\n", __func__); return ret; } snd_soc_update_bits(codec, BOLERO_CDC_RX_RX0_RX_PATH_DSM_CTL, 0x01, 0x01); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX1_RX_PATH_DSM_CTL, 0x01, 0x01); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX2_RX_PATH_DSM_CTL, 0x01, 0x01); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX0_RX_PATH_SEC7, 0x07, 0x02); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX1_RX_PATH_SEC7, 0x07, 0x02); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX2_RX_PATH_SEC7, 0x07, 0x02); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX0_RX_PATH_CFG3, 0x03, 0x02); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX1_RX_PATH_CFG3, 0x03, 0x02); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX2_RX_PATH_CFG3, 0x03, 0x02); rx_priv->codec = codec; Loading asoc/codecs/bolero/tx-macro.c +6 −1 Original line number Diff line number Diff line Loading @@ -336,7 +336,7 @@ static void tx_macro_mute_update_callback(struct work_struct *work) hpf_gate_reg = BOLERO_CDC_TX0_TX_PATH_SEC2 + TX_MACRO_TX_PATH_OFFSET * decimator; snd_soc_update_bits(codec, hpf_gate_reg, 0x01, 0x01); snd_soc_update_bits(codec, tx_vol_ctl_reg, 0x01, 0x00); snd_soc_update_bits(codec, tx_vol_ctl_reg, 0x10, 0x00); dev_dbg(tx_priv->dev, "%s: decimator %u unmute\n", __func__, decimator); } Loading Loading @@ -521,6 +521,9 @@ static int tx_macro_enable_dmic(struct snd_soc_dapm_widget *w, case SND_SOC_DAPM_PRE_PMU: (*dmic_clk_cnt)++; if (*dmic_clk_cnt == 1) { snd_soc_update_bits(codec, BOLERO_CDC_VA_TOP_CSR_DMIC_CFG, 0x80, 0x00); snd_soc_update_bits(codec, dmic_clk_reg, 0x0E, tx_priv->dmic_clk_div << 0x1); snd_soc_update_bits(codec, dmic_clk_reg, Loading Loading @@ -583,6 +586,7 @@ static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, snd_soc_update_bits(codec, tx_vol_ctl_reg, 0x10, 0x10); break; case SND_SOC_DAPM_POST_PMU: snd_soc_update_bits(codec, tx_vol_ctl_reg, 0x20, 0x20); snd_soc_update_bits(codec, hpf_gate_reg, 0x01, 0x00); /* schedule work queue to Remove Mute */ Loading Loading @@ -613,6 +617,7 @@ static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, &tx_priv->tx_mute_dwork[decimator].dwork); break; case SND_SOC_DAPM_POST_PMD: snd_soc_update_bits(codec, tx_vol_ctl_reg, 0x20, 0x00); snd_soc_update_bits(codec, tx_vol_ctl_reg, 0x10, 0x00); break; } Loading asoc/codecs/wcd937x/internal.h +1 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ struct wcd937x_priv { u32 hph_mode; struct irq_domain *virq; struct wcd_irq_info *irq_info; struct wcd_irq_info irq_info; u32 rx_clk_cnt; int num_irq_regs; Loading asoc/codecs/wcd937x/wcd937x-mbhc.c +4 −4 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ static int wcd937x_mbhc_request_irq(struct snd_soc_codec *codec, { struct wcd937x_priv *wcd937x = dev_get_drvdata(codec->dev); return wcd_request_irq(wcd937x->irq_info, irq, name, handler, data); return wcd_request_irq(&wcd937x->irq_info, irq, name, handler, data); } static void wcd937x_mbhc_irq_control(struct snd_soc_codec *codec, Loading @@ -178,9 +178,9 @@ static void wcd937x_mbhc_irq_control(struct snd_soc_codec *codec, struct wcd937x_priv *wcd937x = dev_get_drvdata(codec->dev); if (enable) wcd_enable_irq(wcd937x->irq_info, irq); wcd_enable_irq(&wcd937x->irq_info, irq); else wcd_disable_irq(wcd937x->irq_info, irq); wcd_disable_irq(&wcd937x->irq_info, irq); } static int wcd937x_mbhc_free_irq(struct snd_soc_codec *codec, Loading @@ -188,7 +188,7 @@ static int wcd937x_mbhc_free_irq(struct snd_soc_codec *codec, { struct wcd937x_priv *wcd937x = dev_get_drvdata(codec->dev); wcd_free_irq(wcd937x->irq_info, irq, data); wcd_free_irq(&wcd937x->irq_info, irq, data); return 0; } Loading asoc/codecs/wcd937x/wcd937x-regmap.c +7 −0 Original line number Diff line number Diff line Loading @@ -434,21 +434,28 @@ static const struct reg_default wcd937x_defaults[] = { static bool wcd937x_readable_register(struct device *dev, unsigned int reg) { if(reg <= WCD937X_BASE_ADDRESS) return 0; return wcd937x_reg_access[WCD937X_REG(reg)] & RD_REG; } static bool wcd937x_writeable_register(struct device *dev, unsigned int reg) { if(reg <= WCD937X_BASE_ADDRESS) return 0; return wcd937x_reg_access[WCD937X_REG(reg)] & WR_REG; } static bool wcd937x_volatile_register(struct device *dev, unsigned int reg) { if(reg <= WCD937X_BASE_ADDRESS) return 0; return (wcd937x_reg_access[WCD937X_REG(reg)] & RD_REG) & ~(wcd937x_reg_access[WCD937X_REG(reg)] & WR_REG); } struct regmap_config wcd937x_regmap_config = { .name = "wcd937x_csr", .reg_bits = 16, .val_bits = 8, .cache_type = REGCACHE_RBTREE, Loading Loading
asoc/codecs/bolero/rx-macro.c +18 −1 Original line number Diff line number Diff line Loading @@ -769,6 +769,9 @@ static int rx_macro_mclk_enable(struct rx_macro_priv *rx_priv, regmap_update_bits(regmap, BOLERO_CDC_RX_CLK_RST_CTRL_MCLK_CONTROL, 0x01, 0x01); regmap_update_bits(regmap, BOLERO_CDC_RX_CLK_RST_CTRL_MCLK_CONTROL, 0x02, 0x02); regmap_update_bits(regmap, BOLERO_CDC_RX_CLK_RST_CTRL_FS_CNT_CONTROL, 0x01, 0x01); Loading Loading @@ -1022,6 +1025,7 @@ static int rx_macro_enable_mix_path(struct snd_soc_dapm_widget *w, case SND_SOC_DAPM_POST_PMU: snd_soc_write(codec, gain_reg, snd_soc_read(codec, gain_reg)); snd_soc_update_bits(codec, mix_reg, 0x10, 0x00); break; case SND_SOC_DAPM_POST_PMD: /* Clk Disable */ Loading Loading @@ -1071,6 +1075,7 @@ static int rx_macro_enable_main_path(struct snd_soc_dapm_widget *w, case SND_SOC_DAPM_POST_PMU: snd_soc_write(codec, gain_reg, snd_soc_read(codec, gain_reg)); snd_soc_update_bits(codec, reg, 0x10, 0x00); break; case SND_SOC_DAPM_POST_PMD: rx_macro_enable_interp_clk(codec, event, w->shift); Loading Loading @@ -2393,12 +2398,15 @@ static int rx_swrm_clock(void *handle, bool enable) __func__); goto exit; } regmap_update_bits(regmap, BOLERO_CDC_RX_CLK_RST_CTRL_SWR_CONTROL, 0x02, 0x02); regmap_update_bits(regmap, BOLERO_CDC_RX_CLK_RST_CTRL_SWR_CONTROL, 0x01, 0x01); regmap_update_bits(regmap, BOLERO_CDC_RX_CLK_RST_CTRL_SWR_CONTROL, 0x1C, 0x0C); 0x02, 0x00); msm_cdc_pinctrl_select_active_state( rx_priv->rx_swr_gpio_p); } Loading Loading @@ -2471,6 +2479,15 @@ static int rx_macro_init(struct snd_soc_codec *codec) dev_err(rx_dev, "%s: failed to add snd_ctls\n", __func__); return ret; } snd_soc_update_bits(codec, BOLERO_CDC_RX_RX0_RX_PATH_DSM_CTL, 0x01, 0x01); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX1_RX_PATH_DSM_CTL, 0x01, 0x01); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX2_RX_PATH_DSM_CTL, 0x01, 0x01); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX0_RX_PATH_SEC7, 0x07, 0x02); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX1_RX_PATH_SEC7, 0x07, 0x02); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX2_RX_PATH_SEC7, 0x07, 0x02); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX0_RX_PATH_CFG3, 0x03, 0x02); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX1_RX_PATH_CFG3, 0x03, 0x02); snd_soc_update_bits(codec, BOLERO_CDC_RX_RX2_RX_PATH_CFG3, 0x03, 0x02); rx_priv->codec = codec; Loading
asoc/codecs/bolero/tx-macro.c +6 −1 Original line number Diff line number Diff line Loading @@ -336,7 +336,7 @@ static void tx_macro_mute_update_callback(struct work_struct *work) hpf_gate_reg = BOLERO_CDC_TX0_TX_PATH_SEC2 + TX_MACRO_TX_PATH_OFFSET * decimator; snd_soc_update_bits(codec, hpf_gate_reg, 0x01, 0x01); snd_soc_update_bits(codec, tx_vol_ctl_reg, 0x01, 0x00); snd_soc_update_bits(codec, tx_vol_ctl_reg, 0x10, 0x00); dev_dbg(tx_priv->dev, "%s: decimator %u unmute\n", __func__, decimator); } Loading Loading @@ -521,6 +521,9 @@ static int tx_macro_enable_dmic(struct snd_soc_dapm_widget *w, case SND_SOC_DAPM_PRE_PMU: (*dmic_clk_cnt)++; if (*dmic_clk_cnt == 1) { snd_soc_update_bits(codec, BOLERO_CDC_VA_TOP_CSR_DMIC_CFG, 0x80, 0x00); snd_soc_update_bits(codec, dmic_clk_reg, 0x0E, tx_priv->dmic_clk_div << 0x1); snd_soc_update_bits(codec, dmic_clk_reg, Loading Loading @@ -583,6 +586,7 @@ static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, snd_soc_update_bits(codec, tx_vol_ctl_reg, 0x10, 0x10); break; case SND_SOC_DAPM_POST_PMU: snd_soc_update_bits(codec, tx_vol_ctl_reg, 0x20, 0x20); snd_soc_update_bits(codec, hpf_gate_reg, 0x01, 0x00); /* schedule work queue to Remove Mute */ Loading Loading @@ -613,6 +617,7 @@ static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, &tx_priv->tx_mute_dwork[decimator].dwork); break; case SND_SOC_DAPM_POST_PMD: snd_soc_update_bits(codec, tx_vol_ctl_reg, 0x20, 0x00); snd_soc_update_bits(codec, tx_vol_ctl_reg, 0x10, 0x00); break; } Loading
asoc/codecs/wcd937x/internal.h +1 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ struct wcd937x_priv { u32 hph_mode; struct irq_domain *virq; struct wcd_irq_info *irq_info; struct wcd_irq_info irq_info; u32 rx_clk_cnt; int num_irq_regs; Loading
asoc/codecs/wcd937x/wcd937x-mbhc.c +4 −4 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ static int wcd937x_mbhc_request_irq(struct snd_soc_codec *codec, { struct wcd937x_priv *wcd937x = dev_get_drvdata(codec->dev); return wcd_request_irq(wcd937x->irq_info, irq, name, handler, data); return wcd_request_irq(&wcd937x->irq_info, irq, name, handler, data); } static void wcd937x_mbhc_irq_control(struct snd_soc_codec *codec, Loading @@ -178,9 +178,9 @@ static void wcd937x_mbhc_irq_control(struct snd_soc_codec *codec, struct wcd937x_priv *wcd937x = dev_get_drvdata(codec->dev); if (enable) wcd_enable_irq(wcd937x->irq_info, irq); wcd_enable_irq(&wcd937x->irq_info, irq); else wcd_disable_irq(wcd937x->irq_info, irq); wcd_disable_irq(&wcd937x->irq_info, irq); } static int wcd937x_mbhc_free_irq(struct snd_soc_codec *codec, Loading @@ -188,7 +188,7 @@ static int wcd937x_mbhc_free_irq(struct snd_soc_codec *codec, { struct wcd937x_priv *wcd937x = dev_get_drvdata(codec->dev); wcd_free_irq(wcd937x->irq_info, irq, data); wcd_free_irq(&wcd937x->irq_info, irq, data); return 0; } Loading
asoc/codecs/wcd937x/wcd937x-regmap.c +7 −0 Original line number Diff line number Diff line Loading @@ -434,21 +434,28 @@ static const struct reg_default wcd937x_defaults[] = { static bool wcd937x_readable_register(struct device *dev, unsigned int reg) { if(reg <= WCD937X_BASE_ADDRESS) return 0; return wcd937x_reg_access[WCD937X_REG(reg)] & RD_REG; } static bool wcd937x_writeable_register(struct device *dev, unsigned int reg) { if(reg <= WCD937X_BASE_ADDRESS) return 0; return wcd937x_reg_access[WCD937X_REG(reg)] & WR_REG; } static bool wcd937x_volatile_register(struct device *dev, unsigned int reg) { if(reg <= WCD937X_BASE_ADDRESS) return 0; return (wcd937x_reg_access[WCD937X_REG(reg)] & RD_REG) & ~(wcd937x_reg_access[WCD937X_REG(reg)] & WR_REG); } struct regmap_config wcd937x_regmap_config = { .name = "wcd937x_csr", .reg_bits = 16, .val_bits = 8, .cache_type = REGCACHE_RBTREE, Loading