ASoC: imx-ssi: Fix occasional AC97 reset failure
authorSascha Hauer <s.hauer@pengutronix.de>
Sun, 10 Mar 2013 18:33:03 +0000 (19:33 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 10 Apr 2013 02:19:54 +0000 (03:19 +0100)
commit b6e51600f4e983e757b1b6942becaa1ae7d82e67 upstream.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
[bwh: Backported to 3.2: adjust filename]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
sound/soc/imx/imx-ssi.c

index 971eaf0e6f8c636b67d7375645681a4f5ea88f32..4969c98e9f41fc1a3c3f6e1036af1a99b1bdc3db 100644 (file)
@@ -573,6 +573,8 @@ static void imx_ssi_ac97_reset(struct snd_ac97 *ac97)
 
        if (imx_ssi->ac97_reset)
                imx_ssi->ac97_reset(ac97);
+       /* First read sometimes fails, do a dummy read */
+       imx_ssi_ac97_read(ac97, 0);
 }
 
 static void imx_ssi_ac97_warm_reset(struct snd_ac97 *ac97)
@@ -581,6 +583,9 @@ static void imx_ssi_ac97_warm_reset(struct snd_ac97 *ac97)
 
        if (imx_ssi->ac97_warm_reset)
                imx_ssi->ac97_warm_reset(ac97);
+
+       /* First read sometimes fails, do a dummy read */
+       imx_ssi_ac97_read(ac97, 0);
 }
 
 struct snd_ac97_bus_ops soc_ac97_ops = {