From 473fc2ba74dd7e35027c3b7066e34069df5254de Mon Sep 17 00:00:00 2001 From: Thom Johansen Date: Wed, 22 Mar 2006 13:04:49 +0000 Subject: 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 --- firmware/drivers/wm8758.c | 5 +++++ firmware/drivers/wm8975.c | 5 +++++ firmware/export/wm8758.h | 1 + firmware/export/wm8975.h | 1 + firmware/sound.c | 4 ++++ 5 files changed, 16 insertions(+) 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) wm8758_write(LOUT1VOL, vol_l); wm8758_write(ROUT1VOL, 0x100 | vol_r); + return 0; +} + +int wmcodec_set_lineout_vol(int vol_l, int vol_r) +{ /* OUT2 */ wm8758_write(LOUT2VOL, vol_l); 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) wm8975_write(LOUT1VOL, vol_l); wm8975_write(ROUT1VOL, 0x100 | vol_r); + return 0; +} + +int wmcodec_set_lineout_vol(int vol_l, int vol_r) +{ /* OUT2 */ wm8975_write(LOUT2VOL, vol_l); 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); extern int wmcodec_init(void); extern void wmcodec_enable_output(bool enable); extern int wmcodec_set_master_vol(int vol_l, int vol_r); +extern int wmcodec_set_lineout_vol(int vol_l, int vol_r); extern int wmcodec_set_mixer_vol(int channel1, int channel2); extern void wmcodec_set_bass(int value); 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); extern int wmcodec_init(void); extern void wmcodec_enable_output(bool enable); extern int wmcodec_set_master_vol(int vol_l, int vol_r); +extern int wmcodec_set_lineout_vol(int vol_l, int vol_r); extern int wmcodec_set_mixer_vol(int channel1, int channel2); extern void wmcodec_set_bass(int value); 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) uda1380_set_master_vol(tenthdb2master(l), tenthdb2master(r)); #elif defined(HAVE_WM8975) || defined(HAVE_WM8758) || defined(HAVE_WM8731) wmcodec_set_master_vol(tenthdb2master(l), tenthdb2master(r)); +#if defined(HAVE_WM8975) || defined(HAVE_WM8758) + wmcodec_set_lineout_vol(tenthdb2master(0), tenthdb2master(0)); +#endif + #endif } #endif /* (CONFIG_CODEC == MAS3507D) || defined HAVE_UDA1380 */ -- cgit v1.2.3