lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 29 Jan 2015 13:19:27 +0200
From:	Peter Ujfalusi <peter.ujfalusi@...com>
To:	Jarkko Nikula <jarkko.nikula@...mer.com>,
	Pavel Machek <pavel@....cz>
CC:	<pali.rohar@...il.com>, <sre@...ian.org>, <sre@...g0.de>,
	kernel list <linux-kernel@...r.kernel.org>,
	linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>,
	<linux-omap@...r.kernel.org>, <tony@...mide.com>,
	<khilman@...nel.org>, <aaro.koskinen@....fi>,
	<ivo.g.dimitrov.75@...il.com>
Subject: Re: 3.19 on Nokia n900: audio quality awful

On 01/29/2015 09:35 AM, Jarkko Nikula wrote:
> On Wed, Jan 28, 2015 at 11:41:44PM +0100, Pavel Machek wrote:
>> On Wed 2015-01-28 20:15:46, Jarkko Nikula wrote:
>>> On 01/26/2015 03:20 PM, Peter Ujfalusi wrote:
>>>> On 01/18/2015 02:01 PM, Pavel Machek wrote:
>>> No need to go that far. N900 has been supported in mainline since 2.6.39
>>> or so. Part A of AIC34 (which is basically dual AIC33 in a same package)
>>> drives 2 V for the digital microphone bias and part B 2.5 V for the headset.
>>
>> Let me try... Umm, no change here :-(
>>
>> root@...0:/tmp# arecord delme
>> Recording WAVE 'delme' : Unsigned 8 bit, Rate 8000 Hz, Mono
>> ^CAborted by signal Interrupt...
>> root@...0:/tmp# hexdump delme
>> 0000000 4952 4646 987c 0000 4157 4556 6d66 2074
>> 0000010 0010 0000 0001 0001 1f40 0000 1f40 0000
>> 0000020 0001 0008 6164 6174 9858 0000 8080 8080
>> 0000030 8080 8080 8080 8080 8080 8080 8080 8080
>> *
>> 0009880
>> root@...0:/tmp# aplay delme
>> Playing WAVE 'delme' : Unsigned 8 bit, Rate 8000 Hz, Mono
>> root@...0:/tmp#
>>
>> 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.
> 
>> diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
>> index 48b0987..f18a5b0 100644
>> --- a/arch/arm/boot/dts/omap3-n900.dts
>> +++ b/arch/arm/boot/dts/omap3-n900.dts
>> @@ -491,6 +491,8 @@
>>  		DRVDD-supply = <&vmmc2>;
>>  		IOVDD-supply = <&vio>;
>>  		DVDD-supply = <&vio>;
>> +
>> +		ai3x-micbias-vg = <1>;
>>  	};
> Looks ok for digital mic.
> 
>>  
>>  	tlv320aic3x_aux: tlv320aic3x@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.

Can you also try this patch to correct the DAPM route for the rx51:

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_route audio_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"};

-- 
Péter
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ