1. 29 8月, 2019 2 次提交
    • R
      ASoC: Fail card instantiation if DAI format setup fails · 714a8438
      Ricard Wanderlof 提交于
      [ Upstream commit 40aa5383e393d72f6aa3943a4e7b1aae25a1e43b ]
      
      If the DAI format setup fails, there is no valid communication format
      between CPU and CODEC, so fail card instantiation, rather than continue
      with a card that will most likely not function properly.
      Signed-off-by: NRicard Wanderlof <ricardw@axis.com>
      Link: https://lore.kernel.org/r/alpine.DEB.2.20.1907241132350.6338@lnxricardw1.se.axis.comSigned-off-by: NMark Brown <broonie@kernel.org>
      Signed-off-by: NSasha Levin <sashal@kernel.org>
      714a8438
    • C
      ASoC: dapm: Fix handling of custom_stop_condition on DAPM graph walks · e6dc6409
      Charles Keepax 提交于
      [ Upstream commit 8dd26dff00c0636b1d8621acaeef3f6f3a39dd77 ]
      
      DPCM uses snd_soc_dapm_dai_get_connected_widgets to build a
      list of the widgets connected to a specific front end DAI so it
      can search through this list for available back end DAIs. The
      custom_stop_condition was added to is_connected_ep to facilitate this
      list not containing more widgets than is necessary. Doing so both
      speeds up the DPCM handling as less widgets need to be searched and
      avoids issues with CODEC to CODEC links as these would be confused
      with back end DAIs if they appeared in the list of available widgets.
      
      custom_stop_condition was implemented by aborting the graph walk
      when the condition is triggered, however there is an issue with this
      approach. Whilst walking the graph is_connected_ep should update the
      endpoints cache on each widget, if the walk is aborted the number
      of attached end points is unknown for that sub-graph. When the stop
      condition triggered, the original patch ignored the triggering widget
      and returned zero connected end points; a later patch updated this
      to set the triggering widget's cache to 1 and return that. Both of
      these approaches result in inaccurate values being stored in various
      end point caches as the values propagate back through the graph,
      which can result in later issues with widgets powering/not powering
      unexpectedly.
      
      As the original goal was to reduce the size of the widget list passed
      to the DPCM code, the simplest solution is to limit the functionality
      of the custom_stop_condition to the widget list. This means the rest
      of the graph will still be processed resulting in correct end point
      caches, but only widgets up to the stop condition will be added to the
      returned widget list.
      
      Fixes: 6742064a ("ASoC: dapm: support user-defined stop condition in dai_get_connected_widgets")
      Fixes: 5fdd022c ("ASoC: dpcm: play nice with CODEC<->CODEC links")
      Fixes: 09464974 ("ASoC: dapm: Fix to return correct path list in is_connected_ep.")
      Signed-off-by: NCharles Keepax <ckeepax@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20190718084333.15598-1-ckeepax@opensource.cirrus.comSigned-off-by: NMark Brown <broonie@kernel.org>
      Signed-off-by: NSasha Levin <sashal@kernel.org>
      e6dc6409
  2. 25 8月, 2019 7 次提交
  3. 16 8月, 2019 10 次提交
  4. 07 8月, 2019 1 次提交
  5. 31 7月, 2019 3 次提交
  6. 26 7月, 2019 6 次提交
  7. 14 7月, 2019 2 次提交
  8. 10 7月, 2019 9 次提交