Re: [alsa-devel] [PATCH v5] sound/soc/lapis: add platform driver for ML7213

From: Tomoya MORINAGA
Date: Fri Jun 01 2012 - 04:13:45 EST


On Thu, May 31, 2012 at 7:45 PM, Mark Brown
<broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx> 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.
Right ?

>> > 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
>> kernel.org.)
>> Where is your saying "current mainline" ?
> Linus' tree, or mine.

Sorry, I couldn't find.
Is your saying Linus's tree this ?
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
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.

thanks.
--
ROHM Co., Ltd.
tomoya
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/