summaryrefslogtreecommitdiffstats
path: root/arch/avr32
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2016-04-08 16:22:17 +0300
committerVinod Koul <vinod.koul@intel.com>2016-04-13 21:34:31 +0530
commit3fe6409c23e2bee4b2b1b6d671d2da8daa15271c (patch)
tree2bd1faae38435fcbf1a23741a8937d94e6a6a654 /arch/avr32
parentf55532a0c0b8bb6148f4e07853b876ef73bc69ca (diff)
downloadlinux-3fe6409c23e2bee4b2b1b6d671d2da8daa15271c.tar.gz
linux-3fe6409c23e2bee4b2b1b6d671d2da8daa15271c.tar.xz
dmaengine: dw: fix master selection
The commit 895005202987 ("dmaengine: dw: apply both HS interfaces and remove slave_id usage") cleaned up the code to avoid usage of depricated slave_id member of generic slave configuration. Meanwhile it broke the master selection by removing important call to dwc_set_masters() in ->device_alloc_chan_resources() which copied masters from custom slave configuration to the internal channel structure. Everything works until now since there is no customized connection of DesignWare DMA IP to the bus, i.e. one bus and one or more masters are in use. The configurations where 2 masters are connected to the different masters are not working anymore. We are expecting one user of such configuration and need to select masters properly. Besides that it is obviously a performance regression since only one master is in use in multi-master configuration. Select masters in accordance with what user asked for. Keep this patch in a form more suitable for back porting. We are safe to take necessary data in ->device_alloc_chan_resources() because we don't support generic slave configuration embedded into custom one, and thus the only way to provide such is to use the parameter to a filter function which is called exactly before channel resource allocation. While here, replase BUG_ON to less noisy dev_warn() and prevent channel allocation in case of error. Fixes: 895005202987 ("dmaengine: dw: apply both HS interfaces and remove slave_id usage") Cc: stable@vger.kernel.org Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'arch/avr32')
0 files changed, 0 insertions, 0 deletions