diff options
-rw-r--r-- | sound/soc/codecs/max98088.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/sound/soc/codecs/max98088.c b/sound/soc/codecs/max98088.c index cee6354656e7..e2ad10d2deaa 100644 --- a/sound/soc/codecs/max98088.c +++ b/sound/soc/codecs/max98088.c @@ -2073,6 +2073,15 @@ static int max98088_probe(struct snd_soc_codec *codec) max98088->mic1pre = 0; max98088->mic2pre = 0; + ret = snd_soc_read(codec, M98088_REG_FF_REV_ID); + if (ret != 0x40) { + dev_err(codec->dev, "Failed to read device revision: %d\n", + ret); + ret = -ENODEV; + goto err_access; + } + dev_info(codec->dev, "revision %c\n", ret + 'A'); + if (max98088->irq) { /* register an audio interrupt */ ret = request_threaded_irq(max98088->irq, NULL, @@ -2085,14 +2094,6 @@ static int max98088_probe(struct snd_soc_codec *codec) } } - ret = snd_soc_read(codec, M98088_REG_FF_REV_ID); - if (ret < 0) { - dev_err(codec->dev, "Failed to read device revision: %d\n", - ret); - goto err_access; - } - dev_info(codec->dev, "revision %c\n", ret + 'A'); - snd_soc_write(codec, M98088_REG_51_PWR_SYS, M98088_PWRSV); /* initialize registers cache to hardware default */ |