]> git.ipfire.org Git - thirdparty/kernel/linux.git/log
thirdparty/kernel/linux.git
9 months agoASoC: codecs: Use devm_clk_get_enabled() helpers
ying zuxin [Fri, 6 Sep 2024 08:48:31 +0000 (16:48 +0800)] 
ASoC: codecs: Use devm_clk_get_enabled() helpers

The devm_clk_get_enabled() helpers:
    - call devm_clk_get()
    - call clk_prepare_enable() and register what is needed in order to
     call clk_disable_unprepare() when needed, as a managed resource.

This simplifies the code and avoids the calls to clk_disable_unprepare().

Signed-off-by: ying zuxin <11154159@vivo.com>
Link: https://patch.msgid.link/20240906084841.19248-1-yingzuxin@vivo.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: makes rtd->initialized bit field
Kuninori Morimoto [Thu, 5 Sep 2024 05:14:29 +0000 (05:14 +0000)] 
ASoC: makes rtd->initialized bit field

rtd->initialized is used to know whether soc_init_pcm_runtime()
was correctly fined, and used to call snd_soc_link_exit().
We don't need to have it as bool, let's make it bit-field same as
other flags.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Cc: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/87o752k7gq.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: amd: acp: Return in-case of error
Muhammad Usama Anjum [Fri, 6 Sep 2024 10:37:24 +0000 (15:37 +0500)] 
ASoC: amd: acp: Return in-case of error

Return when error occurs instead of proceeding to for loop which will
use val uninitialized.

Fixes: f6f7d25b1103 ("ASoC: amd: acp: Add pte configuration for ACP7.0 platform")
Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
Link: https://patch.msgid.link/20240906103727.222749-1-usama.anjum@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: loongson: remove redundant variable assignments
Tang Bin [Fri, 6 Sep 2024 10:05:23 +0000 (18:05 +0800)] 
ASoC: loongson: remove redundant variable assignments

In the function loongson_asoc_card_probe, it is simpler
to return the value of function devm_snd_soc_register_card
directly.

Signed-off-by: Tang Bin <tangbin@cmss.chinamobile.com>
Link: https://patch.msgid.link/20240906100523.2142-1-tangbin@cmss.chinamobile.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: skl_hda_dsp_generic: convert comma to semicolon
Chen Ni [Thu, 5 Sep 2024 02:20:17 +0000 (10:20 +0800)] 
ASoC: Intel: skl_hda_dsp_generic: convert comma to semicolon

Replace comma between expressions with semicolons.

Using a ',' in place of a ';' can have unintended side effects.
Although that is not the case here, it is seems best to use ';'
unless ',' is intended.

Found by inspection.
No functional change intended.
Compile tested only.

Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Link: https://patch.msgid.link/20240905022017.1642550-1-nichen@iscas.ac.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: topology-test: Convert comma to semicolon
Chen Ni [Thu, 5 Sep 2024 03:21:48 +0000 (11:21 +0800)] 
ASoC: topology-test: Convert comma to semicolon

Replace comma between expressions with semicolons.

Using a ',' in place of a ';' can have unintended side effects.
Although that is not the case here, it is seems best to use ';'
unless ',' is intended.

Found by inspection.
No functional change intended.
Compile tested only.

Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Link: https://patch.msgid.link/20240905032148.1929393-1-nichen@iscas.ac.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoAdd audio support for the MediaTek Genio 350-evk
Mark Brown [Thu, 5 Sep 2024 14:44:29 +0000 (15:44 +0100)] 
Add audio support for the MediaTek Genio 350-evk

Merge series from amergnat@baylibre.com:

This serie aim to add the following audio support for the Genio 350-evk:
- Playback
  - 2ch Headset Jack (Earphone)
  - 1ch Line-out Jack (Speaker)
  - 8ch HDMI Tx
- Capture
  - 1ch DMIC (On-board Digital Microphone)
  - 1ch AMIC (On-board Analogic Microphone)
  - 1ch Headset Jack (External Analogic Microphone)

Of course, HDMI playback need the MT8365 display patches [1] and a DTS
change documented in "mediatek,mt8365-mt6357.yaml".

9 months agoASoC: atmel: mchp-i2s-mcc: Improve maxburst calculation for better performance
Codrin Ciubotariu [Thu, 5 Sep 2024 09:56:33 +0000 (12:56 +0300)] 
ASoC: atmel: mchp-i2s-mcc: Improve maxburst calculation for better performance

The period size represents the size of the DMA descriptor. To ensure all
DMA descriptors start from a well-aligned address, the period size must
be divided by (sample size * maxburst), not just by maxburst.
This adjustment allows for computing a higher maxburst value, thereby
increasing the performance of the DMA transfer.
Previously, snd_pcm_lib_period_bytes() returned 0 because the runtime HW
parameters are computed after the hw_params() callbacks are used.
To address this, we now use params_*() functions to compute the period
size accurately. This change optimizes the DMA transfer performance by
ensuring proper alignment and efficient use of maxburst values.

[andrei.simion@microchip.com: Reword commit message and commit title.
Add macros with values for maximum DMA chunk size allowed.
Add DMA_BURST_ALIGNED preprocessor function to check the alignment of the
DMA burst]

Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
Signed-off-by: Andrei Simion <andrei.simion@microchip.com>
Link: https://patch.msgid.link/20240905095633.113784-1-andrei.simion@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: mediatek: Add MT8365 support
Alexandre Mergnat [Thu, 5 Sep 2024 09:06:59 +0000 (11:06 +0200)] 
ASoC: mediatek: Add MT8365 support

- Add specific config to enable:
  - MT8365 sound support
  - MT6357 audio codec support
- Add the mt8365 directory and all drivers under it.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://patch.msgid.link/20240226-audio-i350-v8-2-e80a57d026ce@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: codecs: add MT6357 support
Nicolas Belin [Thu, 5 Sep 2024 09:06:58 +0000 (11:06 +0200)] 
ASoC: codecs: add MT6357 support

Add the support of MT6357 PMIC audio codec.

Signed-off-by: Nicolas Belin <nbelin@baylibre.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://patch.msgid.link/20240226-audio-i350-v8-1-e80a57d026ce@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoSome clean up with helper fucntion
Mark Brown [Wed, 4 Sep 2024 19:09:26 +0000 (20:09 +0100)] 
Some clean up with helper fucntion

Merge series from Zhang Zekun <zhangzekun11@huawei.com>:

There are some helper functions which can be used to simplify the code.
So, let's use these functions to make code more simple.

9 months agoASoC: audio-graph-card2: Use helper function of_get_child_count()
Zhang Zekun [Tue, 27 Aug 2024 07:06:50 +0000 (15:06 +0800)] 
ASoC: audio-graph-card2: Use helper function of_get_child_count()

of_get_child_count() can help to get the num of child directly and we
don't need to manually count the child num. No functional change with
this conversion.

Signed-off-by: Zhang Zekun <zhangzekun11@huawei.com>
Reviewed-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/20240827070650.11424-3-zhangzekun11@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: audio-graph-card: Use for_each_child_of_node_scoped() to simplify code
Zhang Zekun [Tue, 27 Aug 2024 07:06:49 +0000 (15:06 +0800)] 
ASoC: audio-graph-card: Use for_each_child_of_node_scoped() to simplify code

for_each_child_of_node_scoped() can put the device_node automatically.
So, using it to make the code logic more simple and remove the device_node
clean up code.

Signed-off-by: Zhang Zekun <zhangzekun11@huawei.com>
Reviewed-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/20240827070650.11424-2-zhangzekun11@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: mediatek: mt2701-cs42448: Optimize redundant code in mt2701_cs42448_machine_probe
Liu Jing [Tue, 3 Sep 2024 09:36:23 +0000 (17:36 +0800)] 
ASoC: mediatek: mt2701-cs42448: Optimize redundant code in mt2701_cs42448_machine_probe

Utilize the defined parameter 'dev' to make the code cleaner.

Signed-off-by: Liu Jing <liujing@cmss.chinamobile.com>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
Link: https://patch.msgid.link/20240903093623.7120-1-liujing@cmss.chinamobile.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoAdd i2s/tdm support for acp7.0 and acp7.1 platforms
Mark Brown [Tue, 3 Sep 2024 22:51:08 +0000 (23:51 +0100)] 
Add i2s/tdm support for acp7.0 and acp7.1 platforms

Merge series from Venkata Prasad Potturu <venkataprasad.potturu@amd.com>:

1. Refactor acp generic driver to support all platforms.
2. Add i2s/tdm and support for acp7.0  and acp7.1 platforms.

9 months agoFixes for the audio setup on the rk3588-nanopc-t6
Mark Brown [Tue, 3 Sep 2024 22:50:56 +0000 (23:50 +0100)] 
Fixes for the audio setup on the rk3588-nanopc-t6

Merge series from Heiko Stuebner <heiko@sntech.de>:

The Nanopc-T6 board does contain some devicetree errors, that came to
light with recent changes to the board.

9 months agoAdd audio support for the MediaTek Genio 350-evk
Mark Brown [Tue, 3 Sep 2024 22:50:44 +0000 (23:50 +0100)] 
Add audio support for the MediaTek Genio 350-evk

Merge series from Alexandre Mergnat <amergnat@baylibre.com>:

This serie aim to add the following audio support for the Genio 350-evk:
- Playback
  - 2ch Headset Jack (Earphone)
  - 1ch Line-out Jack (Speaker)
  - 8ch HDMI Tx
- Capture
  - 1ch DMIC (On-board Digital Microphone)
  - 1ch AMIC (On-board Analogic Microphone)
  - 1ch Headset Jack (External Analogic Microphone)

Of course, HDMI playback need the MT8365 display patches [1] and a DTS
change documented in "mediatek,mt8365-mt6357.yaml".

Applied patch:
- mfd: mt6397-core: register mt6357 sound codec

Test passed:
- mixer-test log: [3]
- pcm-test log: [4]

[1]: https://lore.kernel.org/all/20231023-display-support-v1-0-5c860ed5c33b@baylibre.com/
[2]: https://lore.kernel.org/all/20240313110147.1267793-1-angelogioacchino.delregno@collabora.com/
[3]: https://pastebin.com/pc43AVrT
[4]: https://pastebin.com/cCtGhDpg
[5]: https://gitlab.baylibre.com/baylibre/mediatek/bsp/linux/-/commits/sound/for-next/add-i350-audio-support

9 months agoASoC: loongson: fix error release
tangbin [Tue, 3 Sep 2024 09:06:20 +0000 (17:06 +0800)] 
ASoC: loongson: fix error release

In function loongson_card_parse_of(), when get device_node
'codec' failed, the function of_node_put(codec) should not
be invoked, thus fix error release.

Fixes: d24028606e76 ("ASoC: loongson: Add Loongson ASoC Sound Card Support")
Signed-off-by: tangbin <tangbin@cmss.chinamobile.com>
Link: https://patch.msgid.link/20240903090620.6276-1-tangbin@cmss.chinamobile.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: tlv320aic32x4: Add multi endpoint support
Marek Vasut [Fri, 30 Aug 2024 23:09:43 +0000 (01:09 +0200)] 
ASoC: tlv320aic32x4: Add multi endpoint support

Support multiple endpoints on TLV320AIC32x4 codec port when
used in of_graph context.

This patch allows to share the codec port between two CPU DAIs.

Example:

Custom STM32MP157C board uses TLV320AIC32x4 audio codec. This codec
is connected to two serial audio interfaces, which are configured
either as rx or tx.

>From AsoC point of view the topolgy is the following:
// 2 CPU DAIs (SAI2A/B), 1 Codec (TLV320AIC32x4)
Playback: CPU-A-DAI(slave) -> (master)CODEC-DAI/port0
Record:   CPU-B-DAI(slave) <- (master)CODEC-DAI/port0

In the DT two endpoints have to be associated to the codec port:
tlv320aic32x4_port: port {
    tlv320aic32x4_tx_endpoint: endpoint@0 {
            remote-endpoint = <&sai2a_endpoint>;
    };
    tlv320aic32x4_rx_endpoint: endpoint@1 {
            remote-endpoint = <&sai2b_endpoint>;
    };
};

However, when the audio graph card parses the codec nodes, it expects
to find DAI interface indexes matching the endpoints indexes.

The current patch forces the use of DAI id 0 for both endpoints,
which allows to share the codec DAI between the two CPU DAIs
for playback and capture streams respectively.

Signed-off-by: Marek Vasut <marex@denx.de>
Link: https://patch.msgid.link/20240830231007.205707-1-marex@denx.de
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: rt5682: Return devm_of_clk_add_hw_provider to transfer the error
Ma Ke [Fri, 30 Aug 2024 14:31:54 +0000 (22:31 +0800)] 
ASoC: rt5682: Return devm_of_clk_add_hw_provider to transfer the error

Return devm_of_clk_add_hw_provider() in order to transfer the error, if it
fails due to resource allocation failure or device tree clock provider
registration failure.

Cc: stable@vger.kernel.org
Fixes: ebbfabc16d23 ("ASoC: rt5682: Add CCF usage for providing I2S clks")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
Link: https://patch.msgid.link/20240830143154.3448004-1-make24@iscas.ac.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: mediatek: mt8365: Add the AFE driver support
Alexandre Mergnat [Mon, 22 Jul 2024 06:53:40 +0000 (08:53 +0200)] 
ASoC: mediatek: mt8365: Add the AFE driver support

Add a driver for the Audio Front End (AFE) PCM to provide Audio
Uplink (UL) and Downlink (DL) paths.
Use the ALSA SoC Dynamic Audio Power Management to add widget and
kcontrol supports.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://patch.msgid.link/20240226-audio-i350-v7-11-6518d953a141@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoc: mediatek: mt8365: Add a specific soundcard for EVK
Nicolas Belin [Mon, 22 Jul 2024 06:53:39 +0000 (08:53 +0200)] 
ASoc: mediatek: mt8365: Add a specific soundcard for EVK

Add a specific soundcard for mt8365-evk. It supports audio jack
in/out, dmics, the amic and lineout.

Signed-off-by: Nicolas Belin <nbelin@baylibre.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://patch.msgid.link/20240226-audio-i350-v7-10-6518d953a141@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: mediatek: mt8365: Add PCM DAI support
Alexandre Mergnat [Mon, 22 Jul 2024 06:53:38 +0000 (08:53 +0200)] 
ASoC: mediatek: mt8365: Add PCM DAI support

Add Pulse Code Modulation Device Audio Interface support for MT8365 SoC.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://patch.msgid.link/20240226-audio-i350-v7-9-6518d953a141@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: mediatek: mt8365: Add DMIC DAI support
Alexandre Mergnat [Mon, 22 Jul 2024 06:53:37 +0000 (08:53 +0200)] 
ASoC: mediatek: mt8365: Add DMIC DAI support

Add Digital Micro Device Audio Interface support for MT8365 SoC.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://patch.msgid.link/20240226-audio-i350-v7-8-6518d953a141@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: mediatek: mt8365: Add ADDA DAI support
Alexandre Mergnat [Mon, 22 Jul 2024 06:53:36 +0000 (08:53 +0200)] 
ASoC: mediatek: mt8365: Add ADDA DAI support

Add ADDA Device Audio Interface support for MT8365 SoC.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://patch.msgid.link/20240226-audio-i350-v7-7-6518d953a141@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: mediatek: mt8365: Add I2S DAI support
Alexandre Mergnat [Mon, 22 Jul 2024 06:53:35 +0000 (08:53 +0200)] 
ASoC: mediatek: mt8365: Add I2S DAI support

Add I2S Device Audio Interface support for MT8365 SoC.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://patch.msgid.link/20240226-audio-i350-v7-6-6518d953a141@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: mediatek: mt8365: Add audio clock control support
Alexandre Mergnat [Mon, 22 Jul 2024 06:53:34 +0000 (08:53 +0200)] 
ASoC: mediatek: mt8365: Add audio clock control support

Add audio clock wrapper and audio tuner control.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://patch.msgid.link/20240226-audio-i350-v7-5-6518d953a141@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: mediatek: mt8365: Add common header
Alexandre Mergnat [Mon, 22 Jul 2024 06:53:33 +0000 (08:53 +0200)] 
ASoC: mediatek: mt8365: Add common header

Add header files for register definition and structure.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://patch.msgid.link/20240226-audio-i350-v7-4-6518d953a141@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agodt-bindings: mfd: mediatek: Add codec property for MT6357 PMIC
Alexandre Mergnat [Mon, 22 Jul 2024 06:53:32 +0000 (08:53 +0200)] 
dt-bindings: mfd: mediatek: Add codec property for MT6357 PMIC

Add the audio codec sub-device. This sub-device is used to set the
optional voltage values according to the hardware.
The properties are:
  - Setup of microphone bias voltage.
  - Setup of the speaker pin pull-down.

Also, add the audio power supply property which is dedicated for
the audio codec sub-device.

Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://patch.msgid.link/20240226-audio-i350-v7-3-6518d953a141@baylibre.com
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: dt-bindings: mediatek,mt8365-mt6357: Add audio sound card document
Alexandre Mergnat [Mon, 22 Jul 2024 06:53:31 +0000 (08:53 +0200)] 
ASoC: dt-bindings: mediatek,mt8365-mt6357: Add audio sound card document

Add soundcard bindings for the MT8365 SoC with the MT6357 audio codec.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://patch.msgid.link/20240226-audio-i350-v7-2-6518d953a141@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: dt-bindings: mediatek,mt8365-afe: Add audio afe document
Alexandre Mergnat [Mon, 22 Jul 2024 06:53:30 +0000 (08:53 +0200)] 
ASoC: dt-bindings: mediatek,mt8365-afe: Add audio afe document

Add MT8365 audio front-end bindings

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Link: https://patch.msgid.link/20240226-audio-i350-v7-1-6518d953a141@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: amd: acp: Add I2S TDM support for acp7.1 platform
Venkata Prasad Potturu [Tue, 3 Sep 2024 11:34:27 +0000 (17:04 +0530)] 
ASoC: amd: acp: Add I2S TDM support for acp7.1 platform

Add acp71 revision id to support i2s/tdm mode.

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20240903113427.182997-13-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: amd: acp: Add i2s master clock generation support for acp7.1 platform
Venkata Prasad Potturu [Tue, 3 Sep 2024 11:34:26 +0000 (17:04 +0530)] 
ASoC: amd: acp: Add i2s master clock generation support for acp7.1 platform

Add i2s master generation support for acp7.1 platform based on pci device
id.

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20240903113427.182997-12-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: amd: acp: Add pte configuration for ACP7.0 platform
Venkata Prasad Potturu [Tue, 3 Sep 2024 11:34:25 +0000 (17:04 +0530)] 
ASoC: amd: acp: Add pte configuration for ACP7.0 platform

Add page table entry configurations to support higher sample rate
streams with multiple channels for ACP7.0 platforms.

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20240903113427.182997-11-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: amd: acp: Add I2S TDM support for acp7.0 platform
Venkata Prasad Potturu [Tue, 3 Sep 2024 11:34:24 +0000 (17:04 +0530)] 
ASoC: amd: acp: Add I2S TDM support for acp7.0 platform

Add acp70 revision id to support I2S TDM.

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20240903113427.182997-10-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: amd: acp: Modify max channels and sample rate support for acp70 dai driver
Venkata Prasad Potturu [Tue, 3 Sep 2024 11:34:23 +0000 (17:04 +0530)] 
ASoC: amd: acp: Modify max channels and sample rate support for acp70 dai driver

Modify max channels and max sample rate support in the dai driver for
acp7.0 platform.

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20240903113427.182997-9-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: amd: acp: Set i2s clock for acp7.0 platform
Venkata Prasad Potturu [Tue, 3 Sep 2024 11:34:22 +0000 (17:04 +0530)] 
ASoC: amd: acp: Set i2s clock for acp7.0 platform

Set i2s bclk and lrclk for acp7.0 platform.

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20240903113427.182997-8-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: amd: acp: Add I2S master clock generation support for acp7.0 platform
Venkata Prasad Potturu [Tue, 3 Sep 2024 11:34:21 +0000 (17:04 +0530)] 
ASoC: amd: acp: Add I2S master clock generation support for acp7.0 platform

Add I2S master clock generation support for acp7.0 platforms.

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20240903113427.182997-7-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: amd: acp: Update pcm hardware capabilities for acp7.0 platform
Venkata Prasad Potturu [Tue, 3 Sep 2024 11:34:20 +0000 (17:04 +0530)] 
ASoC: amd: acp: Update pcm hardware capabilities for acp7.0 platform

Update pcm hardware capabilities for acp7.0 platform.

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20240903113427.182997-6-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: amd: acp: Add I2S TDM support for acp6.3 platform
Venkata Prasad Potturu [Tue, 3 Sep 2024 11:34:19 +0000 (17:04 +0530)] 
ASoC: amd: acp: Add I2S TDM support for acp6.3 platform

Add slots selection and 32-channels TDM support for
acp6.3 platform.

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20240903113427.182997-5-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: amd: acp: Update pcm hardware capabilities for acp6.3 platform
Venkata Prasad Potturu [Tue, 3 Sep 2024 11:34:18 +0000 (17:04 +0530)] 
ASoC: amd: acp: Update pcm hardware capabilities for acp6.3 platform

Update pcm hardware capabilities based on acp revision id.

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20240903113427.182997-4-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: amd: acp: Refactor I2S dai driver
Venkata Prasad Potturu [Tue, 3 Sep 2024 11:34:17 +0000 (17:04 +0530)] 
ASoC: amd: acp: Refactor I2S dai driver

All I2S instances are connected to different powertile form acp6.0
onwards, refactor dai driver to support all I2S instances for all acp
platforms.

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20240903113427.182997-3-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: amd: acp: Refactor TDM slots selction based on acp revision id
Venkata Prasad Potturu [Tue, 3 Sep 2024 11:34:16 +0000 (17:04 +0530)] 
ASoC: amd: acp: Refactor TDM slots selction based on acp revision id

Refactor TDM slots selection based on acp revision id.

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20240903113427.182997-2-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: dt-bindings: realtek,rt5616: Document audio graph port
Heiko Stuebner [Fri, 30 Aug 2024 20:38:18 +0000 (22:38 +0200)] 
ASoC: dt-bindings: realtek,rt5616: Document audio graph port

The codec can be used in conjunction with an audio-graph-card to provide
an endpoint for binding with the other side of the audio link.

Document the 'port' property that is used for this to prevent
dtbscheck errors like:

    rockchip/rk3588-nanopc-t6-lts.dtb: codec@1b: Unevaluated properties are not allowed ('port' was unexpected)
        from schema $id: http://devicetree.org/schemas/sound/realtek,rt5616.yaml#

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240830203819.1972536-3-heiko@sntech.de
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: dt-bindings: realtek,rt5616: document mclk clock
Heiko Stuebner [Fri, 30 Aug 2024 20:38:17 +0000 (22:38 +0200)] 
ASoC: dt-bindings: realtek,rt5616: document mclk clock

Both devicetrees and driver implementation already use the specified mclk
in the field, so at least document the clock too, similarly to other
Realtek codec.

This has the nice additional effect of getting rid of dtbscheck warning.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240830203819.1972536-2-heiko@sntech.de
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: loongson: remove unnecessary assignment in i2s_resume()
tangbin [Tue, 3 Sep 2024 09:03:01 +0000 (17:03 +0800)] 
ASoC: loongson: remove unnecessary assignment in i2s_resume()

In this function, the assignment ret is unnecessary,
thus remove it.

Signed-off-by: tangbin <tangbin@cmss.chinamobile.com>
Link: https://patch.msgid.link/20240903090301.6192-1-tangbin@cmss.chinamobile.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: adi: Use str_enabled_disabled() helper
Hongbo Li [Sat, 31 Aug 2024 09:51:49 +0000 (17:51 +0800)] 
ASoC: adi: Use str_enabled_disabled() helper

Use str_enabled_disabled() helper instead of open
coding the same.

Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
Link: https://patch.msgid.link/20240831095149.4161729-1-lihongbo22@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: rt1320: Add support for version C
Shuming Fan [Mon, 2 Sep 2024 09:08:45 +0000 (17:08 +0800)] 
ASoC: rt1320: Add support for version C

This patch added the support for version C.

Signed-off-by: Shuming Fan <shumingf@realtek.com>
Link: https://patch.msgid.link/20240902090845.1862354-1-shumingf@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: cs-amp-lib: Add KUnit test case for empty calibration entries
Richard Fitzgerald [Fri, 30 Aug 2024 14:48:19 +0000 (15:48 +0100)] 
ASoC: cs-amp-lib: Add KUnit test case for empty calibration entries

Add a test case for commit bb4485562f59 ("ASoC: cs-amp-lib: Ignore
empty UEFI calibration entries").

Any entries in the calibration blob that have calTime==0 are empty
entries. So they must not be returned by a lookup.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20240830144819.118362-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: dt-bindings: amlogic-sound-cards: document
Mark Brown [Thu, 29 Aug 2024 17:53:02 +0000 (18:53 +0100)] 
ASoC: dt-bindings: amlogic-sound-cards: document

Merge series from Neil Armstrong <neil.armstrong@linaro.org>:

Following an off-list discution with Jerome about fixing the following
DTBs check errors:
    sound: Unevaluated properties are not allowed ('assigned-clock-parents', 'assigned-clock-rates', 'assigned-clocks' were unexpected)
        from schema $id: http://devicetree.org/schemas/sound/amlogic,axg-sound-card.yaml#
    sound: Unevaluated properties are not allowed ('assigned-clock-parents', 'assigned-clock-rates', 'assigned-clocks' were unexpected)
        from schema $id: http://devicetree.org/schemas/sound/amlogic,gx-sound-card.yaml#
    sound: 'anyOf' conditional failed, one must be fixed:
        'clocks' is a required property
        '#clock-cells' is a required property
        from schema $id: http://devicetree.org/schemas/clock/clock.yaml#

It has been agreed documenting the clock in the sound card is a better solution
than moving them to a random clock controller or consumer node which is not
related to the actual meaning of those root frequencies.

The patchset adds the clocks proprty to the bindings and finally adds the
properties to the DT files.

9 months agoASoC: codecs: wsa884x: Implement temperature reading and hwmon
Krzysztof Kozlowski [Fri, 9 Aug 2024 11:01:22 +0000 (13:01 +0200)] 
ASoC: codecs: wsa884x: Implement temperature reading and hwmon

Read temperature of the speaker and expose it via hwmon interface, which
will be later used during calibration of speaker protection algorithms.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240809110122.137761-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: dt-bindings: cirrus,cs4271: Convert to dtschema
Nikita Shubin [Thu, 29 Aug 2024 07:52:57 +0000 (10:52 +0300)] 
ASoC: dt-bindings: cirrus,cs4271: Convert to dtschema

Convert the Cirrus Logic CS4271 audio CODEC bindings to DT schema.

Add missing spi-cpha, spi-cpol, '#sound-dai-cells' and port, as they
are already being used in the DTS and the driver for this device.

Switch to 'reset-gpios' and drop legacy 'reset-gpio' used in original
bindings.

Based on Animesh Agarwal cs42xx8 conversion patch.

Cc: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Link: https://lore.kernel.org/all/20240715-ep93xx-v11-0-4e924efda795@maquefel.me
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240829-cs4271-yaml-v3-1-f1624cc838f6@maquefel.me
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: dt-bindings: Convert mxs-saif.txt to fsl,saif.yaml (imx28 saif)
Lukasz Majewski [Wed, 28 Aug 2024 09:27:09 +0000 (11:27 +0200)] 
ASoC: dt-bindings: Convert mxs-saif.txt to fsl,saif.yaml (imx28 saif)

The 'fsl,imx28-saif' compatible has already the mxs-saif.txt description.
This patch converts (and removes it) this file to fsl,saif.yaml (to follow
current fsl convention).

Changes for the mxs-saif.txt:
- Adds 'clocks', '#clock-cells' and '#sound-dai-cells' properties
- Provide device description

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240828092709.2626359-1-lukma@denx.de
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: dt-bindings: amlogic,gx-sound-card: document clocks property
Neil Armstrong [Wed, 28 Aug 2024 13:53:55 +0000 (15:53 +0200)] 
ASoC: dt-bindings: amlogic,gx-sound-card: document clocks property

The sound card design is based on reference PLL frequencies that
are the root of all clock rates calculations.

Today, those frequencies are currently specified in DT via assigned-clocks,
because they correspond to the basic audio use-case.

It makes no sense to setup clock rates for a sound card without
referencing the clocks for the sound card, mainly because at
some point more complex audio use cases will be supported
and those root rates would need to change.

To solve this situation, let's legitimize the presence of assigned-clocks
in the sound card by documenting those clocks, as it describes a true
dependency of the sound card and paths the way of more complex
audio uses-cases involving those root frequencies.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/20240828-topic-amlogic-upstream-bindings-fixes-audio-snd-card-v2-2-58159abf0779@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: dt-bindings: amlogic,axg-sound-card: document clocks property
Neil Armstrong [Wed, 28 Aug 2024 13:53:54 +0000 (15:53 +0200)] 
ASoC: dt-bindings: amlogic,axg-sound-card: document clocks property

The sound card design is based on reference PLL frequencies that
are the root of all clock rates calculations.

Today, those frequencies are currently specified in DT via assigned-clocks,
because they correspond to the basic audio use-case.

It makes no sense to setup clock rates for a sound card without
referencing the clocks for the sound card, mainly because at
some point more complex audio use cases will be supported
and those root rates would need to change.

To solve this situation, let's legitimize the presence of assigned-clocks
in the sound card by documenting those clocks, as it describes a true
dependency of the sound card and paths the way of more complex
audio uses-cases involving those root frequencies.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/20240828-topic-amlogic-upstream-bindings-fixes-audio-snd-card-v2-1-58159abf0779@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: boards: updates for 6.12
Mark Brown [Wed, 28 Aug 2024 16:33:56 +0000 (17:33 +0100)] 
ASoC: Intel: boards: updates for 6.12

Merge series from Bard Liao <yung-chuan.liao@linux.intel.com>:

Some simplifications from Brent Lu for Chromebooks, a new SoundWire codec
support from Bard Liao, new cs42l43 match entries support from
Charles Keepax, Add quirks from some new Dell laptops from Maciej
Strozek, some ACPI match entries from Balamurugan C, and few bug
fixes from Pierre-Louis Bossart.

v2:
 - Add "ASoC: SOF: Intel: hda: support BT link mask in mach_params"
   commit to fix the build issue in v1.

Balamurugan C (2):
  ASoC: Intel: soc-acpi: Add entry for sof_es8336 in ARL match table.
  ASoC: Intel: soc-acpi: Add entry for HDMI_In capture support in ARL
    match table

Bard Liao (4):
  ASoC: Intel: sof_sdw: add rt1320 amp support
  ASoC: SOF: Intel: hda: refactoring topology name fixup for HDA mach
  ASoC: Intel: sof_sdw: move ignore_internal_dmic check earlier
  ASoC: Intel: sof_sdw: overwrite mach_params->dmic_num

Brent Lu (5):
  ASoC: SOF: Intel: hda: refactoring topology name fixup for SDW mach
  ASoC: SOF: Intel: hda: support BT link mask in mach_params
  ASoC: Intel: skl_hda_dsp_generic: support BT audio offload
  ASoC: Intel: skl_hda_dsp_generic: remove hdac-hdmi support
  ASoC: Intel: skl_hda_dsp_generic: use sof_hdmi_private to init HDMI

Charles Keepax (3):
  ASoC: Intel: soc-acpi: arl: Add match entries for new cs42l43 laptops
  ASoC: Intel: soc-acpi: adl: Add match entries for new cs42l43 laptops
  ASoC: Intel: soc-acpi: lnl: Add match entries for new cs42l43 laptops

Maciej Strozek (1):
  ASoC: Intel: sof_sdw: Add quirks from some new Dell laptops

Pierre-Louis Bossart (2):
  ASoC: Intel: sof_sdw: make sof_sdw_quirk static
  ASoC: Intel: boards: always check the result of
    acpi_dev_get_first_match_dev()

 include/sound/soc-acpi.h                      |   2 +
 sound/soc/intel/boards/Kconfig                |   2 +-
 sound/soc/intel/boards/bytcht_cx2072x.c       |   4 +
 sound/soc/intel/boards/bytcht_da7213.c        |   4 +
 sound/soc/intel/boards/bytcht_es8316.c        |   2 +-
 sound/soc/intel/boards/bytcr_rt5640.c         |   2 +-
 sound/soc/intel/boards/bytcr_rt5651.c         |   2 +-
 sound/soc/intel/boards/cht_bsw_rt5645.c       |   4 +
 sound/soc/intel/boards/cht_bsw_rt5672.c       |   4 +
 sound/soc/intel/boards/skl_hda_dsp_common.c   |  56 ++--
 sound/soc/intel/boards/skl_hda_dsp_common.h   |  39 +--
 sound/soc/intel/boards/skl_hda_dsp_generic.c  |  58 ++--
 sound/soc/intel/boards/sof_es8336.c           |  12 +-
 sound/soc/intel/boards/sof_sdw.c              |  85 +++++-
 sound/soc/intel/boards/sof_sdw_common.h       |   2 -
 sound/soc/intel/boards/sof_wm8804.c           |   4 +
 .../intel/common/soc-acpi-intel-adl-match.c   | 105 +++++++
 .../intel/common/soc-acpi-intel-arl-match.c   | 244 +++++++++++++++
 .../intel/common/soc-acpi-intel-hda-match.c   |  12 +-
 .../intel/common/soc-acpi-intel-lnl-match.c   | 104 +++++++
 sound/soc/sdw_utils/soc_sdw_rt_amp.c          |  11 +-
 sound/soc/sdw_utils/soc_sdw_utils.c           |  19 ++
 sound/soc/sof/intel/hda.c                     | 281 ++++++++----------
 23 files changed, 780 insertions(+), 278 deletions(-)

--
2.43.0

9 months agoASoC: soc-pcm: makes snd_soc_dpcm_can_be_xxx() local
Mark Brown [Wed, 28 Aug 2024 16:33:49 +0000 (17:33 +0100)] 
ASoC: soc-pcm: makes snd_soc_dpcm_can_be_xxx() local

Merge series from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:

No driver is calling snd_soc_dpcm_can_be_xxx() functions. We don't need
to have EXPORT_SYMBOL_GPL() for them. This patch-set makes it static function.

9 months agoASoC: dapm: Use IS_ERR_OR_NULL() helper function
Hongbo Li [Wed, 28 Aug 2024 12:28:29 +0000 (20:28 +0800)] 
ASoC: dapm: Use IS_ERR_OR_NULL() helper function

Use the IS_ERR_OR_NULL() helper instead of open-coding a
NULL and an error pointer checks to simplify the code and
improve readability.

Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
Link: https://patch.msgid.link/20240828122829.3697502-1-lihongbo22@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: soc-pcm: makes snd_soc_dpcm_can_be_xxx() local function
Kuninori Morimoto [Mon, 26 Aug 2024 23:41:57 +0000 (23:41 +0000)] 
ASoC: soc-pcm: makes snd_soc_dpcm_can_be_xxx() local function

No driver is calling snd_soc_dpcm_can_be_xxx() functions. We don't need
to have EXPORT_SYMBOL_GPL() for them. Let's makes it static function.
One note is that snd_soc_dpcm_fe_can_update() is not used in upstream.
Use #if-endif and keep it for future support.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87h6b6df7e.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: soc-pcm: move snd_soc_dpcm_can_be_xxx() to top
Kuninori Morimoto [Mon, 26 Aug 2024 23:41:52 +0000 (23:41 +0000)] 
ASoC: soc-pcm: move snd_soc_dpcm_can_be_xxx() to top

This patch moves snd_soc_dpcm_can_be_xxx() functions to top of soc-pcm.c
This is prepare for cleanup.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87ikvmdf7j.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: sof_sdw: Add quirks from some new Dell laptops
Maciej Strozek [Tue, 27 Aug 2024 12:32:15 +0000 (20:32 +0800)] 
ASoC: Intel: sof_sdw: Add quirks from some new Dell laptops

Add quirks for some new Dell laptops using cs42l43's speaker outputs.

Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-18-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: soc-acpi: lnl: Add match entries for new cs42l43 laptops
Charles Keepax [Tue, 27 Aug 2024 12:32:14 +0000 (20:32 +0800)] 
ASoC: Intel: soc-acpi: lnl: Add match entries for new cs42l43 laptops

Add some new match table entries on Lunarlake for some coming cs42l43
laptops.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-17-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: soc-acpi: adl: Add match entries for new cs42l43 laptops
Charles Keepax [Tue, 27 Aug 2024 12:32:13 +0000 (20:32 +0800)] 
ASoC: Intel: soc-acpi: adl: Add match entries for new cs42l43 laptops

Add some new match table entries on Alderlake for some coming cs42l43
laptops.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-16-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: soc-acpi: arl: Add match entries for new cs42l43 laptops
Charles Keepax [Tue, 27 Aug 2024 12:32:12 +0000 (20:32 +0800)] 
ASoC: Intel: soc-acpi: arl: Add match entries for new cs42l43 laptops

Add some new match table entries on Arrowlake for some coming cs42l43
laptops.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-15-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: skl_hda_dsp_generic: use sof_hdmi_private to init HDMI
Brent Lu [Tue, 27 Aug 2024 12:32:11 +0000 (20:32 +0800)] 
ASoC: Intel: skl_hda_dsp_generic: use sof_hdmi_private to init HDMI

Use sof_hdmi_private structure instead of a link list of
skl_hda_hdmi_pcm structure for HDMI dai link initialization since
hdac-hdmi support is removed.

Signed-off-by: Brent Lu <brent.lu@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-14-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: skl_hda_dsp_generic: remove hdac-hdmi support
Brent Lu [Tue, 27 Aug 2024 12:32:10 +0000 (20:32 +0800)] 
ASoC: Intel: skl_hda_dsp_generic: remove hdac-hdmi support

Since this machine driver has no longer been enumerated by SKL
platform driver, we could remove hdac-hdmi support code just like
what we did to other SOF machine drivers.

Signed-off-by: Brent Lu <brent.lu@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-13-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: soc-acpi: Add entry for HDMI_In capture support in ARL match table
Balamurugan C [Tue, 27 Aug 2024 12:32:09 +0000 (20:32 +0800)] 
ASoC: Intel: soc-acpi: Add entry for HDMI_In capture support in ARL match table

Adding HDMI-In capture via I2S feature support in ARL platform.

Signed-off-by: Balamurugan C <balamurugan.c@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-12-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: soc-acpi: Add entry for sof_es8336 in ARL match table.
Balamurugan C [Tue, 27 Aug 2024 12:32:08 +0000 (20:32 +0800)] 
ASoC: Intel: soc-acpi: Add entry for sof_es8336 in ARL match table.

Adding ES83x6 codec support for ARL platforms and entry in match table.

Signed-off-by: Balamurugan C <balamurugan.c@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-11-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: skl_hda_dsp_generic: support BT audio offload
Brent Lu [Tue, 27 Aug 2024 12:32:07 +0000 (20:32 +0800)] 
ASoC: Intel: skl_hda_dsp_generic: support BT audio offload

Add BT offload BE link to dai link array if the BT offload link mask
is valid (only one bit set).

Signed-off-by: Brent Lu <brent.lu@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-10-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: SOF: Intel: hda: support BT link mask in mach_params
Brent Lu [Tue, 27 Aug 2024 12:32:06 +0000 (20:32 +0800)] 
ASoC: SOF: Intel: hda: support BT link mask in mach_params

Add an new variable bt_link_mask to snd_soc_acpi_mach_params structure.
SSP port mask of BT offload found in NHLT table will be sent to
machine driver to setup BE dai link with correct SSP port number.

This patch only detects and enables the BT dailink. The functionality
will only be unlocked with a topology file that makes a reference to
that BT dailink. For backwards-compatibility reasons, this topology
will not be used by default. Chromebooks and Linux users willing to
experiment shall use the tplg_name kernel parameter to force the use
of an enhanced topology.

Signed-off-by: Brent Lu <brent.lu@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-9-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: sof_sdw: overwrite mach_params->dmic_num
Bard Liao [Tue, 27 Aug 2024 12:32:05 +0000 (20:32 +0800)] 
ASoC: Intel: sof_sdw: overwrite mach_params->dmic_num

mach_params->dmic_num will be used to set the cfg-mics value of
card->components string. Overwrite it to the actual number of PCH
DMICs used in the device.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-8-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: sof_sdw: move ignore_internal_dmic check earlier
Bard Liao [Tue, 27 Aug 2024 12:32:04 +0000 (20:32 +0800)] 
ASoC: Intel: sof_sdw: move ignore_internal_dmic check earlier

dmic links will not be created if ctx->ignore_internal_dmic is set, and
dmic_num should be 0 in this case. Move ignore_internal_dmic check
earlier where dmic_num is set to get an accurate dmic_num.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-7-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: SOF: Intel: hda: refactoring topology name fixup for SDW mach
Brent Lu [Tue, 27 Aug 2024 12:32:03 +0000 (20:32 +0800)] 
ASoC: SOF: Intel: hda: refactoring topology name fixup for SDW mach

Remove SDW mach's topology name fixup code and use the code in
hda_machine_select() to fixup its topology file name. No functional
change in this commit.

Compared with I2S/HDA mach, SDW mach always fixup topology file name
with dmic num without using DMIC quirk flag and pass topology name
with file extension to SOF driver. Therefore, we add extra code to
remove file extension if it exists.

Signed-off-by: Brent Lu <brent.lu@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-6-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: SOF: Intel: hda: refactoring topology name fixup for HDA mach
Bard Liao [Tue, 27 Aug 2024 12:32:02 +0000 (20:32 +0800)] 
ASoC: SOF: Intel: hda: refactoring topology name fixup for HDA mach

Move I2S mach's topology name fixup code to the end of machine driver
enumeration flow so HDA mach could also use same code to fixup its
topology file name as well. No functional change in this commit.

Signed-off-by: Brent Lu <brent.lu@intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-5-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: boards: always check the result of acpi_dev_get_first_match_dev()
Pierre-Louis Bossart [Tue, 27 Aug 2024 12:32:01 +0000 (20:32 +0800)] 
ASoC: Intel: boards: always check the result of acpi_dev_get_first_match_dev()

The code seems mostly copy-pasted, with some machine drivers
forgetting to test if the 'adev' result is NULL.

Add this check when missing, and use -ENOENT consistently as an error
code.

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/alsa-devel/918944d2-3d00-465e-a9d1-5d57fc966113@stanley.mountain/T/#u
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-4-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: sof_sdw: add rt1320 amp support
Bard Liao [Tue, 27 Aug 2024 12:32:00 +0000 (20:32 +0800)] 
ASoC: Intel: sof_sdw: add rt1320 amp support

Add Realtek rt1320 amp support.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: Intel: sof_sdw: make sof_sdw_quirk static
Pierre-Louis Bossart [Tue, 27 Aug 2024 12:31:59 +0000 (20:31 +0800)] 
ASoC: Intel: sof_sdw: make sof_sdw_quirk static

There's no need to make this variable visible at a higher level.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-2-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: SOF: topology: Use kmemdup_array instead of kmemdup for multiple allocation
Shen Lichuan [Mon, 26 Aug 2024 05:44:02 +0000 (13:44 +0800)] 
ASoC: SOF: topology: Use kmemdup_array instead of kmemdup for multiple allocation

Let the kmemdup_array() take care about multiplication
and possible overflows.

Using kmemdup_array() is more appropriate and makes the code
easier to audit.

Signed-off-by: Shen Lichuan <shenlichuan@vivo.com>
Link: https://patch.msgid.link/20240826054402.58396-1-shenlichuan@vivo.com
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: MAINTAINERS: Drop incorrect tlv320aic31xx.txt path
Krzysztof Kozlowski [Sun, 25 Aug 2024 08:57:45 +0000 (10:57 +0200)] 
ASoC: MAINTAINERS: Drop incorrect tlv320aic31xx.txt path

tlv320aic31xx.txt was converted to DT schema (YAML) and new file is
already matched by wildcard.  This fixes get_maintainers.pl self-test
warning:

  ./MAINTAINERS:22739: warning: no file matches F: Documentation/devicetree/bindings/sound/tlv320aic31xx.txt

Fixes: e486feb7b8ec ("ASoC: dt-bindings: convert tlv320aic31xx.txt to yaml")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240825085745.21668-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
9 months agoASoC: tas2781: replace devm_kzalloc and scnprintf with devm_kstrdup
Shenghao Ding [Sat, 24 Aug 2024 06:05:00 +0000 (14:05 +0800)] 
ASoC: tas2781: replace devm_kzalloc and scnprintf with devm_kstrdup

Replace devm_kzalloc and scnprintf with devm_kstrdup.

Signed-off-by: Shenghao Ding <shenghao-ding@ti.com>
Link: https://patch.msgid.link/20240824060503.1259-1-shenghao-ding@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoAdd SOF support for ACP7.0 based platform
Mark Brown [Sat, 24 Aug 2024 00:51:40 +0000 (01:51 +0100)] 
Add SOF support for ACP7.0 based platform

Merge series from Vijendar Mukunda <Vijendar.Mukunda@amd.com>:

This patch series adds SOF support for ACP7.0 based platform.

Link: https://github.com/thesofproject/linux/pull/5139
10 months agoASoC: dapm-graph: add component on/off and route names
Mark Brown [Sat, 24 Aug 2024 00:51:26 +0000 (01:51 +0100)] 
ASoC: dapm-graph: add component on/off and route names

Merge series from Luca Ceresoli <luca.ceresoli@bootlin.com>:

This small series adds some improvements to dapm-graph in order to produce
a more correct and informative graph.

10 months agoASoC: Merge up fixes
Mark Brown [Fri, 23 Aug 2024 21:45:53 +0000 (22:45 +0100)] 
ASoC: Merge up fixes

Some of the fixes for the Intel bards overlap with development work that
removed old boards.

10 months agoASoC: SOF: amd: add support for acp7.0 based platform
Vijendar Mukunda [Fri, 23 Aug 2024 05:37:39 +0000 (11:07 +0530)] 
ASoC: SOF: amd: add support for acp7.0 based platform

Add SOF support for ACP7.0 version based platform.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://patch.msgid.link/20240823053739.465187-3-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: amd: Add acpi machine id for acp7.0 version based platform
Vijendar Mukunda [Fri, 23 Aug 2024 05:37:38 +0000 (11:07 +0530)] 
ASoC: amd: Add acpi machine id for acp7.0 version based platform

Add acpi machine id for ACP7.0 version based platform and configure
driver data to enable SOF sound card support on newer boards.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://patch.msgid.link/20240823053739.465187-2-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: dapm-graph: show path name for non-static routes
Luca Ceresoli [Fri, 23 Aug 2024 07:46:01 +0000 (09:46 +0200)] 
ASoC: dapm-graph: show path name for non-static routes

Many routes are just static, not modifiable at runtime. Show the route name
for all the other routes as an edge label in the generated graph.

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20240823-dapm-graph-v1-3-989a47308c4c@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: dapm-graph: visualize component On/Off bias level
Luca Ceresoli [Fri, 23 Aug 2024 07:46:00 +0000 (09:46 +0200)] 
ASoC: dapm-graph: visualize component On/Off bias level

Read the bias_level debugfs files (ignored so far) and visualize the On/Off
state of each component using different graphic attributes in the generated
graph.

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20240823-dapm-graph-v1-2-989a47308c4c@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: dapm-graph: remove the "ROOT" cluster
Luca Ceresoli [Fri, 23 Aug 2024 07:45:59 +0000 (09:45 +0200)] 
ASoC: dapm-graph: remove the "ROOT" cluster

Widgets not belonging to any component are currently represented inside a
cluster labeled "ROOT". This is not a correct representation of the actual
structure, as these widgets are not necessarily related to each other as
the ones inside actual components are.

Improve the graphical representation by not adding a cluster around these
widgets. Now a dot cluster represents a card component faithfully. This
will be particularly important with the upcoming improvements which will
visualize the component bias_level.

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20240823-dapm-graph-v1-1-989a47308c4c@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: Intel: soc-acpi-cht: Make Lenovo Yoga Tab 3 X90F DMI match less strict
Hans de Goede [Fri, 23 Aug 2024 07:43:05 +0000 (09:43 +0200)] 
ASoC: Intel: soc-acpi-cht: Make Lenovo Yoga Tab 3 X90F DMI match less strict

There are 2G and 4G RAM versions of the Lenovo Yoga Tab 3 X90F and it
turns out that the 2G version has a DMI product name of
"CHERRYVIEW D1 PLATFORM" where as the 4G version has
"CHERRYVIEW C0 PLATFORM". The sys-vendor + product-version check are
unique enough that the product-name check is not necessary.

Drop the product-name check so that the existing DMI match for the 4G
RAM version also matches the 2G RAM version.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://patch.msgid.link/20240823074305.16873-1-hdegoede@redhat.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: Intel: Boards: Fix NULL pointer deref in BYT/CHT boards harder
Hans de Goede [Fri, 23 Aug 2024 07:42:17 +0000 (09:42 +0200)] 
ASoC: Intel: Boards: Fix NULL pointer deref in BYT/CHT boards harder

Since commit 13f58267cda3 ("ASoC: soc.h: don't create dummy Component
via COMP_DUMMY()") dummy codecs declared like this:

SND_SOC_DAILINK_DEF(dummy,
        DAILINK_COMP_ARRAY(COMP_DUMMY()));

expand to:

static struct snd_soc_dai_link_component dummy[] = {
};

Which means that dummy is a zero sized array and thus dais[i].codecs should
not be dereferenced *at all* since it points to the address of the next
variable stored in the data section as the "dummy" variable has an address
but no size, so even dereferencing dais[0] is already an out of bounds
array reference.

Which means that the if (dais[i].codecs->name) check added in
commit 7d99a70b6595 ("ASoC: Intel: Boards: Fix NULL pointer deref
in BYT/CHT boards") relies on that the part of the next variable which
the name member maps to just happens to be NULL.

Which apparently so far it usually is, except when it isn't
and then it results in crashes like this one:

[   28.795659] BUG: unable to handle page fault for address: 0000000000030011
...
[   28.795780] Call Trace:
[   28.795787]  <TASK>
...
[   28.795862]  ? strcmp+0x18/0x40
[   28.795872]  0xffffffffc150c605
[   28.795887]  platform_probe+0x40/0xa0
...
[   28.795979]  ? __pfx_init_module+0x10/0x10 [snd_soc_sst_bytcr_wm5102]

Really fix things this time around by checking dais.num_codecs != 0.

Fixes: 7d99a70b6595 ("ASoC: Intel: Boards: Fix NULL pointer deref in BYT/CHT boards")
Cc: stable@vger.kernel.org
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://patch.msgid.link/20240823074217.14653-1-hdegoede@redhat.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: grace time for DPCM cleanup
Mark Brown [Thu, 22 Aug 2024 19:19:38 +0000 (20:19 +0100)] 
ASoC: grace time for DPCM cleanup

Merge series from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:

As we discussed in [1], we don't need to use dpcm_playback/capture flag,
so we remove it. But we have been using it for 10 years, some driver might
get damage. The most likely case is that the device/driver can use both
playback/capture, but have only one flag, and not using xxx_only flag.
[1/3] patch indicates warning in such case.

These adds grace time for DPCM cleanup.
I'm not sure when dpcm_xxx will be removed, and Codec check bypass will be
error, but maybe v6.12 or v6.13 ?
Please check each driver by that time.

Previous patch-set try to check both CPU and Codec in DPCM, but we noticed
that there are some special DAI which we can't handle today [2]. So I will
escape it in this patch-set.

[1] https://lore.kernel.org/r/87edaym2cg.wl-kuninori.morimoto.gx@renesas.com
[2] https://lore.kernel.org/all/3e67d62d-fe08-4f55-ab5b-ece8a57154f9@linux.intel.com/

Link: https://lore.kernel.org/r/87edaym2cg.wl-kuninori.morimoto.gx@renesas.com
Link: https://lore.kernel.org/r/87wmo6dyxg.wl-kuninori.morimoto.gx@renesas.com
Link: https://lore.kernel.org/r/87msole5wc.wl-kuninori.morimoto.gx@renesas.com
Link: https://lore.kernel.org/r/871q5tnuok.wl-kuninori.morimoto.gx@renesas.com
Link: https://lore.kernel.org/r/87bk4oqerx.wl-kuninori.morimoto.gx@renesas.com
Link: https://lore.kernel.org/r/8734pctmte.wl-kuninori.morimoto.gx@renesas.com
Link: https://lore.kernel.org/r/87r0ctwzr4.wl-kuninori.morimoto.gx@renesas.com
Link: https://lore.kernel.org/r/87cymvlmki.wl-kuninori.morimoto.gx@renesas.com
10 months agoASoC: cs-amp-lib: Ignore empty UEFI calibration entries
Richard Fitzgerald [Thu, 22 Aug 2024 13:35:44 +0000 (14:35 +0100)] 
ASoC: cs-amp-lib: Ignore empty UEFI calibration entries

If the timestamp of a calibration entry is 0 it is an unused entry and
must be ignored.

Some end-products reserve EFI space for calibration entries by shipping
with a zero-filled EFI file. When searching the file for calibration
data the driver must skip the empty entries. The timestamp of a valid
entry is always non-zero.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Fixes: 1cad8725f2b9 ("ASoC: cs-amp-lib: Add helpers for factory calibration data")
Link: https://patch.msgid.link/20240822133544.304421-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: cs35l56: Make struct regmap_config const
Richard Fitzgerald [Thu, 22 Aug 2024 14:55:35 +0000 (15:55 +0100)] 
ASoC: cs35l56: Make struct regmap_config const

It's now possible to declare instances of struct regmap_config as
const data.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20240822145535.336407-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: cs-amp-lib-test: Force test calibration blob entries to be valid
Richard Fitzgerald [Thu, 22 Aug 2024 11:57:25 +0000 (12:57 +0100)] 
ASoC: cs-amp-lib-test: Force test calibration blob entries to be valid

For a normal calibration blob the calTarget values must be non-zero and
unique, and the calTime values must be non-zero. Don't rely on
get_random_bytes() to be random enough to guarantee this. Force the
calTarget and calTime values to be valid while retaining randomness
in the values.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Fixes: 177862317a98 ("ASoC: cs-amp-lib: Add KUnit test for calibration helpers")
Link: https://patch.msgid.link/20240822115725.259568-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: Intel: sof_sdw: use playback/capture_only flags
Kuninori Morimoto [Wed, 21 Aug 2024 02:14:15 +0000 (02:14 +0000)] 
ASoC: Intel: sof_sdw: use playback/capture_only flags

Prepare for removal of dpcm_playback and dpcm_capture flags in
dailinks.

[Kuninori adjusted Pierre-Louis's patch]

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87o75maah5.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: amlogic: do not use dpcm_playback/capture flags
Jerome Brunet [Wed, 21 Aug 2024 02:14:09 +0000 (02:14 +0000)] 
ASoC: amlogic: do not use dpcm_playback/capture flags

dpcm_playback/capture flags are being deprecated in ASoC.
Use playback/capture_only flags instead

Suggested-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://patch.msgid.link/87plq2aahb.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: remove snd_soc_dai_link_set_capabilities()
Kuninori Morimoto [Wed, 21 Aug 2024 02:14:02 +0000 (02:14 +0000)] 
ASoC: remove snd_soc_dai_link_set_capabilities()

dpcm_xxx flags are no longer needed.

We need to use xxx_only flags instead if needed, but
snd_soc_dai_link_set_capabilities() user adds dpcm_xxx if playback/capture
were available. Thus converting dpcm_xxx to xxx_only is not needed.
Just remove it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://patch.msgid.link/87r0aiaahh.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: soc-pcm: Indicate warning if dpcm_playback/capture were used for availability...
Kuninori Morimoto [Wed, 21 Aug 2024 02:13:56 +0000 (02:13 +0000)] 
ASoC: soc-pcm: Indicate warning if dpcm_playback/capture were used for availability limition

I have been wondering why DPCM needs special flag (= dpcm_playback/capture)
to use it. Below is the history why it was added to ASoC.

(A) In beginning, there was no dpcm_xxx flag on ASoC.
    It checks channels_min for DPCM, same as current non-DPCM.
    Let's name it as "validation check" here.

if (rtd->dai_link->dynamic || rtd->dai_link->no_pcm) {
if (cpu_dai->driver->playback.channels_min)
playback = 1;
if (cpu_dai->driver->capture.channels_min)
capture = 1;

(B) commit 1e9de42f4324 ("ASoC: dpcm: Explicitly set BE DAI link supported
    stream directions") force to use dpcm_xxx flag on DPCM. According to
    this commit log, this is because "Some BE dummy DAI doesn't set
    channels_min for playback/capture". But we don't know which DAI is it,
    and not know why it can't/don't have channels_min. Let's name it as
    "no_chan_DAI" here. According to the code and git-log, it is used as
    DCPM-BE and is CPU DAI. I think the correct solution was set
    channels_min on "no_chan_DAI" side, not update ASoC framework side. But
    everything is under smoke today.

if (rtd->dai_link->dynamic || rtd->dai_link->no_pcm) {
playback = rtd->dai_link->dpcm_playback;
capture  = rtd->dai_link->dpcm_capture;

(C) commit 9b5db059366a ("ASoC: soc-pcm: dpcm: Only allow playback/capture
    if supported") checks channels_min (= validation check) again. Because
    DPCM availability was handled by dpcm_xxx flag at that time, but some
    Sound Card set it even though it wasn't available. Clearly there's
    a contradiction here. I think correct solution was update Sound Card
    side instead of ASoC framework. Sound Card side will be updated to
    handle this issue later (commit 25612477d20b ("ASoC: soc-dai: set
    dai_link dpcm_ flags with a helper"))

if (rtd->dai_link->dynamic || rtd->dai_link->no_pcm) {
...
playback = rtd->dai_link->dpcm_playback &&
   snd_soc_dai_stream_valid(cpu_dai, ...);
capture = rtd->dai_link->dpcm_capture &&
   snd_soc_dai_stream_valid(cpu_dai, ...);

This (C) patch should have broken "no_chan_DAI" which doesn't have
channels_min, but there was no such report during this 4 years.
Possibilities case are as follows
- No one is using "no_chan_DAI"
- "no_chan_DAI" is no longer exist : was removed ?
- "no_chan_DAI" is no longer exist : has channels_min ?

Because of these history, this dpcm_xxx is unneeded flag today. But because
we have been used it for 10 years since (B), it may have been used
differently. For example some DAI available both playback/capture, but it
set dpcm_playback flag only, in this case dpcm_xxx flag is used as
availability limitation. We can use playback_only flag instead in this
case, but it is very difficult to find such DAI today.

Let's add grace time to remove dpcm_playback/capture flag.

This patch don't use dpcm_xxx flag anymore, and indicates warning to use
xxx_only flag if both playback/capture were available but using only
one of dpcm_xxx flag, and not using xxx_only flag.

Link: https://lore.kernel.org/r/87edaym2cg.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://patch.msgid.link/87seuyaahn.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: tas2781: mark const variables tas2563_dvc_table as __maybe_unused
Shenghao Ding [Thu, 22 Aug 2024 06:32:02 +0000 (14:32 +0800)] 
ASoC: tas2781: mark const variables tas2563_dvc_table as __maybe_unused

In case of tas2781, tas2563_dvc_table will be unused,
so mark it as __maybe_unused.

Signed-off-by: Shenghao Ding <shenghao-ding@ti.com>
Link: https://patch.msgid.link/20240822063205.662-1-shenghao-ding@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
10 months agoASoC: dwc: change to use devm_clk_get_enabled() helpers
Wu Bo [Thu, 22 Aug 2024 09:52:49 +0000 (03:52 -0600)] 
ASoC: dwc: change to use devm_clk_get_enabled() helpers

Make the code cleaner and avoid call clk_disable_unprepare()

Signed-off-by: Wu Bo <bo.wu@vivo.com>
Link: https://patch.msgid.link/20240822095249.1642713-1-bo.wu@vivo.com
Signed-off-by: Mark Brown <broonie@kernel.org>