diff options
author | Antonius Hellmann <toni@rockbox.org> | 2007-05-04 10:28:07 +0000 |
---|---|---|
committer | Antonius Hellmann <toni@rockbox.org> | 2007-05-04 10:28:07 +0000 |
commit | 621cf0788fd69c967688692b7f19c02b6df7a322 (patch) | |
tree | eb84928b456fba6f45cba58e0e94e446a74e790d /firmware/drivers/audio | |
parent | d68a51680f29afddac040dbebf1eeb5c4612ffa9 (diff) | |
download | rockbox-621cf0788fd69c967688692b7f19c02b6df7a322.tar.gz rockbox-621cf0788fd69c967688692b7f19c02b6df7a322.zip |
bugfixes in AS3514 shadow register handling, for details see patch #7101
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13319 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers/audio')
-rw-r--r-- | firmware/drivers/audio/as3514.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/firmware/drivers/audio/as3514.c b/firmware/drivers/audio/as3514.c index 89761fbbe0..3490abdd2d 100644 --- a/firmware/drivers/audio/as3514.c +++ b/firmware/drivers/audio/as3514.c | |||
@@ -28,7 +28,7 @@ | |||
28 | #include "i2c-pp.h" | 28 | #include "i2c-pp.h" |
29 | 29 | ||
30 | /* Shadow registers */ | 30 | /* Shadow registers */ |
31 | int as3514_regs[0x1D]; | 31 | int as3514_regs[0x1E]; /* last audio register: PLLMODE 0x1d */ |
32 | 32 | ||
33 | /* | 33 | /* |
34 | * little helper method to set register values. | 34 | * little helper method to set register values. |
@@ -41,7 +41,15 @@ static void as3514_write(int reg, int value) | |||
41 | { | 41 | { |
42 | DEBUGF("as3514 error reg=0x%x", reg); | 42 | DEBUGF("as3514 error reg=0x%x", reg); |
43 | } | 43 | } |
44 | as3514_regs[reg] = value; | 44 | |
45 | if ((unsigned int)reg < sizeof(as3514_regs) / sizeof(int)) | ||
46 | { | ||
47 | as3514_regs[reg] = value; | ||
48 | } | ||
49 | else | ||
50 | { | ||
51 | DEBUGF("as3514 error reg=0x%x", reg); | ||
52 | } | ||
45 | } | 53 | } |
46 | 54 | ||
47 | /* convert tenth of dB volume to master volume register value */ | 55 | /* convert tenth of dB volume to master volume register value */ |
@@ -104,7 +112,7 @@ int audiohw_init(void) | |||
104 | as3514_write(PLLMODE, 0x04); | 112 | as3514_write(PLLMODE, 0x04); |
105 | 113 | ||
106 | /* read all reg values */ | 114 | /* read all reg values */ |
107 | for (i = 0; i < sizeof(as3514_regs); i++) | 115 | for (i = 0; i < sizeof(as3514_regs) / sizeof(int); i++) |
108 | { | 116 | { |
109 | as3514_regs[i] = i2c_readbyte(AS3514_I2C_ADDR, i); | 117 | as3514_regs[i] = i2c_readbyte(AS3514_I2C_ADDR, i); |
110 | } | 118 | } |