16 Jan
2024
16 Jan
'24
1:33 p.m.
Hi Johan,
did you see any issue with this codec?
These are not really hacks, to make the gains effective it has to be applied in a particular order.
On 16/01/2024 09:39, Johan Hovold wrote:
/* apply the digital gain after the interpolator is enabled */
As you noticed in the comments, the gains have to be reprogrammed after interpolator and its clks are enabled.
usleep_range(10000, 10100);
snd_soc_component_write(component, rx_gain_reg[w->shift],
snd_soc_component_read(component, rx_gain_reg[w->shift]));
case SND_SOC_DAPM_POST_PMD: snd_soc_component_update_bits(component, LPASS_CDC_CLK_RX_RESET_CTL, 1 << w->shift, 1 << w->shift);break;
@@ -630,9 +613,6 @@ static int msm8916_wcd_digital_enable_dec(struct snd_soc_dapm_widget *w, snd_soc_component_update_bits(component, tx_mux_ctl_reg, TX_MUX_CTL_HPF_BP_SEL_MASK, TX_MUX_CTL_HPF_BP_SEL_NO_BYPASS);
/* apply the digital gain after the decimator is enabled */
same here.
snd_soc_component_write(component, tx_gain_reg[w->shift],
snd_soc_component_read(component, tx_gain_reg[w->shift]));