[alsa-devel] Noise in tlv320aic3104-based audio system

Rick Mann rmann at latencyzero.com
Mon Nov 2 22:14:31 CET 2015


> On Nov 2, 2015, at 13:04 , Benoît Thébaudeau <benoit.thebaudeau.dev at gmail.com> wrote:
> 
> Dear Rick Mann,
> 
> On Mon, Nov 2, 2015 at 8:50 AM, Rick Mann <rmann at latencyzero.com> wrote:
>> 
>>> On Oct 30, 2015, at 03:03 , Benoît Thébaudeau <benoit.thebaudeau.dev at gmail.com> wrote:
>>> 
>>> Dear Rick Mann,
>>> 
>>> On Fri, Oct 30, 2015 at 6:45 AM, Rick Mann <rmann at latencyzero.com> wrote:
>>>> 
>>>>> On Oct 29, 2015, at 20:43 , Caleb Crome <caleb at crome.org> wrote:
>>>>> 
>>>>> The data sheets for those aic codecs are pretty good I think.
>>>>> 
>>>>> Also, routing direct or through a mixer will be a minor difference, not a major one.
>>>>> 
>>>>> It just occurred to me, the noise could easily be coming from a direct input -> output route, bypassing the adc and dac altogether. Make sure all bypass routes are zeroed out.  The trick is correlating the datasheet routes with the alsa mixer controls that correspond to them .  Enough staring at the aic3x.c files will eventually shed light:-)
>>>> 
>>>> I've zeroed out everything I could find. Nothing had an effect until I got to the DAC muxes, at which point the behavior gets really weird. Changing those gets me to left or right output, but never both again until I reset the CODEC.
>>>> 
>>>> None of this affected the hiss.
>>> 
>>> Can you try `alsactl restore` with this asound.state?
>>> https://gist.github.com/bthebaudeau/e00492ebf0309f8dbace
>>> 
>>> TI's diagram in the data sheet is missing a few things. Some paths are
>>> also wrong. The description of the registers is right however, so it
>>> is the reference. I have used extensively a similar setup with an
>>> older kernel, and it works fine.
>> 
>> Benoît, it might be beneficial if you commented on my e2e post to indicate some of the missing paths you mentioned. Luis said he'd notify someone at TI (presumably) about the error in the diagram, but he may not know to add missing paths, as well.
>> 
>> Or let me know which ones are missing and I'll add that.

Thank you,

> I have gone through asound.state to look for inconsistencies with the
> diagram. All the wrong or missing paths are on DAC_R1, which should
> just be made symmetrical to DAC_L1. Also, the "external feedback"
> value of the Right HPCOM Mux is not represented on the diagram (see
> register 38). There were many other inconsistencies, but because of
> your DTS (see below).
> 
> I had told you in one of my previous posts that there were weird
> things that should not be present, like the mono controls, and indeed:
> your DTS is wrong. You should replace
>  compatible = "ti,tlv320aic3x";
> with
>  compatible = "ti,tlv320aic3104";

I'll try this, but it took me a long time to get the DTS to do the right thing at all. In fact, one of my problems to solve soon is getting it all to work in a 4.1 kernel (currently I'm using 3.8). In 4.1, the problem I run into is the MCLK isn't getting set correctly (it generates a 24 MHz clock instead of a 12 MHz clock).

I feel like I originally tried "ti,tlv320aic3104" and that didn't work. However, I will try it again tonight.

> That will remove a lot of N/A controls (1: fix your .dts, 2: restore
> my asound.state, 3: store it in order to remove extra controls) that
> may have an effect on your hiss if used: all Mono, Line2, and Mic3
> controls. Some Mic2 controls should also appear, which you should
> disable.

Thank you, that makes sense. I appreciate it.


-- 
Rick Mann
rmann at latencyzero.com




More information about the Alsa-devel mailing list