ASoC: dt-bindings: qcom,lpass-tx-macro: narrow clocks per variants
Currently the Qualcomm TX macro codec binding allows two different clock
setups - with (for ADSP) and without macro/dcodec entries (for ADSP
bypassed). With more devices coming soon, this will keep growing, thus
rework the clocks/clock-names to be specific for each binding.
ASoC: dt-bindings: qcom,lpass-rx-macro: narrow clocks per variants
Currently the Qualcomm RX macro codec binding allows two different clock
setups - with (for ADSP) and without macro/dcodec entries (for ADSP
bypassed). With more devices coming soon, this will keep growing, thus
rework the clocks/clock-names to be specific for each binding.
Current ASoC supports snd_soc_add_pcm_runtime(), but user need to
call it one-by-one if it has multi dai_links.
This patch adds snd_soc_add_pcm_runtimes() which supports multi
dai_links.
Mark Brown [Fri, 24 Mar 2023 16:36:05 +0000 (16:36 +0000)]
ASoC: remove unnecessary dai_link->platform
Merge series from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
Current ASoC will ignore already connected component when binding Card.
This will happen mainly "CPU Component" is handled as "Platform Component",
which was needed before.
static int snd_soc_rtd_add_component(...)
{
...
for_each_rtd_components(rtd, i, comp) {
/* already connected */
if (comp == component)
return 0;
}
...
}
Some drivers are still using CPU or Dummy Component as Platform Component,
but these are no meaning or ignored.
This patch-set remove these.
Daniel Baluta [Fri, 24 Mar 2023 12:40:19 +0000 (14:40 +0200)]
ASoC: soc-compress: Inherit atomicity from DAI link for Compress FE
After commit bbf7d3b1c4f40 ("ASoC: soc-pcm: align BE 'atomicity' with
that of the FE") BE and FE atomicity must match.
In the case of Compress PCM there is a mismatch in atomicity between FE
and BE and we get errors like this:
[ 36.434566] sai1-wm8960-hifi: dpcm_be_connect: FE is atomic but BE
is nonatomic, invalid configuration
[ 36.444278] PCM Deep Buffer: ASoC: can't connect SAI1.OUT
In order to fix this we must inherit the atomicity from DAI link
associated with current PCM Compress FE.
Fixes: bbf7d3b1c4f4 ("ASoC: soc-pcm: align BE 'atomicity' with that of the FE") Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20230324124019.30826-1-daniel.baluta@oss.nxp.com Signed-off-by: Mark Brown <broonie@kernel.org>
Jiapeng Chong [Fri, 24 Mar 2023 02:23:03 +0000 (10:23 +0800)]
ASoC: cs35l56: Fix an unsigned comparison which can never be negative
The variable 'rv' is defined as unsigned type, so the following if
statement is invalid, we can modify the type of rv to int.
if (rv < 0) {
dev_err(cs35l56->dev, "irq: failed to get pm_runtime:
%d\n", rv);
goto err_unlock;
}
./sound/soc/codecs/cs35l56.c:333:5-7: WARNING: Unsigned expression compared with zero: rv < 0.
dai_link->platform is no longer needed if CPU and Platform are
same Component. This patch removes unnecessary dai_link->platform.
Dummy Platform is also not necessary.
ASoC: dt-bindings: wlf,wm8994: Convert to dtschema
Convert the Wolfson WM1811/WM8994/WM8958 audio codecs bindings to DT
schema.
Changes against original binding:
1. Add missing LDO1VDD-supply and LDO2VDD-supply.
2. Use "gpios" suffix for wlf,ldo1ena and wlf,ldo2ena (Linux kernel's
gpiolib already looks for both variants).
3. Do not require AVDD1-supply and DCVDD-supply, because at least on
Arndale board with Exynos5250 these are being supplied by internal
LDOs.
Jyri Sarha [Wed, 22 Mar 2023 18:18:30 +0000 (20:18 +0200)]
ASoC: SOF: ipc4/intel: Add missing mutex_unlock()
There was a missing mutex_unlock() in sof_ipc4_widget_free()
use_chain_dma if-branch that caused a static analysis error. The
branch should not be used in a normal working configuration and if its
used its an indication of a bad topology. Add missing mutex_unlock()
and a warning print if the if-branch is taken, and another warning
print to a symmetric place in sof_ipc4_widget_setup().
Merge series from Peter Ujfalusi <peter.ujfalusi@linux.intel.com>:
IPC3 and IPC4 firmwares handle and execute tasks at different
stages, like managing DMAs. In most cases these are aligned, but
we have few exceptions that needs to be handled differently.
This series introduces flags to handle the differing cases to make sure that
the correct sequencing is used regerless of the IPC version.
ASoC: simple-card: add comment to indicate don't remove platforms
Basically CPU and Platform are different Component, but if CPU is using
soc-generic-dmaengine-pcm, same dev will be shared between CPU and
Platform, and Simple Card had been supporting it.
When we focus to clean up Simple Card driver, we tend to remove platforms
if no Platform was selected, but it is wrong because of above reasons.
This patch adds comment why we shouldn't remove platforms.
In case of CPU is not using soc-generic-dmaengine-pcm, CPU and Platform
will be duplicated, but it will be ignored by snd_soc_rtd_add_component().
Uday M Bhat [Wed, 22 Mar 2023 07:49:16 +0000 (09:49 +0200)]
ASoC: Intel: sof_rt5682: Update BT offload config for MTL RVP
For MTL RVP, SSP2 is used for BT offload. This is enabled
in the sof_rt5682_quirk_table
Signed-off-by: Uday M Bhat <uday.m.bhat@intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://lore.kernel.org/r/20230322074916.23225-3-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Uday M Bhat [Wed, 22 Mar 2023 07:49:15 +0000 (09:49 +0200)]
ASoC: Intel: sof_rt5682: Update BT offload config for Rex
For Rex, SSP1 is used for BT offload. This is enabled
in the sof_rt5682_quirk_table
Signed-off-by: Uday M Bhat <uday.m.bhat@intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://lore.kernel.org/r/20230322074916.23225-2-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
The recommended sequence for triggering the host DMA is to first program
the DMA in the FW before setting the RUN bit to start the stream in the
host. With IPC3, this sequence is honored because the FW programs the
DMA when the HW_PARAMS IPC is sent during PCM hw_params and then the host
sets the RUN bit during sof_pcm_trigger(). But with IPC4,
sof_pcm_trigger() sends the SET_PIPELINE_STATE IPC to program the DMA in
the FW after the DMA RUN bit is set.
In order to minimize the impact for IPC3, introduce a new flag as part
of struct sof_ipc_pcm_ops, ipc_first_on_start, which will be set for IPC4
only. With this flag set, the SET_PIPELINE_STATE IPC will be sent before
the DMA RUN bit is set by the host during the START/PAUSE_RELEASE
triggers.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://lore.kernel.org/r/20230322094346.6019-4-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
ASoC: SOF: pcm: Make hw_params reset conditional for IPC3
In the case of IPC4, since there is no PCM_PARAMS IPC to send the new
stream tag when restarting a stream without a hw_free, the original
stream tag needs to be preserved. So, add new a flag as part of struct
sof_ipc_pcm_ops, reset_hw_params_during_stop and set it only for IPC3.
This will ensure that the host DMA stream tag will not be given up during
the STOP trigger for IPC4.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Rander Wang <rander.wang@intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://lore.kernel.org/r/20230322094346.6019-3-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
ASoC: SOF: Intel: hda-dai: Do not perform DMA cleanup during stop
In the case of repeated start/stop without involving hw_free, the stream
tag needs to be preserved for the subsequent starts. So, skip performing
the DMA clean up during stop and handle it only during suspend or
hw_free.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Rander Wang <rander.wang@intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://lore.kernel.org/r/20230322094346.6019-2-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Mark Brown [Tue, 21 Mar 2023 19:23:48 +0000 (19:23 +0000)]
ASoC: SOF: ipc4/intel: Support for ChainDMA
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.
Peter Ujfalusi [Tue, 21 Mar 2023 14:56:51 +0000 (16:56 +0200)]
ASoC: SOF: ipc4-control: Return on error in sof_ipc4_widget_kcontrol_setup()
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.
Mark Brown [Tue, 21 Mar 2023 16:30:29 +0000 (16:30 +0000)]
ASoC: Initial support for Cirrus Logic CS35L56
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.
Mark Brown [Tue, 21 Mar 2023 16:29:48 +0000 (16:29 +0000)]
ALSA/ASoC: Convert to platform remove callback
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
Vlad.Karpovich [Wed, 15 Mar 2023 15:47:22 +0000 (10:47 -0500)]
ASoC: cs35l45: Hibernation support
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.
Vlad.Karpovich [Wed, 15 Mar 2023 15:47:21 +0000 (10:47 -0500)]
ASoC: cs35l45: DSP Support
The CS35L45 digital core incorporates one programmable DSP block,
capable of running a wide range of audio enhancement and speaker
and battery protection functions.
Jyri Sarha [Tue, 21 Mar 2023 09:26:54 +0000 (11:26 +0200)]
ASoC: SOF: ipc4/intel: Add support for chained DMA
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.
Jyri Sarha [Tue, 21 Mar 2023 09:26:53 +0000 (11:26 +0200)]
ASoC: SOF: ipc4: Add macros for chain-dma message bits
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.
ASoC: SOF: topology: Set pipeline widget before updating IPC structures
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: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Signed-off-by: Jyri Sarha <jyri.sarha@intel.com> Reviewed-by: Rander Wang <rander.wang@intel.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://lore.kernel.org/r/20230321092654.7292-2-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
ASoC: cs35l56: Add driver for Cirrus Logic CS35L56
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.
Simon Trimmer [Mon, 20 Mar 2023 11:22:44 +0000 (11:22 +0000)]
ASoC: wm_adsp: Simplify the logging of requested firmware files
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.
Simon Trimmer [Mon, 20 Mar 2023 11:22:42 +0000 (11:22 +0000)]
ASoC: wm_adsp: Expose the DSP boot work actions as wm_adsp_power_up()
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.
Simon Trimmer [Mon, 20 Mar 2023 11:22:41 +0000 (11:22 +0000)]
ASoC: wm_adsp: Support DSPs that don't require firmware download
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.
Simon Trimmer [Mon, 20 Mar 2023 11:22:38 +0000 (11:22 +0000)]
firmware: cs_dsp: Introduce no_core_startstop for self-booting DSPs
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.
Jianhua Lu [Sat, 18 Mar 2023 14:14:39 +0000 (22:14 +0800)]
ASoC: cs35l41: Add 12288000 clk freq to cs35l41_fs_mon clk config
There are 8 cs35l41 speaker amplifier connected to TDM
in my Xiaomi Mi Pad 5 Pro tablet. In this case, it's necessary
to set 12288000 (48000 * 32 * 8) clk freq for it.
Mark Brown [Mon, 20 Mar 2023 18:30:01 +0000 (18:30 +0000)]
Enable I2S support for RK3588/RK3588S SoCs
Merge series from Cristian Ciocaltea <cristian.ciocaltea@collabora.com>:
There are five I2S/PCM/TDM controllers and two I2S/PCM controllers embedded
in the RK3588 and RK3588S SoCs. Furthermore, RK3588 provides four additional
I2S/PCM/TDM controllers.
This patch series adds the required device tree nodes to support all the above.
Additionally, it enables analog audio support for the Rock 5B SBC, which has
been used to test both audio playback and recording.
Mark Brown [Mon, 20 Mar 2023 18:29:55 +0000 (18:29 +0000)]
Fix sound on ASUS Transformers
Merge series from Svyatoslav Ryhel <clamor95@gmail.com>:
- add quirk for headset detection used by some T30 devices
(ASUS Transformers, LG Optimus 4X HD and Vu);
- add RT5631 and MAX9808x machine drivers
- update bindings
---
Changes from v1
- fm34 dropped for re-work
- quirk for headset detection and rt5631 bringup splitted
- minor adjustments in binding updates
- improvement of rt5631 rate asignment
---
David Heidelberg (1):
dt-bindings: sound: nvidia,tegra-audio: add RT5631 CODEC
Svyatoslav Ryhel (7):
dt-bindings: sound: nvidia,tegra-audio-common: add
coupled-mic-hp-detect property
ASoC: tegra: Support coupled mic-hp detection
ARM: tegra: transformers: update sound nodes
ASoC: tegra: Support RT5631 by machine driver
ARM: tegra: transformers: bind RT5631 sound nodes
dt-bindings: sound: nvidia,tegra-audio: add MAX9808x CODEC
ASoC: tegra: Support MAX9808x by machine driver
Alexander Stein [Thu, 16 Mar 2023 12:36:11 +0000 (13:36 +0100)]
ASoC: fsl: Specify driver name in ASoC card
Set the snd_soc_card driver name which fixes the warning:
fsl-asoc-card sound: ASoC: driver name too long 'imx-audio-tlv320aic32x4'
-> 'imx-audio-tlv32'
ASoC: dt-bindings: rockchip: Document audio graph port
The Rockchip I2S controller is currently used in conjunction with
audio-graph-card to provide an endpoint for binding with the other side
of the audio link.
This is achieved via the 'port' property, which is not allowed:
rk3399-rockpro64.dtb: i2s@ff890000: Unevaluated properties are not allowed ('port' was unexpected)
Fix the issue by documenting the missing property.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:45 +0000 (16:07 +0100)]
ALSA: sparc/dbri: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:44 +0000 (16:07 +0100)]
ALSA: sparc/cs4231: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:43 +0000 (16:07 +0100)]
ASoC: xtensa: xtfpga-i2s: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:42 +0000 (16:07 +0100)]
ASoC: xilinx: xlnx_spdif: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:41 +0000 (16:07 +0100)]
ASoC: xilinx: xlnx_formatter_pcm: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:40 +0000 (16:07 +0100)]
ASoC: ux500: ux500_msp_dai: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20230315150745.67084-169-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:39 +0000 (16:07 +0100)]
ASoC: ux500: mop500: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20230315150745.67084-168-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:38 +0000 (16:07 +0100)]
ASoC: uniphier: evea: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:37 +0000 (16:07 +0100)]
ASoC: ti: omap-mcbsp: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:36 +0000 (16:07 +0100)]
ASoC: ti: omap-hdmi: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:35 +0000 (16:07 +0100)]
ASoC: ti: davinci-mcasp: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:34 +0000 (16:07 +0100)]
ASoC: ti: davinci-i2s: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:33 +0000 (16:07 +0100)]
ASoC: ti: ams-delta: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:32 +0000 (16:07 +0100)]
ASoC: tegra: tegra30_i2s: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:31 +0000 (16:07 +0100)]
ASoC: tegra: tegra30_ahub: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:30 +0000 (16:07 +0100)]
ASoC: tegra: tegra210_sfc: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:29 +0000 (16:07 +0100)]
ASoC: tegra: tegra210_ope: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:28 +0000 (16:07 +0100)]
ASoC: tegra: tegra210_mvc: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:27 +0000 (16:07 +0100)]
ASoC: tegra: tegra210_mixer: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:26 +0000 (16:07 +0100)]
ASoC: tegra: tegra210_i2s: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:25 +0000 (16:07 +0100)]
ASoC: tegra: tegra210_dmic: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:24 +0000 (16:07 +0100)]
ASoC: tegra: tegra210_amx: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:23 +0000 (16:07 +0100)]
ASoC: tegra: tegra210_ahub: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:22 +0000 (16:07 +0100)]
ASoC: tegra: tegra210_adx: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:21 +0000 (16:07 +0100)]
ASoC: tegra: tegra210_admaif: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:20 +0000 (16:07 +0100)]
ASoC: tegra: tegra20_i2s: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:19 +0000 (16:07 +0100)]
ASoC: tegra: tegra20_ac97: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:18 +0000 (16:07 +0100)]
ASoC: tegra: tegra186_dspk: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:17 +0000 (16:07 +0100)]
ASoC: tegra: tegra186_asrc: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:16 +0000 (16:07 +0100)]
ASoC: sunxi: sun8i-codec: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20230315150745.67084-145-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:15 +0000 (16:07 +0100)]
ASoC: sunxi: sun50i-dmic: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Ban Tao <fengzheng923@gmail.com> Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20230315150745.67084-144-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:14 +0000 (16:07 +0100)]
ASoC: sunxi: sun4i-spdif: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20230315150745.67084-143-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
Uwe Kleine-König [Wed, 15 Mar 2023 15:07:13 +0000 (16:07 +0100)]
ASoC: sunxi: sun4i-i2s: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is (mostly) ignored
and this typically results in resource leaks. To improve here there is a
quest to make the remove callback return void. In the first step of this
quest all drivers are converted to .remove_new() which already returns
void.
Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20230315150745.67084-142-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>