aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/codecs/tlv320dac33.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/sound/soc/codecs/tlv320dac33.c b/sound/soc/codecs/tlv320dac33.c
index 5b94a151539c..80a26418827c 100644
--- a/sound/soc/codecs/tlv320dac33.c
+++ b/sound/soc/codecs/tlv320dac33.c
@@ -121,7 +121,7 @@ struct tlv320dac33_priv {
121 unsigned int uthr; 121 unsigned int uthr;
122 122
123 enum dac33_state state; 123 enum dac33_state state;
124 void *control_data; 124 struct i2c_client *i2c;
125}; 125};
126 126
127static const u8 dac33_reg[DAC33_CACHEREGNUM] = { 127static const u8 dac33_reg[DAC33_CACHEREGNUM] = {
@@ -200,7 +200,7 @@ static int dac33_read(struct snd_soc_codec *codec, unsigned int reg,
200 200
201 /* If powered off, return the cached value */ 201 /* If powered off, return the cached value */
202 if (dac33->chip_power) { 202 if (dac33->chip_power) {
203 val = i2c_smbus_read_byte_data(codec->control_data, value[0]); 203 val = i2c_smbus_read_byte_data(dac33->i2c, value[0]);
204 if (val < 0) { 204 if (val < 0) {
205 dev_err(codec->dev, "Read failed (%d)\n", val); 205 dev_err(codec->dev, "Read failed (%d)\n", val);
206 value[0] = dac33_read_reg_cache(codec, reg); 206 value[0] = dac33_read_reg_cache(codec, reg);
@@ -233,7 +233,7 @@ static int dac33_write(struct snd_soc_codec *codec, unsigned int reg,
233 233
234 dac33_write_reg_cache(codec, data[0], data[1]); 234 dac33_write_reg_cache(codec, data[0], data[1]);
235 if (dac33->chip_power) { 235 if (dac33->chip_power) {
236 ret = codec->hw_write(codec->control_data, data, 2); 236 ret = i2c_master_send(dac33->i2c, data, 2);
237 if (ret != 2) 237 if (ret != 2)
238 dev_err(codec->dev, "Write failed (%d)\n", ret); 238 dev_err(codec->dev, "Write failed (%d)\n", ret);
239 else 239 else
@@ -280,7 +280,7 @@ static int dac33_write16(struct snd_soc_codec *codec, unsigned int reg,
280 if (dac33->chip_power) { 280 if (dac33->chip_power) {
281 /* We need to set autoincrement mode for 16 bit writes */ 281 /* We need to set autoincrement mode for 16 bit writes */
282 data[0] |= DAC33_I2C_ADDR_AUTOINC; 282 data[0] |= DAC33_I2C_ADDR_AUTOINC;
283 ret = codec->hw_write(codec->control_data, data, 3); 283 ret = i2c_master_send(dac33->i2c, data, 3);
284 if (ret != 3) 284 if (ret != 3)
285 dev_err(codec->dev, "Write failed (%d)\n", ret); 285 dev_err(codec->dev, "Write failed (%d)\n", ret);
286 else 286 else
@@ -1379,8 +1379,6 @@ static int dac33_soc_probe(struct snd_soc_codec *codec)
1379 struct tlv320dac33_priv *dac33 = snd_soc_codec_get_drvdata(codec); 1379 struct tlv320dac33_priv *dac33 = snd_soc_codec_get_drvdata(codec);
1380 int ret = 0; 1380 int ret = 0;
1381 1381
1382 codec->control_data = dac33->control_data;
1383 codec->hw_write = (hw_write_t) i2c_master_send;
1384 dac33->codec = codec; 1382 dac33->codec = codec;
1385 1383
1386 /* Read the tlv320dac33 ID registers */ 1384 /* Read the tlv320dac33 ID registers */
@@ -1499,7 +1497,7 @@ static int dac33_i2c_probe(struct i2c_client *client,
1499 if (dac33 == NULL) 1497 if (dac33 == NULL)
1500 return -ENOMEM; 1498 return -ENOMEM;
1501 1499
1502 dac33->control_data = client; 1500 dac33->i2c = client;
1503 mutex_init(&dac33->mutex); 1501 mutex_init(&dac33->mutex);
1504 spin_lock_init(&dac33->lock); 1502 spin_lock_init(&dac33->lock);
1505 1503