]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branches 'asoc/topic/txx9', 'asoc/topic/wm8978' and 'asoc/topic...
authorMark Brown <broonie@kernel.org>
Mon, 6 Oct 2014 11:49:09 +0000 (12:49 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 6 Oct 2014 11:49:09 +0000 (12:49 +0100)
sound/soc/codecs/Kconfig
sound/soc/codecs/wm8994.c
sound/soc/txx9/txx9aclc.c

index 5b47c550bb89d1d0e80133660069cefa9891cfe9..a68d1731a8fde35fe199f61fc702a9259ad25a81 100644 (file)
@@ -741,7 +741,8 @@ config SND_SOC_WM8974
        tristate
 
 config SND_SOC_WM8978
-       tristate
+       tristate "Wolfson Microelectronics WM8978 codec"
+       depends on I2C
 
 config SND_SOC_WM8983
        tristate
index 6cc0566dc29a42653c96b571f07c0a02397cbb7e..1fcb9f3f309762d2793b59ccd094b26a55f84111 100644 (file)
@@ -4082,17 +4082,23 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
 
        switch (control->type) {
        case WM8994:
-               if (wm8994->micdet_irq) {
+               if (wm8994->micdet_irq)
                        ret = request_threaded_irq(wm8994->micdet_irq, NULL,
                                                   wm8994_mic_irq,
                                                   IRQF_TRIGGER_RISING,
                                                   "Mic1 detect",
                                                   wm8994);
-                       if (ret != 0)
-                               dev_warn(codec->dev,
-                                        "Failed to request Mic1 detect IRQ: %d\n",
-                                        ret);
-               }
+                else
+                       ret = wm8994_request_irq(wm8994->wm8994,
+                                       WM8994_IRQ_MIC1_DET,
+                                       wm8994_mic_irq, "Mic 1 detect",
+                                       wm8994);
+
+               if (ret != 0)
+                       dev_warn(codec->dev,
+                                "Failed to request Mic1 detect IRQ: %d\n",
+                                ret);
+
 
                ret = wm8994_request_irq(wm8994->wm8994,
                                         WM8994_IRQ_MIC1_SHRT,
index f0829de28708b20724fffddf831bec56818152d1..cd71fd889d8bf834cc71cd1e491bdd9c590d78ef 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/platform_device.h>
 #include <linux/scatterlist.h>
 #include <linux/slab.h>
+#include <linux/dmaengine.h>
 #include <sound/core.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
@@ -137,7 +138,7 @@ txx9aclc_dma_submit(struct txx9aclc_dmadata *dmadata, dma_addr_t buf_dma_addr)
        }
        desc->callback = txx9aclc_dma_complete;
        desc->callback_param = dmadata;
-       desc->tx_submit(desc);
+       dmaengine_submit(desc);
        return desc;
 }
 
@@ -160,7 +161,7 @@ static void txx9aclc_dma_tasklet(unsigned long data)
                void __iomem *base = drvdata->base;
 
                spin_unlock_irqrestore(&dmadata->dma_lock, flags);
-               chan->device->device_control(chan, DMA_TERMINATE_ALL, 0);
+               dmaengine_terminate_all(chan);
                /* first time */
                for (i = 0; i < NR_DMA_CHAIN; i++) {
                        desc = txx9aclc_dma_submit(dmadata,
@@ -169,7 +170,7 @@ static void txx9aclc_dma_tasklet(unsigned long data)
                                return;
                }
                dmadata->dmacount = NR_DMA_CHAIN;
-               chan->device->device_issue_pending(chan);
+               dma_async_issue_pending(chan);
                spin_lock_irqsave(&dmadata->dma_lock, flags);
                __raw_writel(ctlbit, base + ACCTLEN);
                dmadata->frag_count = NR_DMA_CHAIN % dmadata->frags;
@@ -188,7 +189,7 @@ static void txx9aclc_dma_tasklet(unsigned long data)
                        dmadata->frag_count * dmadata->frag_bytes);
                if (!desc)
                        return;
-               chan->device->device_issue_pending(chan);
+               dma_async_issue_pending(chan);
 
                spin_lock_irqsave(&dmadata->dma_lock, flags);
                dmadata->frag_count++;
@@ -266,7 +267,7 @@ static int txx9aclc_pcm_close(struct snd_pcm_substream *substream)
        struct dma_chan *chan = dmadata->dma_chan;
 
        dmadata->frag_count = -1;
-       chan->device->device_control(chan, DMA_TERMINATE_ALL, 0);
+       dmaengine_terminate_all(chan);
        return 0;
 }
 
@@ -398,8 +399,7 @@ static int txx9aclc_pcm_remove(struct snd_soc_platform *platform)
                struct dma_chan *chan = dmadata->dma_chan;
                if (chan) {
                        dmadata->frag_count = -1;
-                       chan->device->device_control(chan,
-                                                    DMA_TERMINATE_ALL, 0);
+                       dmaengine_terminate_all(chan);
                        dma_release_channel(chan);
                }
                dev->dmadata[i].dma_chan = NULL;