Loading sound/soc/codecs/Kconfig +2 −1 Original line number Diff line number Diff line Loading @@ -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 Loading sound/soc/codecs/wm8994.c +12 −6 Original line number Diff line number Diff line Loading @@ -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); 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, Loading sound/soc/txx9/txx9aclc.c +7 −7 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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; } Loading @@ -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, Loading @@ -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; Loading @@ -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++; Loading Loading @@ -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; } Loading Loading @@ -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; Loading Loading
sound/soc/codecs/Kconfig +2 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
sound/soc/codecs/wm8994.c +12 −6 Original line number Diff line number Diff line Loading @@ -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); 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, Loading
sound/soc/txx9/txx9aclc.c +7 −7 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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; } Loading @@ -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, Loading @@ -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; Loading @@ -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++; Loading Loading @@ -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; } Loading Loading @@ -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; Loading