1. 17 4月, 2015 1 次提交
  2. 12 4月, 2015 1 次提交
  3. 10 4月, 2015 1 次提交
  4. 09 4月, 2015 4 次提交
    • B
      ASoC: rt286: Restore default in probe · d53d59ec
      Bard Liao 提交于
      RT286 can't do register reset. If the hardware power is still existing
      in power off, rt286 will keep the register settings. So, we need to
      restore the default register value in probe to make sure the cache value
      is the same as the real register value.
      Signed-off-by: NBard Liao <bardliao@realtek.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      d53d59ec
    • C
      ASoC: wm8804: Enable runtime PM · 1a60667f
      Charles Keepax 提交于
      Currently both the oscillator and the PLL are powered up in
      set_bias_level. This can be problematic when using output clocks from
      the wm8804 for other devices. The snd_soc_codec_set_pll API defines that
      a clock should be available once the call returns, however, with all the
      clocking controlled in set_bias_level this is not currently the case.
      
      This patch enables pm_runtime for the wm8804, enabling both the
      regulators and the oscillator when the chip resumes, and enabling the
      PLL in the snd_soc_codec_set_pll call. Naturally the enabling the PLL
      will also cause the chip to resume.
      Signed-off-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      1a60667f
    • S
      ASoC: wm8804: Add DAPM widgets for SPDIF/AIF · 5631f187
      Sapthagiri Baratam 提交于
      This change converts the driver to use DAPM to control the power for the
      various blocks on the chip. As part of this change the existing controls
      "TX Playback Switch" (controlled power for the SPDIF TX block) and "AIF
      Playback Switch" (controlled power for the AIF block) are both removed,
      as they are now redundant since the power state of those blocks is
      controlled automatically by DAPM.
      
      There are several benefits of this change, the most important of which
      is this change adds support for powering down the SPDIF RX block. The RX
      block will automatically assume control of the PLL on the chip when it
      is receiving a signal, so leaving this enabled all the time as was
      currently done in the driver can be problematic. An incoming SPDIF signal
      that is not being used can completely destroy the clocking for an in use
      TX signal. But this change ensures that the RX block will only be
      powered when the user intends to be receiving data, thus avoiding this
      issue.
      
      Additional benefits include the chip being simpler to operate as the
      power no longer needs to be manually controlled between use-cases and a
      small power saving (although it is acknowledged that this is likely
      unimportant in the typical use-cases for this chip).
      Signed-off-by: NSapthagiri Baratam <sapthagiri.baratam@incubesol.com>
      Signed-off-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      5631f187
    • C
      ASoC: max98090: add shutdown callback for max98090 · c6b424fe
      Caesar Wang 提交于
      To fix pop noise when shutdown,the pop noise during shutdown
      is the pmic cutoff power of codec without any notice.
      Signed-off-by: JianqunXu's avatarjay.xu <xjq@rock-chips.com>
      Signed-off-by: Nzhengxing <zhengxing@rock-chips.com>
      Signed-off-by: NCaesar Wang <wxt@rock-chips.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      c6b424fe
  5. 07 4月, 2015 2 次提交
  6. 03 4月, 2015 1 次提交
  7. 02 4月, 2015 6 次提交
    • L
      ASoC: wm8350: Move delayed work struct from DAPM context to driver state · cd5d8226
      Lars-Peter Clausen 提交于
      The wm8350 driver is the last driver that still uses the delayed_work field
      from the snd_soc_dapm_context struct. Moving this over to the driver's
      private data struct will allow us to remove the field from the DAPM context,
      which will drastically reduce its size.
      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>
      cd5d8226
    • 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
  8. 28 3月, 2015 5 次提交
  9. 25 3月, 2015 2 次提交
  10. 24 3月, 2015 2 次提交
  11. 23 3月, 2015 3 次提交
  12. 22 3月, 2015 1 次提交
  13. 20 3月, 2015 1 次提交
  14. 17 3月, 2015 3 次提交
  15. 16 3月, 2015 2 次提交
  16. 13 3月, 2015 3 次提交
  17. 12 3月, 2015 2 次提交