3.19 on Nokia n900: audio quality awful
From: Pali Rohár <hidden>
Date: 2015-01-30 08:16:27
Also in:
linux-omap, lkml
On Thursday 29 January 2015 21:42:18 Pavel Machek wrote:
Hi!quoted
quoted
quoted
I did this: I'm not sure which one is "main" microphone and which is headset, but I guess 2V should be "close enough" to 2.5V to produce something different from zeros..?Main or integrated is digital microphone which does AD conversion itself and headset is analogue. If DMIC is without bias codec will sample plain zeros from DMIC input but analogue input should always produce some random LSB bits from codec's AD converter. If codec produces zeros also from analogue input then I suppose codec ADC is not powered up or similar. One way to hunt regression if bisecting is not possible due reason or another is to dump and diff codec registers from /sys/kernel/debug/regmap/ using both working commit and head.I tried 2.6.28... where recording was, but it does not support regmap. Then I tried 3.14, but could not get recording to work there.quoted
quoted
quoted
tlv320aic3x_aux: tlv320aic3x at 19 {@@ -502,6 +504,8 @@ DRVDD-supply = <&vmmc2>; IOVDD-supply = <&vio>; DVDD-supply = <&vio>; + + ai3x-micbias-vg = <1>; };This should be 2, i.e. 2.5 V according to Documentation/devicetree/bindings/sound/tlv320aic3x.txt. I think 2 V is too low for some headset mics and that was the reason for 2.5 V.Ok, tried that, but no change.quoted
Can you also try this patch to correct the DAPM route for the
rx51:
Yes, with the patch below (and dts updates I did) recording works. Another interesting note is that audio quality is not that horrible when playing 8 kHz, mono signal... it is mostly what I'd expect. Playing 44.1kHz, stereo mp3 .. is not good. Tested-by: Pavel Machek <redacted> Thanks, Pavelquoted
diff --git a/sound/soc/omap/rx51.c b/sound/soc/omap/rx51.c index 04896d6252a2..7f299357c2d2 100644 --- a/sound/soc/omap/rx51.c +++ b/sound/soc/omap/rx51.c@@ -250,14 +250,14 @@ static const struct snd_soc_dapm_routeaudio_map[] = { {"FM Transmitter", NULL, "LLOUT"}, {"FM Transmitter", NULL, "RLOUT"}, - {"DMic Rate 64", NULL, "Mic Bias"}, - {"Mic Bias", NULL, "DMic"}, + {"DMic Rate 64", NULL, "DMic"}, + {"DMic", NULL, "Mic Bias"}, {"b LINE2R", NULL, "MONO_LOUT"}, {"Earphone", NULL, "b HPLOUT"}, - {"LINE1L", NULL, "b Mic Bias"}, - {"b Mic Bias", NULL, "HS Mic"} + {"LINE1L", NULL, "HS Mic"}, + {"HS Mic", NULL, "b Mic Bias"}, }; static const char * const spk_function[] = {"Off", "On"};
Can you try DT and non-DT boot of 3.19? If there is difference? -- Pali Roh?r pali.rohar at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150130/32aa80ed/attachment.sig>