aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/qcom
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2016-02-19 11:20:02 -0500
committerMark Brown <broonie@kernel.org>2016-02-19 11:20:02 -0500
commit88a69d7b07747af08f737b160b27503b1400d3b6 (patch)
tree3205fa71ba94e1b50ed74c80cd13ac6aecd066c4 /sound/soc/qcom
parent8faa268ab780a7379cfe54b882c6f6e0083233f2 (diff)
parentf11aec0d7c835c3b83e74e3fd60d2e48a850c857 (diff)
Merge tag 'asoc-fix-v4.5-rc4' into asoc-qcom
ASoC: Fixes for v4.5 A rather large batch of fixes here, almost all in the Intel driver. The changes that got merged in this merge window for Skylake were rather large and as well as issues that you'd expect in a large block of new code there were some problems created for older processors which needed fixing up. Things are largely settling down now hopefully.
Diffstat (limited to 'sound/soc/qcom')
-rw-r--r--sound/soc/qcom/lpass-platform.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/sound/soc/qcom/lpass-platform.c b/sound/soc/qcom/lpass-platform.c
index 79688aa1941a..4aeb8e1a7160 100644
--- a/sound/soc/qcom/lpass-platform.c
+++ b/sound/soc/qcom/lpass-platform.c
@@ -440,18 +440,18 @@ static irqreturn_t lpass_platform_lpaif_irq(int irq, void *data)
440} 440}
441 441
442static int lpass_platform_alloc_buffer(struct snd_pcm_substream *substream, 442static int lpass_platform_alloc_buffer(struct snd_pcm_substream *substream,
443 struct snd_soc_pcm_runtime *soc_runtime) 443 struct snd_soc_pcm_runtime *rt)
444{ 444{
445 struct snd_dma_buffer *buf = &substream->dma_buffer; 445 struct snd_dma_buffer *buf = &substream->dma_buffer;
446 size_t size = lpass_platform_pcm_hardware.buffer_bytes_max; 446 size_t size = lpass_platform_pcm_hardware.buffer_bytes_max;
447 447
448 buf->dev.type = SNDRV_DMA_TYPE_DEV; 448 buf->dev.type = SNDRV_DMA_TYPE_DEV;
449 buf->dev.dev = soc_runtime->dev; 449 buf->dev.dev = rt->platform->dev;
450 buf->private_data = NULL; 450 buf->private_data = NULL;
451 buf->area = dma_alloc_coherent(soc_runtime->dev, size, &buf->addr, 451 buf->area = dma_alloc_coherent(rt->platform->dev, size, &buf->addr,
452 GFP_KERNEL); 452 GFP_KERNEL);
453 if (!buf->area) { 453 if (!buf->area) {
454 dev_err(soc_runtime->dev, "%s: Could not allocate DMA buffer\n", 454 dev_err(rt->platform->dev, "%s: Could not allocate DMA buffer\n",
455 __func__); 455 __func__);
456 return -ENOMEM; 456 return -ENOMEM;
457 } 457 }
@@ -461,12 +461,12 @@ static int lpass_platform_alloc_buffer(struct snd_pcm_substream *substream,
461} 461}
462 462
463static void lpass_platform_free_buffer(struct snd_pcm_substream *substream, 463static void lpass_platform_free_buffer(struct snd_pcm_substream *substream,
464 struct snd_soc_pcm_runtime *soc_runtime) 464 struct snd_soc_pcm_runtime *rt)
465{ 465{
466 struct snd_dma_buffer *buf = &substream->dma_buffer; 466 struct snd_dma_buffer *buf = &substream->dma_buffer;
467 467
468 if (buf->area) { 468 if (buf->area) {
469 dma_free_coherent(soc_runtime->dev, buf->bytes, buf->area, 469 dma_free_coherent(rt->dev, buf->bytes, buf->area,
470 buf->addr); 470 buf->addr);
471 } 471 }
472 buf->area = NULL; 472 buf->area = NULL;
@@ -499,9 +499,6 @@ static int lpass_platform_pcm_new(struct snd_soc_pcm_runtime *soc_runtime)
499 499
500 snd_soc_pcm_set_drvdata(soc_runtime, data); 500 snd_soc_pcm_set_drvdata(soc_runtime, data);
501 501
502 soc_runtime->dev->coherent_dma_mask = DMA_BIT_MASK(32);
503 soc_runtime->dev->dma_mask = &soc_runtime->dev->coherent_dma_mask;
504
505 ret = lpass_platform_alloc_buffer(substream, soc_runtime); 502 ret = lpass_platform_alloc_buffer(substream, soc_runtime);
506 if (ret) 503 if (ret)
507 return ret; 504 return ret;