[PATCH v5 0/3] Unify NVIDIA Tegra ASoC machine drivers

From: Dmitry Osipenko
Date: Fri May 28 2021 - 13:29:41 EST


This series squashes all the ASoC machine drivers into a single one,
this change was suggested by Jon Hunter. It also sets driver_name and
components string of each card, allowing userspace alsa-lib to find
UCMs at predictable path.

Changelog:

v5: - The v4 removed the customization of components string for Nexus 7,
but I missed to remove the "components" hook which is unused now,
it's removed in v5 for consistency.

- Slightly improved naming of the common 12MHz MCLK rate function
to make it more consistent with the rest of the driver functions.

v4: - Moved out mclk_rate callback that is currently used only by WM8903
machine driver from the common driver. This was suggested by Jon Hunter.

- Dropped patch which was setting custom components string for Nexus 7.
Jaroslav Kysela wants it to be specified in a device-tree, but the
components string doesn't have a firm specification for today. It's
better to drop this change for now since it's optional anyways.

- Fixed compilation error that was reported by kernel robot for v3.

- Jaroslav Kysela merged alsa-ucm-conf PR [1] which added UCMs for
Nexus 7 and Acer A500. The UCMs are fully working using a combination
of updated kernel + alsa-ucm-conf master + alsa-lib master, meaning
that they will work with the next releases of kernel and ALSA userspace
upstream packages.

- Added ack from Jaroslav Kysela to the "Specify components string for
each card" patch that he gave to v3.

v3: - Added components string as was suggested by Jaroslav Kysela to v2.

- Renamed MCLK rate function that is used by max98090 and other codecs
to make it look more generic. Added option for specifying CLK ID per
device. This all was suggested by Jon Hunter to v2.

v2: - Dropped use of of_device_compatible_match(), like it was suggested
by Rob Herring in a review comment to v1.

- Added patch that sets card's driver_name of as Tegra ASoC drivers.
In a comment to v1 Jaroslav Kysela suggested that the Tegra drivers
don't set the card name properly and he was right.

I opened pull request with the new Tegra UCMs and updated lookup paths
for older UCMs [1].

[1] https://github.com/alsa-project/alsa-ucm-conf/pull/92

Dmitry Osipenko (3):
ASoC: tegra: Set driver_name=tegra for all machine drivers
ASoC: tegra: Unify ASoC machine drivers
ASoC: tegra: Specify components string for each card

sound/soc/tegra/Kconfig | 12 +
sound/soc/tegra/Makefile | 18 +-
sound/soc/tegra/tegra_alc5632.c | 259 ----------
sound/soc/tegra/tegra_asoc_machine.c | 712 +++++++++++++++++++++++++++
sound/soc/tegra/tegra_asoc_machine.h | 45 ++
sound/soc/tegra/tegra_max98090.c | 276 -----------
sound/soc/tegra/tegra_rt5640.c | 222 ---------
sound/soc/tegra/tegra_rt5677.c | 324 ------------
sound/soc/tegra/tegra_sgtl5000.c | 211 --------
sound/soc/tegra/tegra_wm8753.c | 185 -------
sound/soc/tegra/tegra_wm8903.c | 351 +++----------
sound/soc/tegra/tegra_wm9712.c | 166 -------
sound/soc/tegra/trimslice.c | 172 -------
13 files changed, 850 insertions(+), 2103 deletions(-)
delete mode 100644 sound/soc/tegra/tegra_alc5632.c
create mode 100644 sound/soc/tegra/tegra_asoc_machine.c
create mode 100644 sound/soc/tegra/tegra_asoc_machine.h
delete mode 100644 sound/soc/tegra/tegra_max98090.c
delete mode 100644 sound/soc/tegra/tegra_rt5640.c
delete mode 100644 sound/soc/tegra/tegra_rt5677.c
delete mode 100644 sound/soc/tegra/tegra_sgtl5000.c
delete mode 100644 sound/soc/tegra/tegra_wm8753.c
delete mode 100644 sound/soc/tegra/tegra_wm9712.c
delete mode 100644 sound/soc/tegra/trimslice.c

--
2.30.2