diff options
author | Alan Tull <r80115@freescale.com> | 2009-11-04 20:28:36 -0600 |
---|---|---|
committer | Alan Tull <r80115@freescale.com> | 2010-08-25 11:52:35 -0500 |
commit | b549163158cd479ed2f724e34953465412f6cbce (patch) | |
tree | 117a408b9e9d4b59dcd8847c2c5df9acd4632fcc /sound | |
parent | c01fcfed4d2c0e852161fba3c968fcfedea0d734 (diff) |
ENGR00118016-3 wm8580: update to 2.6.31
wm8580 is using regulators that can't change state. The
regulator driver doesn't handle this case well so it crashes
during regulator_bulk_enable. Eventually this will be fixed in the
regulator driver. For now, remove regulators from list in
wm8580 driver.
Fix spi_rw err. hw_write needs to return transferred data length.
Signed-off-by: Alan Tull <r80115@freescale.com>
Signed-off-by: Wallace Wang <r59996@freescale.com>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/codecs/wm8580.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sound/soc/codecs/wm8580.c b/sound/soc/codecs/wm8580.c index 6a0b6c23b6ce..8b25c4dd05e9 100644 --- a/sound/soc/codecs/wm8580.c +++ b/sound/soc/codecs/wm8580.c @@ -193,11 +193,8 @@ struct pll_state { unsigned int out; }; -#define WM8580_NUM_SUPPLIES 3 +#define WM8580_NUM_SUPPLIES 0 static const char *wm8580_supply_names[WM8580_NUM_SUPPLIES] = { - "AVDD", - "DVDD", - "PVDD", }; /* codec private data */ @@ -1012,6 +1009,7 @@ static struct i2c_driver wm8580_i2c_driver = { */ static inline int spi_rw(void *control_data, char *data, int length) { + int ret; struct spi_transfer t = { .tx_buf = (const void *)data, .rx_buf = (void *)data, @@ -1026,7 +1024,11 @@ static inline int spi_rw(void *control_data, char *data, int length) spi_message_init(&m); spi_message_add_tail(&t, &m); - return spi_sync((struct spi_device *)control_data, &m); + ret = spi_sync((struct spi_device *)control_data, &m); + if (unlikely(ret < 0)) + return ret; + else + return length; } |