--- /dev/null
+From cb6f66a2d278e57a6c9d8fb59bd9ebd8ab3965c2 Mon Sep 17 00:00:00 2001
+From: Chih-Chung Chang <chihchung@chromium.org>
+Date: Mon, 15 Jul 2013 09:38:46 -0700
+Subject: ASoC: max98088 - fix element type of the register cache.
+
+From: Chih-Chung Chang <chihchung@chromium.org>
+
+commit cb6f66a2d278e57a6c9d8fb59bd9ebd8ab3965c2 upstream.
+
+The registers of max98088 are 8 bits, not 16 bits. This bug causes the
+contents of registers to be overwritten with bad values when the codec
+is suspended and then resumed.
+
+Signed-off-by: Chih-Chung Chang <chihchung@chromium.org>
+Signed-off-by: Dylan Reid <dgreid@chromium.org>
+Signed-off-by: Mark Brown <broonie@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/max98088.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/soc/codecs/max98088.c
++++ b/sound/soc/codecs/max98088.c
+@@ -1598,7 +1598,7 @@ static int max98088_dai2_digital_mute(st
+
+ static void max98088_sync_cache(struct snd_soc_codec *codec)
+ {
+- u16 *reg_cache = codec->reg_cache;
++ u8 *reg_cache = codec->reg_cache;
+ int i;
+
+ if (!codec->cache_sync)