[PATCH 1/3] bytcr-rt5640: Fix DMIC1 not working when connected over AIF2

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Mon Jun 8 23:44:25 CEST 2020



On 6/8/20 3:21 PM, Hans de Goede wrote:
> The RT5640 codec has 2 ADC-s which are caled the Stereo ADC and the
> Mono ADC (even though the mono ADC seems to be stereo too?). The Stereo
> ADC is connected to the AIF1 interface of the codec and the Mono ADC
> to the AIF2 interface.
> 
> Almost all X86 BYT/CHT design use the AIF1 interface, but a few models
> use the AIF2 interface. For this reason the IN?-InternalMic.conf bits
> not only select/enable the microphone input on the Stereo ADC, but
> also on the Mono ADC, so that the analog mic. inputs also work in devices
> using the AIF2 interface.
> 
> Before this commit DigitalMics.conf was only setting up the DMIC input
> on the Stereo ADC and not on the Mono ADC, causing DMIC1 to not work
> when connected over AIF2.
> 
> This commit adds selecting / enabling DMIC1 on the Mono ADC.
> This fixes the internal microphone not working on the Toshiba Encore WT10A.
> 
> Note that for devices which use the AIF1 interface this is a no-op since
> the AIF1 interface is not connected to anything, there is no complete
> chain so DAPM will not enable any of the elements in the chain.

Sounds good to me.

For the series

Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>

> 
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
>   ucm2/codecs/rt5640/DigitalMics.conf | 6 ++++++
>   1 file changed, 6 insertions(+)
> 
> diff --git a/ucm2/codecs/rt5640/DigitalMics.conf b/ucm2/codecs/rt5640/DigitalMics.conf
> index 503c4a9..fdd412f 100644
> --- a/ucm2/codecs/rt5640/DigitalMics.conf
> +++ b/ucm2/codecs/rt5640/DigitalMics.conf
> @@ -6,6 +6,9 @@ SectionDevice."Mic" {
>   	]
>   
>   	EnableSequence [
> +		cset "name='Mono ADC MIXL ADC2 Switch' on"
> +		cset "name='Mono ADC MIXR ADC2 Switch' on"
> +		cset "name='Mono ADC Capture Switch' on"
>   		cset "name='Stereo ADC MIXL ADC2 Switch' on"
>   		cset "name='Stereo ADC MIXR ADC2 Switch' on"
>   		cset "name='Internal Mic Switch' on"
> @@ -13,6 +16,9 @@ SectionDevice."Mic" {
>   	]
>   
>   	DisableSequence [
> +		cset "name='Mono ADC MIXL ADC2 Switch' off"
> +		cset "name='Mono ADC MIXR ADC2 Switch' off"
> +		cset "name='Mono ADC Capture Switch' off"
>   		cset "name='Stereo ADC MIXL ADC2 Switch' off"
>   		cset "name='Stereo ADC MIXR ADC2 Switch' off"
>   		cset "name='Internal Mic Switch' off"
> 


More information about the Alsa-devel mailing list