aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/codecs/Kconfig3
-rw-r--r--sound/soc/codecs/wm8994.c18
-rw-r--r--sound/soc/txx9/txx9aclc.c14
3 files changed, 21 insertions, 14 deletions
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 5b47c550bb89..a68d1731a8fd 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -741,7 +741,8 @@ config SND_SOC_WM8974
741 tristate 741 tristate
742 742
743config SND_SOC_WM8978 743config SND_SOC_WM8978
744 tristate 744 tristate "Wolfson Microelectronics WM8978 codec"
745 depends on I2C
745 746
746config SND_SOC_WM8983 747config SND_SOC_WM8983
747 tristate 748 tristate
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
index 6cc0566dc29a..1fcb9f3f3097 100644
--- a/sound/soc/codecs/wm8994.c
+++ b/sound/soc/codecs/wm8994.c
@@ -4082,17 +4082,23 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
4082 4082
4083 switch (control->type) { 4083 switch (control->type) {
4084 case WM8994: 4084 case WM8994:
4085 if (wm8994->micdet_irq) { 4085 if (wm8994->micdet_irq)
4086 ret = request_threaded_irq(wm8994->micdet_irq, NULL, 4086 ret = request_threaded_irq(wm8994->micdet_irq, NULL,
4087 wm8994_mic_irq, 4087 wm8994_mic_irq,
4088 IRQF_TRIGGER_RISING, 4088 IRQF_TRIGGER_RISING,
4089 "Mic1 detect", 4089 "Mic1 detect",
4090 wm8994); 4090 wm8994);
4091 if (ret != 0) 4091 else
4092 dev_warn(codec->dev, 4092 ret = wm8994_request_irq(wm8994->wm8994,
4093 "Failed to request Mic1 detect IRQ: %d\n", 4093 WM8994_IRQ_MIC1_DET,
4094 ret); 4094 wm8994_mic_irq, "Mic 1 detect",
4095 } 4095 wm8994);
4096
4097 if (ret != 0)
4098 dev_warn(codec->dev,
4099 "Failed to request Mic1 detect IRQ: %d\n",
4100 ret);
4101
4096 4102
4097 ret = wm8994_request_irq(wm8994->wm8994, 4103 ret = wm8994_request_irq(wm8994->wm8994,
4098 WM8994_IRQ_MIC1_SHRT, 4104 WM8994_IRQ_MIC1_SHRT,
diff --git a/sound/soc/txx9/txx9aclc.c b/sound/soc/txx9/txx9aclc.c
index f0829de28708..cd71fd889d8b 100644
--- a/sound/soc/txx9/txx9aclc.c
+++ b/sound/soc/txx9/txx9aclc.c
@@ -16,6 +16,7 @@
16#include <linux/platform_device.h> 16#include <linux/platform_device.h>
17#include <linux/scatterlist.h> 17#include <linux/scatterlist.h>
18#include <linux/slab.h> 18#include <linux/slab.h>
19#include <linux/dmaengine.h>
19#include <sound/core.h> 20#include <sound/core.h>
20#include <sound/pcm.h> 21#include <sound/pcm.h>
21#include <sound/pcm_params.h> 22#include <sound/pcm_params.h>
@@ -137,7 +138,7 @@ txx9aclc_dma_submit(struct txx9aclc_dmadata *dmadata, dma_addr_t buf_dma_addr)
137 } 138 }
138 desc->callback = txx9aclc_dma_complete; 139 desc->callback = txx9aclc_dma_complete;
139 desc->callback_param = dmadata; 140 desc->callback_param = dmadata;
140 desc->tx_submit(desc); 141 dmaengine_submit(desc);
141 return desc; 142 return desc;
142} 143}
143 144
@@ -160,7 +161,7 @@ static void txx9aclc_dma_tasklet(unsigned long data)
160 void __iomem *base = drvdata->base; 161 void __iomem *base = drvdata->base;
161 162
162 spin_unlock_irqrestore(&dmadata->dma_lock, flags); 163 spin_unlock_irqrestore(&dmadata->dma_lock, flags);
163 chan->device->device_control(chan, DMA_TERMINATE_ALL, 0); 164 dmaengine_terminate_all(chan);
164 /* first time */ 165 /* first time */
165 for (i = 0; i < NR_DMA_CHAIN; i++) { 166 for (i = 0; i < NR_DMA_CHAIN; i++) {
166 desc = txx9aclc_dma_submit(dmadata, 167 desc = txx9aclc_dma_submit(dmadata,
@@ -169,7 +170,7 @@ static void txx9aclc_dma_tasklet(unsigned long data)
169 return; 170 return;
170 } 171 }
171 dmadata->dmacount = NR_DMA_CHAIN; 172 dmadata->dmacount = NR_DMA_CHAIN;
172 chan->device->device_issue_pending(chan); 173 dma_async_issue_pending(chan);
173 spin_lock_irqsave(&dmadata->dma_lock, flags); 174 spin_lock_irqsave(&dmadata->dma_lock, flags);
174 __raw_writel(ctlbit, base + ACCTLEN); 175 __raw_writel(ctlbit, base + ACCTLEN);
175 dmadata->frag_count = NR_DMA_CHAIN % dmadata->frags; 176 dmadata->frag_count = NR_DMA_CHAIN % dmadata->frags;
@@ -188,7 +189,7 @@ static void txx9aclc_dma_tasklet(unsigned long data)
188 dmadata->frag_count * dmadata->frag_bytes); 189 dmadata->frag_count * dmadata->frag_bytes);
189 if (!desc) 190 if (!desc)
190 return; 191 return;
191 chan->device->device_issue_pending(chan); 192 dma_async_issue_pending(chan);
192 193
193 spin_lock_irqsave(&dmadata->dma_lock, flags); 194 spin_lock_irqsave(&dmadata->dma_lock, flags);
194 dmadata->frag_count++; 195 dmadata->frag_count++;
@@ -266,7 +267,7 @@ static int txx9aclc_pcm_close(struct snd_pcm_substream *substream)
266 struct dma_chan *chan = dmadata->dma_chan; 267 struct dma_chan *chan = dmadata->dma_chan;
267 268
268 dmadata->frag_count = -1; 269 dmadata->frag_count = -1;
269 chan->device->device_control(chan, DMA_TERMINATE_ALL, 0); 270 dmaengine_terminate_all(chan);
270 return 0; 271 return 0;
271} 272}
272 273
@@ -398,8 +399,7 @@ static int txx9aclc_pcm_remove(struct snd_soc_platform *platform)
398 struct dma_chan *chan = dmadata->dma_chan; 399 struct dma_chan *chan = dmadata->dma_chan;
399 if (chan) { 400 if (chan) {
400 dmadata->frag_count = -1; 401 dmadata->frag_count = -1;
401 chan->device->device_control(chan, 402 dmaengine_terminate_all(chan);
402 DMA_TERMINATE_ALL, 0);
403 dma_release_channel(chan); 403 dma_release_channel(chan);
404 } 404 }
405 dev->dmadata[i].dma_chan = NULL; 405 dev->dmadata[i].dma_chan = NULL;