[alsa-devel] Artifacts present in AIC23 capture for 48 KHz sampling rate
Troy Kisky
troy.kisky at boundarydevices.com
Tue Nov 17 20:09:21 CET 2009
Aggarwal, Anuj wrote:
>> -----Original Message-----
>> From: Aggarwal, Anuj
>> Sent: Friday, November 06, 2009 6:28 PM
>> To: alsa-devel at alsa-project.org; 'linux-omap at vger.kernel.org'
>> Subject: Artifacts present in AIC23 capture for 48 KHz sampling rate
>>
>> Hi,
>>
>> I am observing artifacts (sharp spikes at fixed intervals) while
>> capturing audio on AM3517 EVM and AIC23 codec. They are present only
>> in one of the channels when I am capturing at 48 KHz. All other
>> sampling rates are working fine with the above said combination.
>>
>> I have also attached the screenshot taken with the help of Audacity
>> utility. Here, I tried recording silence but artifacts were observed
>> on one channel.
>>
>> Has anyone also observed the similar behavior with AIC23 codec? Any
>> hints on what could be the root cause?
> [Aggarwal, Anuj] On further debugging, I found that the function
> find_rate() in sound/soc/codecs/tlv320aic23.c is not returning
> the correct value for capture in 48KHz sample rate. In USB mode
> (MCLK=12MHz), for 48KHz, it returns 0x7D (CLKOUT=0, CLKIN=1,
> SR[3:0]=0xF, BOSR=1, Normal=1) whereas as per the AIC23B spec,
0x7D would be BOSR = 0, USB/NORMAL = 1, SR=0xff, div2 = 1
The bug is with sr_valid_mask,
static const unsigned short sr_valid_mask[] = {
LOWER_GROUP|UPPER_GROUP, /* Normal, bosr - 0*/
LOWER_GROUP|UPPER_GROUP, /* Normal, bosr - 1*/
LOWER_GROUP, /* Usb, bosr - 0*/
UPPER_GROUP, /* Usb, bosr - 1*/
};
should be
static const unsigned short sr_valid_mask[] = {
LOWER_GROUP|UPPER_GROUP, /* Normal, bosr - 0*/
LOWER_GROUP, /* Usb, bosr - 0*/
LOWER_GROUP|UPPER_GROUP, /* Normal, bosr - 1*/
UPPER_GROUP, /* Usb, bosr - 1*/
};
Can you give this a try and let me know?
Thanks
Troy
More information about the Alsa-devel
mailing list