Commit Graph

1335587 Commits

Author SHA1 Message Date
Kuninori Morimoto
0c4a063951 ASoC: soc-pcm: remove duplicate param from __soc_pcm_hw_params()
We can get struct snd_soc_pcm_runtime from struct snd_pcm_substream,
no need to have both as function parameter. Let's shrink it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87mseryk5l.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-16 23:51:04 +00:00
Kuninori Morimoto
7f1186a8d7 ASoC: soc-dai: check return value at snd_soc_dai_set_tdm_slot()
snd_soc_dai_set_tdm_slot() calls .xlate_tdm_slot_mask() or
snd_soc_xlate_tdm_slot_mask(), but didn't check its return value.
Let's check it.

This patch might break existing driver. In such case, let's makes
each func to void instead of int.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87o6z7yk61.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-16 23:51:03 +00:00
Kuninori Morimoto
7e1caa6796 ASoC: soc-pcm: makes dpcm_dapm_stream_event() void
No one uses dpcm_dapm_stream_event() return value, and it always
return 0. Let's makes it void.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87seojyk6m.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-16 23:51:02 +00:00
Kuninori Morimoto
1248d29464 ASoC: soc-ops: makes snd_soc_read_signed() void
snd_soc_read_signed() never return error. Let's makes it void.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87tt8zyk6x.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-16 23:51:02 +00:00
Kuninori Morimoto
238c863eb3 ASoC: soc-core: makes snd_soc_set_dmi_name() local
soc-core.c only calls snd_soc_set_dmi_name(), so we don't need to have
EXPORT_SYMBOL_GPL() for it. Let's makes it local function.

No one uses *flavour parameter, let's remove it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87v7tfyk7b.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-16 23:51:01 +00:00
Kuninori Morimoto
11c1967f1a ASoC: soc-pcm: no need to check dpcm->fe on dpcm_be_connect()
All dpcm from for_each_dpcm_be(fe, ...) loop has same fe
(that is the reason to connected to this list). We don't need to
check (dpcm->fe == fe) in this loop.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87wmdvyk87.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-16 23:51:00 +00:00
Mark Brown
74e0fcbd70 gpiolib: add gpiod_multi_set_value_cansleep
Merge series from David Lechner <dlechner@baylibre.com>:

This series was inspired by some minor annoyance I have experienced a
few times in recent reviews.

Calling gpiod_set_array_value_cansleep() can be quite verbose due to
having so many parameters. In most cases, we already have a struct
gpio_descs that contains the first 3 parameters so we end up with 3 (or
often even 6) pointer indirections at each call site. Also, people have
a tendency to want to hard-code the first argument instead of using
struct gpio_descs.ndescs, often without checking that ndescs >= the
hard-coded value.

So I'm proposing that we add a gpiod_multi_set_value_cansleep()
function that is a wrapper around gpiod_set_array_value_cansleep()
that has struct gpio_descs as the first parameter to make it a bit
easier to read the code and avoid the hard-coding temptation.

I've just done gpiod_multi_set_value_cansleep() for now since there
were over 10 callers of this one. There aren't as many callers of
the get and atomic variants, but we can add those too if this seems
like a useful thing to do.

Maintainers, if you prefer to have this go through the gpio tree, please
give your Acked-by:. Several maintainers have also requested an
immutable branch, so I expect that will be made available. And if there
is anything leftover after the next kernel release, I will resend it.
2025-02-13 17:32:59 +00:00
Thorsten Blum
994719ed6d ASoC: Intel: avs: Use str_on_off() in avs_dsp_core_power()
Remove hard-coded strings by using the str_on_off() helper function.

Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Link: https://patch.msgid.link/20250212091227.1217-3-thorsten.blum@linux.dev
Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-13 14:49:48 +00:00
Sheetal
ae575d2145 ASoC: tegra: Remove the isomgr_bw APIs export
Commit 4a91fe4c0d ("ASoC: tegra: Add interconnect support") exported
tegra_isomgr_adma_setbw, tegra_isomgr_adma_register and
tegra_isomgr_adma_register APIs, but there are no users of these that
required these symbols to be exported.
Hence, remove the exporting of the symbols.

Fixes: 4a91fe4c0d ("ASoC: tegra: Add interconnect support")
Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20250213111216.1238344-1-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-13 12:09:30 +00:00
Vijendar Mukunda
828c0aa637 ASoC: amd: ps: use switch statements for acp pci revision id check
Use switch statements for acp pci revision id check in SoundWire
dma irq handling.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20250213103652.1082203-1-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-13 12:09:30 +00:00
David Lechner
ad0fbcebb5 ASoC: adau1701: use gpiod_multi_set_value_cansleep
Reduce verbosity by using gpiod_multi_set_value_cansleep() instead of
gpiod_set_array_value_cansleep().

Acked-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: David Lechner <dlechner@baylibre.com>
Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://patch.msgid.link/20250210-gpio-set-array-helper-v3-15-d6a673674da8@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-12 15:50:33 +00:00
Laurentiu Mihalcea
f22ba3561d ASoC: SOF: imx-common: set sdev->pdata->hw_pdata after common is alloc'd
'imx_unregister_action' uses 'sdev->pdata->hw_pdata' to fetch the pointer
to the common data structure. As such, if 'sdev->pdata->hw_pdata' is not
set before adding 'imx_unregister_action' to the devres list, we risk
derefrencing a NULL pointer if any of the calls between
'devm_add_action_or_reset' and 'sdev->pdata->hw_pdata = common' fails.

Set 'sdev->pdata->hw_pdata' to point to 'common' as soon as 'common' is
allocated.

Fixes: 651e0ed391 (" ASoC: SOF: imx: introduce more common structures and functions")
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>

Link: https://patch.msgid.link/20250211225018.2642-1-laurentiumihalcea111@gmail.com
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-12 13:46:00 +00:00
David Lechner
91931af18b gpiolib: add gpiod_multi_set_value_cansleep()
Add a new gpiod_multi_set_value_cansleep() helper function with fewer
parameters than gpiod_set_array_value_cansleep().

Calling gpiod_set_array_value_cansleep() can get quite verbose. In many
cases, the first arguments all come from the same struct gpio_descs, so
having a separate function where we can just pass that cuts down on the
boilerplate.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20250210-gpio-set-array-helper-v3-1-d6a673674da8@baylibre.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2025-02-12 10:29:27 +01:00
Shengjiu Wang
21aa330fec ASoC: fsl_micfil: Add decimation filter bypass mode support
When decimation filter bypass mode is enabled, PDM data can be
written into FIFO directly without any processing.

The interface of this mode is DSD big endian format, when
user needs this format, then this mode is enabled.

This mode is only for the i.MX943 platform currently.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://patch.msgid.link/20250206030306.2618620-1-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-11 13:36:18 +00:00
Mark Brown
ad1212a9cc arm64: dts: rockchip: Add SPDIF on RK3588
Merge series from Alexey Charkov <alchark@gmail.com>:

RK3588(s) uses a several SPDIF transmitters which are software
compatible with those found in RK3568. This series adds the required
device tree nodes in SoC .dtsi and enables the dedicated optical
SPDIF output on the H96 Max V58.

Note that only SPDIF 0/1 are meant as externally connected outputs,
while SPDIF 2/3/4/5 are internally routed to the various display
encoders inside the SoC. Thus, using SPDIF 0/1 only requires their
device tree nodes to be enabled (provided that the signal is routed
somewhere usable on the board itself), while the rest rely on driver
support on the display connector side and are therefore not touched
here.

Signed-off-by: Alexey Charkov <alchark@gmail.com>
---
Alexey Charkov (3):
      dt-bindings: ASoC: rockchip: Add compatible for RK3588 SPDIF
      arm64: dts: rockchip: Add SPDIF nodes to RK3588(s) device trees
      arm64: dts: rockchip: Enable SPDIF output on H96 Max V58

 .../devicetree/bindings/sound/rockchip-spdif.yaml  |  4 ++
 arch/arm64/boot/dts/rockchip/rk3588-base.dtsi      | 64 ++++++++++++++++++++++
 arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi     | 30 ++++++++++
 .../arm64/boot/dts/rockchip/rk3588-h96-max-v58.dts | 24 ++++++++
 4 files changed, 122 insertions(+)
---
base-commit: 4ec376748558ba132a2a49513acd3b08774384e3
change-id: 20250109-rk3588-spdif-e49aa49145d3

Best regards,
--
Alexey Charkov <alchark@gmail.com>
2025-02-10 17:23:23 +00:00
Johan Hovold
c5528214c7 ASoC: codecs: wcd93xx-sdw: fix of_property_read_bool() warnings
Using of_property_read_bool() for non-boolean properties has been
deprecated in favour of of_property_present() and since commit
c141ecc3ce ("of: Warn when of_property_read_bool() is used on
non-boolean properties") this also generates a warning:

	OF: /soc@0/soundwire@3330000/wcd9380-tx@0,3: Read of boolean property 'qcom,tx-port-mapping' with a value.

Switch to using of_property_present() to look for "qcom,tx-port-mapping"
properties.

Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://patch.msgid.link/20250210132128.7734-1-johan+linaro@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-10 13:42:11 +00:00
Thorsten Blum
e97d06cb43 ASoC: tscs454: Use str_enable_disable() in pll_power_event()
Remove hard-coded strings by using the str_enable_disable() helper
function.

Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Link: https://patch.msgid.link/20250210115937.53654-1-thorsten.blum@linux.dev
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-10 13:42:10 +00:00
Alexey Charkov
330cbb40bb dt-bindings: ASoC: rockchip: Add compatible for RK3588 SPDIF
Add a compatible string for SPDIF on RK3588, which is similar to the
one on RK3568.

Signed-off-by: Alexey Charkov <alchark@gmail.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/20250120-rk3588-spdif-v1-1-1415f5871dc7@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-10 13:42:00 +00:00
Mark Brown
d1541caab0 Add SDCA DisCo parsing support
Merge series from Charles Keepax <ckeepax@opensource.cirrus.com>:

The MIPI SoundWire Device Class for Audio (SDCA) specification defines
most details of the hardware in ACPI using the MIPI Discovery and
Configuration (DisCo) specification. This patch chain adds support for
parsing most of this information into the kernel such that future work
can make use of it to construct CODEC devices and soundcards.

The most notable outstanding work here, is parsing the separate
properties for the Control Numbers (roughly equivalent to channels)
within an individual Control. The separate Control Numbers are
supported but currently only the scheme were a single default etc. is
supplied for all.  This should not be super hard to add in the future
but isn't currently required by any of the hardware I am working to
support.
2025-02-10 13:06:28 +00:00
Mark Brown
3c331bdeec Refactor imx drivers and introduce support for
Merge series from Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>:

A rather aggressive but arguably much needed refactorization of the SOF
imx drivers. The refactorization is meant to address the code duplication
in the imx drivers and decrease the coding effort required for introducing
a new imx platform.

After refactorization and imx95 introduction, only two drivers remain:
imx8 (meant for the imx8 series: imx8 (imx8qm), imx8x (imx8qxp), imx8m,
and imx8ulp) and imx9 (meant for the imx9 series: imx95 (for now)).

The series also includes the introduction of the imx95 driver.
2025-02-10 13:06:19 +00:00
Mark Brown
005859a2cf ASoC: amd: Add support for ACP7.0 & ACP7.1
Merge series from Vijendar Mukunda <Vijendar.Mukunda@amd.com>:

This patch series includes the below changes
	- Refactor existing ACP6.3 platform ACP PCI driver, SoundWire
	  DMA driver code.
	- Add Audio IO support for ACP7.0 and ACP7.1 platforms for
	SoundWire IO and ACP PDM controller combination.
	- Add SoundWire generic machine driver changes for legacy stack
	(No DSP enabled) for ACP7.0 & ACP7.1 platforms.
	- Add SoundWire machines for ACP7.0 & ACP7.1 platforms.
2025-02-07 17:50:59 +00:00
Charles Keepax
9da195880f ASoC: SDCA: Add support for PDE Entity properties
Add support for parsing the Power Domain Entity properties from
DisCo/ACPI.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Link: https://patch.msgid.link/20250205113801.3699902-11-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 17:34:09 +00:00
Charles Keepax
e80b8e5c53 ASoC: SDCA: Add support for clock Entity properties
Add support for parsing the Clock Source Entity properties from
DisCo/ACPI.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Link: https://patch.msgid.link/20250205113801.3699902-10-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 17:34:08 +00:00
Charles Keepax
5c93b20f6d ASoC: SDCA: Add support for IT/OT Entity properties
Add support for parsing the Input/Output Terminal Entity properties from
DisCo/ACPI.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Link: https://patch.msgid.link/20250205113801.3699902-9-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 17:34:07 +00:00
Charles Keepax
f87c2a2750 ASoC: SDCA: Add Channel Cluster parsing
Within SDCA collections of Channels are referred to as Clusters, each
Channel within a Cluster can have various properties attached to it.
For example a stereo audio stream, would have a Cluster with 2 Channels
one marked as left and the other as right. Various Clusters are
specified in DisCo/ACPI and controls then allow the class driver to
select between these channel configurations. Add support for parsing
these Cluster definitions.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Link: https://patch.msgid.link/20250205113801.3699902-8-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 17:34:06 +00:00
Charles Keepax
64fb5af1d1 ASoC: SDCA: Add parsing for Control range structures
DisCo/SDCA contains small buffers of data that hold ranges of valid
values for the various SDCA Controls. Add support for parsing these
from ACPI.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Link: https://patch.msgid.link/20250205113801.3699902-7-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 17:34:05 +00:00
Charles Keepax
42b144cb6a ASoC: SDCA: Add SDCA Control parsing
Each SDCA Entity will contain a number of Controls, these are
basically equivalent to registers. Although a single Control will only
ever contain a single field. Some of these would map directly to ALSA
controls once more of the SDCA class driver is implemented. These
controls are parsed out of the DisCo ACPI tables.

One small todo here is that each Control can have multiple
sub-entries (Control Numbers), these are typically used to represent
channels. Whilst support is present for these, currently the
ACPI properties that would allow differing defaults for each channel
are not parsed. But there is nothing here that should prevent that
being added in the future.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Link: https://patch.msgid.link/20250205113801.3699902-6-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 17:34:04 +00:00
Charles Keepax
9ee6d50ae4 ASoC: SDCA: Add support for Entity 0
Within SDCA there is a special Entity called Entity 0 which is used
to hold Function level controls. Whilst Entity 0 isn't a full SDCA
Entity, it is helpful to add an sdca_entity structure for it. This
will allow it to be treated identically in the code that handles
SDCA Controls.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Link: https://patch.msgid.link/20250205113801.3699902-5-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 17:34:03 +00:00
Pierre-Louis Bossart
19f6748abb ASoC: SDCA: Parse initialization write table
Each SDCA Function may contain a table of register writes that should be
written out before the Function is used. Add code to parse this table
from the DisCo tables in ACPI.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Link: https://patch.msgid.link/20250205113801.3699902-4-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 17:34:02 +00:00
Pierre-Louis Bossart
996bf834d0 ASoC: SDCA: Add code to parse Function information
Add a helper function to parse all the Function and Entity
information from ACPI. In SDCA each device may have several Functions
and each corresponds to a specific audio capability such as say
amplifier playback or microphone capture. Each Function then contains
a number of Entities that represent individual parts of the audio
signal chain and are linked together in a graph similar to DAPM.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Link: https://patch.msgid.link/20250205113801.3699902-3-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 17:34:01 +00:00
Charles Keepax
629dd55cf7 ASoC: SDCA: Minor formatting and naming tweaks
Fix up some variable/struct member naming, add some missing kerneldoc
and fix some minor formatting/whitespace issues.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Link: https://patch.msgid.link/20250205113801.3699902-2-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 17:34:00 +00:00
Laurentiu Mihalcea
6cf5df1040 ASoC: SOF: imx: add driver for the imx95 chip
Add SOF support for the imx95 chip. Although the support is just
for the imx95 chip, the driver is intended for all chips in the imx9
family.

Note that the imx95 support could have just as easily been added
to the imx8 platform driver but a new platform driver was created
because the intention is to keep the families in separate drivers.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20250207162246.3104-8-laurentiumihalcea111@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 16:47:00 +00:00
Laurentiu Mihalcea
07e3e514dd ASoC: SOF: imx: merge imx8 and imx8ulp drivers
Now that the common interface for imx chip has been introduced,
there's no longer a need to have a separate platform driver for
imx8ulp. As such, merge the driver with the imx8 driver. Furthermore,
delete the old driver as it's no longer useful.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20250207162246.3104-7-laurentiumihalcea111@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 16:46:59 +00:00
Laurentiu Mihalcea
896530b7b0 ASoC: SOF: imx: merge imx8 and imx8m drivers
Now that the common interface for imx chip has been introduced,
there's no longer a need to have a separate platform driver for
imx8m. As such, merge the driver with the imx8 driver. Furthermore,
delete the old driver as it's no longer useful.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20250207162246.3104-6-laurentiumihalcea111@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 16:46:59 +00:00
Laurentiu Mihalcea
45e02edd84 ASoC: SOF: imx8: drop unneeded/unused macros/header includes
Drop some unneeded/unused macro definitions and header includes.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20250207162246.3104-5-laurentiumihalcea111@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 16:46:58 +00:00
Laurentiu Mihalcea
563e40153a ASoC: SOF: imx8: use IMX_SOF_* macros
The definition of 'struct sof_dev_desc' has the following properties
for imx chips:

  1) FW path is the same for all chips.
  2) Topology path is the same for all chips.
  3) FW name can be written as: "sof-${machine_name}.ri"
  4) IPC3 is the only supported protocol

The structure takes quite a few lines of code. Since the intention
is to add support for more imx8 chips in the same driver, we need
to try and reduce the number of lines taken by information that's
not particularly useful. As such, we can use 'IMX_SOF_DEV_DESC()'
to reduce the declaration of the structure to just one line. The
only information that's particularly useful can be seen from the
parameters of the macro.

Of course, if any of the assumptions don't apply anymore, driver
writers can simply declare the 'struct sof_dev_desc' the "old
fashioned way". No reason to make the macro suit multiple needs.

The same logic applies to the array of 'struct snd_soc_dai_driver'.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20250207162246.3104-4-laurentiumihalcea111@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 16:46:57 +00:00
Laurentiu Mihalcea
645753d013 ASoC: SOF: imx8: use common imx chip interface
The common interface for imx chips (defined in imx-common.c) contains the
definitions for a lot of functions required by the SOF core. As such, the
platform driver can just use the common definitions instead of duplicating
code by re-defining aforementioned functions.

Make the transition to the new common interface. This consists of:

  1) Removing unneeded functions, which are already defined in the
  common interface.

  2) Defining some chip-specific operations/structures required by the
  interface to work.

  3) Dropping structure definitions that are no longer needed.

  4) Adapting some existing functions to the new interface.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20250207162246.3104-3-laurentiumihalcea111@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 16:46:56 +00:00
Laurentiu Mihalcea
651e0ed391 ASoC: SOF: imx: introduce more common structures and functions
The SOF drivers for imx chips have a lot of duplicate code and
routines/code snippets that could certainly be reused among drivers.

As such, introduce a new set of structures and functions that will help
eliminate the redundancy and code size of the drivers.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20250207162246.3104-2-laurentiumihalcea111@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 16:46:55 +00:00
Mark Brown
f98d420002 ASoC: Intel: soc-acpi-intel-ptl-match typo fixups
Merge series from Bard Liao <yung-chuan.liao@linux.intel.com>:

Fix copy paste of lnl into ptl.
2025-02-07 16:21:57 +00:00
Peter Ujfalusi
852c0b7204 ASoC: Intel: soc-acpi-intel-ptl-match: add rt713_vb_l2_rt1320_l13
s/lnl/ptl

Fixes: a7ebb02551 ("ASoC: Intel: soc-acpi-intel-ptl-match: add rt713_vb_l2_rt1320_l13 support")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20250207123637.215320-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 13:34:13 +00:00
Peter Ujfalusi
91f505dc3a ASoC: Intel: soc-acpi-intel-ptl-match: add rt712_vb + rt1320 support
s/lnl/ptl

Fixes: bd40d91272 ("ASoC: Intel: soc-acpi-intel-ptl-match: add rt712_vb + rt1320 support")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20250207123637.215320-2-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 13:34:12 +00:00
Vijendar Mukunda
4bb5b6f13f ASoC: amd: amd_sdw: Add quirks for Dell SKU's
This patch adds a quirk to include the codec amplifier function for Dell
SKU's listed in quirk table.

Note: In these SKU's, the RT722 codec amplifier is excluded, and an
external amplifier is used instead.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20250207062819.1527184-26-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 13:34:00 +00:00
Vijendar Mukunda
31e3100d5e ASoC: amd: acp: amd-acp70-acpi-match: Add RT1320 & RT722 combination soundwire machine
This patch adds below machine configuration for the ACP7.0 & ACP7.1
platforms.

Link 0: RT722 codec with three endpoints: Headset, Speaker, and DMIC.
Link 1: RT1320 amplifier.

Note:
The Speaker endpoint on the RT722 codec is not used.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20250207062819.1527184-25-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 13:33:59 +00:00
Vijendar Mukunda
d0252b0b94 ASoC: amd: acp: amd-acp70-acpi-match: Add rt722 support
Patch adds driver data and match table for rt722 multi-function codec on
acp7.0 and acp7.1 platforms at sdw link0 for legacy(NO DSP) stack.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20250207062819.1527184-24-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 13:33:58 +00:00
Vijendar Mukunda
187150671d ASoC: amd: acp: add RT711, RT714 & RT1316 support for ACP7.0 platform
Add support for corresponding codecs on ACP7.0 platform hardware
configuration.

SDW0: RT711 Jack
SDW0: RT1316 Left Speaker
SDW0: RT1316 Right Speaker
SDW1: RT714 DMIC

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20250207062819.1527184-23-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 13:33:58 +00:00
Vijendar Mukunda
638ad2bdb2 ASoC: amd: acp: add machine driver changes for ACP7.0 and ACP7.1 platforms
Add SoundWire generic machine driver changes for legacy stack(No DSP) for
ACP7.0 and ACP7.1 platforms.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20250207062819.1527184-22-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 13:33:57 +00:00
Vijendar Mukunda
552f66c401 ASoC: amd: update Pink Sardine platform Kconfig description
Update Pink Sardine platform Kconfig option description.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20250207062819.1527184-21-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 13:33:56 +00:00
Vijendar Mukunda
f1e91acacf ASoC: amd: ps: update file description and copyright year
Update files description for acp pci driver, SoundWire DMA driver, PDM
driver and acp header file as new support is added for ACP7.0 & ACP7.1
platforms.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20250207062819.1527184-20-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 13:33:55 +00:00
Vijendar Mukunda
0eb8f83c05 ASoC: amd: ps: update module description
Update module description for Pink Sardine platform acp pci driver,
SoundWire dma driver and PDM driver modules.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20250207062819.1527184-19-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 13:33:54 +00:00
Vijendar Mukunda
3898b18907 ASoC: amd: ps: add soundwire wake interrupt handling
Add SoundWire wake interrupt handling for ACP7.0 & ACP7.1 platforms.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20250207062819.1527184-18-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-02-07 13:33:53 +00:00