[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5321B4DD.5040306@metafoo.de>
Date: Thu, 13 Mar 2014 14:38:37 +0100
From: Lars-Peter Clausen <lars@...afoo.de>
To: Peter Ujfalusi <peter.ujfalusi@...com>
CC: linux-kernel@...r.kernel.org, alsa-devel@...a-project.org,
linux-omap@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
dmaengine@...r.kernel.org,
davinci-linux-open-source@...ux.davincidsp.com, joelf@...com,
nsekhar@...com, Liam Girdwood <lgirdwood@...il.com>,
Jyri Sarha <jsarha@...com>, Tony Lindgren <tony@...mide.com>,
Mark Brown <broonie@...nel.org>, mporter@...aro.org,
dan.j.williams@...el.com, vinod.koul@...el.com
Subject: Re: [alsa-devel] [PATCH 14/18] ASoC: davinci: Add edma dmaengine
platform driver
On 03/13/2014 02:03 PM, Peter Ujfalusi wrote:
> On 03/13/2014 12:28 PM, Lars-Peter Clausen wrote:
>>> +int edma_pcm_platform_register(struct device *dev)
>>> +{
>>> + if (dev->of_node)
>>> + return snd_dmaengine_pcm_register(dev,
>>> + &edma_dmaengine_pcm_config,
>>> + SND_DMAENGINE_PCM_FLAG_NO_RESIDUE);
>>
>> Since the edma dmaengine driver implements the slave cap API there is no need
>> to manually specify SND_DMAENGINE_PCM_FLAG_NO_RESIDUE manually. But since the
>> edma driver sets the granularity to DMA_RESIDUE_GRANULARITY_DESCRIPTOR in this
>> case the generic dmaengine will not set SND_DMAENGINE_PCM_FLAG_NO_RESIDUE
>> automatically since it assumes that the dmaengine driver is capable of
>> properly reporting the DMA position.
>
> Hrm, I see. For eDMA I think we can support DMA_RESIDUE_GRANULARITY_SEGMENT
> granularity. Since according to the documentation the _SEGMENT means that the
> DMA position will be updated per periods, which is basically the same thing
> what we are doing at the moment when the granularity is
> DMA_RESIDUE_GRANULARITY_DESCRIPTOR.
> From ALSA point of view at least they are the same: neither of them can report
> exact position, the DMA pointer jumps from period to period.
>
> IMHO in the generic dmaengine PCM we should set the SNDRV_PCM_INFO_BATCH for
> both cases.
>
Ups, sorry mixed up DMA_RESIDUE_GRANULARITY_SEGMENT and
DMA_RESIDUE_GRANULARITY_DESCRIPTOR. You can just remove the
SND_DMAENGINE_PCM_FLAG_NO_RESIDUE when registering the dmaengine PCM driver
and everything will still work as expected.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists