diff options
-rw-r--r-- | sound/soc/codecs/tlv320dac33.c | 12 |
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 | ||
127 | static const u8 dac33_reg[DAC33_CACHEREGNUM] = { | 127 | static 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 | ||