1. 10 Jun, 2022 8 commits
  2. 09 Jun, 2022 2 commits
    • Minghao Chi's avatar
      ASoC: imx-audmux: remove unnecessary check of clk_disable_unprepare/clk_prepare_enable · 142d4562
      Minghao Chi authored
      Because clk_disable_unprepare/clk_prepare_enable already checked NULL clock
      parameter, so the additional checks are unnecessary, just remove them.
      Reported-by: default avatarZeal Robot <zealci@zte.com.cn>
      Signed-off-by: default avatarMinghao Chi <chi.minghao@zte.com.cn>
      Acked-by: default avatarShengjiu Wang <shengjiu.wang@gmail.com>
      Link: https://lore.kernel.org/r/20220606033705.291048-1-chi.minghao@zte.com.cnSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      142d4562
    • Mark Brown's avatar
      Specify clock provider directly to CPU DAIs · d3d8fead
      Mark Brown authored
      Merge series from Charles Keepax <ckeepax@opensource.cirrus.com>:
      
      Currently the set_fmt callback always passes clock provider/consumer
      with respect to the CODEC. This made sense when the framework was
      directly broken down into platforms and CODECs. However, as things
      are now broken down into components which can be connected as either
      the CPU or CODEC side of a DAI link it simplifies things if each
      side of the link is just told if it is provider or consumer of the
      clocks. Making this change allows us to remove one of the last parts
      of the ASoC core that needs to know if a driver is a CODEC driver,
      where it flips the clock format specifier if a CODEC driver is used on
      the CPU side of a DAI link, as well as just being conceptually more
      consistent with componentisation.
      
      The basic idea of this patch chain is to change the set_fmt callback
      from specifying if the CODEC is provider/consumer into directly
      specifying if the component is provider/consumer. To do this we add
      some new defines, and then to preserve bisectability, the migration is
      done by adding a new callback, converting over all existing CPU side
      drivers, converting the core, and then finally reverting back to the
      old callback.
      
      Converting the platform drivers makes sense as the existing defines
      are from the perspective of the CODEC and there are more CODEC drivers
      than platform drivers.
      
      Obviously a fair amount of this patch chain I was only able to build
      test, so any testing that can be done would be greatly appreciated.
      d3d8fead
  3. 08 Jun, 2022 3 commits
  4. 07 Jun, 2022 14 commits
    • Mark Brown's avatar
      ASoC: ssm: Use modern ASoC DAI format terminology · 336a2d93
      Mark Brown authored
      Merge series from Mark Brown <broonie@kernel.org>:
      
      Trivial updates to modernise the various ssm* drivers to the new
      DAI clocking constants.
      336a2d93
    • Mark Brown's avatar
      ASoC: SOF: AMD/Mediatek updates for 5.20 · e7ab03bc
      Mark Brown authored
      Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
      
      Small patches reviewed on SOF GitHub.
      e7ab03bc
    • Miaoqian Lin's avatar
      ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe · efe2178d
      Miaoqian Lin authored
      of_parse_phandle() returns a node pointer with refcount
      incremented, we should use of_node_put() on it when not need anymore.
      Fix refcount leak in some error paths.
      
      Fixes: 0f83f929 ("ASoC: mediatek: Add machine driver for ALC5650 codec")
      Signed-off-by: default avatarMiaoqian Lin <linmq006@gmail.com>
      Link: https://lore.kernel.org/r/20220603124243.31358-1-linmq006@gmail.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      efe2178d
    • Uwe Kleine-König's avatar
      ASoC: simple-card-utils: Make asoc_simple_clean_reference() return void · e6f08af6
      Uwe Kleine-König authored
      asoc_simple_clean_reference() returns zero unconditionally. Letting it
      return void instead makes it easier to see in the caller that there is no
      error to handle.
      
      This is a preparation for making platform remove callbacks return void.
      Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Link: https://lore.kernel.org/r/20220605153537.26591-1-u.kleine-koenig@pengutronix.deSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      e6f08af6
    • Mauro Carvalho Chehab's avatar
      ASoC: wm8731: update wlf,wm8731.yaml reference · 69c8027c
      Mauro Carvalho Chehab authored
      Changeset 0e336eea ("ASoC: wm8731: Convert DT bindings to YAML format")
      renamed: Documentation/devicetree/bindings/sound/wm8731.txt
      to: Documentation/devicetree/bindings/sound/wlf,wm8731.yaml.
      
      Update its cross-reference accordingly.
      
      Fixes: 0e336eea ("ASoC: wm8731: Convert DT bindings to YAML format")
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Link: https://lore.kernel.org/r/e56e54fe0ebb1b6e8dd2e245c398190016eb0a34.1654529011.git.mchehab@kernel.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      69c8027c
    • Uwe Kleine-König's avatar
      ASoC: Intel: broadwell: Make broadwell_disable_jack() return void · aa0d5f09
      Uwe Kleine-König authored
      broadwell_disable_jack() returns zero unconditionally. Letting it
      return void instead makes it easier to see in the callers that there is no
      error to handle.
      
      This is a preparation for making platform remove callbacks return void.
      Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Acked-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20220605153904.26921-1-u.kleine-koenig@pengutronix.deSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      aa0d5f09
    • Mark Brown's avatar
      Add Machine driver support for nau8825, max98560 and rt5682s, rt1019 · 7ede9c4c
      Mark Brown authored
      Merge series from V sujith kumar Reddy <Vsujithkumar.Reddy@amd.com>:
      
      Add support for some new AMD machines.
      7ede9c4c
    • Mark Brown's avatar
      ASoC: Drop some i2c noop remove callbacks · 52970da2
      Mark Brown authored
      Merge series from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Uwe Kleine-König <uwe@kleine-koenig.org>:
      
      From: Uwe Kleine-König <uwe@kleine-koenig.org>
      
      Hello,
      
      I intended to send this after -rc1 was cut, but found a few spare
      minutes to prepare this series. All four patches were sent already
      before based on v5.18, but there were some conflicting changes added in
      the merge window. This series contains the four patches on top of
      current linus/master and so bases on a tree including the conflicting
      changes. Expecting no more sound changes in this merge window, this
      should apply cleanly on top of -rc1.
      
      Best regards
      Uwe
      
      Uwe Kleine-König (4):
        ASoC: ak4642: Drop no-op remove function
        ASoC: da7219: Drop no-op remove function
        ASoC: lm49453: Drop no-op remove function
        ASoC: da732x: Drop no-op remove function
      
       sound/soc/codecs/ak4613.c  | 6 ------
       sound/soc/codecs/da7219.c  | 6 ------
       sound/soc/codecs/da732x.c  | 6 ------
       sound/soc/codecs/lm49453.c | 6 ------
       4 files changed, 24 deletions(-)
      
      base-commit: 50fd82b3
      --
      2.36.1
      52970da2
    • Mark Brown's avatar
      Switch to use internal PLL for iMCLK · 2947683c
      Mark Brown authored
      Merge series from Hui Wang <hui.wang@canonical.com>:
      
      Taking your advice and try to enable internal PLL to get a more
      accurate sample rate. And I also changed the fsl-asoc-card.c to support
      the nau8822 codec, now the sound quality is pretty good on my imx6sx
      EVB.
      2947683c
    • Mark Brown's avatar
      ASoC: trivial changes for cppcheck warnings · 88406aa6
      Mark Brown authored
      Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
      
      This can probably wait for the next merge window, I found a number of
      cppcheck warnings that I didn't see in my last checks. The irony is
      that the only really important issue found by cppcheck was on one of
      my previous DPCM changes (submitted separately as a fix).
      88406aa6
    • Mark Brown's avatar
      OPE support on Tegra210 and later · ed05d691
      Mark Brown authored
      Merge series from Sameer Pujar <spujar@nvidia.com>:
      
      This series adds support for Output Prcoessing Module (OPE) module on
      Tegra210 and later generations of SoCs. OPE is a client of AHUB and
      it has sub blocks of PEQ (Parametric Equalizer) and MBDRC (Multi Band
      Dynamic Range Compressor) for data processing.
      
      An ASoC component is registered for OPE, which includes PEQ and MBDRC
      functions as well. This can be plugged in audio path using ALSA mixer
      controls. The series adds necessary binding documentaion, driver and
      DT binding patches to enable OPE module on Jetson platforms.
      ed05d691
    • Mark Brown's avatar
      ASoC: Intel: avs: Machine boards and HDA codec support · 9f2d5e1e
      Mark Brown authored
      Merge series from Cezary Rojewski <cezary.rojewski@intel.com>
      From there on is a range of boards appended. All of them follow the same:
      
      This series focuses on populating boards/ subdirectory with supported
      configurations by the avs-driver. Note: it is independent of recently
      provided "Driver code and PCM operations" series [1], that is, code
      found here should not collide with it.
      
      Series starts with a small change that adds a helper to sound pcm
      header, allowing for retrieving string naming a direction without the
      need of substream pointer. Said helper is used by codec driver code that
      follows it but I believe it's generic and helpful enough that it can be
      called an independent addition to the sound core.
      
      Code for generic HD-Audio codec driver follows. It is a ASoC wrapper for
      existing HD-Audio codec code found in sound/pci/hda/. There is basically
      no custom logic involved up to the point that driver follows
      HDA_DEV_LEGACY convention, rather than the HDA_DEV_ASOC one. Commit
      message for the given patch iterates on this and explains crucial parts
      of the implementation.
      
      From there on is a range of boards appended. All of them follow the same
      scheme:
      
      - define avs_create_dai_link() so DAI-LINKs can be created dynamically,
        based on the link_mask (I2S) or the number of entries in the
        ->pcm_list_head list (HDA)
      - define avs_create_dapm_routes() so DAPM routes can be created
        dynamically, same rules as above apply
      - define probe() function that creates new ASoC card, assign all
        required operations and resources along with calling the two above
      
      Changes in v2:
      - 'link_mask' usage replaced with 'i2s_link_mask' as requested by
        Pierre
      - 'ssp_test' board renamed to 'i2s_test' to match naming convention used
        for other i2s machine boards
      - enriched commit message and Kconfig for the 'HD-Audio codec driver'
        patch as requested by Kai
      
      [1]: https://lore.kernel.org/all/20220426172346.3508411-1-cezary.rojewski@intel.com/
      
      Amadeusz Sławiński (1):
        ASoC: Intel: avs: Add max98373 machine board
      
      Cezary Rojewski (13):
        ALSA: Add snd_pcm_direction_name() helper
        ASoC: codecs: Add HD-Audio codec driver
        ASoC: Intel: avs: Add HDAudio machine board
        ASoC: Intel: avs: Add DMIC machine board
        ASoC: Intel: avs: Add I2S-test machine board
        ASoC: Intel: avs: Add rt274 machine board
        ASoC: Intel: avs: Add rt286 machine board
        ASoC: Intel: avs: Add rt298 machine board
        ASoC: Intel: avs: Add rt5682 machine board
        ASoC: Intel: avs: Add nau8825 machine board
        ASoC: Intel: avs: Add ssm4567 machine board
        ASoC: Intel: avs: Add max98357a machine board
        ASoC: Intel: avs: Add da7219 machine board
      
       include/sound/pcm.h                    |  19 +-
       sound/soc/codecs/Kconfig               |  10 +
       sound/soc/codecs/Makefile              |   2 +
       sound/soc/codecs/hda-dai.c             | 102 +++++++
       sound/soc/codecs/hda.c                 | 395 +++++++++++++++++++++++++
       sound/soc/codecs/hda.h                 |  19 ++
       sound/soc/intel/Kconfig                |   3 +
       sound/soc/intel/avs/Makefile           |   3 +
       sound/soc/intel/avs/boards/Kconfig     | 121 ++++++++
       sound/soc/intel/avs/boards/Makefile    |  27 ++
       sound/soc/intel/avs/boards/da7219.c    | 282 ++++++++++++++++++
       sound/soc/intel/avs/boards/dmic.c      |  93 ++++++
       sound/soc/intel/avs/boards/hdaudio.c   | 294 ++++++++++++++++++
       sound/soc/intel/avs/boards/i2s_test.c  | 180 +++++++++++
       sound/soc/intel/avs/boards/max98357a.c | 154 ++++++++++
       sound/soc/intel/avs/boards/max98373.c  | 239 +++++++++++++++
       sound/soc/intel/avs/boards/nau8825.c   | 353 ++++++++++++++++++++++
       sound/soc/intel/avs/boards/rt274.c     | 310 +++++++++++++++++++
       sound/soc/intel/avs/boards/rt286.c     | 281 ++++++++++++++++++
       sound/soc/intel/avs/boards/rt298.c     | 281 ++++++++++++++++++
       sound/soc/intel/avs/boards/rt5682.c    | 340 +++++++++++++++++++++
       sound/soc/intel/avs/boards/ssm4567.c   | 271 +++++++++++++++++
       22 files changed, 3775 insertions(+), 4 deletions(-)
       create mode 100644 sound/soc/codecs/hda-dai.c
       create mode 100644 sound/soc/codecs/hda.c
       create mode 100644 sound/soc/codecs/hda.h
       create mode 100644 sound/soc/intel/avs/boards/Kconfig
       create mode 100644 sound/soc/intel/avs/boards/Makefile
       create mode 100644 sound/soc/intel/avs/boards/da7219.c
       create mode 100644 sound/soc/intel/avs/boards/dmic.c
       create mode 100644 sound/soc/intel/avs/boards/hdaudio.c
       create mode 100644 sound/soc/intel/avs/boards/i2s_test.c
       create mode 100644 sound/soc/intel/avs/boards/max98357a.c
       create mode 100644 sound/soc/intel/avs/boards/max98373.c
       create mode 100644 sound/soc/intel/avs/boards/nau8825.c
       create mode 100644 sound/soc/intel/avs/boards/rt274.c
       create mode 100644 sound/soc/intel/avs/boards/rt286.c
       create mode 100644 sound/soc/intel/avs/boards/rt298.c
       create mode 100644 sound/soc/intel/avs/boards/rt5682.c
       create mode 100644 sound/soc/intel/avs/boards/ssm4567.c
      
      --
      2.25.1
      9f2d5e1e
    • Mark Brown's avatar
      ASoC: Intel: soc-acpi and machine driver updates · 28223889
      Mark Brown authored
      Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
      
      Small updates to add initial tables for MeteorLake, SoundWire machine
      driver support for tests without HDMI and RT1019 for consistency on
      Chromebooks.
      28223889
    • Mark Brown's avatar
      ALSA: hda: cirrus: Add initial DSP support and firmware loading · a8b1b9ce
      Mark Brown authored
      Merge series from Vitaly Rodionov <vitalyr@opensource.cirrus.com>:
      
      The CS35L41 Amplifier contains a DSP, capable of running firmware.
      The firmware can run algorithms such as Speaker Protection, to ensure
      that playback at high gains do not harm the speakers.  This exports some
      interfaces to allow more use of this DSP by the HDA version of the driver.
      a8b1b9ce
  5. 06 Jun, 2022 13 commits