Skip to content
  • Arnd Bergmann's avatar
    dmaengine: shdma: use normal interface for passing slave id · 411fdaf8
    Arnd Bergmann authored
    
    
    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: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
    411fdaf8