diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-07-05 12:35:28 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-07-05 12:35:28 -0400 |
commit | 5f345346dd715d53fb2ed168a4fd432e1bdcb14d (patch) | |
tree | fc9deba752452f44a3e375caa6762eb307d8f310 /sound | |
parent | 1e30a5828e4e9e49fcc6e471bf0d99d4fd273ba4 (diff) |
ASoC: Remove use of hw_read from TLV320AIC3x driver
The TLV320AIC3x driver is currently the only user of the CODEC hw_read
operation and is jumping through some hoops in order to do so. In order
to support future refactoring to make the hw_read operation more usable
unwrap the usage in this driver to avoid its use.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/codecs/tlv320aic3x.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c index ab099f482487..0cf401fec807 100644 --- a/sound/soc/codecs/tlv320aic3x.c +++ b/sound/soc/codecs/tlv320aic3x.c | |||
@@ -145,8 +145,8 @@ static int aic3x_read(struct snd_soc_codec *codec, unsigned int reg, | |||
145 | u8 *value) | 145 | u8 *value) |
146 | { | 146 | { |
147 | *value = reg & 0xff; | 147 | *value = reg & 0xff; |
148 | if (codec->hw_read(codec->control_data, value, 1) != 1) | 148 | |
149 | return -EIO; | 149 | value[0] = i2c_smbus_read_byte_data(codec->control_data, value[0]); |
150 | 150 | ||
151 | aic3x_write_reg_cache(codec, reg, *value); | 151 | aic3x_write_reg_cache(codec, reg, *value); |
152 | return 0; | 152 | return 0; |
@@ -1316,12 +1316,6 @@ static struct i2c_driver aic3x_i2c_driver = { | |||
1316 | .id_table = aic3x_i2c_id, | 1316 | .id_table = aic3x_i2c_id, |
1317 | }; | 1317 | }; |
1318 | 1318 | ||
1319 | static int aic3x_i2c_read(struct i2c_client *client, u8 *value, int len) | ||
1320 | { | ||
1321 | value[0] = i2c_smbus_read_byte_data(client, value[0]); | ||
1322 | return (len == 1); | ||
1323 | } | ||
1324 | |||
1325 | static int aic3x_add_i2c_device(struct platform_device *pdev, | 1319 | static int aic3x_add_i2c_device(struct platform_device *pdev, |
1326 | const struct aic3x_setup_data *setup) | 1320 | const struct aic3x_setup_data *setup) |
1327 | { | 1321 | { |
@@ -1394,7 +1388,6 @@ static int aic3x_probe(struct platform_device *pdev) | |||
1394 | #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE) | 1388 | #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE) |
1395 | if (setup->i2c_address) { | 1389 | if (setup->i2c_address) { |
1396 | codec->hw_write = (hw_write_t) i2c_master_send; | 1390 | codec->hw_write = (hw_write_t) i2c_master_send; |
1397 | codec->hw_read = (hw_read_t) aic3x_i2c_read; | ||
1398 | ret = aic3x_add_i2c_device(pdev, setup); | 1391 | ret = aic3x_add_i2c_device(pdev, setup); |
1399 | } | 1392 | } |
1400 | #else | 1393 | #else |