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

Benoît Thébaudeau benoit.thebaudeau.dev at gmail.com
Mon Nov 2 22:04:33 CET 2015


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.

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";
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.

Best regards,
Benoît


More information about the Alsa-devel mailing list