1. 07 6月, 2011 4 次提交
  2. 27 5月, 2011 1 次提交
    • S
      ASoC: Fix dapm_is_shared_kcontrol so everything isn't shared · 1007da06
      Stephen Warren 提交于
      Commit af46800b ("ASoC: Implement mux control sharing") introduced
      function dapm_is_shared_kcontrol.
      
      When this function returns true, the naming of DAPM controls is derived
      from the kcontrol_new. Otherwise, the name comes from the widget (and
      possibly a widget's naming prefix).
      
      A bug in the implementation of dapm_is_shared_kcontrol made it return 1
      in all cases. Hence, that commit caused a change in control naming for
      all controls instead of just shared controls.
      
      Specifically, a control is always considered shared because it is always
      compared against itself. Solve this by never comparing against the widget
      containing the control being created.
      
      Equally, controls should never be shared between DAPM contexts; when the
      same codec is instantiated multiple times, the same kcontrol_new will be
      used. However, the control should no be shared between the multiple
      instances.
      
      I tested that with the Tegra WM8903 driver:
      * Shared is now mostly 0 as expected, and sometimes 1.
      * The expected controls are still generated after this change.
      
      However, I don't have any systems that have a widget/control naming
      prefix, so I can't test that aspect.
      
      Thanks for Jarkko Nikula for pointing out how to fix this.
      Reported-by: NLiam Girdwood <lrg@ti.com>
      Tested-by: NJarkko Nikula <jhnikula@gmail.com>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      1007da06
  3. 26 5月, 2011 1 次提交
    • J
      ASoC: Fix power down for widgetless per-card DAPM context case · ea77b947
      Jarkko Nikula 提交于
      Commit 52ba67bf ("ASoC: Force all DAPM contexts into the same bias state")
      powers up all the DAPM contexts in a card if any DAPM context becomes
      active. Unfortunately power down newer happens if per-card DAPM context
      doesn't have any widgets.
      
      Reason for this is that power state of per-card DAPM context without
      widgets is never cleared and thus all the DAPM contexts remain permanently
      active. Test for widgetless calling DAPM context in dapm_power_widgets()
      doesn't work for per-card DAPM context since power change is never
      originating from widgetless per-card DAPM context.
      
      Fix this by pre-clearing power state flag of non-codec DAPM context at the
      beginning of power sequence.
      Signed-off-by: NJarkko Nikula <jhnikula@gmail.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      ea77b947
  4. 04 5月, 2011 7 次提交
  5. 28 4月, 2011 1 次提交
  6. 20 4月, 2011 2 次提交
  7. 09 4月, 2011 2 次提交
    • M
      ASoC: Allow DAPM pin operations to match any context · 0d86733c
      Mark Brown 提交于
      The DAPM pin operations currently require that the specific DAPM context
      that the pin being operated in is contained in be specified. With multi
      component and especially with the addition of a per-card DAPM context
      this isn't ideal as it means that things like disabling unused pins on
      CODECs require looking up the CODEC DAPM context.
      
      Fix this by falling back to matching a widget in any context if there isn't
      a match in the current context. The code isn't ideal currently but will do
      the job.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      0d86733c
    • M
      ASoC: Force all DAPM contexts into the same bias state · 52ba67bf
      Mark Brown 提交于
      Currently we allow all DAPM contexts to determine their own bias level.
      While this should in general work in most situations and will deliver the
      lowest possible power it causes problems for our integration with the
      card bias level as we're calling the card bias level functions for each
      DAPM context even though they're card wide but don't say which CODEC
      we're calling them for. Mitigate against this by forcing everything to
      be in the same state.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      52ba67bf
  8. 08 4月, 2011 1 次提交
  9. 05 4月, 2011 1 次提交
  10. 09 3月, 2011 3 次提交
  11. 03 3月, 2011 2 次提交
  12. 25 2月, 2011 1 次提交
  13. 23 2月, 2011 2 次提交
  14. 19 2月, 2011 1 次提交
  15. 14 2月, 2011 1 次提交
  16. 10 2月, 2011 1 次提交
  17. 28 1月, 2011 1 次提交
  18. 27 1月, 2011 1 次提交
  19. 19 1月, 2011 3 次提交
  20. 22 12月, 2010 1 次提交
  21. 18 12月, 2010 1 次提交
  22. 17 12月, 2010 1 次提交
  23. 16 12月, 2010 1 次提交
    • J
      ASoC: Extend DAPM to handle power changes on cross-device paths · 7be31be8
      Jarkko Nikula 提交于
      Power change event like stream start/stop or kcontrol change in a
      cross-device path originates from one device but codec bias and widget power
      changes must be populated to another devices on that path as well.
      
      This patch modifies the dapm_power_widgets so that all the widgets on a
      sound card are checked for a power change, not just those that are specific
      to originating device. Also bias management is extended to check all the
      devices. Only exception in bias management are widgetless codecs whose bias
      state is changed only if power change is originating from that context.
      
      DAPM context test is added to dapm_seq_run to take care of if power sequence
      extends to an another device which requires separate register writes.
      Signed-off-by: NJarkko Nikula <jhnikula@gmail.com>
      Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      7be31be8