1. 05 Nov, 2019 1 commit
    • Ranjani Sridharan's avatar
      ASoC: pcm: update FE/BE trigger order based on the command · acbf2774
      Ranjani Sridharan authored
      Currently, the trigger orders SND_SOC_DPCM_TRIGGER_PRE/POST
      determine the order in which FE DAI and BE DAI are triggered.
      In the case of SND_SOC_DPCM_TRIGGER_PRE, the FE DAI is
      triggered before the BE DAI and in the case of
      SND_SOC_DPCM_TRIGGER_POST, the BE DAI is triggered before
      the FE DAI. And this order remains the same irrespective of the
      trigger command.
      
      In the case of the SOF driver, during playback, the FW
      expects the BE DAI to be triggered before the FE DAI during
      the START trigger. The BE DAI trigger handles the starting of
      Link DMA and so it must be started before the FE DAI is started
      to prevent xruns during pause/release. This can be addressed
      by setting the trigger order for the FE dai link to
      SND_SOC_DPCM_TRIGGER_POST. But during the STOP trigger,
      the FW expects the FE DAI to be triggered before the BE DAI.
      Retaining the same order during the START and STOP commands,
      results in FW error as the DAI component in the FW is still
      active.
      
      The issue can be fixed by mirroring the trigger order of
      FE and BE DAI's during the START and STOP trigger. So, with the
      trigger order set to SND_SOC_DPCM_TRIGGER_PRE, the FE DAI will be
      trigger first during SNDRV_PCM_TRIGGER_START/STOP/RESUME
      and the BE DAI will be triggered first during the
      STOP/SUSPEND/PAUSE commands. Conversely, with the trigger order
      set to SND_SOC_DPCM_TRIGGER_POST, the BE DAI will be triggered
      first during the SNDRV_PCM_TRIGGER_START/STOP/RESUME commands
      and the FE DAI will be triggered first during the
      SNDRV_PCM_TRIGGER_STOP/SUSPEND/PAUSE commands.
      Signed-off-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20191104224812.3393-2-ranjani.sridharan@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      acbf2774
  2. 04 Nov, 2019 15 commits
  3. 31 Oct, 2019 5 commits
  4. 30 Oct, 2019 4 commits
  5. 29 Oct, 2019 15 commits