1. 22 Mar, 2023 1 commit
  2. 21 Mar, 2023 20 commits
    • Mark Brown's avatar
      ASoC: SOF: ipc4/intel: Support for ChainDMA · e3057eb5
      Mark Brown authored
      Merge series from Peter Ujfalusi <peter.ujfalusi@linux.intel.com>:
      
      On a platform when the DSP is in use, we cannot select individual links
      to use or not use the DSP, it is either all or none.  On some audio
      endpoint, like HDMI/DP, it is preferred to not use any processing in DSP
      to reduce the latency and to allow bytestream pass-through (DTS, DD,
      etc)
      
      IPC4 introduces a new type of end-to-end connection within the DSP which
      is using the host DMA and link DMA in a single buffer, working
      back-to-back, passing the received data without looking at it or trying
      to understand the format, content.
      
      This mode reduces the latency and allows non PCM streams to be sent from
      userspace.
      
      The feature is enabled per PCM bases, signalled in topology.
      e3057eb5
    • Peter Ujfalusi's avatar
      ASoC: SOF: ipc4-control: Return on error in sof_ipc4_widget_kcontrol_setup() · 1c12e032
      Peter Ujfalusi authored
      The patch adding the bytes control support moved the error check outside
      of the list_for_each_entry() which was not correct as at the end of the
      list_for_each_entry() the scontrol will no longer point where the error
      happened, but it to the list head.
      
      Restore the original logic and return on the first error with the error
      code.
      
      Fixes: a062c889 ("ASoC: SOF: ipc4-control: Add support for bytes control get and put")
      Reported-by: default avatarDan Carpenter <error27@gmail.com>
      Link: https://lore.kernel.org/alsa-devel/6be945d2-40cb-46fb-67ba-ed3a19cddfa4@linux.intel.com/T/#tSigned-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
      Link: https://lore.kernel.org/r/20230321145651.9118-1-peter.ujfalusi@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      1c12e032
    • Mark Brown's avatar
      ASoC: Initial support for Cirrus Logic CS35L56 · 1d78e193
      Mark Brown authored
      Merge series from Richard Fitzgerald <rf@opensource.cirrus.com>:
      
      The CS35L56 is a high-performance boosted mono audio amplifier.
      Supported control interfaces are I2C, SPI or SoundWire.
      Supported audio interfaces are I2S/TDM or SoundWire.
      
      The CS35L56 has a self-booting firmware in ROM, with the ability
      to patch the firmware and/or apply tunings.
      Patches #1 to #7 add support to cs_dsp and wm_adsp for self-booting
      firmware and the ability to apply a .bin file without having to
      apply a .wmfw.
      1d78e193
    • Mark Brown's avatar
      ALSA/ASoC: Convert to platform remove callback · 4af574f5
      Mark Brown authored
      Merge series from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
      
      Hello,
      
      this series adapts the platform drivers below sound/ to use the .remove_new()
      callback. Compared to the traditional .remove() callback .remove_new() returns
      no value. This is a good thing because the driver core doesn't (and cannot)
      cope for errors during remove. The only effect of a non-zero return value in
      .remove() is that the driver core emits a warning. The device is removed anyhow
      and an early return from .remove() usually yields a resource leak.
      
      By changing the remove callback to return void driver authors cannot
      reasonably assume any more that there is some kind of cleanup later.
      
      The first two patches simplify a driver each to return zero unconditionally,
      and then all drivers are trivially converted to .remove_new().
      
      There are nearly no interdependencies in this patch set---only 1 <- 11 and
      2 <- 16. So even if some individual problems are found (I don't expect that),
      the other patches can (and from my POV should) still be applied.
      
      Best regards
      Uwe
      
      Uwe Kleine-König (173):
        ALSA: sh: aica: Drop if blocks with always false condition
        ASoC: amd: acp: rembrandt: Drop if blocks with always false condition
        ALSA: pxa2xx: Convert to platform remove callback returning void
        ALSA: atmel: ac97: Convert to platform remove callback returning void
        ALSA: mts64: Convert to platform remove callback returning void
        ALSA: portman2x4: Convert to platform remove callback returning void
        ALSA: mips/hal2: Convert to platform remove callback returning void
        ALSA: mips/sgio2audio: Convert to platform remove callback returning
          void
        ALSA: hda/tegra: Convert to platform remove callback returning void
        ALSA: ppc/powermac: Convert to platform remove callback returning void
        ALSA: sh: aica: Convert to platform remove callback returning void
        ALSA: sh_dac_audio: Convert to platform remove callback returning void
        ASoC: adi: axi-i2s: Convert to platform remove callback returning void
        ASoC: adi: axi-spdif: Convert to platform remove callback returning
          void
        ASoC: amd: acp-pcm-dma: Convert to platform remove callback returning
          void
        ASoC: amd: acp: rembrandt: Convert to platform remove callback
          returning void
        ASoC: amd: acp: renoir: Convert to platform remove callback returning
          void
        ASoC: amd: ps: Convert to platform remove callback returning void
        ASoC: amd: raven: acp3x-pcm-dma: Convert to platform remove callback
          returning void
        ASoC: amd: raven: acp3x-pdm-dma: Convert to platform remove callback
          returning void
        ASoC: amd: vangogh: acp5x-pcm-dma: Convert to platform remove callback
          returning void
        ASoC: amd: yc: acp6x-pdm-dma: Convert to platform remove callback
          returning void
        ASoC: apple: mca: Convert to platform remove callback returning void
        ASoC: atmel: atmel-i2s: Convert to platform remove callback returning
          void
        ASoC: atmel: atmel_wm8904: Convert to platform remove callback
          returning void
        ASoC: atmel: mchp-i2s-mcc: Convert to platform remove callback
          returning void
        ASoC: atmel: mchp-pdmc: Convert to platform remove callback returning
          void
        ASoC: atmel: mchp-spdifrx: Convert to platform remove callback
          returning void
        ASoC: atmel: mchp-spdiftx: Convert to platform remove callback
          returning void
        ASoC: atmel: mikroe-proto: Convert to platform remove callback
          returning void
        ASoC: atmel: sam9g20_wm8731: Convert to platform remove callback
          returning void
        ASoC: atmel: sam9x5_wm8731: Convert to platform remove callback
          returning void
        ASoC: atmel: tse850-pcm5142: Convert to platform remove callback
          returning void
        ASoC: au1x: ac97c: Convert to platform remove callback returning void
        ASoC: au1x: i2sc: Convert to platform remove callback returning void
        ASoC: au1x: psc-ac97: Convert to platform remove callback returning
          void
        ASoC: au1x: psc-i2s: Convert to platform remove callback returning
          void
        ASoC: bcm: bcm63xx-i2s-whistler: Convert to platform remove callback
          returning void
        ASoC: bcm: cygnus-ssp: Convert to platform remove callback returning
          void
        ASoC: cirrus: edb93xx: Convert to platform remove callback returning
          void
        ASoC: cirrus: ep93xx-i2s: Convert to platform remove callback
          returning void
        ASoC: codecs: cs47l15: Convert to platform remove callback returning
          void
        ASoC: codecs: cs47l24: Convert to platform remove callback returning
          void
        ASoC: codecs: cs47l35: Convert to platform remove callback returning
          void
        ASoC: codecs: cs47l85: Convert to platform remove callback returning
          void
        ASoC: codecs: cs47l90: Convert to platform remove callback returning
          void
        ASoC: codecs: cs47l92: Convert to platform remove callback returning
          void
        ASoC: codecs: inno_rk3036: Convert to platform remove callback
          returning void
        ASoC: codecs: lpass-rx-macro: Convert to platform remove callback
          returning void
        ASoC: codecs: lpass-tx-macro: Convert to platform remove callback
          returning void
        ASoC: codecs: lpass-va-macro: Convert to platform remove callback
          returning void
        ASoC: codecs: lpass-wsa-macro: Convert to platform remove callback
          returning void
        ASoC: codecs: msm8916-wcd-analog: Convert to platform remove callback
          returning void
        ASoC: codecs: msm8916-wcd-digital: Convert to platform remove callback
          returning void
        ASoC: codecs: rk817_codec: Convert to platform remove callback
          returning void
        ASoC: codecs: wcd938x: Convert to platform remove callback returning
          void
        ASoC: codecs: wm5102: Convert to platform remove callback returning
          void
        ASoC: codecs: wm5110: Convert to platform remove callback returning
          void
        ASoC: codecs: wm8994: Convert to platform remove callback returning
          void
        ASoC: codecs: wm8997: Convert to platform remove callback returning
          void
        ASoC: codecs: wm8998: Convert to platform remove callback returning
          void
        ASoC: dwc: dwc-i2s: Convert to platform remove callback returning void
        ASoC: fsl: eukrea-tlv320: Convert to platform remove callback
          returning void
        ASoC: fsl: fsl_asrc: Convert to platform remove callback returning
          void
        ASoC: fsl: fsl_aud2htx: Convert to platform remove callback returning
          void
        ASoC: fsl: fsl_audmix: Convert to platform remove callback returning
          void
        ASoC: fsl: fsl_dma: Convert to platform remove callback returning void
        ASoC: fsl: fsl_easrc: Convert to platform remove callback returning
          void
        ASoC: fsl: fsl_esai: Convert to platform remove callback returning
          void
        ASoC: fsl: fsl_mqs: Convert to platform remove callback returning void
        ASoC: fsl: fsl_rpmsg: Convert to platform remove callback returning
          void
        ASoC: fsl: fsl_sai: Convert to platform remove callback returning void
        ASoC: fsl: fsl_spdif: Convert to platform remove callback returning
          void
        ASoC: fsl: fsl_ssi: Convert to platform remove callback returning void
        ASoC: fsl: fsl_xcvr: Convert to platform remove callback returning
          void
        ASoC: fsl: imx-audmux: Convert to platform remove callback returning
          void
        ASoC: fsl: imx-pcm-rpmsg: Convert to platform remove callback
          returning void
        ASoC: fsl: imx-sgtl5000: Convert to platform remove callback returning
          void
        ASoC: fsl: mpc5200_psc_ac97: Convert to platform remove callback
          returning void
        ASoC: fsl: mpc5200_psc_i2s: Convert to platform remove callback
          returning void
        ASoC: fsl: mpc8610_hpcd: Convert to platform remove callback returning
          void
        ASoC: fsl: p1022_ds: Convert to platform remove callback returning
          void
        ASoC: fsl: p1022_rdk: Convert to platform remove callback returning
          void
        ASoC: fsl: pcm030-audio-fabric: Convert to platform remove callback
          returning void
        ASoC: generic: test-component: Convert to platform remove callback
          returning void
        ASoC: img: img-i2s-in: Convert to platform remove callback returning
          void
        ASoC: img: img-i2s-out: Convert to platform remove callback returning
          void
        ASoC: img: img-parallel-out: Convert to platform remove callback
          returning void
        ASoC: img: img-spdif-in: Convert to platform remove callback returning
          void
        ASoC: img: img-spdif-out: Convert to platform remove callback
          returning void
        ASoC: img: pistachio-internal-dac: Convert to platform remove callback
          returning void
        ASoC: Intel: sst-mfld-platform-pcm: Convert to platform remove
          callback returning void
        ASoC: Intel: sst: Convert to platform remove callback returning void
        ASoC: Intel: bytcht_es8316: Convert to platform remove callback
          returning void
        ASoC: Intel: bytcr_rt5640: Convert to platform remove callback
          returning void
        ASoC: Intel: boards: bytcr_rt5651: Convert to platform remove callback
          returning void
        ASoC: Intel: bytcr_wm5102: Convert to platform remove callback
          returning void
        ASoC: Intel: cht_bsw_max98090_ti: Convert to platform remove callback
          returning void
        ASoC: Intel: sof_es8336: Convert to platform remove callback returning
          void
        ASoC: Intel: sof_pcm512x: Convert to platform remove callback
          returning void
        ASoC: Intel: sof_sdw: Convert to platform remove callback returning
          void
        ASoC: Intel: sof_wm8804: Convert to platform remove callback returning
          void
        ASoC: Intel: catpt: Convert to platform remove callback returning void
        ASoC: Intel: skl-ssp-clk: Convert to platform remove callback
          returning void
        ASoC: kirkwood: kirkwood-i2s: Convert to platform remove callback
          returning void
        ASoC: mediatek: mtk-btcvsd: Convert to platform remove callback
          returning void
        ASoC: mediatek: mt2701-afe-pcm: Convert to platform remove callback
          returning void
        ASoC: mediatek: mt6797-afe-pcm: Convert to platform remove callback
          returning void
        ASoC: mediatek: mt8173-afe-pcm: Convert to platform remove callback
          returning void
        ASoC: mediatek: mt8183-afe-pcm: Convert to platform remove callback
          returning void
        ASoC: mediatek: mt8188-afe-pcm: Convert to platform remove callback
          returning void
        ASoC: mediatek: mt8192-afe-pcm: Convert to platform remove callback
          returning void
        ASoC: mediatek: mt8195-afe-pcm: Convert to platform remove callback
          returning void
        ASoC: meson: aiu: Convert to platform remove callback returning void
        ASoC: mxs: mxs-sgtl5000: Convert to platform remove callback returning
          void
        ASoC: pxa: mmp-sspa: Convert to platform remove callback returning
          void
        ASoC: pxa: pxa2xx-ac97: Convert to platform remove callback returning
          void
        ASoC: qcom: qdsp6: Convert to platform remove callback returning void
        ASoC: rockchip: rockchip_i2s: Convert to platform remove callback
          returning void
        ASoC: rockchip: rockchip_i2s_tdm: Convert to platform remove callback
          returning void
        ASoC: rockchip: rockchip_pdm: Convert to platform remove callback
          returning void
        ASoC: rockchip: rockchip_rt5645: Convert to platform remove callback
          returning void
        ASoC: rockchip: rockchip_spdif: Convert to platform remove callback
          returning void
        ASoC: samsung: arndale: Convert to platform remove callback returning
          void
        ASoC: samsung: i2s: Convert to platform remove callback returning void
        ASoC: samsung: odroid: Convert to platform remove callback returning
          void
        ASoC: samsung: pcm: Convert to platform remove callback returning void
        ASoC: samsung: snow: Convert to platform remove callback returning
          void
        ASoC: samsung: spdif: Convert to platform remove callback returning
          void
        ASoC: sh: fsi: Convert to platform remove callback returning void
        ASoC: sh: hac: Convert to platform remove callback returning void
        ASoC: sh: rcar: Convert to platform remove callback returning void
        ASoC: sh: rz-ssi: Convert to platform remove callback returning void
        ASoC: sh: siu_dai: Convert to platform remove callback returning void
        ASoC: sprd: sprd-mcdt: Convert to platform remove callback returning
          void
        ASoC: stm: stm32_adfsdm: Convert to platform remove callback returning
          void
        ASoC: stm: stm32_i2s: Convert to platform remove callback returning
          void
        ASoC: stm: stm32_sai_sub: Convert to platform remove callback
          returning void
        ASoC: stm: stm32_spdifrx: Convert to platform remove callback
          returning void
        ASoC: sunxi: sun4i-codec: Convert to platform remove callback
          returning void
        ASoC: sunxi: sun4i-i2s: Convert to platform remove callback returning
          void
        ASoC: sunxi: sun4i-spdif: Convert to platform remove callback
          returning void
        ASoC: sunxi: sun50i-dmic: Convert to platform remove callback
          returning void
        ASoC: sunxi: sun8i-codec: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra186_asrc: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra186_dspk: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra20_ac97: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra20_i2s: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra210_admaif: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra210_adx: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra210_ahub: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra210_amx: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra210_dmic: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra210_i2s: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra210_mixer: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra210_mvc: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra210_ope: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra210_sfc: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra30_ahub: Convert to platform remove callback
          returning void
        ASoC: tegra: tegra30_i2s: Convert to platform remove callback
          returning void
        ASoC: ti: ams-delta: Convert to platform remove callback returning
          void
        ASoC: ti: davinci-i2s: Convert to platform remove callback returning
          void
        ASoC: ti: davinci-mcasp: Convert to platform remove callback returning
          void
        ASoC: ti: omap-hdmi: Convert to platform remove callback returning
          void
        ASoC: ti: omap-mcbsp: Convert to platform remove callback returning
          void
        ASoC: uniphier: evea: Convert to platform remove callback returning
          void
        ASoC: ux500: mop500: Convert to platform remove callback returning
          void
        ASoC: ux500: ux500_msp_dai: Convert to platform remove callback
          returning void
        ASoC: xilinx: xlnx_formatter_pcm: Convert to platform remove callback
          returning void
        ASoC: xilinx: xlnx_spdif: Convert to platform remove callback
          returning void
        ASoC: xtensa: xtfpga-i2s: Convert to platform remove callback
          returning void
        ALSA: sparc/cs4231: Convert to platform remove callback returning void
        ALSA: sparc/dbri: Convert to platform remove callback returning void
      
       sound/arm/pxa2xx-ac97.c                      |  6 ++----
       sound/atmel/ac97c.c                          |  6 ++----
       sound/drivers/mts64.c                        |  6 ++----
       sound/drivers/portman2x4.c                   |  6 ++----
       sound/mips/hal2.c                            |  5 ++---
       sound/mips/sgio2audio.c                      |  5 ++---
       sound/pci/hda/hda_tegra.c                    |  6 ++----
       sound/ppc/powermac.c                         |  5 ++---
       sound/sh/aica.c                              |  7 ++-----
       sound/sh/sh_dac_audio.c                      |  5 ++---
       sound/soc/adi/axi-i2s.c                      |  6 ++----
       sound/soc/adi/axi-spdif.c                    |  6 ++----
       sound/soc/amd/acp-pcm-dma.c                  |  6 ++----
       sound/soc/amd/acp/acp-rembrandt.c            | 13 +++----------
       sound/soc/amd/acp/acp-renoir.c               |  5 ++---
       sound/soc/amd/ps/ps-pdm-dma.c                |  5 ++---
       sound/soc/amd/raven/acp3x-pcm-dma.c          |  5 ++---
       sound/soc/amd/renoir/acp3x-pdm-dma.c         |  5 ++---
       sound/soc/amd/vangogh/acp5x-pcm-dma.c        |  5 ++---
       sound/soc/amd/yc/acp6x-pdm-dma.c             |  5 ++---
       sound/soc/apple/mca.c                        |  5 ++---
       sound/soc/atmel/atmel-i2s.c                  |  6 ++----
       sound/soc/atmel/atmel_wm8904.c               |  6 ++----
       sound/soc/atmel/mchp-i2s-mcc.c               |  6 ++----
       sound/soc/atmel/mchp-pdmc.c                  |  6 ++----
       sound/soc/atmel/mchp-spdifrx.c               |  6 ++----
       sound/soc/atmel/mchp-spdiftx.c               |  6 ++----
       sound/soc/atmel/mikroe-proto.c               |  6 ++----
       sound/soc/atmel/sam9g20_wm8731.c             |  6 ++----
       sound/soc/atmel/sam9x5_wm8731.c              |  6 ++----
       sound/soc/atmel/tse850-pcm5142.c             |  6 ++----
       sound/soc/au1x/ac97c.c                       |  6 ++----
       sound/soc/au1x/i2sc.c                        |  6 ++----
       sound/soc/au1x/psc-ac97.c                    |  6 ++----
       sound/soc/au1x/psc-i2s.c                     |  6 ++----
       sound/soc/bcm/bcm63xx-i2s-whistler.c         |  5 ++---
       sound/soc/bcm/cygnus-ssp.c                   |  6 ++----
       sound/soc/cirrus/edb93xx.c                   |  6 ++----
       sound/soc/cirrus/ep93xx-i2s.c                |  5 ++---
       sound/soc/codecs/cs47l15.c                   |  6 ++----
       sound/soc/codecs/cs47l24.c                   |  6 ++----
       sound/soc/codecs/cs47l35.c                   |  6 ++----
       sound/soc/codecs/cs47l85.c                   |  6 ++----
       sound/soc/codecs/cs47l90.c                   |  6 ++----
       sound/soc/codecs/cs47l92.c                   |  6 ++----
       sound/soc/codecs/inno_rk3036.c               |  6 ++----
       sound/soc/codecs/lpass-rx-macro.c            |  6 ++----
       sound/soc/codecs/lpass-tx-macro.c            |  6 ++----
       sound/soc/codecs/lpass-va-macro.c            |  6 ++----
       sound/soc/codecs/lpass-wsa-macro.c           |  6 ++----
       sound/soc/codecs/msm8916-wcd-analog.c        |  6 ++----
       sound/soc/codecs/msm8916-wcd-digital.c       |  6 ++----
       sound/soc/codecs/rk817_codec.c               |  6 ++----
       sound/soc/codecs/wcd938x.c                   |  6 ++----
       sound/soc/codecs/wm5102.c                    |  6 ++----
       sound/soc/codecs/wm5110.c                    |  6 ++----
       sound/soc/codecs/wm8994.c                    |  6 ++----
       sound/soc/codecs/wm8997.c                    |  6 ++----
       sound/soc/codecs/wm8998.c                    |  6 ++----
       sound/soc/dwc/dwc-i2s.c                      |  5 ++---
       sound/soc/fsl/eukrea-tlv320.c                |  6 ++----
       sound/soc/fsl/fsl_asrc.c                     |  6 ++----
       sound/soc/fsl/fsl_aud2htx.c                  |  6 ++----
       sound/soc/fsl/fsl_audmix.c                   |  6 ++----
       sound/soc/fsl/fsl_dma.c                      |  6 ++----
       sound/soc/fsl/fsl_easrc.c                    |  6 ++----
       sound/soc/fsl/fsl_esai.c                     |  6 ++----
       sound/soc/fsl/fsl_mqs.c                      |  5 ++---
       sound/soc/fsl/fsl_rpmsg.c                    |  6 ++----
       sound/soc/fsl/fsl_sai.c                      |  6 ++----
       sound/soc/fsl/fsl_spdif.c                    |  6 ++----
       sound/soc/fsl/fsl_ssi.c                      |  6 ++----
       sound/soc/fsl/fsl_xcvr.c                     |  5 ++---
       sound/soc/fsl/imx-audmux.c                   |  6 ++----
       sound/soc/fsl/imx-pcm-rpmsg.c                |  6 ++----
       sound/soc/fsl/imx-sgtl5000.c                 |  6 ++----
       sound/soc/fsl/mpc5200_psc_ac97.c             |  5 ++---
       sound/soc/fsl/mpc5200_psc_i2s.c              |  5 ++---
       sound/soc/fsl/mpc8610_hpcd.c                 |  6 ++----
       sound/soc/fsl/p1022_ds.c                     |  6 ++----
       sound/soc/fsl/p1022_rdk.c                    |  6 ++----
       sound/soc/fsl/pcm030-audio-fabric.c          |  6 ++----
       sound/soc/generic/test-component.c           |  6 ++----
       sound/soc/img/img-i2s-in.c                   |  6 ++----
       sound/soc/img/img-i2s-out.c                  |  6 ++----
       sound/soc/img/img-parallel-out.c             |  6 ++----
       sound/soc/img/img-spdif-in.c                 |  6 ++----
       sound/soc/img/img-spdif-out.c                |  6 ++----
       sound/soc/img/pistachio-internal-dac.c       |  6 ++----
       sound/soc/intel/atom/sst-mfld-platform-pcm.c |  5 ++---
       sound/soc/intel/atom/sst/sst_acpi.c          |  5 ++---
       sound/soc/intel/boards/bytcht_es8316.c       |  5 ++---
       sound/soc/intel/boards/bytcr_rt5640.c        |  5 ++---
       sound/soc/intel/boards/bytcr_rt5651.c        |  5 ++---
       sound/soc/intel/boards/bytcr_wm5102.c        |  5 ++---
       sound/soc/intel/boards/cht_bsw_max98090_ti.c |  6 ++----
       sound/soc/intel/boards/sof_es8336.c          |  6 ++----
       sound/soc/intel/boards/sof_pcm512x.c         |  6 ++----
       sound/soc/intel/boards/sof_sdw.c             |  6 ++----
       sound/soc/intel/boards/sof_wm8804.c          |  5 ++---
       sound/soc/intel/catpt/device.c               |  6 ++----
       sound/soc/intel/skylake/skl-ssp-clk.c        |  6 ++----
       sound/soc/kirkwood/kirkwood-i2s.c            |  6 ++----
       sound/soc/mediatek/common/mtk-btcvsd.c       |  5 ++---
       sound/soc/mediatek/mt2701/mt2701-afe-pcm.c   |  6 ++----
       sound/soc/mediatek/mt6797/mt6797-afe-pcm.c   |  6 ++----
       sound/soc/mediatek/mt8173/mt8173-afe-pcm.c   |  5 ++---
       sound/soc/mediatek/mt8183/mt8183-afe-pcm.c   |  6 ++----
       sound/soc/mediatek/mt8188/mt8188-afe-pcm.c   |  6 ++----
       sound/soc/mediatek/mt8192/mt8192-afe-pcm.c   |  5 ++---
       sound/soc/mediatek/mt8195/mt8195-afe-pcm.c   |  5 ++---
       sound/soc/meson/aiu.c                        |  6 ++----
       sound/soc/mxs/mxs-sgtl5000.c                 |  6 ++----
       sound/soc/pxa/mmp-sspa.c                     |  7 +++----
       sound/soc/pxa/pxa2xx-ac97.c                  |  5 ++---
       sound/soc/qcom/qdsp6/q6routing.c             |  6 ++----
       sound/soc/rockchip/rockchip_i2s.c            |  6 ++----
       sound/soc/rockchip/rockchip_i2s_tdm.c        |  6 ++----
       sound/soc/rockchip/rockchip_pdm.c            |  6 ++----
       sound/soc/rockchip/rockchip_rt5645.c         |  6 ++----
       sound/soc/rockchip/rockchip_spdif.c          |  6 ++----
       sound/soc/samsung/arndale.c                  |  5 ++---
       sound/soc/samsung/i2s.c                      |  8 +++-----
       sound/soc/samsung/odroid.c                   |  6 ++----
       sound/soc/samsung/pcm.c                      |  6 ++----
       sound/soc/samsung/snow.c                     |  6 ++----
       sound/soc/samsung/spdif.c                    |  6 ++----
       sound/soc/sh/fsi.c                           |  6 ++----
       sound/soc/sh/hac.c                           |  5 ++---
       sound/soc/sh/rcar/core.c                     |  6 ++----
       sound/soc/sh/rz-ssi.c                        |  6 ++----
       sound/soc/sh/siu_dai.c                       |  5 ++---
       sound/soc/sprd/sprd-mcdt.c                   |  6 ++----
       sound/soc/stm/stm32_adfsdm.c                 |  6 ++----
       sound/soc/stm/stm32_i2s.c                    |  6 ++----
       sound/soc/stm/stm32_sai_sub.c                |  6 ++----
       sound/soc/stm/stm32_spdifrx.c                |  6 ++----
       sound/soc/sunxi/sun4i-codec.c                |  6 ++----
       sound/soc/sunxi/sun4i-i2s.c                  |  6 ++----
       sound/soc/sunxi/sun4i-spdif.c                |  6 ++----
       sound/soc/sunxi/sun50i-dmic.c                |  6 ++----
       sound/soc/sunxi/sun8i-codec.c                |  6 ++----
       sound/soc/tegra/tegra186_asrc.c              |  6 ++----
       sound/soc/tegra/tegra186_dspk.c              |  6 ++----
       sound/soc/tegra/tegra20_ac97.c               |  6 ++----
       sound/soc/tegra/tegra20_i2s.c                |  6 ++----
       sound/soc/tegra/tegra210_admaif.c            |  6 ++----
       sound/soc/tegra/tegra210_adx.c               |  6 ++----
       sound/soc/tegra/tegra210_ahub.c              |  6 ++----
       sound/soc/tegra/tegra210_amx.c               |  6 ++----
       sound/soc/tegra/tegra210_dmic.c              |  6 ++----
       sound/soc/tegra/tegra210_i2s.c               |  6 ++----
       sound/soc/tegra/tegra210_mixer.c             |  6 ++----
       sound/soc/tegra/tegra210_mvc.c               |  6 ++----
       sound/soc/tegra/tegra210_ope.c               |  6 ++----
       sound/soc/tegra/tegra210_sfc.c               |  6 ++----
       sound/soc/tegra/tegra30_ahub.c               |  6 ++----
       sound/soc/tegra/tegra30_i2s.c                |  6 ++----
       sound/soc/ti/ams-delta.c                     |  5 ++---
       sound/soc/ti/davinci-i2s.c                   |  6 ++----
       sound/soc/ti/davinci-mcasp.c                 |  6 ++----
       sound/soc/ti/omap-hdmi.c                     |  5 ++---
       sound/soc/ti/omap-mcbsp.c                    |  6 ++----
       sound/soc/uniphier/evea.c                    |  6 ++----
       sound/soc/ux500/mop500.c                     |  6 ++----
       sound/soc/ux500/ux500_msp_dai.c              |  6 ++----
       sound/soc/xilinx/xlnx_formatter_pcm.c        |  5 ++---
       sound/soc/xilinx/xlnx_spdif.c                |  5 ++---
       sound/soc/xtensa/xtfpga-i2s.c                |  5 ++---
       sound/sparc/cs4231.c                         |  6 ++----
       sound/sparc/dbri.c                           |  6 ++----
       171 files changed, 345 insertions(+), 654 deletions(-)
      
      base-commit: fe15c26e
      --
      2.39.2
      4af574f5
    • Vlad.Karpovich's avatar
      ASoC: cs35l45: Hibernation support · 6c07be8f
      Vlad.Karpovich authored
      Adds support for a low-power Hibernation State.
      Add support for a low-power hibernation state for the DSP. In
      this state the DSP RAM contents are maintained, such that
      firmware does not need to be re-downloaded, but the rest of the
      chip's register state is lost.
      Entry to this state is achieved via the register interface
      (either by an external driver using the control port, or the
      programmable DSP). Exit from this state is triggered by activity
      on device GPIO pins, intended SPI transaction, or I2C
      transaction with intended slave address.
      Signed-off-by: default avatarVlad Karpovich <vkarpovi@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/167933511185.26.10641185496218226278@mailman-core.alsa-project.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      6c07be8f
    • Vlad.Karpovich's avatar
      ASoC: cs35l45: DSP Support · 74b14e28
      Vlad.Karpovich authored
      The CS35L45 digital core incorporates one programmable DSP block,
      capable of running a wide range of audio enhancement and speaker
      and battery protection functions.
      Signed-off-by: default avatarVlad Karpovich <vkarpovi@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/167933510679.26.5992985447093367768@mailman-core.alsa-project.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      74b14e28
    • Vlad.Karpovich's avatar
    • Vlad.Karpovich's avatar
      c6cec088
    • Vlad.Karpovich's avatar
    • Jyri Sarha's avatar
      ASoC: SOF: ipc4/intel: Add support for chained DMA · ca5ce0ca
      Jyri Sarha authored
      Add logic for setting up and tearing down chained DMA connections.
      
      Since pipelines are not used, all the logic to set the pipeline states
      can be bypassed, with only the DMA programming sequences remaining. In
      addition the same format needs to be used for host- and link-DMA,
      without the usual fixup to use the S32_LE format on the link.
      
      Note however that for convenience and compatibility with existing
      definitions, the topology relies on the concept of pipelines with a
      'USE_CHAIN_DMA' token indicating that all the logic shall be bypassed.
      
      Unlike 'normal' ALSA sequences, the chain DMA is not programmed in
      hw_params/hw_free. The IPC message to set-up and tear-down chained DMA
      are sent in sof_ipc4_trigger_pipelines(), but the contents prepared
      earlier.
      
      Chained DMA is only supported by the Intel HDA DAI for now, and only
      S16_LE and S32_LE formats are supported for now.
      Signed-off-by: default avatarJyri Sarha <jyri.sarha@intel.com>
      Reviewed-by: default avatarRander Wang <rander.wang@intel.com>
      Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
      Link: https://lore.kernel.org/r/20230321092654.7292-4-peter.ujfalusi@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      ca5ce0ca
    • Jyri Sarha's avatar
      ASoC: SOF: ipc4: Add macros for chain-dma message bits · cb3cdef3
      Jyri Sarha authored
      In the chained DMA mode, the firmware allocates buffers for the host
      and link DMA, and takes care of copying data between host- and
      link-DMA buffers in a low-latency thread. This is different to a
      regular pipeline, no processing is allowed, and the connection between
      host- and link DMA is handled with a dedicated IPC.
      
      This patch exposes the macros needed to create the required IPC messages.
      Signed-off-by: default avatarJyri Sarha <jyri.sarha@intel.com>
      Reviewed-by: default avatarRander Wang <rander.wang@intel.com>
      Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
      Link: https://lore.kernel.org/r/20230321092654.7292-3-peter.ujfalusi@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      cb3cdef3
    • Ranjani Sridharan's avatar
      ASoC: SOF: topology: Set pipeline widget before updating IPC structures · 3d3e223f
      Ranjani Sridharan authored
      Set up the IPC structure for scheduler widgets and set the pipeline widget
      before updating the IPC structures for all widgets. This will be needed to
      look up pipeline information during IPC structure set up.
      Signed-off-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
      Signed-off-by: default avatarJyri Sarha <jyri.sarha@intel.com>
      Reviewed-by: default avatarRander Wang <rander.wang@intel.com>
      Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
      Link: https://lore.kernel.org/r/20230321092654.7292-2-peter.ujfalusi@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      3d3e223f
    • Richard Fitzgerald's avatar
      ASoC: cs35l56: Add driver for Cirrus Logic CS35L56 · e4961125
      Richard Fitzgerald authored
      The CS35L56 combines a high-performance mono audio amplifier, Class-H
      tracking inductive boost converter, Halo Core(TM) DSP and a DC-DC boost
      converter supporting Class-H tracking.
      
      Supported control interfaces are I2C, SPI or SoundWire.
      Supported audio interfaces are I2S/TDM or SoundWire.
      
      Most chip functionality is controlled by on-board ROM firmware that is
      always running. The driver must apply patch/tune to the firmware
      before using the CS35L56.
      Signed-off-by: default avatarSimon Trimmer <simont@opensource.cirrus.com>
      Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20230320112245.115720-9-rf@opensource.cirrus.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      e4961125
    • Simon Trimmer's avatar
      ASoC: wm_adsp: Simplify the logging of requested firmware files · 991b1de8
      Simon Trimmer authored
      This change makes the logging of firmware files more consistent and
      simplifies the code - a debug message is logged whether the requested
      file was found or not and this applies to both wmfw and bin files.
      Signed-off-by: default avatarSimon Trimmer <simont@opensource.cirrus.com>
      Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20230320112245.115720-8-rf@opensource.cirrus.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      991b1de8
    • Simon Trimmer's avatar
      ASoC: wm_adsp: Add support for loading bin files without wmfw · 0e7d82cb
      Simon Trimmer authored
      A self-booted DSP may have a file of coefficients to apply to the device
      even when there is no firmware to download.
      Signed-off-by: default avatarSimon Trimmer <simont@opensource.cirrus.com>
      Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20230320112245.115720-7-rf@opensource.cirrus.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      0e7d82cb
    • Simon Trimmer's avatar
      ASoC: wm_adsp: Expose the DSP boot work actions as wm_adsp_power_up() · 11520b87
      Simon Trimmer authored
      To support self-booting DSPs that are considered always running, the work
      that is usually invoked as part of a DAPM sequence needs to be triggered
      by a client of wm_adsp as part of it's startup sequence.
      
      These actions load firmware files that might create ALSA controls and
      apply configuration to the device.
      Signed-off-by: default avatarSimon Trimmer <simont@opensource.cirrus.com>
      Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20230320112245.115720-6-rf@opensource.cirrus.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      11520b87
    • Simon Trimmer's avatar
      ASoC: wm_adsp: Support DSPs that don't require firmware download · 65a314b7
      Simon Trimmer authored
      When a DSP can self-boot from ROM it is not necessary to download
      firmware - when the DSP has the wmfw_optional flag set not finding a
      wmfw firmware file is a successful outcome and not an error condition.
      Signed-off-by: default avatarSimon Trimmer <simont@opensource.cirrus.com>
      Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/167931140130.26.15590061696793062038@mailman-core.alsa-project.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      65a314b7
    • Simon Trimmer's avatar
      firmware: cs_dsp: Support DSPs that don't require firmware download · 107c1674
      Simon Trimmer authored
      When a DSP can self-boot from ROM it is not necessary to download
      firmware during the powering up sequence.
      
      A DSP that required firmware download would fail in a previous
      configuration step if firmware was not available.
      Signed-off-by: default avatarSimon Trimmer <simont@opensource.cirrus.com>
      Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20230320112245.115720-4-rf@opensource.cirrus.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      107c1674
    • Simon Trimmer's avatar
      ASoC: wm_adsp: Use no_core_startstop to prevent creating preload control · 0cd1fd57
      Simon Trimmer authored
      The no_core_startstop flag indicates a self-booting DSP - they are
      considered to be always running and therefore cannot be pre-loaded.
      Signed-off-by: default avatarSimon Trimmer <simont@opensource.cirrus.com>
      Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20230320112245.115720-3-rf@opensource.cirrus.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      0cd1fd57
    • Simon Trimmer's avatar
      firmware: cs_dsp: Introduce no_core_startstop for self-booting DSPs · 7062e1c7
      Simon Trimmer authored
      There are devices containing Halo Core DSPs that self-boot, cs_dsp is
      used to manage the running firmware but the host does not have direct
      control over starting and stopping the DSP and so cs_dsp should consider
      the DSP to be always running.
      Signed-off-by: default avatarSimon Trimmer <simont@opensource.cirrus.com>
      Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20230320112245.115720-2-rf@opensource.cirrus.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      7062e1c7
  3. 20 Mar, 2023 19 commits