diff options
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/codecs/Kconfig | 3 | ||||
-rw-r--r-- | sound/soc/codecs/wm8994.c | 18 | ||||
-rw-r--r-- | sound/soc/txx9/txx9aclc.c | 14 |
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 | ||
743 | config SND_SOC_WM8978 | 743 | config SND_SOC_WM8978 |
744 | tristate | 744 | tristate "Wolfson Microelectronics WM8978 codec" |
745 | depends on I2C | ||
745 | 746 | ||
746 | config SND_SOC_WM8983 | 747 | config 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; |