1. 21 9月, 2017 1 次提交
  2. 19 9月, 2017 2 次提交
  3. 16 8月, 2017 1 次提交
  4. 15 8月, 2017 1 次提交
  5. 19 1月, 2017 1 次提交
  6. 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
  7. 01 12月, 2016 1 次提交
  8. 11 11月, 2016 1 次提交
  9. 27 10月, 2016 1 次提交
  10. 26 10月, 2016 2 次提交
  11. 25 10月, 2016 1 次提交
  12. 25 9月, 2016 1 次提交
    • 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
  13. 02 9月, 2016 1 次提交
    • J
      ASoC: constify snd_soc_codec_driver structures · f802d6c0
      Julia Lawall 提交于
      Check for snd_soc_codec_driver structures that are only passed to
      snd_soc_register_codec or memcpy (2nd arg), for which the corresponding
      parameters are declared const.  Declare as const snd_soc_codec_driver
      structures that have these properties.
      
      The semantic patch that makes this change is as follows:
      (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @r disable optional_qualifier@
      identifier i;
      position p;
      @@
      static struct snd_soc_codec_driver i@p = { ... };
      
      @ok@
      identifier r.i;
      expression e1,e2,e3;
      position p;
      @@
      (
      snd_soc_register_codec(e1,&i@p,e2,e3)
      |
      memcpy(e1,&i@p,e2)
      )
      
      @bad@
      position p != {r.p,ok.p};
      identifier r.i;
      @@
      i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r.i;
      @@
      static
      +const
       struct snd_soc_codec_driver i = { ... };
      // </smpl>
      Signed-off-by: NJulia Lawall <Julia.Lawall@lip6.fr>
      Acked-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      f802d6c0
  14. 11 8月, 2016 1 次提交
  15. 08 8月, 2016 1 次提交
  16. 13 6月, 2016 1 次提交
  17. 30 5月, 2016 1 次提交
  18. 27 4月, 2016 1 次提交
  19. 16 4月, 2016 2 次提交
  20. 05 2月, 2016 1 次提交
    • C
      ASoC: arizona: Add support for SNDRV_PCM_RATE_KNOT · d81221ff
      Charles Keepax 提交于
      The Arizona CODECs support several rates that do not have simple defines
      in ALSA. This patch adds support for SNDRV_PCM_RATE_KNOT so that users
      can open stream at these rates. As part of this we should always set
      constraints in arizona_startup, currently we only set the constraints if
      we already have a clock to limit rates to that family of sample rates.
      This patch updates this to set a constraint of all rates supported by
      the chip if we do not already know which family of rates to limit to.
      Finally we also reduce the list of rates supported in the constraints to
      only include those that are supported on current parts.
      Signed-off-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      d81221ff
  21. 29 1月, 2016 2 次提交
  22. 11 7月, 2015 1 次提交
  23. 07 7月, 2015 2 次提交
  24. 19 6月, 2015 1 次提交
    • R
      ASoC: wm_adsp: Move DSP Rate controls into the codec · 336d0442
      Richard Fitzgerald 提交于
      The rate controls are codec-specific, it's not possible to
      generically say what the range or the meaning of each control
      is (or even if they exist at all) - that depends on the
      particular codec.
      
      This is currently being handled for Arizona codecs by putting
      an Arizona-specific table of controls inside the wm_adsp driver.
      This creates a dependency between wm_adsp and arizona.c, and is an
      awkward solution if the ADSP is used in another family of codecs
      
      Fix this by moving the Arizona-specific rate controls into the
      Arizona codec drivers.
      Signed-off-by: NRichard Fitzgerald <rf@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      336d0442
  25. 11 6月, 2015 2 次提交
  26. 03 6月, 2015 2 次提交
    • R
      ASoC: wm_adsp: Move DVFS control into codec driver · 81ac58b1
      Richard Fitzgerald 提交于
      In theory the ADSP driver should not need to know anything
      about the codec it is part of. But the WM5102 needs DVFS
      control based on ADSP clocking speed. This was being handled
      by bundling part of the knowledge of this into the ADSP driver.
      
      This change moves this handling out of the ADSP driver and
      into the WM5102 driver.
      Signed-off-by: NRichard Fitzgerald <rf@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      81ac58b1
    • R
      ASoC: arizona: Export functions to control subsystem DVFS · 346d9683
      Richard Fitzgerald 提交于
      The WM5102 and WM8997 codecs have an internal dynamic clock booster.
      When this booster is active, the DCVDD voltage must be increased.
      If all the currently active audio paths can run with the root SYSCLK
      we can disable the booster, allowing us to turn down DCVDD voltage
      to save power.
      
      Previously this was being done by having the booster enable bit set
      as a side-effect of the LDO1 regulator driver, which is unexpected
      behaviour of a regulator and not compatible with using an external
      regulator.  [Originally this was documented as a feature of the internal
      LDO -- broonie]
      
      This patch exports functions to handle the booster enable and
      DCVDD voltage, with each relevant subsystem flagging whether it can
      currently run without the booster. Note that these subsystems are
      stateless and none of them are nestable, so there's no need for
      reference counting, we only need a simple boolean for each subsystem
      of whether their current condition could require the booster or will
      allow us to turn the codec down to lower operating power.
      Signed-off-by: NRichard Fitzgerald <rf@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      346d9683
  27. 01 6月, 2015 1 次提交
  28. 28 5月, 2015 1 次提交
  29. 07 4月, 2015 1 次提交
  30. 28 1月, 2015 2 次提交
  31. 15 1月, 2015 1 次提交
  32. 09 1月, 2015 1 次提交
    • V
      ASoC: wm5102: Use put_unaligned_be16 · a6b3db2c
      Vaishali Thakkar 提交于
      This patch introduces the use of function put_unaligned_be16.
      
      This is done using Coccinelle and semantic patch used is as follows:
      
      @a@
      typedef u16, __be16, uint16_t;
      {u16,__be16,uint16_t} e16;
      identifier tmp;
      expression ptr;
      expression y,e;
      type T;
      @@
      
      - tmp = cpu_to_be16(y);
      
      <+... when != tmp
      (
      - memcpy(ptr, (T)&tmp, \(2\|sizeof(u16)\|sizeof(__be16)\|sizeof(uint16_t)\|sizeof(e16)\));
      + put_unaligned_be16(y,ptr);
      |
      - memcpy(ptr, (T)&tmp, ...);
      + put_unaligned_be16(y,ptr);
      )
      ...+>
      ? tmp = e
      
      @@ type T; identifier a.tmp; @@
      
      - T tmp;
      ...when != tmp
      Signed-off-by: NVaishali Thakkar <vthakkar1994@gmail.com>
      Acked-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      --
      Changes Since v2:
         Make the patch compatible for current code
      
       sound/soc/codecs/wm5102.c | 6 +++---
       1 file changed, 3 insertions(+), 3 deletions(-)
      Signed-off-by: NMark Brown <broonie@kernel.org>
      a6b3db2c