summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2007-01-14 12:38:40 +0000
committerJens Arnold <amiconn@rockbox.org>2007-01-14 12:38:40 +0000
commit72f1027b3edae94ad9962c654519c2cab8566078 (patch)
treebe2a6f877292070bcea86882994a9e061e44504b
parenta25fa2c6a67760c7fd59d9d3c23ca307c77630ba (diff)
downloadrockbox-72f1027b3edae94ad9962c654519c2cab8566078.tar.gz
rockbox-72f1027b3edae94ad9962c654519c2cab8566078.zip
Enabled zero crossing detection for volume changes in the WM8721/WM8731 driver (iPod G3, iPod Mini G1/G2, Iriver H10).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12006 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/wm8731l.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/firmware/drivers/wm8731l.c b/firmware/drivers/wm8731l.c
index 4f0f249149..62b1b6a81e 100644
--- a/firmware/drivers/wm8731l.c
+++ b/firmware/drivers/wm8731l.c
@@ -43,6 +43,9 @@
43 43
44#define IPOD_PCM_LEVEL 0x65 /* -6dB */ 44#define IPOD_PCM_LEVEL 0x65 /* -6dB */
45 45
46/* use zero crossing to reduce clicks during volume changes */
47#define VOLUME_ZC_WAIT (1<<7)
48
46/* convert tenth of dB volume (-730..60) to master volume register value */ 49/* convert tenth of dB volume (-730..60) to master volume register value */
47int tenthdb2master(int db) 50int tenthdb2master(int db)
48{ 51{
@@ -159,8 +162,8 @@ int audiohw_set_master_vol(int vol_l, int vol_r)
159 /* 0110000 == -73dB */ 162 /* 0110000 == -73dB */
160 /* 0101111 == mute (0x2f) */ 163 /* 0101111 == mute (0x2f) */
161 164
162 wmcodec_write(LOUTVOL, vol_l); 165 wmcodec_write(LOUTVOL, VOLUME_ZC_WAIT | vol_l);
163 wmcodec_write(ROUTVOL, vol_r); 166 wmcodec_write(ROUTVOL, VOLUME_ZC_WAIT | vol_r);
164 167
165 return 0; 168 return 0;
166} 169}