diff options
author | Thom Johansen <thomj@rockbox.org> | 2006-03-22 13:04:49 +0000 |
---|---|---|
committer | Thom Johansen <thomj@rockbox.org> | 2006-03-22 13:04:49 +0000 |
commit | 473fc2ba74dd7e35027c3b7066e34069df5254de (patch) | |
tree | 28975e5505477a3ec79332cb8a61b305023e89d9 | |
parent | ce6527b7d2a346e1cd6f1e8cc809608adf15982d (diff) | |
download | rockbox-473fc2ba74dd7e35027c3b7066e34069df5254de.tar.gz rockbox-473fc2ba74dd7e35027c3b7066e34069df5254de.zip |
Fixed line out volume for 4G, Nano and 5G Ipods. Partial patch #4814 by
Ralf Herz.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9181 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/drivers/wm8758.c | 5 | ||||
-rw-r--r-- | firmware/drivers/wm8975.c | 5 | ||||
-rw-r--r-- | firmware/export/wm8758.h | 1 | ||||
-rw-r--r-- | firmware/export/wm8975.h | 1 | ||||
-rw-r--r-- | firmware/sound.c | 4 |
5 files changed, 16 insertions, 0 deletions
diff --git a/firmware/drivers/wm8758.c b/firmware/drivers/wm8758.c index 3867748417..e99711066a 100644 --- a/firmware/drivers/wm8758.c +++ b/firmware/drivers/wm8758.c | |||
@@ -148,6 +148,11 @@ int wmcodec_set_master_vol(int vol_l, int vol_r) | |||
148 | wm8758_write(LOUT1VOL, vol_l); | 148 | wm8758_write(LOUT1VOL, vol_l); |
149 | wm8758_write(ROUT1VOL, 0x100 | vol_r); | 149 | wm8758_write(ROUT1VOL, 0x100 | vol_r); |
150 | 150 | ||
151 | return 0; | ||
152 | } | ||
153 | |||
154 | int wmcodec_set_lineout_vol(int vol_l, int vol_r) | ||
155 | { | ||
151 | /* OUT2 */ | 156 | /* OUT2 */ |
152 | wm8758_write(LOUT2VOL, vol_l); | 157 | wm8758_write(LOUT2VOL, vol_l); |
153 | wm8758_write(ROUT2VOL, 0x100 | vol_r); | 158 | wm8758_write(ROUT2VOL, 0x100 | vol_r); |
diff --git a/firmware/drivers/wm8975.c b/firmware/drivers/wm8975.c index 51c12f1505..64a123b883 100644 --- a/firmware/drivers/wm8975.c +++ b/firmware/drivers/wm8975.c | |||
@@ -176,6 +176,11 @@ int wmcodec_set_master_vol(int vol_l, int vol_r) | |||
176 | wm8975_write(LOUT1VOL, vol_l); | 176 | wm8975_write(LOUT1VOL, vol_l); |
177 | wm8975_write(ROUT1VOL, 0x100 | vol_r); | 177 | wm8975_write(ROUT1VOL, 0x100 | vol_r); |
178 | 178 | ||
179 | return 0; | ||
180 | } | ||
181 | |||
182 | int wmcodec_set_lineout_vol(int vol_l, int vol_r) | ||
183 | { | ||
179 | /* OUT2 */ | 184 | /* OUT2 */ |
180 | wm8975_write(LOUT2VOL, vol_l); | 185 | wm8975_write(LOUT2VOL, vol_l); |
181 | wm8975_write(ROUT2VOL, 0x100 | vol_r); | 186 | wm8975_write(ROUT2VOL, 0x100 | vol_r); |
diff --git a/firmware/export/wm8758.h b/firmware/export/wm8758.h index adc17f86d7..13eccb9763 100644 --- a/firmware/export/wm8758.h +++ b/firmware/export/wm8758.h | |||
@@ -24,6 +24,7 @@ extern void wmcodec_reset(void); | |||
24 | extern int wmcodec_init(void); | 24 | extern int wmcodec_init(void); |
25 | extern void wmcodec_enable_output(bool enable); | 25 | extern void wmcodec_enable_output(bool enable); |
26 | extern int wmcodec_set_master_vol(int vol_l, int vol_r); | 26 | extern int wmcodec_set_master_vol(int vol_l, int vol_r); |
27 | extern int wmcodec_set_lineout_vol(int vol_l, int vol_r); | ||
27 | extern int wmcodec_set_mixer_vol(int channel1, int channel2); | 28 | extern int wmcodec_set_mixer_vol(int channel1, int channel2); |
28 | extern void wmcodec_set_bass(int value); | 29 | extern void wmcodec_set_bass(int value); |
29 | extern void wmcodec_set_treble(int value); | 30 | extern void wmcodec_set_treble(int value); |
diff --git a/firmware/export/wm8975.h b/firmware/export/wm8975.h index 4d575c3d90..a6769390c0 100644 --- a/firmware/export/wm8975.h +++ b/firmware/export/wm8975.h | |||
@@ -24,6 +24,7 @@ extern void wmcodec_reset(void); | |||
24 | extern int wmcodec_init(void); | 24 | extern int wmcodec_init(void); |
25 | extern void wmcodec_enable_output(bool enable); | 25 | extern void wmcodec_enable_output(bool enable); |
26 | extern int wmcodec_set_master_vol(int vol_l, int vol_r); | 26 | extern int wmcodec_set_master_vol(int vol_l, int vol_r); |
27 | extern int wmcodec_set_lineout_vol(int vol_l, int vol_r); | ||
27 | extern int wmcodec_set_mixer_vol(int channel1, int channel2); | 28 | extern int wmcodec_set_mixer_vol(int channel1, int channel2); |
28 | extern void wmcodec_set_bass(int value); | 29 | extern void wmcodec_set_bass(int value); |
29 | extern void wmcodec_set_treble(int value); | 30 | extern void wmcodec_set_treble(int value); |
diff --git a/firmware/sound.c b/firmware/sound.c index a3eb6da8a8..88412c4094 100644 --- a/firmware/sound.c +++ b/firmware/sound.c | |||
@@ -453,6 +453,10 @@ static void set_prescaled_volume(void) | |||
453 | uda1380_set_master_vol(tenthdb2master(l), tenthdb2master(r)); | 453 | uda1380_set_master_vol(tenthdb2master(l), tenthdb2master(r)); |
454 | #elif defined(HAVE_WM8975) || defined(HAVE_WM8758) || defined(HAVE_WM8731) | 454 | #elif defined(HAVE_WM8975) || defined(HAVE_WM8758) || defined(HAVE_WM8731) |
455 | wmcodec_set_master_vol(tenthdb2master(l), tenthdb2master(r)); | 455 | wmcodec_set_master_vol(tenthdb2master(l), tenthdb2master(r)); |
456 | #if defined(HAVE_WM8975) || defined(HAVE_WM8758) | ||
457 | wmcodec_set_lineout_vol(tenthdb2master(0), tenthdb2master(0)); | ||
458 | #endif | ||
459 | |||
456 | #endif | 460 | #endif |
457 | } | 461 | } |
458 | #endif /* (CONFIG_CODEC == MAS3507D) || defined HAVE_UDA1380 */ | 462 | #endif /* (CONFIG_CODEC == MAS3507D) || defined HAVE_UDA1380 */ |