CODEC type (MAX98090/MAX98091) can be specified from device-tree file,
it can also be obtained from the CODEC during runtime.

Add an explicit check to figure out if both are matching, else print
a message warning about the same.

Signed-off-by: Tushar Behera <tusha...@samsung.com>
---
 sound/soc/codecs/max98090.c |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c
index ca74f502..1ed06d9 100644
--- a/sound/soc/codecs/max98090.c
+++ b/sound/soc/codecs/max98090.c
@@ -2215,6 +2215,7 @@ static int max98090_probe(struct snd_soc_codec *codec)
 {
        struct max98090_priv *max98090 = snd_soc_codec_get_drvdata(codec);
        struct max98090_cdata *cdata;
+       enum max98090_type devtype;
        int ret = 0;
 
        dev_dbg(codec->dev, "max98090_probe\n");
@@ -2250,16 +2251,21 @@ static int max98090_probe(struct snd_soc_codec *codec)
        }
 
        if ((ret >= M98090_REVA) && (ret <= M98090_REVA + 0x0f)) {
-               max98090->devtype = MAX98090;
+               devtype = MAX98090;
                dev_info(codec->dev, "MAX98090 REVID=0x%02x\n", ret);
        } else if ((ret >= M98091_REVA) && (ret <= M98091_REVA + 0x0f)) {
-               max98090->devtype = MAX98091;
+               devtype = MAX98091;
                dev_info(codec->dev, "MAX98091 REVID=0x%02x\n", ret);
        } else {
-               max98090->devtype = MAX98090;
+               devtype = MAX98090;
                dev_err(codec->dev, "Unrecognized revision 0x%02x\n", ret);
        }
 
+       if (max98090->devtype != devtype) {
+               dev_warn(codec->dev, "Mismatch in DT specified CODEC type.\n");
+               max98090->devtype = devtype;
+       }
+
        max98090->jack_state = M98090_JACK_STATE_NO_HEADSET;
 
        INIT_DELAYED_WORK(&max98090->jack_work, max98090_jack_work);
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to