diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2013-04-20 04:06:13 -0400 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2013-04-22 20:38:17 -0400 |
commit | e61e9c61d0ba6990576d59efca07afa13fd97566 (patch) | |
tree | 4b17b22dd4f56568666e25292f38224529ec7113 /firmware/drivers/audio/wm8978.c | |
parent | 91b33d5a3e92d62cf6fb6be875437d35b632caf5 (diff) | |
download | rockbox-e61e9c61d0ba6990576d59efca07afa13fd97566.tar.gz rockbox-e61e9c61d0ba6990576d59efca07afa13fd97566.zip |
Do some cleanup, adjustment and a couple fixes to recent sound changes.
* SOUND_x enum can be generated by audiohw_settings.h along with settings
entries and sound_val2phys.
* VOLUME_MIN and VOLUME_MAX are no longer necessary within sound.c. If
you need them, they are for target-defined purposes.
* Fix up SDL volume implementation in sdl.c. Move sim volume calculation
code to pcm-sdl.c.
* Min trigger tresholds were based upon VOLUME_MIN for some reason.
These setting have nothing to do with playback volume. Since it is no
longer present, set these at -89dB which is the minimum peak meter
sensitivity setting.
* Fix an oversight in wm8758.c. I forgot to add the dB->register
conversion to audiohw_set_volume.
Change-Id: Ie1df33f1793eee75e6793f16bc7bddd16edb7f75
Diffstat (limited to 'firmware/drivers/audio/wm8978.c')
-rw-r--r-- | firmware/drivers/audio/wm8978.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/firmware/drivers/audio/wm8978.c b/firmware/drivers/audio/wm8978.c index 3a86ef204e..69ae608e5d 100644 --- a/firmware/drivers/audio/wm8978.c +++ b/firmware/drivers/audio/wm8978.c | |||
@@ -155,20 +155,17 @@ static void wmc_write_masked(unsigned int reg, unsigned int bits, | |||
155 | * (000000...111111) */ | 155 | * (000000...111111) */ |
156 | static int vol_tenthdb2hw(int db) | 156 | static int vol_tenthdb2hw(int db) |
157 | { | 157 | { |
158 | /* -90dB to +6dB 1dB steps (96 levels) 7bits */ | 158 | /* att DAC AMP result |
159 | /* 1100000 == +6dB (0x60,96) */ | 159 | +6dB 0 +6 96 |
160 | /* 1101010 == 0dB (0x5a,90) */ | 160 | 0dB 0 0 90 |
161 | /* 1000001 == -57dB (0x21,33,DAC) */ | 161 | -57dB 0 -57 33 |
162 | /* 0000001 == -89dB (0x01,01) */ | 162 | -58dB -1 -57 32 |
163 | /* 0000000 == -90dB (0x00,00,Mute) */ | 163 | -89dB -32 -57 1 |
164 | if (db < VOLUME_MIN) | 164 | -90dB -oo -oo 0 */ |
165 | { | 165 | if (db <= -900) |
166 | return 0x0; | 166 | return 0x0; |
167 | } | ||
168 | else | 167 | else |
169 | { | 168 | return db / 10 - -90; |
170 | return (db - VOLUME_MIN) / 10; | ||
171 | } | ||
172 | } | 169 | } |
173 | 170 | ||
174 | void audiohw_preinit(void) | 171 | void audiohw_preinit(void) |