summaryrefslogtreecommitdiff
path: root/sound/soc/codecs/rt286.c
diff options
context:
space:
mode:
authorBard Liao <bardliao@realtek.com>2014-07-07 16:48:37 +0800
committerMark Brown <broonie@linaro.org>2014-07-07 12:26:40 +0200
commit4b21768a95d68fe26a6a9f08ca93a7c59c13fcac (patch)
tree73b428a7ef83847664130cff142ab5239649a632 /sound/soc/codecs/rt286.c
parent305b8d8782c3b4aa572d496769b93cc3db2ae892 (diff)
ASoC: RT286: check ID in i2c level
Move ID check from asoc level to i2c level. Signed-off-by: Bard Liao <bardliao@realtek.com> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'sound/soc/codecs/rt286.c')
-rw-r--r--sound/soc/codecs/rt286.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/sound/soc/codecs/rt286.c b/sound/soc/codecs/rt286.c
index 7c5f9d0f0af2..53eb7f37bb73 100644
--- a/sound/soc/codecs/rt286.c
+++ b/sound/soc/codecs/rt286.c
@@ -952,14 +952,6 @@ static int rt286_probe(struct snd_soc_codec *codec)
struct rt286_priv *rt286 = snd_soc_codec_get_drvdata(codec);
int i, ret;
- ret = snd_soc_read(codec,
- RT286_GET_PARAM(AC_NODE_ROOT, AC_PAR_VENDOR_ID));
- if (ret != RT286_VENDOR_ID) {
- dev_err(codec->dev,
- "Device with ID register %x is not rt286\n", ret);
- return -ENODEV;
- }
-
snd_soc_write(codec, RT286_SET_AUDIO_POWER, AC_PWRST_D3);
for (i = 0; i < RT286_POWER_REG_LEN; i++)
@@ -1164,6 +1156,14 @@ static int rt286_i2c_probe(struct i2c_client *i2c,
return ret;
}
+ regmap_read(rt286->regmap,
+ RT286_GET_PARAM(AC_NODE_ROOT, AC_PAR_VENDOR_ID), &ret);
+ if (ret != RT286_VENDOR_ID) {
+ dev_err(&i2c->dev,
+ "Device with ID register %x is not rt286\n", ret);
+ return -ENODEV;
+ }
+
rt286->index_cache = rt286_index_def;
rt286->i2c = i2c;
i2c_set_clientdata(i2c, rt286);