Merge branch 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Sun, 3 Apr 2011 10:28:29 +0000 (19:28 +0900)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Sun, 3 Apr 2011 10:28:29 +0000 (19:28 +0900)
include/sound/soc-dapm.h
sound/arm/pxa2xx-pcm-lib.c
sound/soc/imx/imx-pcm-dma-mx2.c
sound/soc/imx/imx-ssi.h
sound/soc/pxa/corgi.c
sound/soc/pxa/pxa2xx-pcm.c
sound/soc/pxa/zylonite.c

index 979ed84..ddc2b3d 100644 (file)
 /* platform domain */
 #define SND_SOC_DAPM_INPUT(wname) \
 {      .id = snd_soc_dapm_input, .name = wname, .kcontrols = NULL, \
-       .num_kcontrols = 0}
+       .num_kcontrols = 0, .reg = SND_SOC_NOPM }
 #define SND_SOC_DAPM_OUTPUT(wname) \
 {      .id = snd_soc_dapm_output, .name = wname, .kcontrols = NULL, \
-       .num_kcontrols = 0}
+       .num_kcontrols = 0, .reg = SND_SOC_NOPM }
 #define SND_SOC_DAPM_MIC(wname, wevent) \
 {      .id = snd_soc_dapm_mic, .name = wname, .kcontrols = NULL, \
-       .num_kcontrols = 0, .event = wevent, \
+       .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \
        .event_flags = SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD}
 #define SND_SOC_DAPM_HP(wname, wevent) \
 {      .id = snd_soc_dapm_hp, .name = wname, .kcontrols = NULL, \
-       .num_kcontrols = 0, .event = wevent, \
+       .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \
        .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD}
 #define SND_SOC_DAPM_SPK(wname, wevent) \
 {      .id = snd_soc_dapm_spk, .name = wname, .kcontrols = NULL, \
-       .num_kcontrols = 0, .event = wevent, \
+       .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \
        .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD}
 #define SND_SOC_DAPM_LINE(wname, wevent) \
 {      .id = snd_soc_dapm_line, .name = wname, .kcontrols = NULL, \
-       .num_kcontrols = 0, .event = wevent, \
+       .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \
        .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD}
 
 /* path domain */
 /* events that are pre and post DAPM */
 #define SND_SOC_DAPM_PRE(wname, wevent) \
 {      .id = snd_soc_dapm_pre, .name = wname, .kcontrols = NULL, \
-       .num_kcontrols = 0, .event = wevent, \
+       .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \
        .event_flags = SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD}
 #define SND_SOC_DAPM_POST(wname, wevent) \
 {      .id = snd_soc_dapm_post, .name = wname, .kcontrols = NULL, \
-       .num_kcontrols = 0, .event = wevent, \
+       .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \
        .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD}
 
 /* stream domain */
index 8808b82..76e0d56 100644 (file)
@@ -140,6 +140,9 @@ int __pxa2xx_pcm_prepare(struct snd_pcm_substream *substream)
        if (!prtd || !prtd->params)
                return 0;
 
+       if (prtd->dma_ch == -1)
+               return -EINVAL;
+
        DCSR(prtd->dma_ch) &= ~DCSR_RUN;
        DCSR(prtd->dma_ch) = 0;
        DCMD(prtd->dma_ch) = 0;
index 671ef8d..aab7765 100644 (file)
@@ -110,12 +110,12 @@ static int imx_ssi_dma_alloc(struct snd_pcm_substream *substream,
                slave_config.direction = DMA_TO_DEVICE;
                slave_config.dst_addr = dma_params->dma_addr;
                slave_config.dst_addr_width = buswidth;
-               slave_config.dst_maxburst = dma_params->burstsize;
+               slave_config.dst_maxburst = dma_params->burstsize * buswidth;
        } else {
                slave_config.direction = DMA_FROM_DEVICE;
                slave_config.src_addr = dma_params->dma_addr;
                slave_config.src_addr_width = buswidth;
-               slave_config.src_maxburst = dma_params->burstsize;
+               slave_config.src_maxburst = dma_params->burstsize * buswidth;
        }
 
        ret = dmaengine_slave_config(iprtd->dma_chan, &slave_config);
@@ -303,6 +303,11 @@ static struct snd_soc_platform_driver imx_soc_platform_mx2 = {
 
 static int __devinit imx_soc_platform_probe(struct platform_device *pdev)
 {
+       struct imx_ssi *ssi = platform_get_drvdata(pdev);
+
+       ssi->dma_params_tx.burstsize = 6;
+       ssi->dma_params_rx.burstsize = 4;
+
        return snd_soc_register_platform(&pdev->dev, &imx_soc_platform_mx2);
 }
 
index a4406a1..dc8a875 100644 (file)
@@ -234,7 +234,4 @@ void imx_pcm_free(struct snd_pcm *pcm);
  */
 #define IMX_SSI_DMABUF_SIZE    (64 * 1024)
 
-#define DMA_RXFIFO_BURST      0x4
-#define DMA_TXFIFO_BURST      0x6
-
 #endif /* _IMX_SSI_H */
index 784cff5..9027da4 100644 (file)
@@ -310,7 +310,7 @@ static struct snd_soc_dai_link corgi_dai = {
        .cpu_dai_name = "pxa2xx-i2s",
        .codec_dai_name = "wm8731-hifi",
        .platform_name = "pxa-pcm-audio",
-       .codec_name = "wm8731-codec-0.001b",
+       .codec_name = "wm8731-codec.0-001b",
        .init = corgi_wm8731_init,
        .ops = &corgi_ops,
 };
index 02fb664..2ce0b2d 100644 (file)
@@ -65,6 +65,7 @@ static int pxa2xx_pcm_hw_free(struct snd_pcm_substream *substream)
        if (prtd->dma_ch >= 0) {
                pxa_free_dma(prtd->dma_ch);
                prtd->dma_ch = -1;
+               prtd->params = NULL;
        }
 
        return 0;
index ac57726..b644575 100644 (file)
@@ -167,7 +167,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
        .codec_name = "wm9713-codec",
        .platform_name = "pxa-pcm-audio",
        .cpu_dai_name = "pxa2xx-ac97",
-       .codec_name = "wm9713-hifi",
+       .codec_dai_name = "wm9713-hifi",
        .init = zylonite_wm9713_init,
 },
 {
@@ -176,7 +176,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
        .codec_name = "wm9713-codec",
        .platform_name = "pxa-pcm-audio",
        .cpu_dai_name = "pxa2xx-ac97-aux",
-       .codec_name = "wm9713-aux",
+       .codec_dai_name = "wm9713-aux",
 },
 {
        .name = "WM9713 Voice",
@@ -184,7 +184,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
        .codec_name = "wm9713-codec",
        .platform_name = "pxa-pcm-audio",
        .cpu_dai_name = "pxa-ssp-dai.2",
-       .codec_name = "wm9713-voice",
+       .codec_dai_name = "wm9713-voice",
        .ops = &zylonite_voice_ops,
 },
 };