[alsa-devel] [PATCH v5] sound/soc/lapis: add platform driver for ML7213
tomoya.rohm at gmail.com
Fri Jun 1 10:13:45 CEST 2012
On Thu, May 31, 2012 at 7:45 PM, Mark Brown
<broonie at opensource.wolfsonmicro.com> wrote:
>> > Please re-read what I wrote.
>> Let me clarify.
>> Do you say native DMA driver API like dmaengine_prep_slave_sg(),
>> dmaengine_submit() shouldn't be used from ASoC driver, right ?
> Your driver should be written in terms of the ASoC DMA framework.
I understand your order.
But isn't it only me ?
You mean all ASoC driver uses dmaengine should be written in terms of
the ASoC DMA framework.
>> > No, all current mainline drivers using the library use cyclic DMA.
>> I can't see any driver uses cyclic DMA. (I saw linux-next's tree from
>> Where is your saying "current mainline" ?
> Linus' tree, or mine.
Sorry, I couldn't find.
Is your saying Linus's tree this ?
However, any ASoC driver doesn't use cyclic DMA's.
> Have you even looked at the soc-dmaengine-pcm
> code? It uncondtionally requests a cyclic channel.
I already saw soc-dmaengine-pcm.c
>> However I think it seems difficult for supporting all devices.
>> Because hardware dependency control code can't be added.
>> For example, for ML7213, needs interrupt control both before/after DMA transfer.
>> However, in case of using soc-dmaengine, the control can't be done.
>> Because the processing is in soc-dmaengine.
> Please be more specific. What are the concrete problems that you see?
> Why is it not possible to address them within the framework?
I show the code.
+static void i2s_dma_tx_complete(void *arg)
+ ioh_i2s_irq_ctrl(ioh->number, SNDRV_PCM_STREAM_PLAYBACK,
IOH_EN_IRQ); ##<<Interrupt control
Our device needs interrupt control both before/after DMA transfer like above.
In your soc-dma-engine, DMA transfer complete code is in soc-dma-engine, right ?
So, the vendor specific code like the above can't be written.
ROHM Co., Ltd.
More information about the Alsa-devel