1. 02 4月, 2015 6 次提交
    • L
      ASoC: Remove suspend_bias_level from DAPM context struct · 37660b6d
      Lars-Peter Clausen 提交于
      The only two users of the suspend_bias_level field were two rather old
      drivers which weren't exactly doing things by the book. Those drivers have
      been updated and field is now unused and can be removed.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      37660b6d
    • L
      ASoC: wm8753: Cleanup manual bias level transitions · a1f0b967
      Lars-Peter Clausen 提交于
      Set the CODEC driver's suspend_bias_off flag rather than manually going to
      SND_SOC_BIAS_OFF in suspend and SND_SOC_BIAS_STANDBY in resume. This makes
      the code a bit shorter and cleaner.
      
      Since the ASoC core now takes care of setting the bias level to
      SND_SOC_BIAS_OFF when removing the CODEC there is no need to do it manually
      anymore either.
      
      The manual transition to SND_SOC_BIAS_STANDBY at the end of CODEC probe()
      can also be removed as the core will automatically do this after the CODEC
      has been probed.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      a1f0b967
    • L
      ASoC: wm8753: Integrate capacitor charging into the DAPM sequence · 35afd922
      Lars-Peter Clausen 提交于
      When being powered on, either initially on probe or when resuming from
      suspend, the wm8971 configures the device for quick output capacitor
      charging. Since the charging can take a rather long time (up to multiple
      seconds) it is done asynchronously without blocking. A delayed work item is
      run once the charging is finished and the device is switched to the target
      bias level.
      
      This all done asynchronously to the regular DAPM sequence accessing the same
      data structures and registers without any looking, which can lead to race
      conditions. Furthermore this potentially delays the start of stream on the
      CODEC while the rest of the system is already up and running, meaning the
      first bytes of audio are lost. It also does no comply with the assumption of
      the DAPM core that if set_bias_level() returned successfully the device will
      be at the requested bias level.
      
      This patch slightly refactors things and makes sure that the caps charging
      is properly integrated into the DAPM sequence. When transitioning from
      SND_SOC_BIAS_OFF to SND_SOC_BIAS_STANDBY the part will be put into fast
      charging mode and a work item will be scheduled that puts it back into
      standby charging once the charging period has elapsed. If a playback or
      capture stream is started while charging is in progress the driver will now
      wait in SND_SOC_BIAS_PREPARE until the charging is done. This makes sure
      that charging is done asynchronously in the background when the chip is
      idle, but at the same time makes sure that playback/capture is not started
      before the charging is done.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      35afd922
    • L
      ASoC: wm8971: Cleanup manual bias level transitions · c59e6abb
      Lars-Peter Clausen 提交于
      Set the CODEC driver's suspend_bias_off flag rather than manually going to
      SND_SOC_BIAS_OFF in suspend and SND_SOC_BIAS_STANDBY in resume. This makes
      the code a bit shorter and cleaner.
      
      Since the ASoC core now takes care of setting the bias level to
      SND_SOC_BIAS_OFF when removing the CODEC there is no need to do it manually
      anymore either.
      
      The manual transition to SND_SOC_BIAS_STANDBY at the end of CODEC probe()
      can also be removed as the core will automatically do this after the CODEC
      has been probed.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      c59e6abb
    • L
      ASoC: wm8971: Integrate capacitor charging into the DAPM sequence · 64351840
      Lars-Peter Clausen 提交于
      When being powered on, either initially on probe or when resuming from
      suspend, the wm8971 configures the device for quick output capacitor
      charging. Since the charging can take a rather long time (up to multiple
      seconds) it is done asynchronously without blocking. A delayed work item is
      run once the charging is finished and the device is switched to the target
      bias level.
      
      This all done asynchronously to the regular DAPM sequence accessing the same
      data structures and registers without any looking, which can lead to race
      conditions. Furthermore this potentially delays the start of stream on the
      CODEC while the rest of the system is already up and running, meaning the
      first bytes of audio are lost. It also does no comply with the assumption of
      the DAPM core that if set_bias_level() returned successfully the device will
      be at the requested bias level.
      
      This patch slightly refactors things and makes sure that the caps charging
      is properly integrated into the DAPM sequence. When transitioning from
      SND_SOC_BIAS_OFF to SND_SOC_BIAS_STANDBY the part will be put into fast
      charging mode and a work item will be scheduled that puts it back into
      standby charging once the charging period has elapsed. If a playback or
      capture stream is started while charging is in progress the driver will now
      wait in SND_SOC_BIAS_PREPARE until the charging is done. This makes sure
      that charging is done asynchronously in the background when the chip is
      idle, but at the same time makes sure that playback/capture is not started
      before the charging is done.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      64351840
    • L
      ASoC: wm8971: Use system_power_efficient_wq instead of custom workqueue · ab87ce1d
      Lars-Peter Clausen 提交于
      The delayed work used by the wm8971 driver to manage the caps charging
      doesn't have any special requirements that would justify using a custom
      workqueue, just use the generic system_power_efficient_wq instead.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      ab87ce1d
  2. 18 2月, 2015 1 次提交
  3. 17 2月, 2015 2 次提交
  4. 14 2月, 2015 2 次提交
  5. 13 2月, 2015 1 次提交
  6. 12 2月, 2015 2 次提交
  7. 11 2月, 2015 6 次提交
  8. 10 2月, 2015 1 次提交
  9. 09 2月, 2015 10 次提交
  10. 08 2月, 2015 7 次提交
  11. 07 2月, 2015 2 次提交