1. 28 2月, 2018 1 次提交
    • R
      ASoC: wm_adsp: For TLV controls only register TLV get/set · d7789f5b
      Richard Fitzgerald 提交于
      Normal 512-byte get/set of a TLV isn't supported but we were
      registering the normal get/set anyway and relying on omitting
      the SNDRV_CTL_ELEM_ACCESS_[READ|WRITE] flags to prevent them
      being called.
      
      Trouble is if this gets broken in the core ALSA code - as it has
      been since at least 4.14 - the standard get/set can be called
      unexpectedly and corrupt memory.
      
      There's no point providing functions that won't be called and
      it's a trivial change. The benefit is that if the ALSA core gets
      broken again we get a big fat immediate NULL dereference instead
      of a memory corruption timebomb.
      Signed-off-by: NRichard Fitzgerald <rf@opensource.cirrus.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: stable@vger.kernel.org
      d7789f5b
  2. 09 12月, 2017 1 次提交
  3. 26 5月, 2017 1 次提交
  4. 25 5月, 2017 2 次提交
  5. 05 4月, 2017 2 次提交
  6. 07 3月, 2017 2 次提交
  7. 24 1月, 2017 3 次提交
  8. 07 1月, 2017 1 次提交
    • C
      ASoC: wm_adsp: Add mechanism to preload firmware on a core · af813a6f
      Charles Keepax 提交于
      As requirements to bring up audio paths are continuous getting tighter
      and the DSP download to most ADSP devices happens over an external bus
      it can become an important factor in the path bring up time. As such
      sometimes it is a reasonable trade off to download the firmware ahead of
      when it will be required and take a small hit on power consumption for
      keeping the core powered up.
      
      This "preloading" adds an additional control for each DSP core "DSPx
      Preload Switch" that when set to true will power up the DSP core and
      download the firmware currently selected in the "DSPx Firmware" control.
      Whilst the core is preloaded the current firmware can not be changed and
      the CODEC will be kept powered up and SYSCLK held on. Although future
      improvements may allow the SYSCLK to be powered down as well because
      the hardware only requires SYSCLK whilst the download is actually taking
      place, but this is not covered in this series.
      Signed-off-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      af813a6f
  9. 20 12月, 2016 1 次提交
  10. 12 12月, 2016 1 次提交
  11. 23 11月, 2016 3 次提交
  12. 22 11月, 2016 1 次提交
  13. 14 11月, 2016 1 次提交
  14. 11 11月, 2016 4 次提交
  15. 21 10月, 2016 1 次提交
  16. 27 9月, 2016 3 次提交
  17. 25 9月, 2016 2 次提交
    • 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
  18. 22 6月, 2016 1 次提交
  19. 13 6月, 2016 2 次提交
  20. 30 5月, 2016 1 次提交
  21. 05 5月, 2016 2 次提交
  22. 02 5月, 2016 1 次提交
  23. 27 4月, 2016 2 次提交
  24. 07 4月, 2016 1 次提交
    • C
      ASoC: wm_adsp: Improve DSP error handling · 5847609e
      Charles Keepax 提交于
      If we encounter an error on the DSP side whilst user-space is
      waiting on the poll we should call snd_compr_fragment_elapsed,
      although data is not actually available we want to wake
      user-space such that the error can be propagated out
      quickly. Additionally some versions of the DSP firmware are
      not super consistent about actually generating an IRQ if they
      encounter an error, as such we will check the DSP error status
      every time we run out of available data as well, to ensure we
      catch it.
      Signed-off-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      5847609e