ASoC: codecs/jz4770: Adjust timeouts for cap-coupled outputs
authorChristophe Branchereau <cbranchereau@gmail.com>
Mon, 7 Dec 2020 12:53:35 +0000 (12:53 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 9 Dec 2020 12:13:42 +0000 (12:13 +0000)
When using cap-coupled outputs, the RUP/RDO can take much longer than
the 100ms timeout we used to have. Increase that timeout to one second.

Signed-off-by: Christophe Branchereau <cbranchereau@gmail.com>
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Link: https://lore.kernel.org/r/20201207125338.119397-3-paul@crapouillou.net
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/jz4770.c

index 002f2300e75031cba4a0d678f8f99e62c0c3a227..0da966785aeeffc2fd1775072971b9b720614021 100644 (file)
@@ -287,7 +287,7 @@ static int jz4770_codec_mute_stream(struct snd_soc_dai *dai, int mute, int direc
                err = regmap_read_poll_timeout(jz_codec->regmap,
                                               JZ4770_CODEC_REG_IFR,
                                               val, val & gain_bit,
-                                              1000, 100 * USEC_PER_MSEC);
+                                              1000, 1 * USEC_PER_SEC);
                if (err) {
                        dev_err(jz_codec->dev,
                                "Timeout while setting digital mute: %d", err);
@@ -381,7 +381,7 @@ static int hpout_event(struct snd_soc_dapm_widget *w,
                err = regmap_read_poll_timeout(jz_codec->regmap,
                                               JZ4770_CODEC_REG_IFR,
                                               val, val & REG_IFR_RUP,
-                                              1000, 100 * USEC_PER_MSEC);
+                                              1000, 1 * USEC_PER_SEC);
                if (err) {
                        dev_err(jz_codec->dev, "RUP timeout: %d", err);
                        return err;
@@ -401,7 +401,7 @@ static int hpout_event(struct snd_soc_dapm_widget *w,
                err = regmap_read_poll_timeout(jz_codec->regmap,
                                               JZ4770_CODEC_REG_IFR,
                                               val, val & REG_IFR_RDO,
-                                              1000, 100 * USEC_PER_MSEC);
+                                              1000, 1 * USEC_PER_SEC);
                if (err) {
                        dev_err(jz_codec->dev, "RDO timeout: %d", err);
                        return err;
@@ -803,7 +803,7 @@ static int jz4770_codec_io_wait(struct jz_codec *codec)
 
        return readl_poll_timeout(codec->base + ICDC_RGADW_OFFSET, reg,
                                  !(reg & ICDC_RGADW_RGWR),
-                                 1000, 10 * USEC_PER_MSEC);
+                                 1000, 1 * USEC_PER_SEC);
 }
 
 static int jz4770_codec_reg_read(void *context, unsigned int reg,