On Fri, Oct 30, 2015 at 7:11 PM, Caleb Crome caleb@crome.org wrote:
On Fri, Oct 30, 2015 at 3:03 AM, Benoît Thébaudeau benoit.thebaudeau.dev@gmail.com wrote:
Dear Rick Mann,
On Fri, Oct 30, 2015 at 6:45 AM, Rick Mann rmann@latencyzero.com wrote:
On Oct 29, 2015, at 20:43 , Caleb Crome caleb@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