• Stephen Warren's avatar
    ASoC: dmaengine: add custom DMA config to snd_dmaengine_pcm_config · 194c7dea
    Stephen Warren authored
    Add fields to struct snd_dmaengine_pcm_config to allow custom:
    
    - DMA channel names.
    
      This is useful when the default "tx" and "rx" channel names don't
      apply, for example if a HW module supports multiple channels, each
      having different DMA channel names. This is the case with the FIFOs
      in Tegra's AHUB. This new facility can replace
      SND_DMAENGINE_PCM_FLAG_CUSTOM_CHANNEL_NAME.
    
    - DMA device
    
      This allows requesting DMA channels for a device other than the device
      which is registering the "PCM" driver. This is quite unusual, but is
      currently useful on Tegra. In much HW, and in Tegra20, each DAI HW
      module contains its own FIFOs which DMA writes to. However, in Tegra30,
      the DMA FIFOs were split out AHUB HW module, which then routes the data
      through a cross-bar, and into the DAI HW modules. However, the current
      ASoC driver structure does not expose this detail, and acts as if the
      FIFOs are still part of the DAI HW modules. Consequently, the "PCM"
      driver is registered with the DAI HW module, yet the DMA channels must
      be looked up in the AHUB HW module's device tree node. This new config
      field allows that to happen. Eventually, the Tegra drivers will be
      reworked to fully expose the AHUB, and this config field can be
      removed.
    Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
    Acked-by: default avatarLars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: default avatarMark Brown <broonie@linaro.org>
    194c7dea
dmaengine_pcm.h 5.87 KB