1. 27 9月, 2016 2 次提交
  2. 25 9月, 2016 4 次提交
    • C
      ASoC: wm_adsp: Make DSP preloader a supply widget · 5ca7e170
      Charles Keepax 提交于
      Currently the DSP loading is split into two widgets, the preloader that
      is a snd_soc_dapm_dai_link widget which starts a thread to download
      the firmware, and the DSP itself which is a snd_soc_dapm_out_drv and
      synchronises the thread back in to the DAPM sequence. This allows the
      firmware download to be overlapped with the rest of the path bring up.
      
      The use of a snd_soc_dapm_dai_link widget requires the preloader to be part
      of the audio path in DAPM, really a supply widget is a better fit for the
      preloader. The preloader is something that needs to be done for the DSP to
      function, not a part of the audio path itself.
      
      This change makes the DSP preloader widget a supply widget, which as well
      as probably being a better fit will also make it much simpler to power up
      the preloader widget to trigger firmware download to the core independently
      of the audio path coming up.
      Signed-off-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      5ca7e170
    • C
      ASoC: arizona: Attach SYSCLK to DSP preloaders · 3577357a
      Charles Keepax 提交于
      Currently SYSCLK is attached to every compressed DAI as this follows the
      pattern of attaching clocks to the chips inputs and outputs, however, it is
      really the DSP that requires the clock here. As firmware download can be a
      significant part of the path startup time for these devices occasionally it
      would be desirable to download the firmware in advance of the path being
      brought up.
      
      To help facilitate this early firmware loading this patch attaches the
      SYSCLK to the DSP preloader widget. This also saves us adding a new route
      to SYSCLK every time a new compressed DAI is created.
      Signed-off-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      3577357a
    • C
      ASoC: wm_adsp: Move control cache sync out of preloader · cef45771
      Charles Keepax 提交于
      As part of the work to download firmware before the audio path is brought
      up the DSP will be put into a low power state between downloading firmware
      to the core and starting it running. This will mean that the firmware ALSA
      controls are not accessible in the hardware during this period of time.
      
      To prepare for this change we gate access to the hardware in the ALSA
      control handlers on the DSP being running rather than simply booted and
      move the synchronisation of the control caches out of the preloader delayed
      work and into the main DAPM thread after the DSP will have been brought out
      of its low power state.
      Signed-off-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      cef45771
    • C
      ASoC: wm_adsp: Separate concept of booted and running · 28823eba
      Charles Keepax 提交于
      Currently the wm_adsp driver has a flag that indicates the DSP is
      "running", this flag is used to gate access to the hardware.  However this
      flag is actually set in the firmware download thread after the firmware has
      been downloaded, but this is before the core is actually started running,
      so really it currently indicates that the core has been booted and is
      perhaps running.
      
      This patch clearly separates out the concepts of booted (firmware is
      downloaded) and running (code is executing on the DSP) within the wm_adsp
      driver.
      Signed-off-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      28823eba
  3. 15 9月, 2016 2 次提交
  4. 23 8月, 2016 1 次提交
  5. 11 8月, 2016 2 次提交
  6. 05 8月, 2016 3 次提交
    • A
      ASoC: da7213: Default to 64 BCLKs per WCLK to support all formats · 5d764912
      Adam Thomson 提交于
      Previously code defaulted to 32 BCLKS per WCLK which meant 24 and
      32 bit DAI formats would not work properly. This patch fixes the
      issue by defaulting to 64 BCLKs per WCLK.
      Signed-off-by: NAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      5d764912
    • J
      ASoC: nau8825: fix static check error about semaphone control · 06746c67
      John Hsu 提交于
      The patch is to fix the static check error as the following.
      
      The patch commit b50455fa ("ASoC: nau8825: cross talk suppression
      measurement function") from Jun 7, 2016, leads to the following
      static checker warning:
      
      	sound/soc/codecs/nau8825.c:265 nau8825_sema_acquire()
      	warn: 'sem:&nau8825->xtalk_sem' is sometimes locked here and
      	sometimes unlocked.
      
      The semaphone acquire function has return value, and some callers
      can do error handling when lock fails.
      Signed-off-by: NJohn Hsu <KCHSU0@nuvoton.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      06746c67
    • J
      ASoC: nau8825: fix bug in playback when suspend · ca6ac305
      John Hsu 提交于
      In chromium, the following steps will make codec function fail.
      \1. plug in headphones, Play music
      \2. run "powerd_dbus_suspend"
      \3. resume from S3
      After resume, the jack detection will restart and make configuration
      for the headset. Meanwhile, the playback prepares and starts to work.
      The two sequences will conflict and make wrong register configuration.
      
      Originally, the driver adds protection for the case when it finds
      the playback is active. But the "powerd_dbus_suspend" command will
      close the pcm stream before suspend. Therefore, the driver can't
      detect the playback after resume, and the protection not works.
      For the issue, the driver raises protection every time after resume.
      The protection will release after jack detection and configuration
      completes, and then the playback just will goes on.
      Signed-off-by: NJohn Hsu <KCHSU0@nuvoton.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      ca6ac305
  7. 21 7月, 2016 2 次提交
  8. 15 7月, 2016 2 次提交
  9. 14 7月, 2016 1 次提交
  10. 12 7月, 2016 5 次提交
  11. 08 7月, 2016 1 次提交
  12. 07 7月, 2016 2 次提交
  13. 04 7月, 2016 3 次提交
  14. 01 7月, 2016 4 次提交
  15. 30 6月, 2016 2 次提交
    • S
      ASoC: max98504: Add max98504 speaker amplifier driver · 4c5d1469
      Sylwester Nawrocki 提交于
      This patch adds driver for the MAX98504 speaker amplifier.  The MAX98504
      is a high efficiency mono class D amplifier that features an integrated
      boost converter with voltage and current sensing ADCs for Dynamic Speaker
      Management.
      This driver does not include support for the I2S DAI, as we wouldn't be
      able  to test such code in a hardware configuration where the amplifier
      has only wired the analogue input.
      Signed-off-by: NInha Song <ideal.song@samsung.com>
      [k.kozlowski: rebased on 4.1]
      Signed-off-by: NKrzysztof Kozlowski <k.kozlowski@samsung.com>
      [s.nawrocki: removed unused macro definitions, rewrote regulator supply
       related parts, rewrote regmap configuration code, added support for speaker
       enable and global chip enable through DAPM, rewritten as component driver,
       added PDM DAI definition and TDM callbacks for PDM channels configuration]
      Signed-off-by: NSylwester Nawrocki <s.nawrocki@samsung.com>
      --
      Changes since v2:
       - added parsing of the VBAT brownout DT properties,
       - removed MAX98504_REG_SPEAKER_SOURCE_SELECT register initialization,
       - removed unused macro definitions.
      
      Changes since v1:
       - none.
      
      Changes since initial version:
       - added regulator supply handling,
       - added DAPM widges for speaker source selection,
       - added PDM DAI definition and TDM callbacks for setting up active
         PDM Tx channels and I/V sense ADC data mapping,
       - removed all optional DT properties, added regulator supply properties
         in the DT binding.
      Signed-off-by: NMark Brown <broonie@kernel.org>
      4c5d1469
    • A
      ASoC: cs35l33: mark PM functions as __maybe_unused · 20f12f2c
      Arnd Bergmann 提交于
      The newly added cs35l33 driver produces a harmless warning when
      CONFIG_PM is disabled:
      
      sound/soc/codecs/cs35l33.c:908:12: error: 'cs35l33_runtime_suspend' defined but not used [-Werror=unused-function]
      sound/soc/codecs/cs35l33.c:868:12: error: 'cs35l33_runtime_resume' defined but not used [-Werror=unused-function]
      
      This adds __maybe_unused annotations to shut up the warning
      regardless of the configuration.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NPaul Handrigan <Paul.Handrigan@cirrus.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      20f12f2c
  16. 29 6月, 2016 2 次提交
  17. 28 6月, 2016 2 次提交
    • K
      ASoC: hdmi-codec: callback function will be called with private data · efc9194b
      Kuninori Morimoto 提交于
      Current hdmi-codec driver is assuming that it will be registered
      from HDMI driver. Because of this assumption, each callback function
      has struct device pointer which is parent device (= HDMI).
      Then, it can use dev_get_drvdata() to get private data.
      
      OTOH, on some SoC/HDMI case, SoC has VIDEO/SOUND and HDMI IPs.
      This case, it needs SoC VIDEO, SoC SOUND and HDMI video, HDMI codec
      driver. In DesignWare HDMI IP case, SoC VIDEO (= DRM/KMS) driver tries
      to bind DesignWare HDMI video driver, and HDMI codec driver
      (= hdmi-codec). This case, above "parent device" of HDMI codec driver
      is DRM/KMS driver and its "device" already has private data.
      
      And, from DT and ASoC CPU/Codec/Card binding point of view, HDMI codec
      (= hdmi-codec) needs to have "parent device" (= DRM/KMS), otherwise,
      it never detect sound card.
      
      Because of these reasons, some driver can't use dev_get_drvdata() to
      get private data on hdmi-codec driver. This patch add new void pointer
      on hdmi_codec_pdata for private data, and callback function will be
      called with it.
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      efc9194b
    • K
      ASoC: cs35l33: fix platform_no_drv_owner.cocci warnings · bac82943
      kbuild test robot 提交于
      sound/soc/codecs/cs35l33.c:1301:3-8: No need to set .owner here. The core will do it.
      
       Remove .owner field if calls are used which set it automatically
      
      Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci
      Signed-off-by: NFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      bac82943