Commit Graph

527 Commits

Author SHA1 Message Date
Takashi Iwai
51a50d6ad7
ASoC: tegra: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).

Let's correct the old usages of *-objs in Makefiles.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20240507155540.24815-30-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-05-08 11:39:34 +09:00
Krzysztof Kozlowski
3beb985abb
ASoC: tegra: Use snd_soc_substream_to_rtd() for accessing private_data
Do not open-code snd_soc_substream_to_rtd().

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240430-asoc-snd-substream-clean-v1-2-6f8a8902b479@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-05-06 23:59:47 +09:00
Sameer Pujar
2e93a29b48
ASoC: tegra: Fix DSPK 16-bit playback
DSPK configuration is wrong for 16-bit playback and this happens because
the client config is always fixed at 24-bit in hw_params(). Fix this by
updating the client config to 16-bit for the respective playback.

Fixes: 327ef64702 ("ASoC: tegra: Add Tegra186 based DSPK driver")
Cc: stable@vger.kernel.org
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Link: https://msgid.link/r/20240405104306.551036-1-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-04-08 13:38:46 +01:00
Linus Walleij
26e91f61d6
ASoC: tegra: tegra20_ac97: Convert to use GPIO descriptors
The Tegra20 AC97 driver is using the legacy GPIO APIs in
<linux/of_gpio.h> and <linux/gpio.h> to obtain GPIOs for reset
and sync.

Convert it over and fix the polarity error on the RESET line
in the process: this reset line is clearly active low. Just
fix the one in-tree device tree site using it at the same
time.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://msgid.link/r/20231214-gpio-descriptors-sound-misc-v1-4-e3004176bd8b@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-12-18 14:03:32 +00:00
Christophe JAILLET
8df735701a
ASoC: tegra: convert not to use dma_request_slave_channel()
dma_request_slave_channel() is deprecated. dma_request_chan() should
be used directly instead.

Switch to the preferred function and update the error handling accordingly.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/b78685e4103f12931ddb09c1654bc6b04b640868.1699724240.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-11-13 01:26:12 +00:00
Krzysztof Kozlowski
f82eb06a40
ASoC: tegra: machine: Handle component name prefix
Use snd_soc_dapm_widget_name_cmp() helper when comparing widget names,
to include also the component's name prefix.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20231023095428.166563-18-krzysztof.kozlowski@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-10-26 12:15:54 +01:00
Uwe Kleine-König
393df6f321
ASoC: simple-card-utils: Make simple_util_remove() return 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.

simple_util_remove() returned zero unconditionally. Make it return void
instead and convert all users to struct platform_device::remove_new().

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Herve Codina <herve.codina@bootlin.com>
Link: https://lore.kernel.org/r/20231013221945.1489203-13-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-10-23 13:29:45 +01:00
Nathan Chancellor
41cb1126be
ASoC: tegra: Fix -Wuninitialized in tegra210_amx_platform_probe()
Clang warns (or errors with CONFIG_WERROR=y):

  sound/soc/tegra/tegra210_amx.c:553:10: error: variable 'soc_data' is uninitialized when used here [-Werror,-Wuninitialized]
    553 |                                             soc_data->regmap_conf);
        |                                             ^~~~~~~~

A refactoring removed the initialization of this variable but its use
was not updated. Use the soc_data value in the amx variable to resolve
the warning and remove the soc_data variable, as it is now entirely
unused.

Closes: https://github.com/ClangBuiltLinux/linux/issues/1943
Fixes: 9958d85968 ("ASoC: Use device_get_match_data()")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/r/20231011-asoc-tegra-fix-uninit-soc_data-v1-1-0ef0ab44cf48@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-10-12 13:04:55 +01:00
Rob Herring
9958d85968
ASoC: Use device_get_match_data()
Use preferred device_get_match_data() instead of of_match_device() to
get the driver match data. With this, adjust the includes to explicitly
include the correct headers.

Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20231006-dt-asoc-header-cleanups-v3-5-13a4f0f7fee6@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-10-09 13:13:59 +01:00
Rob Herring
340d79a14d
ASoC: Explicitly include correct DT includes
The DT of_device.h and of_platform.h date back to the separate
of_platform_bus_type before it was merged into the regular platform bus.
As part of that merge prepping Arm DT support 13 years ago, they
"temporarily" include each other. They also include platform_device.h
and of.h. As a result, there's a pretty much random mix of those include
files used throughout the tree. In order to detangle these headers and
replace the implicit includes with struct declarations, users need to
explicitly include the correct includes.

Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev> # for at91
Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20231006-dt-asoc-header-cleanups-v3-1-13a4f0f7fee6@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-10-09 13:13:56 +01:00
Kuninori Morimoto
436f4c706c
ASoC: tegra: convert not to use asoc_xxx()
ASoC is now unified asoc_xxx() into snd_soc_xxx().
This patch convert asoc_xxx() to snd_soc_xxx().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87msxsqni9.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-09-25 14:16:30 +02:00
Sameer Pujar
e765886249
ASoC: tegra: Fix redundant PLLA and PLLA_OUT0 updates
Tegra audio graph card has many DAI links which connects internal
AHUB modules and external audio codecs. Since these are DPCM links,
hw_params() call in the machine driver happens for each connected
BE link and PLLA is updated every time. This is not really needed
for all links as only I/O link DAIs derive respective clocks from
PLLA_OUT0 and thus from PLLA. Hence add checks to limit the clock
updates to DAIs over I/O links.

This found to be fixing a DMIC clock discrepancy which is suspected
to happen because of back to back quick PLLA and PLLA_OUT0 rate
updates. This was observed on Jetson TX2 platform where DMIC clock
ended up with unexpected value.

Fixes: 202e2f7745 ("ASoC: tegra: Add audio graph based card driver")
Cc: stable@vger.kernel.org
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Link: https://lore.kernel.org/r/1694098945-32760-3-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-09-11 01:23:51 +01:00
Takashi Iwai
d81c203e61 ASoC: Fixes that got left after v6.4
These were some changes in my v6.4 branch that never got sent as fixes,
 none of them super urgent thankfully.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmTstNgACgkQJNaLcl1U
 h9Cdpgf/QobBZAA/QCr1o9+ghrqdGwkgYtwJixJPDvb8rv4eaU892CHtyIBLd0Li
 bfhxDKyDIKkqomy/8ssjU2lg08aqX+2wgJxdsL/ni5lDJEa4YHSjTO1OwBL68w9F
 5KL83dgdlzr91tHhwwJQ3DSBJolh37shAe+KiYicVHDEP+AP+3q559lBiT9hs+hB
 eVe4IQ4mnJbHNRX+xmx/arrLZru+nPBKTJulkGtOnmqO0ZscwMAIqEiAor7yY9bG
 lJjyt7N7oglRRngX/PVcHq+VpTPwPGWJ7K2qnrTJtnpVt+vD+4qpZSMbIwBAoApY
 l8zWTjlrfFhMBiZOpyz62XrgQ8/Mhw==
 =WIkh
 -----END PGP SIGNATURE-----

Merge tag 'asoc-fix-v6.5-merge-window' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes that got left after v6.4

These were some changes in my v6.4 branch that never got sent as fixes,
none of them super urgent thankfully.
2023-08-28 16:56:54 +02:00
Kuninori Morimoto
516ee7009f
ASoC: tegra: merge DAI call back functions into ops
ALSA SoC merges DAI call backs into .ops.
This patch merge these into one.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/874jl9b0sl.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-08-14 13:10:18 +01:00
Yangtao Li
976201dd5f
ASoC: tegra: tegra20_ac97: Use devm_platform_get_and_ioremap_resource()
Convert platform_get_resource(), devm_ioremap_resource() to a single
call to devm_platform_get_and_ioremap_resource(), as this is exactly
what this function does.

Signed-off-by: Yangtao Li <frank.li@vivo.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Link: https://lore.kernel.org/r/20230711034846.69437-5-frank.li@vivo.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-07-17 06:15:56 +01:00
Sheetal
6dfe70be0b
ASoC: tegra: Fix ADX byte map
Byte mask for channel-1 of stream-1 is not getting enabled and this
causes failures during ADX use cases. This happens because the byte
map value 0 matches the byte map array and put() callback returns
without enabling the corresponding bits in the byte mask.

ADX supports 4 output streams and each stream can have a maximum of
16 channels. Each byte in the input frame is uniquely mapped to a
byte in one of these 4 outputs. This mapping is done with the help of
byte map array via user space control setting. The byte map array
size in the driver is 16 and each array element is of size 4 bytes.
This corresponds to 64 byte map values.

Each byte in the byte map array can have any value between 0 to 255
to enable the corresponding bits in the byte mask. The value 256 is
used as a way to disable the byte map. However the byte map array
element cannot store this value. The put() callback disables the byte
mask for 256 value and byte map value is reset to 0 for this case.
This causes problems during subsequent runs since put() callback,
for value of 0, just returns without enabling the byte mask. In short,
the problem is coming because 0 and 256 control values are stored as
0 in the byte map array.

Right now fix the put() callback by actually looking at the byte mask
array state to identify if any change is needed and update the fields
accordingly. The get() callback needs an update as well to return the
correct control value that user has set before. Note that when user
set 256, the value is stored as 0 and byte mask is disabled. So byte
mask state is used to either return 256 or the value from byte map
array.

Given above, this looks bit complicated and all this happens because
the byte map array is tightly packed and cannot actually store the 256
value. Right now the priority is to fix the existing failure and a TODO
item is put to improve this logic.

Fixes: 3c97881b8c ("ASoC: tegra: Fix kcontrol put callback in ADX")
Cc: stable@vger.kernel.org
Signed-off-by: Sheetal <sheetal@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Link: https://lore.kernel.org/r/1688015537-31682-3-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-06-29 11:40:27 +01:00
Sheetal
49bd7b0814
ASoC: tegra: Fix AMX byte map
Byte mask for channel-1 of stream-1 is not getting enabled and this
causes failures during AMX use cases. This happens because the byte
map value 0 matches the byte map array and put() callback returns
without enabling the corresponding bits in the byte mask.

AMX supports 4 input streams and each stream can take a maximum of
16 channels. Each byte in the output frame is uniquely mapped to a
byte in one of these 4 inputs. This mapping is done with the help of
byte map array via user space control setting. The byte map array
size in the driver is 16 and each array element is of size 4 bytes.
This corresponds to 64 byte map values.

Each byte in the byte map array can have any value between 0 to 255
to enable the corresponding bits in the byte mask. The value 256 is
used as a way to disable the byte map. However the byte map array
element cannot store this value. The put() callback disables the byte
mask for 256 value and byte map value is reset to 0 for this case.
This causes problems during subsequent runs since put() callback,
for value of 0, just returns without enabling the byte mask. In short,
the problem is coming because 0 and 256 control values are stored as
0 in the byte map array.

Right now fix the put() callback by actually looking at the byte mask
array state to identify if any change is needed and update the fields
accordingly. The get() callback needs an update as well to return the
correct control value that user has set before. Note that when user
sets 256, the value is stored as 0 and byte mask is disabled. So byte
mask state is used to either return 256 or the value from byte map
array.

Given above, this looks bit complicated and all this happens because
the byte map array is tightly packed and cannot actually store the 256
value. Right now the priority is to fix the existing failure and a TODO
item is put to improve this logic.

Fixes: 8db78ace1b ("ASoC: tegra: Fix kcontrol put callback in AMX")
Cc: stable@vger.kernel.org
Signed-off-by: Sheetal <sheetal@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Link: https://lore.kernel.org/r/1688015537-31682-2-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-06-29 11:40:26 +01:00
Sheetal
d900d9a435
ASoC: tegra: Fix SFC conversion for few rates
Sample rate conversions for rates greater than 48kHz are found to be
failing. It means x->y conversions fail when either x or y is greater
than 48kHz.

This happens because, tegra210_sfc_rate_to_idx() returns incorrect
index for rates greater than 48kHz. This actually depends on the
tegra210_sfc_rates[] array and it is not in sync with frequency
values of SFC TX/RX register. To be precise, 64kHz entry is missing
in above array defined in the driver. Due to this wrong index is
returned and this results in incorrect programming of coefficients.

To fix this, align the tegra210_sfc_rates[] array with SFC register
specification and thus add 64kHz entry to it. Also, the coefficient
table is updated to reflect that none of the conversions are supported
for 64kHz.

Fixes: b2f74ec53a ("ASoC: tegra: Add Tegra210 based SFC driver")
Cc: stable@vger.kernel.org
Signed-off-by: Sheetal <sheetal@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Link: https://lore.kernel.org/r/Message-Id: <1687433656-7892-2-git-send-email-spujar@nvidia.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-06-24 01:57:16 +01:00
Sameer Pujar
f47d43283a
ASoC: tegra: Remove stale comments in AHUB
Remove stale comments in AHUB driver which is related to DAPM
widgets and routes. This is misleading otherwise.

Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Link: https://lore.kernel.org/r/Message-Id: <1687433656-7892-7-git-send-email-spujar@nvidia.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-06-22 18:02:05 +01:00
Sameer Pujar
2cc41db71a
ASoC: tegra: Use normal system sleep for ASRC
Align with other AHUB module drivers and use normal system
sleep for ASRC as well.

Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Link: https://lore.kernel.org/r/Message-Id: <1687433656-7892-6-git-send-email-spujar@nvidia.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-06-22 18:02:04 +01:00
Mark Brown
1a32b4b9a6
ASoC: Merge fixes due to dependencies
So we can apply the tlv320aic3xxx DT conversion.
2023-06-16 14:55:20 +01:00
Jon Hunter
f9fd804aa0
ASoC: tegra: Fix Master Volume Control
Commit 3ed2b549b3 ("ALSA: pcm: fix wait_time calculations") corrected
the PCM wait_time calculations and in doing so reduced the calculated
wait_time. This exposed an issue with the Tegra Master Volume Control
(MVC) device where the reduced wait_time caused the MVC to fail. For now
fix this by setting the default wait_time for Tegra to be 500ms.

Fixes: 3ed2b549b3 ("ALSA: pcm: fix wait_time calculations")
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Link: https://lore.kernel.org/r/20230613093453.13927-1-jonathanh@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-06-13 12:10:56 +01:00
Christophe JAILLET
41a343cd6b
ASoC: tegra: Simplify code around clk_get_rate() handling
clk_get_rate() returns an unsigned long, so there is no point in storing it
in a long, and test for negative values.

So, turn 'parent_rate' into an unsigned long, simplify the sanity check,
the error message and the return value, in case of error (i.e. 0).

Doing so also turns 'i' and 'valid_rates' into unsigned long, but it is
fine and harmless.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/53f928290f08f50ff43031e17fe1d88443c2c441.1686202022.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-06-08 11:36:27 +01:00
Claudiu Beznea
2f3092e77f
ASoC: do not include pm_runtime.h if not used
Do not include pm_runtime.h header in files where APIs exported by
pm_runtime.h are not used.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com> # for omap-mcbsp-st.c
Link: https://lore.kernel.org/r/20230517094903.2895238-2-claudiu.beznea@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-05-23 13:55:55 +01:00
Min-Hua Chen
35f8a9d87c
ASoC: tegra: tegra210_adx: fix snd_pcm_format_t type
use snd_pcm_format_t instead of unsigned int to fix
the following sparse warnings:

sound/soc/tegra/tegra210_adx.c:125:14: sparse: warning: restricted snd_pcm_format_t degrades to integer
sound/soc/tegra/tegra210_adx.c:128:14: sparse: warning: restricted snd_pcm_format_t degrades to integer
sound/soc/tegra/tegra210_adx.c:131:14: sparse: warning: restricted snd_pcm_format_t degrades to integer

Signed-off-by: Min-Hua Chen <minhuadotchen@gmail.com
Link: https://lore.kernel.org/r/20230516223700.185569-1-minhuadotchen@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org
2023-05-17 10:37:43 +09:00
Zihao Wang
194f869230
ASoC: tegra20_ac97: Add missing unwind goto in tegra20_ac97_platform_probe()
Smatch Warns:
	sound/soc/tegra/tegra20_ac97.c:321 tegra20_ac97_platform_probe()
	warn: missing unwind goto?

The goto will set the "soc_ac97_ops" and "soc_ac97_bus" operations to
NULL.  But they are already NULL at this point so it is a no-op.
However, just for consistency, change the direct return to a goto.  No
functional change.

Signed-off-by: Zihao Wang <u202012060@hust.edu.cn>
Reviewed-by: Dan Carpenter <error27@gmail.com>
Link: https://lore.kernel.org/r/20230404084622.1202-1-u202012060@hust.edu.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-04-04 12:46:42 +01:00
Jiapeng Chong
59385ed41c
ASoC: tegra: remove unneeded semicolon
./sound/soc/tegra/tegra_asoc_machine.c:206:3-4: Unneeded semicolon.

Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Link: https://bugzilla.openanolis.cn/show_bug.cgi?id=4583
Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Link: https://lore.kernel.org/r/20230322014330.97079-1-jiapeng.chong@linux.alibaba.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-22 13:17:39 +00:00
Mark Brown
4af574f58f
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

 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: fe15c26ee2
--
2.39.2
2023-03-21 16:29:48 +00:00
Uwe Kleine-König
d148a8d465
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-161-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:25 +00:00
Uwe Kleine-König
b17cf43d70
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-160-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:24 +00:00
Uwe Kleine-König
0e25bed50a
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-159-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:23 +00:00
Uwe Kleine-König
37831f8c14
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-158-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:22 +00:00
Uwe Kleine-König
f94195ff02
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-157-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:21 +00:00
Uwe Kleine-König
e0d782fad1
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-156-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:20 +00:00
Uwe Kleine-König
e29df60014
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-155-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:19 +00:00
Uwe Kleine-König
7ffba01bcd
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-154-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:19 +00:00
Uwe Kleine-König
f3ac69d50c
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-153-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:18 +00:00
Uwe Kleine-König
f1790c464b
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-152-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:17 +00:00
Uwe Kleine-König
f129152cbc
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-151-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:16 +00:00
Uwe Kleine-König
8097e8afb9
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-150-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:15 +00:00
Uwe Kleine-König
81ab73dbfe
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-149-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:14 +00:00
Uwe Kleine-König
4106782842
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-148-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:13 +00:00
Uwe Kleine-König
e04913cba6
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-147-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:12 +00:00
Uwe Kleine-König
1e482d82b8
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.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Link: https://lore.kernel.org/r/20230315150745.67084-146-u.kleine-koenig@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:09:11 +00:00
Svyatoslav Ryhel
d007a87bd7
ASoC: tegra: Support MAX9808x by machine driver
Add Maxim MAX9808x codec support to the Tegra ASoC machine driver.
This codec is found on LG T30 devices like Optimus 4X HD and
Optimus Vu.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Link: https://lore.kernel.org/r/20230308073502.5421-9-clamor95@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:06:41 +00:00
Svyatoslav Ryhel
44b2fc2edb
ASoC: tegra: Support RT5631 by machine driver
Add Realtek ALC5631/RT5631 codec support to the Tegra ASoC machine driver.
The RT5631 codec is found on devices like ASUS Transformer TF201, TF700T
and other Tegra-based Android tablets.

Signed-off-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Link: https://lore.kernel.org/r/20230308073502.5421-6-clamor95@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:06:40 +00:00
Svyatoslav Ryhel
eb0b8481c2
ASoC: tegra: Support coupled mic-hp detection
This quirk is used for cases when there is GPIO which detects
any type of 3.5 Jack insertion and actual type of jack is defined
by other GPIO. 3.5 Jack GPIO generates interrupt and MIC GPIO
indicates type of Jack only if 3.5 Jack GPIO is active.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Link: https://lore.kernel.org/r/20230308073502.5421-3-clamor95@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-20 13:06:39 +00:00
Rob Herring
1e108e60a4
ASoC: Use of_property_present() for testing DT property presence
It is preferred to use typed property access functions (i.e.
of_property_read_<type> functions) rather than low-level
of_get_property/of_find_property functions for reading properties. As
part of this, convert of_get_property/of_find_property calls to the
recently added of_property_present() helper when we just want to test
for presence of a property and nothing more.

Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20230310144732.1546328-1-robh@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-03-11 12:18:54 +00:00
Kuninori Morimoto
1c1a778401
ASoC: tegra: use helper function
Current ASoC has many helper function.
This patch use it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87mt5zea3a.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-01-31 11:05:05 +00:00
Randy Dunlap
636be128d6
ASoC: Kconfig: fix spelling of "up to"
Fix spelling in sound/soc/ Kconfig files:
s/upto/up to/
(reported by codespell)

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Reviewed-by: Heiko Stuebner <heiko@sntech.de> #rockchip
Link: https://lore.kernel.org/r/20230124181746.19028-1-rdunlap@infradead.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-01-25 14:24:03 +00:00