--- /dev/null
+From 417a1178f1bf3cdc606376b3ded3a22489fbb3eb Mon Sep 17 00:00:00 2001
+From: Lars-Peter Clausen <lars@metafoo.de>
+Date: Fri, 15 Mar 2013 11:26:15 +0100
+Subject: ASoC: dma-sh7760: Fix compile error
+
+From: Lars-Peter Clausen <lars@metafoo.de>
+
+commit 417a1178f1bf3cdc606376b3ded3a22489fbb3eb upstream.
+
+The dma-sh7760 currently fails with the following compile error:
+ sound/soc/sh/dma-sh7760.c:346:2: error: unknown field 'pcm_ops' specified in initializer
+ sound/soc/sh/dma-sh7760.c:346:2: warning: initialization from incompatible pointer type
+ sound/soc/sh/dma-sh7760.c:347:2: error: unknown field 'pcm_new' specified in initializer
+ sound/soc/sh/dma-sh7760.c:347:2: warning: initialization makes integer from pointer without a cast
+ sound/soc/sh/dma-sh7760.c:348:2: error: unknown field 'pcm_free' specified in initializer
+ sound/soc/sh/dma-sh7760.c:348:2: warning: initialization from incompatible pointer type
+ sound/soc/sh/dma-sh7760.c: In function 'sh7760_soc_platform_probe':
+ sound/soc/sh/dma-sh7760.c:353:2: warning: passing argument 2 of 'snd_soc_register_platform' from incompatible pointer type
+ include/sound/soc.h:368:5: note: expected 'struct snd_soc_platform_driver *' but argument is of type 'struct snd_soc_platform *'
+
+This is due the misnaming of the snd_soc_platform_driver type name and 'ops'
+field. The issue was introduced in commit f0fba2a("ASoC: multi-component - ASoC
+Multi-Component Support").
+
+Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/sh/dma-sh7760.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/sound/soc/sh/dma-sh7760.c
++++ b/sound/soc/sh/dma-sh7760.c
+@@ -342,8 +342,8 @@ static int camelot_pcm_new(struct snd_so
+ return 0;
+ }
+
+-static struct snd_soc_platform sh7760_soc_platform = {
+- .pcm_ops = &camelot_pcm_ops,
++static struct snd_soc_platform_driver sh7760_soc_platform = {
++ .ops = &camelot_pcm_ops,
+ .pcm_new = camelot_pcm_new,
+ .pcm_free = camelot_pcm_free,
+ };
--- /dev/null
+From b6e51600f4e983e757b1b6942becaa1ae7d82e67 Mon Sep 17 00:00:00 2001
+From: Sascha Hauer <s.hauer@pengutronix.de>
+Date: Sun, 10 Mar 2013 19:33:03 +0100
+Subject: ASoC: imx-ssi: Fix occasional AC97 reset failure
+
+From: Sascha Hauer <s.hauer@pengutronix.de>
+
+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>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/fsl/imx-ssi.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/sound/soc/fsl/imx-ssi.c
++++ b/sound/soc/fsl/imx-ssi.c
+@@ -496,6 +496,8 @@ static void imx_ssi_ac97_reset(struct sn
+
+ 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)
+@@ -504,6 +506,9 @@ static void imx_ssi_ac97_warm_reset(stru
+
+ 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 = {
--- /dev/null
+From 59d9cc2a5073ab4b8c8f8bdbacf230a538abc55d Mon Sep 17 00:00:00 2001
+From: Lars-Peter Clausen <lars@metafoo.de>
+Date: Mon, 18 Mar 2013 18:57:23 +0100
+Subject: ASoC: spear_pcm: Update to new pcm_new() API
+
+From: Lars-Peter Clausen <lars@metafoo.de>
+
+commit 59d9cc2a5073ab4b8c8f8bdbacf230a538abc55d upstream.
+
+Commit 552d1ef6 ("ASoC: core - Optimise and refactor pcm_new() to pass only
+rtd") updated the pcm_new() callback to take the rtd as the only parameter. The
+spear PCM driver (which was merged much later) still uses the old API. This
+patch updates the driver to the new API.
+
+Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
+Acked-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/spear/spear_pcm.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/sound/soc/spear/spear_pcm.c
++++ b/sound/soc/spear/spear_pcm.c
+@@ -149,9 +149,9 @@ static void spear_pcm_free(struct snd_pc
+
+ static u64 spear_pcm_dmamask = DMA_BIT_MASK(32);
+
+-static int spear_pcm_new(struct snd_card *card,
+- struct snd_soc_dai *dai, struct snd_pcm *pcm)
++static int spear_pcm_new(struct snd_soc_pcm_runtime *rtd)
+ {
++ struct snd_card *card = rtd->card->snd_card;
+ int ret;
+
+ if (!card->dev->dma_mask)
+@@ -159,16 +159,16 @@ static int spear_pcm_new(struct snd_card
+ if (!card->dev->coherent_dma_mask)
+ card->dev->coherent_dma_mask = DMA_BIT_MASK(32);
+
+- if (dai->driver->playback.channels_min) {
+- ret = spear_pcm_preallocate_dma_buffer(pcm,
++ if (rtd->cpu_dai->driver->playback.channels_min) {
++ ret = spear_pcm_preallocate_dma_buffer(rtd->pcm,
+ SNDRV_PCM_STREAM_PLAYBACK,
+ spear_pcm_hardware.buffer_bytes_max);
+ if (ret)
+ return ret;
+ }
+
+- if (dai->driver->capture.channels_min) {
+- ret = spear_pcm_preallocate_dma_buffer(pcm,
++ if (rtd->cpu_dai->driver->capture.channels_min) {
++ ret = spear_pcm_preallocate_dma_buffer(rtd->pcm,
+ SNDRV_PCM_STREAM_CAPTURE,
+ spear_pcm_hardware.buffer_bytes_max);
+ if (ret)
--- /dev/null
+asoc-imx-ssi-fix-occasional-ac97-reset-failure.patch
+asoc-dma-sh7760-fix-compile-error.patch
+asoc-spear_pcm-update-to-new-pcm_new-api.patch