@Ranomez
This machine is the latest version of V20, and I have understood the issue you have reported:
This noise is the bottom noise of the audio codec that is amplified by the power amplifier and output. In fact, the native bottom noise is very small, which can be confirmed by inserting headphones. It's only after being amplified by the amplifier that you can hear it near the ear at the speaker end.
To avoid this common problem, the traditional approach is to only turn on the amplifier circuit when there is audio output, and then turn off the amplifier after the audio is played. This way, the normal sound output will cover the background noise, as shown in the driver code below:
static int es8316_mute(struct snd_soc_dai *dai, int mute, int direction)
{
struct snd_soc_component *component = dai->component;
struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component);
es8316->muted = mute;
if (mute) {
es8316_enable_spk(es8316, false);
msleep(100);
snd_soc_component_write(component, ES8316_DAC_SET1_REG30, 0x20);
} else {
snd_soc_component_write(component, ES8316_DAC_SET1_REG30, 0x00);
msleep(130);
if (!es8316->hp_inserted)
es8316_enable_spk(es8316, true);
}
return 0;
}
Your current operating method is to only turn on the amplifier without normal audio data output, which is equivalent to the amplifier only amplifying background noise data. So what the speaker hears is the amplified background noise. The current situation I have tested here is that the ear needs to be close to the speaker to hear, which cannot be heard in normal usage scenarios.
Later, we will try to adjust the gain configuration of the amplifier at the driver end, hoping to reduce the amplitude of this noise, but it is unrealistic to completely eliminate it.