]> asedeno.scripts.mit.edu Git - linux.git/commit
dmaengine: shdma: use normal interface for passing slave id
authorArnd Bergmann <arnd@arndb.de>
Tue, 17 Feb 2015 01:46:49 +0000 (01:46 +0000)
committerVinod Koul <vinod.koul@intel.com>
Mon, 23 Feb 2015 10:42:24 +0000 (16:12 +0530)
commit411fdaf846afb0be1b54383c184f58a42fa416ff
tree2460b59f2c049f6e47c59d67f8c2f18c4be23b33
parentc517d838eb7d07bbe9507871fab3931deccff539
dmaengine: shdma: use normal interface for passing slave id

in dma_slave_config, which is incompatible with the way that the
dmaengine API normally works.

I've had a closer look at the existing code now and found that all
slave drivers that pass a slave_id in dma_slave_config for SH do that
right after passing the same ID into shdma_chan_filter, so we can just
rely on that. However, the various shdma drivers currently do not
remember the slave ID that was passed into the filter function when
used in non-DT mode and only check the value to find a matching channel,
unlike all other drivers.

There might still be drivers that are not part of the kernel that rely
on setting the slave_id to some other value, so to be on the safe side,
this adds another 'real_slave_id' field to shdma_chan that remembers
the ID and uses it when a driver passes a zero slave_id in dma_slave_config,
like most drivers do.

Eventually, the real_slave_id and slave_id fields should just get merged
into one field, but that requires other changes.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/sh/shdma-base.c
include/linux/shdma-base.h