Commit 1b4610eb authored by Mark Brown's avatar Mark Brown

Merge branch 'for-2.6.39' of...

Merge branch 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into for-2.6.39
parents 0ce790e7 97c96c07
...@@ -45,25 +45,25 @@ ...@@ -45,25 +45,25 @@
/* platform domain */ /* platform domain */
#define SND_SOC_DAPM_INPUT(wname) \ #define SND_SOC_DAPM_INPUT(wname) \
{ .id = snd_soc_dapm_input, .name = wname, .kcontrols = NULL, \ { .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) \ #define SND_SOC_DAPM_OUTPUT(wname) \
{ .id = snd_soc_dapm_output, .name = wname, .kcontrols = NULL, \ { .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) \ #define SND_SOC_DAPM_MIC(wname, wevent) \
{ .id = snd_soc_dapm_mic, .name = wname, .kcontrols = NULL, \ { .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} .event_flags = SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD}
#define SND_SOC_DAPM_HP(wname, wevent) \ #define SND_SOC_DAPM_HP(wname, wevent) \
{ .id = snd_soc_dapm_hp, .name = wname, .kcontrols = NULL, \ { .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} .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD}
#define SND_SOC_DAPM_SPK(wname, wevent) \ #define SND_SOC_DAPM_SPK(wname, wevent) \
{ .id = snd_soc_dapm_spk, .name = wname, .kcontrols = NULL, \ { .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} .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD}
#define SND_SOC_DAPM_LINE(wname, wevent) \ #define SND_SOC_DAPM_LINE(wname, wevent) \
{ .id = snd_soc_dapm_line, .name = wname, .kcontrols = NULL, \ { .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} .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD}
/* path domain */ /* path domain */
...@@ -189,11 +189,11 @@ ...@@ -189,11 +189,11 @@
/* events that are pre and post DAPM */ /* events that are pre and post DAPM */
#define SND_SOC_DAPM_PRE(wname, wevent) \ #define SND_SOC_DAPM_PRE(wname, wevent) \
{ .id = snd_soc_dapm_pre, .name = wname, .kcontrols = NULL, \ { .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} .event_flags = SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD}
#define SND_SOC_DAPM_POST(wname, wevent) \ #define SND_SOC_DAPM_POST(wname, wevent) \
{ .id = snd_soc_dapm_post, .name = wname, .kcontrols = NULL, \ { .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} .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD}
/* stream domain */ /* stream domain */
......
...@@ -140,6 +140,9 @@ int __pxa2xx_pcm_prepare(struct snd_pcm_substream *substream) ...@@ -140,6 +140,9 @@ int __pxa2xx_pcm_prepare(struct snd_pcm_substream *substream)
if (!prtd || !prtd->params) if (!prtd || !prtd->params)
return 0; return 0;
if (prtd->dma_ch == -1)
return -EINVAL;
DCSR(prtd->dma_ch) &= ~DCSR_RUN; DCSR(prtd->dma_ch) &= ~DCSR_RUN;
DCSR(prtd->dma_ch) = 0; DCSR(prtd->dma_ch) = 0;
DCMD(prtd->dma_ch) = 0; DCMD(prtd->dma_ch) = 0;
......
...@@ -110,12 +110,12 @@ static int imx_ssi_dma_alloc(struct snd_pcm_substream *substream, ...@@ -110,12 +110,12 @@ static int imx_ssi_dma_alloc(struct snd_pcm_substream *substream,
slave_config.direction = DMA_TO_DEVICE; slave_config.direction = DMA_TO_DEVICE;
slave_config.dst_addr = dma_params->dma_addr; slave_config.dst_addr = dma_params->dma_addr;
slave_config.dst_addr_width = buswidth; slave_config.dst_addr_width = buswidth;
slave_config.dst_maxburst = dma_params->burstsize; slave_config.dst_maxburst = dma_params->burstsize * buswidth;
} else { } else {
slave_config.direction = DMA_FROM_DEVICE; slave_config.direction = DMA_FROM_DEVICE;
slave_config.src_addr = dma_params->dma_addr; slave_config.src_addr = dma_params->dma_addr;
slave_config.src_addr_width = buswidth; 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); ret = dmaengine_slave_config(iprtd->dma_chan, &slave_config);
...@@ -303,6 +303,11 @@ static struct snd_soc_platform_driver imx_soc_platform_mx2 = { ...@@ -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) 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); return snd_soc_register_platform(&pdev->dev, &imx_soc_platform_mx2);
} }
......
...@@ -234,7 +234,4 @@ void imx_pcm_free(struct snd_pcm *pcm); ...@@ -234,7 +234,4 @@ void imx_pcm_free(struct snd_pcm *pcm);
*/ */
#define IMX_SSI_DMABUF_SIZE (64 * 1024) #define IMX_SSI_DMABUF_SIZE (64 * 1024)
#define DMA_RXFIFO_BURST 0x4
#define DMA_TXFIFO_BURST 0x6
#endif /* _IMX_SSI_H */ #endif /* _IMX_SSI_H */
...@@ -310,7 +310,7 @@ static struct snd_soc_dai_link corgi_dai = { ...@@ -310,7 +310,7 @@ static struct snd_soc_dai_link corgi_dai = {
.cpu_dai_name = "pxa2xx-i2s", .cpu_dai_name = "pxa2xx-i2s",
.codec_dai_name = "wm8731-hifi", .codec_dai_name = "wm8731-hifi",
.platform_name = "pxa-pcm-audio", .platform_name = "pxa-pcm-audio",
.codec_name = "wm8731-codec-0.001b", .codec_name = "wm8731-codec.0-001b",
.init = corgi_wm8731_init, .init = corgi_wm8731_init,
.ops = &corgi_ops, .ops = &corgi_ops,
}; };
......
...@@ -65,6 +65,7 @@ static int pxa2xx_pcm_hw_free(struct snd_pcm_substream *substream) ...@@ -65,6 +65,7 @@ static int pxa2xx_pcm_hw_free(struct snd_pcm_substream *substream)
if (prtd->dma_ch >= 0) { if (prtd->dma_ch >= 0) {
pxa_free_dma(prtd->dma_ch); pxa_free_dma(prtd->dma_ch);
prtd->dma_ch = -1; prtd->dma_ch = -1;
prtd->params = NULL;
} }
return 0; return 0;
......
...@@ -167,7 +167,7 @@ static struct snd_soc_dai_link zylonite_dai[] = { ...@@ -167,7 +167,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
.codec_name = "wm9713-codec", .codec_name = "wm9713-codec",
.platform_name = "pxa-pcm-audio", .platform_name = "pxa-pcm-audio",
.cpu_dai_name = "pxa2xx-ac97", .cpu_dai_name = "pxa2xx-ac97",
.codec_name = "wm9713-hifi", .codec_dai_name = "wm9713-hifi",
.init = zylonite_wm9713_init, .init = zylonite_wm9713_init,
}, },
{ {
...@@ -176,7 +176,7 @@ static struct snd_soc_dai_link zylonite_dai[] = { ...@@ -176,7 +176,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
.codec_name = "wm9713-codec", .codec_name = "wm9713-codec",
.platform_name = "pxa-pcm-audio", .platform_name = "pxa-pcm-audio",
.cpu_dai_name = "pxa2xx-ac97-aux", .cpu_dai_name = "pxa2xx-ac97-aux",
.codec_name = "wm9713-aux", .codec_dai_name = "wm9713-aux",
}, },
{ {
.name = "WM9713 Voice", .name = "WM9713 Voice",
...@@ -184,7 +184,7 @@ static struct snd_soc_dai_link zylonite_dai[] = { ...@@ -184,7 +184,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
.codec_name = "wm9713-codec", .codec_name = "wm9713-codec",
.platform_name = "pxa-pcm-audio", .platform_name = "pxa-pcm-audio",
.cpu_dai_name = "pxa-ssp-dai.2", .cpu_dai_name = "pxa-ssp-dai.2",
.codec_name = "wm9713-voice", .codec_dai_name = "wm9713-voice",
.ops = &zylonite_voice_ops, .ops = &zylonite_voice_ops,
}, },
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment