diff options
| author | Marcin Bukat <marcin.bukat@gmail.com> | 2012-07-10 20:09:21 +0200 |
|---|---|---|
| committer | Marcin Bukat <marcin.bukat@gmail.com> | 2012-07-10 20:09:21 +0200 |
| commit | 676f72a0f41847b5356d514b31d981154ad125bb (patch) | |
| tree | 2fafb52c772ba5168ca3ff87f3111d5acd30d70f /firmware | |
| parent | 9f13f881b32bebad9486bfaa1e543cbd6f64ae36 (diff) | |
| download | rockbox-676f72a0f41847b5356d514b31d981154ad125bb.zip rockbox-676f72a0f41847b5356d514b31d981154ad125bb.tar.gz rockbox-676f72a0f41847b5356d514b31d981154ad125bb.tar.bz2 rockbox-676f72a0f41847b5356d514b31d981154ad125bb.tar.xz | |
rk27xx codec: Fix volume setting
Change-Id: If57e0225fed4a9f87dff9661b21b2e06fa3d341e
Diffstat (limited to 'firmware')
| -rw-r--r-- | firmware/drivers/audio/rk27xx_codec.c | 19 | ||||
| -rw-r--r-- | firmware/export/rk27xx_codec.h | 4 |
2 files changed, 14 insertions, 9 deletions
diff --git a/firmware/drivers/audio/rk27xx_codec.c b/firmware/drivers/audio/rk27xx_codec.c index ebc6c47..c2b5980 100644 --- a/firmware/drivers/audio/rk27xx_codec.c +++ b/firmware/drivers/audio/rk27xx_codec.c @@ -28,7 +28,7 @@ #include "i2c-rk27xx.h" const struct sound_settings_info audiohw_settings[] = { - [SOUND_VOLUME] = {"dB", 1, 5,-335, 45,-255}, + [SOUND_VOLUME] = {"dB", 0, 1, -34, 4, -25}, /* HAVE_SW_TONE_CONTROLS */ [SOUND_BASS] = {"dB", 0, 1, -24, 24, 0}, [SOUND_TREBLE] = {"dB", 0, 1, -24, 24, 0}, @@ -72,7 +72,7 @@ int tenthdb2master(int tdb) */ if (tdb < VOLUME_MIN) - return 31; + return 32; else if (tdb < -115) return -(((tdb + 115)/20) - 20); /* 2.0 dB steps */ else if (tdb < 5) @@ -150,11 +150,16 @@ void audiohw_set_frequency(int fsel) void audiohw_set_master_vol(int vol_l, int vol_r) { - uint8_t val; - val = (uint8_t)(vol_r & 0x1f); - codec_write(CGR9, val); + if (vol_l > 31 || vol_r > 31) + { + audiohw_mute(true); + } + else + { + audiohw_mute(false); - val = (uint8_t)(vol_l & 0x1f); - codec_write(CGR8, val); + codec_write(CGR9, vol_r); + codec_write(CGR8, vol_l); + } } diff --git a/firmware/export/rk27xx_codec.h b/firmware/export/rk27xx_codec.h index e770e47..5fdf0a0 100644 --- a/firmware/export/rk27xx_codec.h +++ b/firmware/export/rk27xx_codec.h @@ -24,8 +24,8 @@ #ifndef _RK27XX_CODEC_H_ #define _RK27XX_CODEC_H_ -#define VOLUME_MIN -335 -#define VOLUME_MAX 45 +#define VOLUME_MIN -330 +#define VOLUME_MAX 40 #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP) extern int tenthdb2master(int db); |