Skip to content
  1. Feb 03, 2022
  2. Jan 31, 2022
    • Randy Dunlap's avatar
      ASoC: max98927: add missing header file · bb45f689
      Randy Dunlap authored
      Add a header file that provides the missing function prototypes
      and macro to fix these build errors (seen on arch/alpha/):
      
      ../sound/soc/codecs/max98927.c: In function 'max98927_i2c_probe':
      ../sound/soc/codecs/max98927.c:902:19: error: implicit declaration of function 'devm_gpiod_get_optional'; did you mean 'devm_regulator_get_optional'? [-Werror=implicit-function-declaration]
        902 |                 = devm_gpiod_get_optional(&i2c->dev, "reset", GPIOD_OUT_HIGH);
            |                   ^~~~~~~~~~~~~~~~~~~~~~~
      ../sound/soc/codecs/max98927.c:902:63: error: 'GPIOD_OUT_HIGH' undeclared (first use in this function); did you mean 'GPIOF_INIT_HIGH'?
        902 |                 = devm_gpiod_get_optional(&i2c->dev, "reset", GPIOD_OUT_HIGH);
            |                                                               ^~~~~~~~~~~~~~
      ../sound/soc/codecs/max98927.c:909:17: error: implicit declaration of function 'gpiod_set_value_cansleep'; did you mean 'gpio_set_value_cansleep'? [-Werror=implicit-function-declaration]
        909 |                 gpiod_set_value_cansleep(max98927->reset_gpio, 0);
            |                 ^~~~~~~~~~~~~~~~~~~~~~~~
      
      Fixes: 4d67dc19
      
       ("ASoC: max98927: Handle reset gpio when probing i2c")
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Cc: Alejandro Tafalla <atafalla@dnyon.com>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Liam Girdwood <lgirdwood@gmail.com>
      Cc: Takashi Iwai <tiwai@suse.com>
      Cc: alsa-devel@alsa-project.org
      Link: https://lore.kernel.org/r/20220129080259.19964-1-rdunlap@infradead.org
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      bb45f689
  3. Jan 29, 2022
    • Mark Brown's avatar
      ASOC: amd: acp: Add generic PDM and PCI driver support for ACP · 9a19aba2
      Mark Brown authored
      Merge series from Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>:
      
      These changes add PDM and PCI drivers for AMD ACP hardware.
      9a19aba2
    • Mark Brown's avatar
      SoC: SOF: ipc: Optimizations for tx message · e0c8a67f
      Mark Brown authored
      Merge series from Peter Ujfalusi <peter.ujfalusi@linux.intel.com>:
      
      The series will drop the internal use of 'header' parameter which is always
      set to hdr->cmd.
      
      The other simplification is to use the provided message directly as it is
      guarantied to be valid throughout the message sending and we can save memory
      by not allocating a temporary buffer, also saving on needles memcpy()
      operations.
      e0c8a67f
    • Mark Brown's avatar
      (Re)enable DP/HDMI audio for RK3399 Gru · a3a2a21a
      Mark Brown authored
      Merge series from Brian Norris <briannorris@chromium.org>:
      
      This series fixes DP/HDMI audio for RK3399 Gru systems.
      
      First, there was a regression with the switch to SPDIF. Patch 1 can be
      taken separately as a regression fix if desired. But it's not quite so
      useful (at least on Chrome OS systems) without the second part.
      
      Second, jack detection was never upstreamed, because the hdmi-codec
      dependencies were still being worked out when this platform was first
      supported.
      
      base-commit: e783362e
      a3a2a21a
    • Uwe Kleine-König's avatar
      ASoC: cs42l51: Improve error handling in cs42l51_remove() · 73d4c313
      Uwe Kleine-König authored
      
      
      When disabling a regulator fails while the device goes away, there is
      little we can do and the machine is probably in enough trouble that any
      action we'd want to take fails anyhow.
      
      The return value used to be passed on in cs42l51_i2c_remove() (i.e. the
      i2c device remove callback). But the i2c core ignores the error code
      (apart from emitting a generic warning) and removes the device anyhow.
      
      So return 0 unconditionally in cs42l51_i2c_remove(), and instead of
      returning the error code to the upper layer emit a more helpful warning
      message. After that nobody is interested any more in the actual error
      code, so let cs42l51_remove() return void.
      
      Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Link: https://lore.kernel.org/r/20220110071832.306185-1-u.kleine-koenig@pengutronix.de
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      73d4c313
  4. Jan 28, 2022
  5. Jan 25, 2022
    • Lad Prabhakar's avatar
      ASoC: sh: rz-ssi: Remove duplicate macros · acfa1e2c
      Lad Prabhakar authored
      
      
      Remove SSICR_MST and SSICR_CKDV macros which are defined more than once.
      
      Signed-off-by: default avatarLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
      Reviewed-by: default avatarBiju Das <biju.das.jz@bp.renesas.com>
      Link: https://lore.kernel.org/r/20220125132457.14984-4-prabhakar.mahadev-lad.rj@bp.renesas.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      acfa1e2c
    • Lad Prabhakar's avatar
      ASoC: sh: rz-ssi: Add rz_ssi_set_substream() helper function · 962ff7ec
      Lad Prabhakar authored
      
      
      A copy of substream pointer is stored in priv structure during
      rz_ssi_dai_trigger() callback ie in SNDRV_PCM_TRIGGER_START case
      and the pointer is assigned to NULL in case of SNDRV_PCM_TRIGGER_STOP.
      
      The driver used the locks only in rz_ssi_stream_is_valid() and assigned
      the local substream pointer to NULL in rz_ssi_dai_trigger() callback but
      never locked it while making a local copy.
      
      This patch adds the rz_ssi_set_substream() helper function to set the
      substream pointer with locks acquired and replaces the instances of
      setting the local substream pointer with the rz_ssi_set_substream()
      function.
      
      Reported-by: default avatarPavel Machek <pavel@denx.de>
      Signed-off-by: default avatarLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
      Reviewed-by: default avatarBiju Das <biju.das.jz@bp.renesas.com>
      Link: https://lore.kernel.org/r/20220125132457.14984-3-prabhakar.mahadev-lad.rj@bp.renesas.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      962ff7ec
    • Lad Prabhakar's avatar
      ASoC: sh: rz-ssi: Use a do-while loop in rz_ssi_pio_recv() · 7276d3f3
      Lad Prabhakar authored
      
      
      Use a do-while loop while reading the samples from RX FIFO. The "done"
      flag was only changed as an outcome of the last if-statement (last step)
      in this entire procedure. This patch moves the condition from if
      statement to while and drops the "done" variable for readability.
      
      While at it, also drop the unneeded parentheses around runtime->dma_area.
      
      Signed-off-by: default avatarLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
      Link: https://lore.kernel.org/r/20220125132457.14984-2-prabhakar.mahadev-lad.rj@bp.renesas.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      7276d3f3
    • Mark Brown's avatar
      ASoC: Intel: sof_rt5682: add two derivative options · 9ebb50df
      Mark Brown authored
      Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
      
      Add support for platforms without amplifier (headset codec only) and
      without Intel graphics.
      9ebb50df
    • Mark Brown's avatar
      ASoC: add support for TAS5805M digital amplifier · 2e5a74c6
      Mark Brown authored
      Merge series from Daniel Beer <daniel.beer@igorinstitute.com>:
      
      This pair of patches implements support for the TAS5805M class D audio
      amplifier. This driver, and the example configuration in the device-tree
      file, were originally based on a 4.19 series kernel and have been
      modified slightly from the tested version.
      2e5a74c6
    • Mark Brown's avatar
      ASOC: cs42l42: Add support for system suspend · 8f1a27bb
      Mark Brown authored
      Merge series from Richard Fitzgerald <rf@opensource.cirrus.com>:
      
      Add system suspend and resume handlers so that the cs42l42 is cleanly
      put into power-off state during system suspend and the registers are
      restored in resume.
      8f1a27bb
    • Mark Brown's avatar
      ASoC: SOF: Intel: improve SoundWire _ADR handling · a567abf5
      Mark Brown authored
      Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
      
      Make sure the device version is taken into account when selecting a
      machine driver, in addition to device manufacturer and part_id, and
      simplify code with a macro.
      a567abf5
    • Mark Brown's avatar
      ASoC: fsl-asoc-card: Add optional dt property for setting mclk-id · e6ec5a39
      Mark Brown authored
      Merge series from Ariel D'Alessandro <ariel.dalessandro@collabora.com>:
      
      Sound cards may allow using different main clock inputs. In the generic
      fsl-asoc-card driver, these values are hardcoded for each specific card
      configuration.  Let's make it more flexible, allowing setting mclk-id
      from the device-tree node.
      e6ec5a39
    • Mark Brown's avatar
      ASoC: sh: rz-ssi: Code cleanup and fixes · d2fe7fc5
      Mark Brown authored
      Merge series from Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>:
      
      Hi All,
      
      This patch series does code cleanup and fixes to the rz-ssi driver.
      
      Cheers,
      Prabhakar
      
      Lad Prabhakar (5):
        ASoC: sh: rz-ssi: Drop calling rz_ssi_pio_recv() recursively
        ASoC: sh: rz-ssi: Make the data structures available before
          registering the handlers
        ASoC: sh: rz-ssi: Drop ssi parameter from rz_ssi_stream_init()
        ASoC: sh: rz-ssi: Make return type of rz_ssi_stream_is_valid() to bool
        ASoC: sh: rz-ssi: Add functions to get/set substream pointer
      
       sound/soc/sh/rz-ssi.c | 147 ++++++++++++++++++++++++------------------
       1 file changed, 86 insertions(+), 61 deletions(-)
      
      --
      2.17.1
      d2fe7fc5
    • Mark Brown's avatar
      ASoC: Xilinx fixes · 8bcd0f12
      Mark Brown authored
      Merge series from Robert Hancock <robert.hancock@calian.com>:
      
      There are drivers in mainline for the Xilinx Audio Formatter and Xilinx
      I2S IP cores. However, because of a few issues, these were only really
      usable with Xilinx's xlnx_pl_snd_card top-level driver, which is not in
      mainline (and not suitable for mainline).
      
      The fixes in this patchset, for the simple-card layer as well as the
      Xilinx drivers, now allow these drivers to be properly used with
      simple-card without any out-of-tree support code.
      8bcd0f12
    • Mark Brown's avatar
      ASoC: SOF: Intel: don't download firmware at each resume · 01f5060e
      Mark Brown authored
      Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
      
      After the first firmware boot, the firmware is capable of
      saving/restoring its context to/from IMR (Isolated Memory Region, set
      aside by BIOS on startup). This capability improves the resume speed.
      
      Due to an unexplained issue on Up2 boards, this capability is disabled
      on ApolloLake.
      
      For backwards compatibility, the regular boot flow is used with older
      firmware. For added peace of mind, a kernel module parameter is
      provided to force the regular boot flow - this shouldn't be necessary
      since we've been testing these patches for 6+ months.
      01f5060e
    • Mark Brown's avatar
      ASoC: topology: Fixes · cef982dc
      Mark Brown authored
      Merge series from Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>:
      
      Following series performs few cleanups in topology code.
      
      First patch reduces number of prints we get from failure.
      Second allos TLV controls to be either read or write which should be
      possible as evidenced by further code in function.
      Last one cleanups after refactoring of memory handling.
      
      v2:
       - Add missing Fixes tag on second patch
       - Add Reviewed-by tag from Pierre
      
      Amadeusz Sławiński (3):
        ASoC: topology: Remove superfluous error prints
        ASoC: topology: Allow TLV control to be either read or write
        ASoC: topology: Optimize soc_tplg_dapm_graph_elems_load behavior
      
       sound/soc/soc-topology.c | 103 ++++++++++-----------------------------
       1 file changed, 27 insertions(+), 76 deletions(-)
      
      --
      2.25.1
      cef982dc
    • Robert Hancock's avatar
      ASoC: simple-card-utils: Add new system-clock-fixed flag · 5ca2ab45
      Robert Hancock authored
      
      
      Add a new system-clock-fixed flag, which can be used to specify that the
      driver cannot or should not allow the clock frequency of the mapped clock
      to be modified. This behavior is also implied if the system-clock-frequency
      parameter is set explicitly - the flag is meant for cases where a clock is
      mapped to the DAI but which is, or should be treated as, fixed.
      
      When mclk-fs is also specified, this causes a PCM constraint to be added
      which enforces that only the corresponding valid sample rate can be used.
      
      Signed-off-by: default avatarRobert Hancock <robert.hancock@calian.com>
      Link: https://lore.kernel.org/r/20220120195832.1742271-7-robert.hancock@calian.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      5ca2ab45
    • Robert Hancock's avatar
      ASoC: dt-bindings: simple-card: document new system-clock-fixed flag · e9fed03a
      Robert Hancock authored
      
      
      Document the new system-clock-fixed flag, which can be used to specify
      that the driver cannot or should not allow the clock frequency of the
      mapped clock to be modified.
      
      Signed-off-by: default avatarRobert Hancock <robert.hancock@calian.com>
      Link: https://lore.kernel.org/r/20220120195832.1742271-6-robert.hancock@calian.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      e9fed03a
    • Robert Hancock's avatar
      ASoC: simple-card-utils: Set sysclk on all components · ce2f7b8d
      Robert Hancock authored
      If an mclk-fs value was provided in the device tree configuration, the
      calculated MCLK was fed into the downstream codec DAI and CPU DAI,
      however set_sysclk was not being called on the platform device. Some
      platform devices such as the Xilinx Audio Formatter need to know the MCLK
      as well.
      
      Call snd_soc_component_set_sysclk on each component in the stream to set
      the proper sysclk value in addition to the existing call of
      snd_soc_dai_set_sysclk on the codec DAI and CPU DAI. This may end up
      resulting in redundant calls if one of the snd_soc_dai_set_sysclk calls
      ends up calling snd_soc_component_set_sysclk itself, but that isn't
      expected to cause any significant harm.
      
      Fixes: f48dcbb6
      
       ("ASoC: simple-card-utils: share asoc_simple_hw_param()")
      Signed-off-by: default avatarRobert Hancock <robert.hancock@calian.com>
      Reviewed-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Link: https://lore.kernel.org/r/20220120195832.1742271-5-robert.hancock@calian.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      ce2f7b8d
    • Robert Hancock's avatar
      ASoC: xilinx: xlnx_i2s: Handle sysclk setting · c47aef89
      Robert Hancock authored
      
      
      This driver previously only handled the set_clkdiv divider callback when
      setting the SCLK Out Divider field in the I2S Timing Control register.
      However, when using the simple-audio-card driver, the set_sysclk function
      is called but not set_clkdiv. This caused the divider not to be set,
      leaving it at an invalid value of 0 and resulting in a very low SCLK
      output rate.
      
      Handle set_clkdiv and store the sysclk (MCLK) value for later use in
      hw_params to set the SCLK Out Divider such that:
      MCLK/SCLK = divider * 2
      
      Signed-off-by: default avatarRobert Hancock <robert.hancock@calian.com>
      Link: https://lore.kernel.org/r/20220120195832.1742271-4-robert.hancock@calian.com
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      c47aef89