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

Benoît Thébaudeau benoit.thebaudeau.dev at gmail.com
Fri Oct 30 19:55:27 CET 2015


On Fri, Oct 30, 2015 at 7:11 PM, Caleb Crome <caleb at crome.org> wrote:
> On Fri, Oct 30, 2015 at 3:03 AM, 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.
>
> Hey, that's great to know.  I guess I haven't gone over every register
> and compared to the drawing.  Thanks for the info.

You're welcome. As an example, if you follow the paths after the upper
outputs of the DAC_L/R switches on the diagram, you will see that
DAC_L1 can be connected to the LEFT_LO mixer, but that DAC_R1 cannot
be connected to the RIGHT_LO mixer, which does not make sense as
confirmed by the figure 22 in 10.3.6 (also see the description of the
register 41 in the page 0):
http://www.ti.com/lit/ds/symlink/tlv320aic3104.pdf

This chapter also recommends to bypass the line out mixers (using
DAC_L3 and DAC_R3) for the use case discussed in this thread in order
to get higher-quality output performance and lower-power operation
(same in 10.3.7 with DAC_L2 and DAC_R2 for HP out), which contradicts
the advice given on E2E. That's why I have used DAC_L1 and DAC_R1 in
my asound.state, to match E2E, but whichever is the best, the
difference should not be audible with regular speakers I think.

Best regards,
Benoît


More information about the Alsa-devel mailing list