• Ranjani Sridharan's avatar
    ASoC: SOF: Intel: hda: assign link DMA channel at run-time · bdf4ad3f
    Ranjani Sridharan authored
    The recommended HDA HW programming sequence for setting
    the DMA format requires that the link DMA and host DMA
    channels be coupled before setting the format. This
    change means that host DMA or link DMA channels be
    reserved even if only one is used.
    
    Statically assigned link DMA channels would mean that
    all the corresponding host DMA channels will need to be
    reserved, leaving only a few channels available at run-time.
    So, the suggestion here is to switch to dynamically assigning
    both host DMA channels and link DMA channels are run-time.
    
    The host DMA channel is assigned when the pcm
    is opened as before. While choosing the link DMA channel,
    if the host DMA channel corresponding to the link DMA channel
    is already taken, the proposed method checks to make
    sure that the BE is connected to the FE that has been assigned
    this host DMA channel. Once the link DMA channel is assigned,
    an IPC is sent to the DSP to set the link DMA channel.
    
    The link DMA channel is freed during hw_free() and also in the
    SUSPEND trigger callback. It will be re-assigned when hw_params
    are set upon resume.
    Signed-off-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
    Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    bdf4ad3f
hda-dai.c 10.8 KB