diff options
author | Christian Gmeiner <christian.gmeiner@gmail.com> | 2008-04-28 08:37:18 +0000 |
---|---|---|
committer | Christian Gmeiner <christian.gmeiner@gmail.com> | 2008-04-28 08:37:18 +0000 |
commit | 8391526f794b296e5b6edd5707bbf25b5be73e17 (patch) | |
tree | c35e4565831b3a822394e98da32dc79db339345b /firmware/drivers | |
parent | 17f7adb90d232e6dece891790405d1b99b5b8215 (diff) | |
download | rockbox-8391526f794b296e5b6edd5707bbf25b5be73e17.tar.gz rockbox-8391526f794b296e5b6edd5707bbf25b5be73e17.zip |
* introduce AUDIOHW_CAPS to define which audio codec can do what kind of operations in hw, e.g. setting bass
* added documentation why and when we need the software based prescaler
* implement audiohw_set_bass and audiohw_set_treble for mas35xx
* clean up sound_set_bass and sound_set_treble
* simplify some #ifdef logic
* fix special handling of WM8751 - looking for tester :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17274 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/audio/mas35xx.c | 20 | ||||
-rw-r--r-- | firmware/drivers/audio/wm8751.c | 2 |
2 files changed, 21 insertions, 1 deletions
diff --git a/firmware/drivers/audio/mas35xx.c b/firmware/drivers/audio/mas35xx.c index dac890ddc8..983818bf61 100644 --- a/firmware/drivers/audio/mas35xx.c +++ b/firmware/drivers/audio/mas35xx.c | |||
@@ -150,3 +150,23 @@ void audiohw_set_stereo_width(int val) | |||
150 | set_channel_config(); | 150 | set_channel_config(); |
151 | } | 151 | } |
152 | } | 152 | } |
153 | |||
154 | void audiohw_set_bass(int val) | ||
155 | { | ||
156 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | ||
157 | unsigned tmp = ((unsigned)(val * 8) & 0xff) << 8; | ||
158 | mas_codec_writereg(0x14, tmp); | ||
159 | #elif CONFIG_CODEC == MAS3507D | ||
160 | mas_writereg(MAS_REG_KBASS, bass_table[val+15]); | ||
161 | #endif | ||
162 | } | ||
163 | |||
164 | void audiohw_set_treble(int val) | ||
165 | { | ||
166 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | ||
167 | unsigned tmp = ((unsigned)(val * 8) & 0xff) << 8; | ||
168 | mas_codec_writereg(0x15, tmp); | ||
169 | #elif CONFIG_CODEC == MAS3507D | ||
170 | mas_writereg(MAS_REG_KTREBLE, treble_table[val+15]); | ||
171 | #endif | ||
172 | } | ||
diff --git a/firmware/drivers/audio/wm8751.c b/firmware/drivers/audio/wm8751.c index 831f16ab17..26123456b6 100644 --- a/firmware/drivers/audio/wm8751.c +++ b/firmware/drivers/audio/wm8751.c | |||
@@ -79,7 +79,7 @@ static int tone_tenthdb2hw(int value) | |||
79 | /* -6.0db..+0db..+9.0db step 1.5db - translate -60..+0..+90 step 15 | 79 | /* -6.0db..+0db..+9.0db step 1.5db - translate -60..+0..+90 step 15 |
80 | to 10..6..0 step -1. | 80 | to 10..6..0 step -1. |
81 | */ | 81 | */ |
82 | value = 10 - (value + 60) / 15; | 82 | value = (10 - (value + 60) / 15) / 10; |
83 | 83 | ||
84 | if (value == 6) | 84 | if (value == 6) |
85 | value = 0xf; /* 0db -> off */ | 85 | value = 0xf; /* 0db -> off */ |