Skip to content
  1. Feb 11, 2021
  2. Feb 09, 2021
    • Mark Brown's avatar
      Merge series "MFD/ASoC: Add support for Intel Bay Trail boards with WM5102... · d40dac7a
      Mark Brown authored
      Merge series "MFD/ASoC: Add support for Intel Bay Trail boards with WM5102 codec" from Hans de Goede <hdegoede@redhat.com>:
      
      Hi All,
      
      Here is v4 of my series to add support for Intel Bay Trail based devices
      which use a WM5102 codec for audio output/input.
      
      This was developed and tested on a Lenovo Yoga Tablet 1051L.
      
      The MFD and ASoC parts do not have any build-time dependencies
      on each other. But the follow-up jack-detect series does have
      patches depending on each-other and on this series. So IMHO it
      would be best if this entire series would be merged through the
      MFD tree to make merging the follow-up series easier.
      
      Mark, if that is ok with you (and you are happy with the ASoC
      changes) can you please Ack this ?
      
      Changes in v4:
      - Add a comment to the irq-flags override explaining that theoretically
        DSDTs using IRQF_TRIGGER_FALLING could be correct on boards where the
        IRQ controller does not support active low level interrupts
      
      Changes in v3:
      - Fix compilation error when CONFIG_ACPI is not set
      
      Changes in v2:
      - Split my WM5102 work into 2 series, one series adding basic support
        for Bay Trail boards with a WM5102 codec and a second series with
        the jack-detect work
      - Various other minor code tweaks
      
      Hans de Goede (4):
        mfd: arizona: Add MODULE_SOFTDEP("pre: arizona_ldo1")
        mfd: arizona: Replace arizona_of_get_type() with
          device_get_match_data()
        mfd: arizona: Add support for ACPI enumeration of WM5102 connected
          over SPI
        ASoC: Intel: Add DMI quirk table to soc_intel_is_byt_cr()
      
      Pierre-Louis Bossart (1):
        ASoC: Intel: bytcr_wm5102: Add machine driver for BYT/WM5102
      
       drivers/mfd/arizona-core.c                    |  11 -
       drivers/mfd/arizona-i2c.c                     |  11 +-
       drivers/mfd/arizona-spi.c                     | 138 +++++-
       drivers/mfd/arizona.h                         |   9 -
       sound/soc/intel/boards/Kconfig                |  12 +
       sound/soc/intel/boards/Makefile               |   2 +
       sound/soc/intel/boards/bytcr_wm5102.c         | 465 ++++++++++++++++++
       .../intel/common/soc-acpi-intel-byt-match.c   |  16 +
       sound/soc/intel/common/soc-intel-quirks.h     |  25 +
       9 files changed, 661 insertions(+), 28 deletions(-)
       create mode 100644 sound/soc/intel/boards/bytcr_wm5102.c
      
      Regards,
      
      Hans
      d40dac7a
  3. Feb 08, 2021
    • Pierre-Louis Bossart's avatar
      ASoC: Intel: bytcr_wm5102: Add machine driver for BYT/WM5102 · 9a87fc1e
      Pierre-Louis Bossart authored
      
      
      Add a new ASoc Machine driver for Intel Baytrail platforms with a
      Wolfson Microelectronics WM5102 codec.
      
      This is based on a past contributions [1] from Paulo Sergio Travaglia
      <pstglia@gmail.com> based on the Levono kernel [2] combined with
      insights in things like the speaker GPIO from the android-x86 android
      port for the Lenovo Yoga Tablet 2 1051F/L [3].
      
      [1] https://patchwork.kernel.org/project/alsa-devel/patch/593313f5.3636c80a.50e05.47e9@mx.google.com/
      [2] https://github.com/lenovo-yt2-dev/android_kernel_lenovo_baytrail/blob/cm-12.1/sound/soc/intel/board/byt_bl_wm5102.c
      [3] https://github.com/Kitsune2222/Android_Yoga_Tablet_2-1051F_Kernel
      
      The original machine driver from the Android ports was a crude modified
      copy of bytcr_rt5640.c adjusted to work with the WM5102 codec.
      This version has been extensively reworked to:
      
      1. Remove all rt5640 related quirk handling. to the best of my knowledge
      this setup is only used on the Lenovo Yoga Tablet 2 series (8, 10 and 13
      inch models) which all use the same setup. So there is no need to deal
      with all the variations with which we need to deal on rt5640 boards.
      
      2. Rework clock handling, properly turn off the FLL and the platform-clock
      when they are no longer necessary and don't reconfigure the FLL
      unnecessarily when it is already running. This fixes a number of:
      "Timed out waiting for lock" warnings being logged.
      
      3. Add the GPIO controlled Speaker-VDD regulator as a DAPM_SUPPLY
      
      This only adds the machine driver and ACPI hooks, the BYT-CR detection
      quirk which these devices need will be added in a separate patch.
      
      BugLink: https://github.com/thesofproject/linux/issues/2485
      Co-authored-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Reviewed-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20210120214957.140232-6-hdegoede@redhat.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      9a87fc1e
    • Hans de Goede's avatar
      ASoC: Intel: Add DMI quirk table to soc_intel_is_byt_cr() · 8ade6d8b
      Hans de Goede authored
      
      
      Some Bay Trail systems:
      1. Use a non CR version of the Bay Trail SoC
      2. Contain at least 6 interrupt resources so that the
         platform_get_resource(pdev, IORESOURCE_IRQ, 5) check to workaround
         non CR systems which list their IPC IRQ at index 0 despite being
         non CR does not work
      3. Despite 1. and 2. still have their IPC IRQ at index 0 rather then 5
      
      Add a DMI quirk table to check for the few known models with this issue,
      so that the right IPC IRQ index is used on these systems.
      
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Acked-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20210120214957.140232-5-hdegoede@redhat.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      8ade6d8b
    • Paul Cercueil's avatar
      ASoC: Add compatible strings for JZ4760(B) SoC · 45a90d4a
      Paul Cercueil authored
      
      
      Add the ingenic,jz4760b-codec and ingenic,jz4760-codec compatible
      strings.
      
      In the process, convert the previous compatible strings to use an enum
      instead.
      
      Signed-off-by: default avatarPaul Cercueil <paul@crapouillou.net>
      Link: https://lore.kernel.org/r/20210123140958.12895-1-paul@crapouillou.net
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      45a90d4a
    • Christophe Branchereau's avatar
      ASoC: codec: Add driver for JZ4760 internal codec · d9cd22e9
      Christophe Branchereau authored
      
      
      Add support for the internal codec found in the JZ4760 SoC from Ingenic.
      
      Signed-off-by: default avatarChristophe Branchereau <cbranchereau@gmail.com>
      Signed-off-by: default avatarPaul Cercueil <paul@crapouillou.net>
      Link: https://lore.kernel.org/r/20210123140958.12895-3-paul@crapouillou.net
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      d9cd22e9
    • Paul Cercueil's avatar
      ASoC: codec/ingenic: Depend on MACH_INGENIC · bad929b8
      Paul Cercueil authored
      
      
      No need to show the options to build Ingenic-specific drivers on all
      MIPS kernel configurations if Ingenic SoCs support is not enabled.
      
      Signed-off-by: default avatarPaul Cercueil <paul@crapouillou.net>
      Link: https://lore.kernel.org/r/20210123140958.12895-2-paul@crapouillou.net
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      bad929b8
    • Mark Brown's avatar
      Merge tag 'ib-mfd-asoc-v5.12' of... · 017131e0
      Mark Brown authored
      Merge tag 'ib-mfd-asoc-v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into asoc-5.12
      
      Immutable branch between MFD and [XXX] due for the v5.12 merge window
      017131e0
    • Mark Brown's avatar
      Merge series "Add HDMI support for Intel KeemBay I2S" from Sia Jee Heng <jee.heng.sia@intel.com>: · c88eb1b5
      Mark Brown authored
      The below patch series are to support Audio over HDMI.
      The modification in this patch series shall allow I2S driver
      to playback standard PCM format and IEC958 encoded format to
      the ADV7511 HDMI chip.
      
      ALSA IEC958 plugin will be used to compose the IEC958 format.
      
      Existing hdmi-codec driver only support standard pcm format.
      Support of IEC958 encoded format passdown from ALSA IEC958 plugin
      is needed so that the IEC958 encoded data can be streamed to the
      HDMI chip.
      
      Sia Jee Heng (4):
        ASoC: codec: hdmi-codec: Support IEC958 encoded PCM format
        drm: bridge: adv7511: Support I2S IEC958 encoded PCM format
        dt-bindings: sound: Intel, Keembay-i2s: Add hdmi-i2s compatible string
        ASoC: Intel: KMB: Support IEC958 encoded PCM format
      
       .../bindings/sound/intel,keembay-i2s.yaml     |  1 +
       drivers/gpu/drm/bridge/adv7511/adv7511.h      |  1 +
       .../gpu/drm/bridge/adv7511/adv7511_audio.c    |  6 ++
       include/sound/hdmi-codec.h                    |  5 ++
       sound/soc/codecs/hdmi-codec.c                 |  4 +-
       sound/soc/intel/keembay/kmb_platform.c        | 73 ++++++++++++++++++-
       sound/soc/intel/keembay/kmb_platform.h        |  1 +
       7 files changed, 89 insertions(+), 2 deletions(-)
      
      base-commit: 2557c711b87cd42bb22be9ca6ff3fce038624f30
      --
      2.18.0
      c88eb1b5
    • Mark Brown's avatar
      Merge series "Rename audio graph export functions" from Sameer Pujar <spujar@nvidia.com>: · 3bf48ea4
      Mark Brown authored
      This series renames exported functions from audio graph for a better
      global visibility. In doing so update the references in audio graph
      and Tegra audio graph card drivers.
      
      Changelog
      =========
      
      v2 -> v3:
      ---------
       [Patch v3 1/2]:
         - Squashed "patch v2 1/3" and "patch v2 2/3". Updated commit message
           accordingly.
         - Add "Acked-by" tag from Morimoto-san.
      
       [Patch v3 2/2]:
         - Add "Acked-by" tag from Morimoto-san.
      
      v1 -> v2:
      ---------
       [Patch v2 1/3]:
         - Rename graph_parse_of() to audio_graph_parse_of() and
           graph_card_probe() to audio_graph_card_probe() as well.
      
         - Update above references in audio graph driver.
      
       [Patch v2 2/3]: New patch
         - Update references for audio_graph_parse_of() and
           audio_graph_card_probe() in Tegra graph driver.
      
         - Add "Depends-on" tag
      
       [Patch v2 3/3]:
         - Update commit message to add "Depends-on" tag.
      
      Sameer Pujar (2):
        ASoC: audio-graph: Rename functions needed for export
        ASoC: tegra: Add driver remove() callback
      
       include/sound/graph_card.h               |  6 ++++--
       sound/soc/generic/audio-graph-card.c     | 17 +++++++++--------
       sound/soc/tegra/tegra_audio_graph_card.c |  9 +++++----
       3 files changed, 18 insertions(+), 14 deletions(-)
      
      --
      2.7.4
      3bf48ea4
    • Fabio Estevam's avatar
      ASoC: fsl_esai: Remove unused 'imx' field · 40bd053b
      Fabio Estevam authored
      
      
      The 'imx' field is not used anywhere, so get rid of it.
      
      Signed-off-by: default avatarFabio Estevam <festevam@gmail.com>
      Acked-by: default avatarShengjiu Wang <shengjiu.wang@gmail.com>
      Link: https://lore.kernel.org/r/20210206142753.536459-1-festevam@gmail.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      40bd053b
    • Rikard Falkeborn's avatar
      ASoC: fsl: constify static snd_soc_dai_ops structs · 38d89a56
      Rikard Falkeborn authored
      
      
      The only usage of these is to assign their address to the 'ops' field in
      the snd_soc_dai_driver struct, which is a pointer to const. Make them
      const to allow the compiler to put them in read-only memory.
      
      Signed-off-by: default avatarRikard Falkeborn <rikard.falkeborn@gmail.com>
      Acked-by: default avatarShengjiu Wang <shengjiu.wang@gmail.com>
      Link: https://lore.kernel.org/r/20210206225849.51071-1-rikard.falkeborn@gmail.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      38d89a56