ASoC: tlv320adcx140: Move device reset to before programming
authorDan Murphy <dmurphy@ti.com>
Thu, 30 Jul 2020 14:24:19 +0000 (09:24 -0500)
committerMark Brown <broonie@kernel.org>
Thu, 30 Jul 2020 20:00:27 +0000 (21:00 +0100)
Reset the device before programming the registers or all programming
will be lost as the device resets registers to default settings.

Signed-off-by: Dan Murphy <dmurphy@ti.com>
Link: https://lore.kernel.org/r/20200730142419.28205-2-dmurphy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/tlv320adcx140.c

index fc7616d..5cd50d8 100644 (file)
@@ -838,6 +838,10 @@ static int adcx140_codec_probe(struct snd_soc_component *component)
 
        bias_cfg = bias_source << ADCX140_MIC_BIAS_SHIFT | vref_source;
 
+       ret = adcx140_reset(adcx140);
+       if (ret)
+               goto out;
+
        pdm_count = device_property_count_u32(adcx140->dev,
                                              "ti,pdm-edge-select");
        if (pdm_count <= ADCX140_NUM_PDM_EDGES && pdm_count > 0) {
@@ -885,10 +889,6 @@ static int adcx140_codec_probe(struct snd_soc_component *component)
        if (ret)
                goto out;
 
-       ret = adcx140_reset(adcx140);
-       if (ret)
-               goto out;
-
        if (adcx140->supply_areg == NULL)
                sleep_cfg_val |= ADCX140_AREG_INTERNAL;