[alsa-devel] [PATCH 2/2] ASoC: atmel-pcm: use generic dmaengine framework

Lars-Peter Clausen lars at metafoo.de
Wed Jul 3 03:36:34 EDT 2013


On 07/03/2013 03:33 AM, Bo Shen wrote:
> Hi Lars-Peter,
> 
> On 7/2/2013 23:34, Lars-Peter Clausen wrote:
>> On 07/02/2013 11:04 AM, Bo Shen wrote:
>> [...]
>>> -/*--------------------------------------------------------------------------*\
>>> - * DMAENGINE operations
>>> -\*--------------------------------------------------------------------------*/
>>> -static bool filter(struct dma_chan *chan, void *slave)
>>> -{
>>> -    struct at_dma_slave *sl = slave;
>>> -
>>> -    if (sl->dma_dev == chan->device->dev) {
>>> -        chan->private = sl;
>>> -        return true;
>>> -    } else {
>>> -        return false;
>>> -    }
>>> -}
>>
>> I'm wondering why is filtering no longer required?
> 
> Now this is handled by at_dma_filter in at_hdmac driver. More information, you
> can reference: <driver/dma/at_hdmac.c> file

Ok, so the DMA channel is now supplied via devicetree. This is really a change
that should be listed in the changelog.

> 
>> [...]
>>> +        slave_config->dst_addr = (dma_addr_t)ssc->phybase + SSC_THR;
>> [...]
>>> +        slave_config->src_addr = (dma_addr_t)ssc->phybase + SSC_RHR;
>>
>> Change the type of phybase to dma_addr_t
> 
> It should be:
> slave_config->dst_addr = (dma_addr_t)(ssc->phybase + SSC_THR);
> slave_config->src_addr = (dma_addr_t)(ssc->phybase + SSC_RHR);

The type of phybase in the ssc_device struct should be changed from
resource_size_t to dma_addr_t.



More information about the linux-arm-kernel mailing list