The compatible pattern "st,stm32-sai-sub-[ab]" is missing starting and
ending anchors, so any prefix and/or suffix would still be valid.
This also fixes a warning on the example:
Documentation/devicetree/bindings/sound/st,stm32-sai.example.dtb: /example-0/sai@4400b000/audio-controller@4400b004: failed to match any schema with compatible: ['st,stm32-sai-sub-a']
Shenghao Ding [Sat, 18 May 2024 14:15:46 +0000 (22:15 +0800)]
ASoC: tas2781: Fix wrong loading calibrated data sequence
Calibrated data will be set to default after loading DSP config params,
which will cause speaker protection work abnormally. Reload calibrated
data after loading DSP config params. Remove declaration of unused API
which load calibrated data in wrong sequence, changed the copyright year
and correct file name in license
header.
Zhang Yi [Wed, 15 May 2024 06:25:17 +0000 (14:25 +0800)]
ASoC: codecs: ES8326: solve hp and button detect issue
We got an error report about headphone type detection and button detection.
We fixed the headphone type detection error by adjusting the condition
of setting es8326->hp to 0.And we fixed the button detection error by
adjusting micbias and vref.
Mark Brown [Fri, 10 May 2024 11:30:12 +0000 (12:30 +0100)]
ASoC: Intel: updates for 6.10 - part7
Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
This patchset should be the last batch for this kernel cycle!
Brent Lu continued his cleanups to refactor and use fewer machine
drivers on Chrmebooks.
Bard Liao updated the sof-sdw machine driver to deal with UCM support
of the RT712 configuration. Note that this sof-sdw driver will be
refactored in the next kernel cycle to allow AMD and others to reuse
common SoundWire parts that are not Intel-specific. Initial changes
are described here: https://github.com/thesofproject/linux/pull/4967
Bard Liao [Thu, 9 May 2024 16:36:58 +0000 (11:36 -0500)]
ASoC: rt715-sdca-sdw: Fix wrong complete waiting in rt715_dev_resume()
enumeration_complete will be completed when a peripheral is attached.
And initialization_complete will be completed when a peripheral is
initialized. rt715_dev_resume() should wait for initialization_complete
instead of enumeration_complete.
the issue exists since commit 20d17057f0a8 ("ASoC: rt715-sdca: Add RT715
sdca vendor-specific driver"), but the commit can only apply to
commit f892e66fcabc ("ASoC: rt-sdw*: add __func__ to all error logs").
Fixes: f892e66fcabc ("ASoC: rt-sdw*: add __func__ to all error logs") Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20240509163658.68062-1-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Bard Liao [Thu, 9 May 2024 16:34:18 +0000 (11:34 -0500)]
ASoC: Intel: sof_sdw_rt_amp: use dai parameter
get_codec_name_and_route() get dai name from the first codec dai in a dai
link. However, the dai may not always be the first codec dai. Use the
dai parameter to make sure get_codec_name_and_route() refers to the
correct dai.
Bard Liao [Thu, 9 May 2024 16:34:17 +0000 (11:34 -0500)]
ASoC: Intel: sof_sdw: add dai parameter to rtd_init callback
A generic .rtd_init() callback could be used by different dais. It is
useful to pass dai parameter to the callback. The dai parameter will be
used in the follow up commit. No functional change here.
Bard Liao [Thu, 9 May 2024 16:34:16 +0000 (11:34 -0500)]
ASoC: Intel: sof_sdw: use .controls/.widgets to add controls/widgets
sof_sdw_rtd_init() will add the controls and widgets if we set them in
the codec_info. Move the additions from .rtd_init callback to
sof_sdw_rtd_init().
Bard Liao [Thu, 9 May 2024 16:34:15 +0000 (11:34 -0500)]
ASoC: Intel: sof_sdw: add controls and dapm widgets in codec_info
Currently, we add card controls and dapm widgets one by one in the
codec_info->dais->rtd_init callback. Duplicated controls and dapm
widgets will be added if there are more than one types of amps in the
dai link. Moving it to sof_sdw_rtd_init() and only add the
controls/widgets of the first codec dai can avoid the duplications.
The original code for rt1015p could support 1 or 2 rt1015p device
instances in ACPI. However, all designs implement only 1 instance in
ACPI table so we remove the code segment which is for 2 instances.
Brent Lu [Thu, 9 May 2024 16:34:03 +0000 (11:34 -0500)]
ASoC: Intel: sof_rt5682: board id cleanup for mtl boards
Since mtl chromebook is using DMI quirk for board config, changing the
SSP port config of mtl_rt5682_def to RVP to simplify mtl board id and
enumeration table.
Bard Liao [Thu, 9 May 2024 16:34:01 +0000 (11:34 -0500)]
ASoC: Intel: sof_sdw_rt_sdca_jack_common: remove -sdca for new codecs
Realtek new SoundWire codecs are all -sdca version. No need to add
-sdca to distinguish the non-sdca version. To be consistent with "spk:"
and "mic:" components string, remove "-sdca" suffix from "hs:"
components string.
Mark Brown [Thu, 9 May 2024 06:37:35 +0000 (08:37 +0200)]
ASoC: Add missing module descriptions
Merge series from Takashi Iwai <tiwai@suse.de>:
Hi,
here is a trivial patch series to add the missing module descriptions
to ASoC drivers, as make W=1 starts complaining the lack of
MODULE_DESCRIPTION() since recently.
The whole sound/soc/sof/* are untouched as there are too many files
involved, and I left SOF people to address them.
"lnk" is used as "port0", and it will be used to get "port1" by
of_get_next_child(ports, lnk). It will call of_node_put() inside. This
function is calling of_node_get() to make up for it, but it doesn't call
paired of_node_put(port0) when it quit function.
This of_node_get() itself is not needed, let's remove it.
Mark Brown [Wed, 8 May 2024 12:02:13 +0000 (21:02 +0900)]
ASoC: Use *-y instead of *-objs in Makefile
Merge series from Takashi Iwai <tiwai@suse.de>:
This is a series of trivial cleanup patches for ASoC to correct
the *-objs suffix in Makefile. The other ALSA code has been covered
by a previous patch set
https://lore.kernel.org/r/20240507135513.14919-1-tiwai@suse.de
As was suggested in a patch review, *-objs suffix in Makefile is
basically a wrong use nowadays for kernel driver modules.
They should be replaced with *-y suffix instead.
This is a result of systematic conversions, separated per directory.
Takashi Iwai [Tue, 7 May 2024 15:55:38 +0000 (17:55 +0200)]
ASoC: xtensa: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:37 +0000 (17:55 +0200)]
ASoC: xilinx: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:36 +0000 (17:55 +0200)]
ASoC: ux500: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:35 +0000 (17:55 +0200)]
ASoC: uniphier: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:34 +0000 (17:55 +0200)]
ASoC: ti: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:33 +0000 (17:55 +0200)]
ASoC: tegra: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:32 +0000 (17:55 +0200)]
ASoC: stm: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:31 +0000 (17:55 +0200)]
ASoC: sti: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:30 +0000 (17:55 +0200)]
ASoC: sprd: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:29 +0000 (17:55 +0200)]
ASoC: spear: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:28 +0000 (17:55 +0200)]
ASoC: SOF: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:27 +0000 (17:55 +0200)]
ASoC: sh: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:26 +0000 (17:55 +0200)]
ASoC: samsung: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:25 +0000 (17:55 +0200)]
ASoC: rockchip: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:24 +0000 (17:55 +0200)]
ASoC: qcom: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:23 +0000 (17:55 +0200)]
ASoC: pxa: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:22 +0000 (17:55 +0200)]
ASoC: mxs: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:21 +0000 (17:55 +0200)]
ASoC: meson: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:20 +0000 (17:55 +0200)]
ASoC: mediatek: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:19 +0000 (17:55 +0200)]
ASoC: loongson: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:18 +0000 (17:55 +0200)]
ASoC: kirkwood: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:17 +0000 (17:55 +0200)]
ASoC: jz4740: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:16 +0000 (17:55 +0200)]
ASoC: intel: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:15 +0000 (17:55 +0200)]
ASoC: generic: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:14 +0000 (17:55 +0200)]
ASoC: fsl: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:13 +0000 (17:55 +0200)]
ASoC: cirrus: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:12 +0000 (17:55 +0200)]
ASoC: bcm: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:11 +0000 (17:55 +0200)]
ASoC: au1x: Use *-y instead of *-objs Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:10 +0000 (17:55 +0200)]
ASoC: atmel: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:09 +0000 (17:55 +0200)]
ASoC: apple: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:08 +0000 (17:55 +0200)]
ASoC: amd: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:07 +0000 (17:55 +0200)]
ASoC: adi: Use *-y instead of *-objs in Makefile
Signed-off-by: Takashi Iwai <tiwai@suse.de>
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:06 +0000 (17:55 +0200)]
ASoC: codecs: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Takashi Iwai [Tue, 7 May 2024 15:55:05 +0000 (17:55 +0200)]
ASoC: core: Use *-y instead of *-objs in Makefile
*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).
Let's correct the old usages of *-objs in Makefiles.
Because these patches are generated, I audit them before sending. This is why I
will send series step by step. Build bot is happy with these patches, though.
No functional changes intended.
Mark Brown [Tue, 7 May 2024 01:38:02 +0000 (10:38 +0900)]
ASoC: Use snd_soc_substream_to_rtd() for accessing
Merge series from Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>:
Do not open-code snd_soc_substream_to_rtd() when accessing
snd_pcm_substream->private_data. This makes code more consistent with
rest of ASoC and allows in the future to move the field to any other
place or add additional checks in snd_soc_substream_to_rtd().
Mark Brown [Tue, 7 May 2024 01:37:51 +0000 (10:37 +0900)]
ALSA/ASoC: Intel: clarify Copyright information
Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
This patchset does not change any functionality. It only clarifies the
Copyright information in ASoC/HDAudio contributions, where an "All
rights reserved" notice was mistakenly added in a number of files over
the years, likely due to copy/paste. The Intel template never included
this statement.
Mark Brown [Mon, 6 May 2024 15:31:25 +0000 (00:31 +0900)]
ASoC: SOF: Intel: remove circular dependency for
Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
The SoundWire BPT support will rely on the HDaudio DMA. This exposes a
circular dependency module dependency which has to be resolved by
splitting common parts used by HDaudio and SoundWire parts, and
'generic' parts used by HDaudio only.
This patchset does not change any functionality, it just moves code
around, exposes symbols that are used in the new module. The code has
been in use for more than one kernel cycle already so it really
shouldn't break any existing platforms.
The main issue with such code moves is that it makes backports or
fixes more complicated. That's the main reason why we held back these
patches until we were reasonably confident on the maturity of MTL and
LNL drivers.
Mark Brown [Mon, 6 May 2024 15:31:18 +0000 (00:31 +0900)]
ASoC: SOF: Intel: HDA/DMIC updates
Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
The first patch handles a problematic configuration where the wrong
machine driver/topology is used: when the hardware reports an external
HDaudio codec the direction is to ignore/discard ACPI SoundWire
devices.
The last two patch deal with DMIC format configurations and allow
users to select S16_LE even if the DMIC and internal copiers only
support 24 or 32-bits. The code changes are located in sound/soc/sof/
but in the scope of Intel DAIs.
Wolfram Sang [Tue, 30 Apr 2024 11:54:37 +0000 (13:54 +0200)]
ASoC: codecs: wm8996: use 'time_left' variable with wait_for_completion_timeout()
There is a confusing pattern in the kernel to use a variable named 'timeout' to
store the result of wait_for_completion_timeout() causing patterns like:
timeout = wait_for_completion_timeout(...)
if (!timeout) return -ETIMEDOUT;
with all kinds of permutations. Use 'time_left' as a variable to make the code
self explaining.
Wolfram Sang [Tue, 30 Apr 2024 11:54:36 +0000 (13:54 +0200)]
ASoC: codecs: wm8994: use 'time_left' variable with wait_for_completion_timeout()
There is a confusing pattern in the kernel to use a variable named 'timeout' to
store the result of wait_for_completion_timeout() causing patterns like:
timeout = wait_for_completion_timeout(...)
if (!timeout) return -ETIMEDOUT;
with all kinds of permutations. Use 'time_left' as a variable to make the code
self explaining.
Wolfram Sang [Tue, 30 Apr 2024 11:54:35 +0000 (13:54 +0200)]
ASoC: codecs: wm8993: use 'time_left' variable with wait_for_completion_timeout()
There is a confusing pattern in the kernel to use a variable named 'timeout' to
store the result of wait_for_completion_timeout() causing patterns like:
timeout = wait_for_completion_timeout(...)
if (!timeout) return -ETIMEDOUT;
with all kinds of permutations. Use 'time_left' as a variable to make the code
self explaining.
Fix to the proper variable type 'unsigned long' while here.
Wolfram Sang [Tue, 30 Apr 2024 11:54:34 +0000 (13:54 +0200)]
ASoC: codecs: wm8962: use 'time_left' variable with wait_for_completion_timeout()
There is a confusing pattern in the kernel to use a variable named 'timeout' to
store the result of wait_for_completion_timeout() causing patterns like:
timeout = wait_for_completion_timeout(...)
if (!timeout) return -ETIMEDOUT;
with all kinds of permutations. Use 'time_left' as a variable to make the code
self explaining.