1. 04 10月, 2011 5 次提交
  2. 29 9月, 2011 1 次提交
  3. 24 9月, 2011 1 次提交
    • M
      ASoC: Don't force bias on ground referenced devices · 85a843c5
      Mark Brown 提交于
      Currently we force all devices in the system to be at the same bias level.
      This is due to concerns about power or pop/click impacts from either
      ramping VMID or mismatching VMID on the analogue I/O lines between
      connected devices but does mean we power devices up more often than we
      really need to.
      
      If a device flags idle_bias_off this will usually mean that it's either
      all digital or ground referenced (in which case the idle and powered bias
      levels are identical) so this concern does not apply and we can save some
      power by leaving it off when not needed itself.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      85a843c5
  4. 23 9月, 2011 1 次提交
  5. 21 9月, 2011 2 次提交
    • M
      ASoC: Factor out per-widget DAPM power checks · 7c81beb0
      Mark Brown 提交于
      The indentation is getting a little deep. Should be straight code motion,
      no functional changes.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      7c81beb0
    • M
      ASoC: Trace and collect statistics for DAPM graph walking · de02d078
      Mark Brown 提交于
      One of the longest standing areas for improvement in ASoC has been the
      DAPM algorithm - it repeats the same checks many times whenever it is run
      and makes no effort to limit the areas of the graph it checks meaning we
      do an awful lot of walks over the full graph. This has never mattered too
      much as the size of the graph has generally been small in relation to the
      size of the devices supported and the speed of CPUs but it is annoying.
      
      In preparation for work on improving this insert a trace point after the
      graph walk has been done. This gives us specific timing information for
      the walk, and in order to give quantifiable (non-benchmark) numbers also
      count every time we check a link or check the power for a widget and report
      those numbers. Substantial changes in the algorithm may require tweaks to
      the stats but they should be useful for simpler things.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      de02d078
  6. 19 9月, 2011 1 次提交
  7. 31 8月, 2011 1 次提交
  8. 16 8月, 2011 1 次提交
  9. 26 7月, 2011 2 次提交
  10. 21 7月, 2011 1 次提交
  11. 17 7月, 2011 1 次提交
  12. 06 7月, 2011 1 次提交
  13. 20 6月, 2011 1 次提交
  14. 14 6月, 2011 2 次提交
    • L
      ASoC: dapm - Refactor widget IO functions in preparation for platform widgets. · 0445bdf4
      Liam Girdwood 提交于
      This time with soc_widget_update_bits reflecting recent soc_update_bits changes.
      
      Currently widget IO is tightly coupled to the CODEC drivers. Future platform DSP
      devices have mixer components that can alter power usage and hence require full
      DAPM support.
      
      This provides a generic widget IO operation wrapper in preparation for
      future patches that implement platform driver DAPM.
      Signed-off-by: NLiam Girdwood <lrg@ti.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      0445bdf4
    • M
      ASoC: Add weak routes for sidetone style paths · bf3a9e13
      Mark Brown 提交于
      Normally DAPM will power up any connected audio path. This is not ideal
      for sidetone paths as with sidetone paths the audio path is not wanted in
      itself, it is only desired if the two paths it provides a sidetone between
      are both active. If the sidetone path causes a power up then it can be
      hard to minimise pops as we first power up either the sidetone or the main
      output path and then power the other, with the second power up potentially
      introducing a DC offset.
      
      Address this by introducing the concept of a weak path. If a path is marked
      as weak then DAPM will ignore that path when walking the graph, though all
      the relevant controls are still available to the application layer to allow
      these paths to be configured.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      bf3a9e13
  15. 09 6月, 2011 1 次提交
  16. 07 6月, 2011 7 次提交
  17. 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
  18. 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
  19. 04 5月, 2011 7 次提交
  20. 28 4月, 2011 1 次提交
  21. 20 4月, 2011 1 次提交