1. 21 Mar, 2023 16 commits
    • 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
    • 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
  2. 20 Mar, 2023 24 commits