On Nov 2, 2015, at 13:04 , Benoît Thébaudeau benoit.thebaudeau.dev@gmail.com wrote:
Dear Rick Mann,
On Mon, Nov 2, 2015 at 8:50 AM, Rick Mann rmann@latencyzero.com wrote:
On Oct 30, 2015, at 03:03 , 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.
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.