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 2 次提交
  5. 19 8月, 2016 2 次提交
  6. 18 8月, 2016 1 次提交
  7. 16 8月, 2016 2 次提交
  8. 12 8月, 2016 1 次提交
  9. 11 8月, 2016 3 次提交
  10. 10 8月, 2016 1 次提交
    • T
      ALSA: hda - Manage power well properly for resume · a52ff34e
      Takashi Iwai 提交于
      For SKL and later Intel chips, we control the power well per codec
      basis via link_power callback since the commit [03b135ce: ALSA:
      hda - remove dependency on i915 power well for SKL].
      However, there are a few exceptional cases where the gfx registers are
      accessed from the audio driver: namely the wakeup override bit
      toggling at (both system and runtime) resume.  This seems causing a
      kernel warning when accessed during the power well down (and likely
      resulting in the bogus register accesses).
      
      This patch puts the proper power up / down sequence around the resume
      code so that the wakeup bit is fiddled properly while the power is
      up.  (The other callback, sync_audio_rate, is used only in the PCM
      callback, so it's guaranteed in the power-on.)
      
      Also, by this proper power up/down, the instantaneous flip of wakeup
      bit in the resume callback that was introduced by the commit
      [033ea349: ALSA: hda - Fix Skylake codec timeout] becomes
      superfluous, as snd_hdac_display_power() already does it.  So we can
      clean it up together.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96214
      Fixes: 03b135ce ('ALSA: hda - remove dependency on i915 power well for SKL')
      Cc: <stable@vger.kernel.org> # v4.2+
      Tested-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      a52ff34e
  11. 09 8月, 2016 2 次提交
  12. 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
  13. 04 8月, 2016 3 次提交
  14. 03 8月, 2016 2 次提交
  15. 02 8月, 2016 1 次提交
  16. 01 8月, 2016 3 次提交
  17. 28 7月, 2016 2 次提交
    • H
      ASoC: rsnd: Fixup SRCm_IFSVR calculate method · 93ca33c9
      Hiroyuki Yokoyama 提交于
      This patch fixes the calculation accuracy degradation of SRCm_IFSVR
      register value.
      Signed-off-by: NHiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      93ca33c9
    • N
      ASoC: dapm: Add a dummy snd_pcm_runtime to avoid NULL pointer access · 8053f216
      Nicolin Chen 提交于
      The SND_SOC_DAPM_PRE_PMU case would call startup()/hw_params() that
      might access substream->runtime through other functions.
      
      For example:
      
      Unable to handle kernel NULL pointer dereference at virtual address
      [....]
      PC is at snd_pcm_hw_rule_add+0x24/0x1b0
      LR is at snd_pcm_hw_constraint_list+0x20/0x28
      [....]
      Process arecord (pid: 424, stack limit = 0xffffffc1ecaf0020)
      Call trace:
      [<ffffffc00086be68>] snd_pcm_hw_rule_add+0x24/0x1b0
      [<ffffffc00086c014>] snd_pcm_hw_constraint_list+0x20/0x28
      [<ffffffc0008b47a4>] cs53l30_pcm_startup+0x24/0x30
      [<ffffffc0008a6260>] snd_soc_dai_link_event+0x290/0x354
      [<ffffffc0008a7528>] dapm_seq_check_event.isra.31+0x134/0x2c8
      [<ffffffc0008a7768>] dapm_seq_run_coalesced+0x94/0x1c8
      [<ffffffc0008a7940>] dapm_seq_run+0xa4/0x404
      [<ffffffc0008a8bac>] dapm_power_widgets+0x524/0x984
      [<ffffffc0008ab1c4>] snd_soc_dapm_stream_event+0x8c/0xa8
      [<ffffffc0008ac7f4>] soc_pcm_prepare+0x10c/0x1ec
      [<ffffffc000865b9c>] snd_pcm_do_prepare+0x1c/0x38
      [<ffffffc000865600>] snd_pcm_action_single+0x40/0x88
      [<ffffffc0008656b8>] snd_pcm_action_nonatomic+0x70/0x90
      [<ffffffc000868d28>] snd_pcm_common_ioctl1+0xb6c/0xdd8
      [<ffffffc000869508>] snd_pcm_capture_ioctl1+0x200/0x334
      [<ffffffc00086a084>] snd_pcm_ioctl_compat+0x648/0x95c
      [<ffffffc0001ff4b4>] compat_SyS_ioctl+0xac/0xfc4
      [<ffffffc000084cf0>] el0_svc_naked+0x24/0x28
      ---[ end trace 0dc4f99c2759c35c ]---
      
      So this patch adds a dummy runtime for the original dummy substream
      to merely avoid the NULL pointer access.
      Signed-off-by: NNicolin Chen <nicoleotsuka@gmail.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      8053f216
  18. 26 7月, 2016 1 次提交
  19. 25 7月, 2016 2 次提交
  20. 22 7月, 2016 1 次提交