summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorAlan Tull <r80115@freescale.com>2009-11-04 20:28:36 -0600
committerJustin Waters <justin.waters@timesys.com>2010-03-25 14:00:37 -0400
commit4a9fd8b508c1aec1ad03c45149bc61333a8cda8a (patch)
tree77fa7fdcf3995e9b3f585c8187e4c9435e70a8b4 /sound
parent030e1493b9867161dcdf34d1708212363451853b (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.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/sound/soc/codecs/wm8580.c b/sound/soc/codecs/wm8580.c
index e314f3cf9ba6..f6627793d98b 100644
--- a/sound/soc/codecs/wm8580.c
+++ b/sound/soc/codecs/wm8580.c
@@ -192,11 +192,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 */
@@ -1086,6 +1083,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,
@@ -1100,7 +1098,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;
}