1. 28 Jun, 2018 3 commits
    • Jerome Brunet's avatar
      ASoC: dpcm: extend channel merging to the backend cpu dai · 4f2bd18b
      Jerome Brunet authored
      Extend dpcm_merge_chan to also check backend cpu dai channels
      capabilities. Apply the same policy as soc_pcm_init_runtime_hw() for
      multicodec links and only check cpu dai in this case.
      
      Cc: Jiada Wang <jiada_wang@mentor.com>
      Signed-off-by: default avatarJerome Brunet <jbrunet@baylibre.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      4f2bd18b
    • Dan Carpenter's avatar
      ASoC: qdsp6: qdafe: fix some off by one bugs · c54c1c5e
      Dan Carpenter authored
      The > should be >= or we could read one element beyond the end of the
      port_maps[] array.
      
      Fixes: 7fa2d70f ("ASoC: qdsp6: q6afe: Add q6afe driver")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      c54c1c5e
    • Jerome Brunet's avatar
      ASoC: dpcm: improve runtime update predictability · de15d7ff
      Jerome Brunet authored
      As it is, dpcm_runtime_update() performs the old path and new path
      update of a frontend before going on to the next frontend DAI.
      Depending the order of the FEs within the rtd list, the result of
      the update might be different.
      
      For example:
       * Frontend A connected to backend C, with a 48kHz playback
       * Frontend B connected to backend D, with a 44.1kHz playback
       * FE A appears before FE B in the rtd list of the card.
      
      If we reparent BE C to FE B (disconnecting BE D):
      * old path update of FE A will run first, and BE C will get hw_free()
        and shutdown()
      * new path update of FE B will run after and BE C, which is stopped,
        so it will be configured at 44.1kHz, as expected
      
      If we reparent BE D to FE A (disconnecting BE C):
      * new path update of FE A will run first but since BE D is still running
        at 44.1kHz, it won't be reconfigured (no call to startup() or
        hw_params())
      * old path update of FE B runs after, nothing happens
      * In this case, we end up with a BE playing at 44.1kHz a stream which is
        supposed to be played at 48Khz (too slow)
      
      To improve this situation, this patch performs all the FE old paths update
      before going on to update the new paths. With this, the result should
      no longer depend on the order of the FE within the card rtd list.
      
      Please note that there might be a small performance penalty since
      dpcm_process_paths() is called twice per stream direction.
      Signed-off-by: default avatarJerome Brunet <jbrunet@baylibre.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      de15d7ff
  2. 27 Jun, 2018 14 commits
  3. 26 Jun, 2018 12 commits
  4. 25 Jun, 2018 2 commits
  5. 22 Jun, 2018 9 commits