|
From: <sle...@us...> - 2007-07-10 19:43:43
|
Revision: 1127
http://svn.sourceforge.net/hackndev/?rev=1127&view=rev
Author: sleep_walker
Date: 2007-07-10 12:43:40 -0700 (Tue, 10 Jul 2007)
Log Message:
-----------
palmtt3: fixed sound quality problem in tsc2101 ;)
Modified Paths:
--------------
linux4palm/linux/trunk/drivers/mfd/tsc2101.c
Modified: linux4palm/linux/trunk/drivers/mfd/tsc2101.c
===================================================================
--- linux4palm/linux/trunk/drivers/mfd/tsc2101.c 2007-07-10 13:06:41 UTC (rev 1126)
+++ linux4palm/linux/trunk/drivers/mfd/tsc2101.c 2007-07-10 19:43:40 UTC (rev 1127)
@@ -172,45 +172,46 @@
printk("Rate: %d ", rate);
if (rate >= 48000)
- { div = 7; fs_44 = 1; }
+ { div = 0; fs_44 = 0; }
else if (rate >= 44100)
- { div = 7; fs_44 = 0; }
+ { div = 0; fs_44 = 1; }
else if (rate >= 32000)
- { div = 6; fs_44 = 1; }
+ { div = 1; fs_44 = 0; }
else if (rate >= 29400)
- { div = 6; fs_44 = 0; }
+ { div = 1; fs_44 = 1; }
else if (rate >= 24000)
- { div = 5; fs_44 = 1; }
+ { div = 2; fs_44 = 0; }
else if (rate >= 22050)
- { div = 5; fs_44 = 0; }
+ { div = 2; fs_44 = 1; }
else if (rate >= 16000)
- { div = 4; fs_44 = 1; }
+ { div = 3; fs_44 = 0; }
else if (rate >= 14700)
+ { div = 3; fs_44 = 1; }
+ else if (rate >= 12000)
{ div = 4; fs_44 = 0; }
- else if (rate >= 12000)
- { div = 3; fs_44 = 1; }
else if (rate >= 11025)
- { div = 3; fs_44 = 0; }
+ { div = 4; fs_44 = 1; }
else if (rate >= 9600)
- { div = 2; fs_44 = 1; }
+ { div = 5; fs_44 = 0; }
else if (rate >= 8820)
- { div = 2; fs_44 = 0; }
+ { div = 5; fs_44 = 1; }
else if (rate >= 8727)
- { div = 1; fs_44 = 1; }
+ { div = 6; fs_44 = 0; }
else if (rate >= 8018)
- { div = 1; fs_44 = 0; }
+ { div = 6; fs_44 = 1; }
else if (rate >= 8000)
- { div = 0; fs_44 = 1; }
+ { div = 7; fs_44 = 0; }
else
- { div = 0; fs_44 = 0; }
+ { div = 7; fs_44 = 1; }
/* wait for any frame to complete */
udelay(125);
/* Set AC1 */
data = tsc2101_regread(snd_data, TSC2101_REG_AUDIOCON1);
- /*Clear prev settings */
+ /* Clear prev settings */
data &= ~(TSC2101_DACFS(0xF) | TSC2101_ADCFS(0xF));
+
data |= TSC2101_DACFS(div) | TSC2101_ADCFS(div);
tsc2101_regwrite(snd_data, TSC2101_REG_AUDIOCON1, data);
@@ -657,8 +658,8 @@
/* enable touch detection, 84usec precharge time, 32 usec sense time */
tsc2101_regwrite(devdata, TSC2101_REG_CONFIG, 0x08);
- /* 3 msec conversion delays */
- tsc2101_regwrite(devdata, TSC2101_REG_DELAY, 0x0900);
+ /* 3 msec conversion delays, 12 MHz MClk */
+ tsc2101_regwrite(devdata, TSC2101_REG_DELAY, 0x0900 | 0xc);
/*
* TSC2101-controlled conversions
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|