1. 22 7月, 2021 1 次提交
    • A
      ASoC: codecs: wcd938x: fix wcd module dependency · b9a4b57f
      Arnd Bergmann 提交于
      With SND_SOC_ALL_CODECS=y and SND_SOC_WCD938X_SDW=m, there is a link
      error from a reverse dependency, since the built-in codec driver calls
      into the modular soundwire back-end:
      
      x86_64-linux-ld: sound/soc/codecs/wcd938x.o: in function `wcd938x_codec_free':
      wcd938x.c:(.text+0x2c0): undefined reference to `wcd938x_sdw_free'
      x86_64-linux-ld: sound/soc/codecs/wcd938x.o: in function `wcd938x_codec_hw_params':
      wcd938x.c:(.text+0x2f6): undefined reference to `wcd938x_sdw_hw_params'
      x86_64-linux-ld: sound/soc/codecs/wcd938x.o: in function `wcd938x_codec_set_sdw_stream':
      wcd938x.c:(.text+0x332): undefined reference to `wcd938x_sdw_set_sdw_stream'
      x86_64-linux-ld: sound/soc/codecs/wcd938x.o: in function `wcd938x_tx_swr_ctrl':
      wcd938x.c:(.text+0x23de): undefined reference to `wcd938x_swr_get_current_bank'
      x86_64-linux-ld: sound/soc/codecs/wcd938x.o: in function `wcd938x_bind':
      wcd938x.c:(.text+0x2579): undefined reference to `wcd938x_sdw_device_get'
      x86_64-linux-ld: wcd938x.c:(.text+0x25a1): undefined reference to `wcd938x_sdw_device_get'
      x86_64-linux-ld: wcd938x.c:(.text+0x262a): undefined reference to `__devm_regmap_init_sdw'
      
      Work around this using two small hacks: An added Kconfig dependency
      prevents the main driver from being built-in when soundwire support
      itself is a loadable module to allow calling devm_regmap_init_sdw(),
      and a Makefile trick links the wcd938x-sdw backend as built-in
      if needed to solve the dependency between the two modules.
      
      Fixes: 04544222 ("ASoC: codecs: wcd938x: add audio routing and Kconfig")
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Link: https://lore.kernel.org/r/20210721150510.1837221-1-arnd@kernel.orgSigned-off-by: NMark Brown <broonie@kernel.org>
      b9a4b57f
  2. 14 7月, 2021 1 次提交
  3. 30 6月, 2021 1 次提交
  4. 29 6月, 2021 1 次提交
  5. 14 6月, 2021 2 次提交
  6. 04 6月, 2021 3 次提交
  7. 02 6月, 2021 1 次提交
    • H
      mfd: arizona: Allow building arizona MFD-core as module · 33d55070
      Hans de Goede 提交于
      There is no reason why the arizona core,irq and codec model specific
      regmap bits cannot be build as a module. All they do is export symbols
      which are used by the arizona-spi/i2c and arizona-codec modules, which
      themselves can be built as module.
      
      Change the Kconfig and Makefile arizona bits so that the arizona MFD-core
      can be built as a module.
      
      This is especially useful on x86 platforms with a WM5102 codec, this
      allows the arizona MFD driver necessary for the WM5102 codec to be
      enabled in generic distro-kernels without growing the base kernel-image
      size.
      
      Note this also adds an explicit "depends on MFD_ARIZONA" to all the
      arizona codec Kconfig options. The codec drivers use functions from mfd
      arizona-core. These new depends are necessary to disallow the codec
      drivers being builtin when the arizona-core is build as a module,
      otherwise we end up with missing symbol errors when building vmlinuz.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Acked-by: NCharles Keepax <ckeepax@opensource.cirrus.com>
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      33d55070
  8. 01 6月, 2021 1 次提交
  9. 24 5月, 2021 1 次提交
    • S
      ASoC: codecs: Add driver for NXP/Goodix TFA989x (TFA1) amplifiers · af00978a
      Stephan Gerhold 提交于
      NXP's TFA98xx (now part of Goodix) are fairly popular speaker amplifiers
      used in many smartphones and tablets. Most of them are sold as "smart
      amplifiers" with built-in "CoolFlux DSP" that is used for volume control,
      plus a "sophisticated speaker-boost and protection algorithm".
      
      Unfortunately, they are also almost entirely undocumented. The short
      datasheets (e.g. [1] for TFA9897) describe the available features,
      but do not provide any information about the registers or how to use
      the "CoolFlux DSP".
      
      The amplifiers are most often configured through proprietary userspace
      libraries. There are also some (rather complex) kernel drivers (e.g. [2])
      but even those rely on obscure firmware blobs for configuration (so-called
      "containers"). They seem to contain different "profiles" with tuned speaker
      settings, sample rates and volume steps (which would be better exposed
      as separate ALSA mixers).
      
      The format of the firmware files seems to have changed a lot over the time,
      so it's not even possible to simply re-use the firmware originally provided
      by the vendor.
      
      Overall, it seems close to impossible to develop a proper mainline driver
      for these amplifiers that could make proper use of the built-in DSP.
      
      This commit implements a compromise: At least the TFA1 family of the
      TFA98xx amplifiers (usually called TFA989x) provide a way to *bypass*
      the DSP using a special register sequence. The register sequence can be
      found in similar variations in the kernel drivers from lots of vendors
      e.g. in [3] and was probably mainly used for factory testing.
      
      With the DSP bypassed, the amplifier acts mostly like a dumb standard
      speaker amplifier, without (hardware) volume control. However, the setup
      is much simpler and it works without any obscure firmware.
      
      This driver implements the DSP bypass combined with chip-specific
      initialization sequences adapted from [2]. Only TFA9895 is supported in
      this initial commit. Except for the lack of volume control I can not hear
      any difference with or without the DSP, it works just fine.
      
      This driver allows the speaker to work on mainline Linux running on the
      Samsung Galaxy A3/A5 (2015) [TFA9895] and Alcatel Idol 3 [TFA9897].
      TFA9897 support will be added in separate patch set later.
      
      [1]: https://product.goodix.com/en/docview/TFA9897%20SDS_Rev.3.1?objectId=47&objectType=document&version=78
      [2]: https://source.codeaurora.org/external/mas/tfa98xx
      [3]: https://github.com/sonyxperiadev/kernel/blob/57b5050e340f40a88e1ddb8d16fd9adb44418923/sound/soc/codecs/tfa98xx.c#L1422-L1462Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
      Link: https://lore.kernel.org/r/20210513104129.36583-2-stephan@gerhold.netSigned-off-by: NMark Brown <broonie@kernel.org>
      af00978a
  10. 07 4月, 2021 2 次提交
  11. 26 3月, 2021 1 次提交
  12. 18 3月, 2021 1 次提交
  13. 10 3月, 2021 4 次提交
  14. 11 2月, 2021 2 次提交
  15. 08 2月, 2021 2 次提交
  16. 01 2月, 2021 1 次提交
  17. 16 12月, 2020 1 次提交
  18. 10 12月, 2020 1 次提交
  19. 02 12月, 2020 1 次提交
  20. 01 12月, 2020 1 次提交
  21. 30 11月, 2020 1 次提交
  22. 26 11月, 2020 1 次提交
  23. 19 11月, 2020 2 次提交
  24. 18 11月, 2020 1 次提交
  25. 10 11月, 2020 1 次提交
  26. 27 10月, 2020 1 次提交
  27. 09 10月, 2020 1 次提交
  28. 29 9月, 2020 1 次提交
  29. 22 9月, 2020 1 次提交
  30. 10 9月, 2020 1 次提交