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.