Miaoqian Lin
1a58d865f4
ASoC: sdw_utils: fix device reference leak in is_sdca_endpoint_present()
...
The bus_find_device_by_name() function returns a device pointer with an
incremented reference count, but the original code was missing put_device()
calls in some return paths, leading to reference count leaks.
Fix this by ensuring put_device() is called before function exit after
bus_find_device_by_name() succeeds
This follows the same pattern used elsewhere in the kernel where
bus_find_device_by_name() is properly paired with put_device().
Found via static analysis and code review.
Fixes: 4f8ef33dd4 ("ASoC: soc_sdw_utils: skip the endpoint that doesn't present")
Cc: stable@vger.kernel.org
Signed-off-by: Miaoqian Lin <linmq006@gmail.com >
Link: https://patch.msgid.link/20251029071804.8425-1-linmq006@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-11-06 13:12:33 +00:00
Bard Liao
45f5c9eec4
ASoC: soc_sdw_utils: remove cs42l43 component_name
...
"spk:cs42l43-spk" component string will be added conditionally by
asoc_sdw_cs42l43_spk_rtd_init(). We should not add "spk:cs42l43"
unconditionally.
Fixes: c61da55412 ("ASoC: sdw_utils: Add missed component_name strings for speaker amps")
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com >
Link: https://patch.msgid.link/20251027140012.966306-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-10-28 10:22:13 +00:00
Mark Brown
c8b8804760
ASoC: Fix build for sdw_utils
...
Revert 3293d3d7b0 ("ASoC: sdw_utils: add name_prefix for rt1321 part
id") due to dependencies on -next which for some reason don't show up
in my builds.
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-10-28 10:21:27 +00:00
Shuming Fan
3293d3d7b0
ASoC: sdw_utils: add name_prefix for rt1321 part id
...
This patch adds name_prefix for rt1321 part id in the codec_info_list.
Signed-off-by: Shuming Fan <shumingf@realtek.com >
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Link: https://patch.msgid.link/20251022073952.327451-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-10-22 15:00:23 +01:00
Shuming Fan
57b00ab3d3
ASoC: sdw_utils: add rt1321 part id to codec_info_list
...
The SdW machine driver supports the part id rt1321 amplifier.
Signed-off-by: Shuming Fan <shumingf@realtek.com >
Link: https://patch.msgid.link/20251014092157.2789054-1-shumingf@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-10-15 10:47:23 +01:00
Niranjan H Y
b41949a210
ASoc: tas2783A: add machine driver changes
...
Add tas2783-codec for codec_info
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Signed-off-by: Niranjan H Y <niranjan.hy@ti.com >
Link: https://patch.msgid.link/20250912083624.804-4-niranjan.hy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-09-22 14:00:41 +02:00
Niranjan H Y
96384a34dd
ASoc: tas2783A: machine driver amp utility for TI devices
...
Machine driver amp utility file to initialize and support
multiple tas2783a devices are added.
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Signed-off-by: Niranjan H Y <niranjan.hy@ti.com >
--
v5:
- removed empty line in soc_sdw_ti_amp.c
Link: https://patch.msgid.link/20250912083624.804-3-niranjan.hy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-09-22 14:00:40 +02:00
Peter Ujfalusi
c61da55412
ASoC: sdw_utils: Add missed component_name strings for speaker amps
...
Several speaker amp was missed when the compoennt_name was added, which
results missing " spk:" from the components string, confusing UCM.
Fixes: f792733e08 ("ASoC: sdw_utils: add component_name string to dai_info")
Cc: stable@vger.kernel.org
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com >
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Link: https://patch.msgid.link/20250709025745.1285788-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-07-09 14:33:58 +01:00
Bard Liao
0f60ecffbf
ASoC: sdw_utils: generate combined spk components string
...
The suggestion from UCM for 2 speaker components is using 1 "spk" tag
with 2 component names. Like "spk:rt722+rt1320". The commit removes the
creation of the "spk" components in each rtd_init callback and creat the
string in asoc_sdw_rtd_init().
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Shuming Fan <shumingf@realtek.com >
Link: https://patch.msgid.link/20250625140430.311865-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-06-25 15:13:46 +01:00
Bard Liao
f792733e08
ASoC: sdw_utils: add component_name string to dai_info
...
Currently the sdw machine driver uses different way to get the
component name from the DAI name for different codecs in the rtd_init
callback. It means that we need to rely on the rtd_init callback to get
the component name. Add an optional component string to the
asoc_sdw_dai_info struct allows the machine driver to get the component
name directly.
The commit adds the component names for the AMP dais for the preparation
to set card->components string for combined speaker configs.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Shuming Fan <shumingf@realtek.com >
Link: https://patch.msgid.link/20250625140430.311865-2-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-06-25 15:13:45 +01:00
Thorsten Blum
6325766d69
ASoC: sdw_utils: Fix potential NULL pointer deref in is_sdca_endpoint_present()
...
Check the return value of kzalloc() and exit early to avoid a potential
NULL pointer dereference.
Cc: stable@vger.kernel.org
Fixes: 4f8ef33dd4 ("ASoC: soc_sdw_utils: skip the endpoint that doesn't present")
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev >
Link: https://patch.msgid.link/20250610103225.1475-2-thorsten.blum@linux.dev
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-06-10 12:46:16 +01:00
Mark Brown
828497fba7
ASoC: Add Intel machine driver support for CS35L63
...
Merge series from Stefan Binding <sbinding@opensource.cirrus.com >:
This adds support to the Intel machine drivers for CS35L63 codecs using
soundwire, and also adds match entries for the CDB35L63-CB2 on MTL
systems.
2025-05-21 17:50:09 +01:00
Stefan Binding
898cd43bde
ASoC: intel: sof_sdw: Add support for CS35L63 into machine driver
...
CS35L63 is very similar to CS35L56, and uses the same driver, so we
can use the same configuration.
Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com >
Link: https://patch.msgid.link/20250516152107.210994-2-sbinding@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-05-20 11:17:40 +01:00
I Hsin Cheng
5fb3878216
ASoC: intel/sdw_utils: Assign initial value in asoc_sdw_rt_amp_spk_rtd_init()
...
Initialize "ret" with "-EINVAL" to handle cases where "strstr()" for
"codec_dai->component->name_prefix" doesn't find "-1" nor "-2". In that
case "name_prefix" is invalid because for current implementation it's
expected to have either "-1" or "-2" in it. (Maybe "-3", "-4" and so on
in the future.)
Link: https://scan5.scan.coverity.com/#/project-view/36179/10063?selectedIssue=1627120
Signed-off-by: I Hsin Cheng <richard120310@gmail.com >
Link: https://patch.msgid.link/20250505185423.680608-1-richard120310@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-05-14 15:15:57 +02:00
Mark Brown
d9a1cbfe5b
Minor bug fix and tidy up for sof_sdw
...
Merge series from Charles Keepax <ckeepax@opensource.cirrus.com >:
Fix a small bug that can cause the sof_sdw machine driver to fail probe
after the first time it has probed. Also do some minor tidy up on the
handling of the platform_component of the dai links.
2025-05-07 14:12:23 +09:00
Mark Brown
02ca789818
AsoC: Phase out hybrid PCI devres
...
Merge series from Philipp Stanner <phasta@kernel.org >:
A year ago we spent quite some work trying to get PCI into better shape.
Some pci_ functions can be sometimes managed with devres, which is
obviously bad. We want to provide an obvious API, where pci_ functions
are never, and pcim_ functions are always managed.
Thus, everyone enabling his device with pcim_enable_device() must be
ported to pcim_ functions. Porting all users will later enable us to
significantly simplify parts of the PCI subsystem. See here [1] for
details.
This patch series does that for sound.
Feel free to squash the commits as you see fit.
P.
[1] https://elixir.bootlin.com/linux/v6.14-rc4/source/drivers/pci/devres.c#L18
2025-05-06 08:42:25 +09:00
Charles Keepax
8ce5ace8e2
ASoC: sdw_utils: Remove num_platforms from simple DAI helper
...
There is no point in passing num_platforms into
asoc_sdw_init_simple_dai_link(). Firstly, as a single pointer for the
component name is passed in only a single string can be passed and
secondly if it is a complex DAI with multiple platforms it would make
more sense to use asoc_sdw_init_dai_link().
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com >
Link: https://patch.msgid.link/20250505141409.2614010-2-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-05-06 07:48:39 +09:00
Stefan Binding
d5463e531c
ASoC: intel/sdw_utils: Add volume limit to cs35l56 speakers
...
The volume control for cs35l56 speakers has a maximum gain of +12 dB.
However, for many use cases, this can cause distorted audio, depending
various factors, such as other signal-processing elements in the chain,
for example if the audio passes through a gain control before reaching
the amp or the signal path has been tuned for a particular maximum
gain in the amp.
In the case of systems which use the soc_sdw_* driver, audio will
likely be distorted in all cases above 0 dB, therefore add a volume
limit of 400, which is 0 dB maximum volume inside this driver.
The volume limit should be applied to both soundwire and soundwire
bridge configurations.
Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com >
Link: https://patch.msgid.link/20250430103134.24579-3-sbinding@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-05-01 08:22:06 +09:00
Stefan Binding
02b44a2b2b
ASoC: intel/sdw_utils: Add volume limit to cs42l43 speakers
...
The volume control for cs42l43 speakers has a maximum gain of +31.5 dB.
However, for many use cases, this can cause distorted audio, depending
various factors, such as other signal-processing elements in the chain,
for example if the audio passes through a gain control before reaching
the codec or the signal path has been tuned for a particular maximum
gain in the codec.
In the case of systems which use the soc_sdw_cs42l43 driver, audio will
likely be distorted in all cases above 0 dB, therefore add a volume
limit of 128, which is 0 dB maximum volume inside this driver.
Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com >
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com >
Link: https://patch.msgid.link/20250430103134.24579-2-sbinding@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-05-01 08:22:06 +09:00
Mark Brown
402dda23a3
ASoC: Merge up fixes
...
They have build/application dependencies for some new changes coming in.
2025-04-24 12:55:06 +01:00
Chenyuan Yang
68715cb5c0
ASoC: Intel: sof_sdw: Add NULL check in asoc_sdw_rt_dmic_rtd_init()
...
mic_name returned by devm_kasprintf() could be NULL.
Add a check for it.
Signed-off-by: Chenyuan Yang <chenyuan0y@gmail.com >
Fixes: bee2fe4467 ("ASoC: Intel: sof_sdw: use generic rtd_init function for Realtek SDW DMICs")
Link: https://patch.msgid.link/20250415194134.292830-1-chenyuan0y@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-04-16 13:55:55 +01:00
Bard Liao
4f8ef33dd4
ASoC: soc_sdw_utils: skip the endpoint that doesn't present
...
A codec endpoint may not be used. We could check the present SDCA
functions to know if the endpoint is used or not. Skip the endpoint
which is not used.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Link: https://patch.msgid.link/20250414063239.85200-12-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-04-14 11:22:26 +01:00
Bard Liao
6d893cfb3d
ASoC: sdw_utils: split asoc_sdw_get_codec_name
...
Currently asoc_sdw_get_codec_name will return codec_info->codec_name if
it is set. However, in some case we need the sdw codec name no matter if
codec_info->codec_name is set or not.
_asoc_sdw_get_codec_name() will be used in the follow up commit.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Link: https://patch.msgid.link/20250414063239.85200-11-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-04-14 11:22:25 +01:00
Bard Liao
65e246d33d
ASoC: sdw_utils: add mic and amp dais to 0xaaaa codec
...
part id 0xaaaa codec is a mockup codec. Make it be a multi function
codec. So that we can test multi function with a mockup codec.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Link: https://patch.msgid.link/20250305135443.201884-5-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2025-03-05 14:05:38 +00:00
Mark Brown
c41da3a620
ASoC: Merge up origin to resolve interaction with manline symbol changes
...
Commit cdd30ebb1b ("module: Convert symbol namespace to string
literal") changes the arguments for various module symbol macros
including some that we've aded new uses for. Merge the commit up to
avoid problems in -next.
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-12-03 22:04:07 +00:00
Richard Fitzgerald
484c997e03
ASoC: sdw_utils: cs_amp: Assign non-overlapping TDM masks for each codec on a bus
...
Use snd_soc_dai_set_tdm_slot() on capture DAIs to prevent multiple
aggregated amps from trying to send data at the same time.
When the capture DAIs of multiple amps on a bus are aggregated they will
all be sharing the same bit slots for transmitted audio. This would lead
to bus errors if all channels on all amps were enabled, because multiple
amps would be trying to send data at the same time.
To prevent this, the available channels are divided between the amps on a
bus so that only one amp will be sending data for each channel position.
A CS35L56 has 4 TX channels, which must be split between all the amps on a
bus so that no two amps are using the same channel. This is done simply by
dividing by the number of amps on the bus, so that 1 amp can use all
4 channels, 2 amps can use 2 channels each, and 3 or 4 amps can only use
1 channel each.
The amps are usually aggregated across multiple SoundWire buses. In this
case there will be multiple cpu DAIs in the dailink. The channel mapping
is used to determine which amps are on each bus. The allocation of the
4 channels is done separately for each bus (only amps on the same bus can
interfere with each other).
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com >
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Link: https://patch.msgid.link/20241203104534.56719-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-12-03 12:36:28 +00:00
Richard Fitzgerald
5547e7ca12
ASoC: cs35l56: Split SoundWire DAI into separate playback and capture
...
This patch splits the SoundWire capture DP into a separate DAI so that
it can be independently routed and/or aggregated. It also makes
corresponding changes to the SOF SoundWire machine driver.
The playback and capture over SoundWire are separate DPs so don't have to
route to the same place. They could also be aggregated differently - for
example the playback DP could be aggregated with a playback-only DAI on
a codec.
No production device currently uses the capture path and their topologies
do not connect it. So there is no need to change the machine driver match
table entries for these. They will simply drop the unused capture DAI.
There is one hookup used for a non-production development board that was
added by commit 05fe628428 ("ASoC: Intel: soc-acpi-intel-mtl-match: add
acpi match table for cdb35l56-eight-c") This is the only hookup using a
topology that connects the SoundWire DP for capture, so this hookup has
been changed to include an aggregated endpoint for the capture DAI.
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com >
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Link: https://patch.msgid.link/20241203104534.56719-2-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-12-03 12:36:27 +00:00
Peter Zijlstra
cdd30ebb1b
module: Convert symbol namespace to string literal
...
Clean up the existing export namespace code along the same lines of
commit 33def8498f ("treewide: Convert macro and uses of __section(foo)
to __section("foo")") and for the same reason, it is not desired for the
namespace argument to be a macro expansion itself.
Scripted using
git grep -l -e MODULE_IMPORT_NS -e EXPORT_SYMBOL_NS | while read file;
do
awk -i inplace '
/^#define EXPORT_SYMBOL_NS/ {
gsub(/__stringify\(ns\)/, "ns");
print;
next;
}
/^#define MODULE_IMPORT_NS/ {
gsub(/__stringify\(ns\)/, "ns");
print;
next;
}
/MODULE_IMPORT_NS/ {
$0 = gensub(/MODULE_IMPORT_NS\(([^)]*)\)/, "MODULE_IMPORT_NS(\"\\1\")", "g");
}
/EXPORT_SYMBOL_NS/ {
if ($0 ~ /(EXPORT_SYMBOL_NS[^(]*)\(([^,]+),/) {
if ($0 !~ /(EXPORT_SYMBOL_NS[^(]*)\(([^,]+), ([^)]+)\)/ &&
$0 !~ /(EXPORT_SYMBOL_NS[^(]*)\(\)/ &&
$0 !~ /^my/) {
getline line;
gsub(/[[:space:]]*\\$/, "");
gsub(/[[:space:]]/, "", line);
$0 = $0 " " line;
}
$0 = gensub(/(EXPORT_SYMBOL_NS[^(]*)\(([^,]+), ([^)]+)\)/,
"\\1(\\2, \"\\3\")", "g");
}
}
{ print }' $file;
done
Requested-by: Masahiro Yamada <masahiroy@kernel.org >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Link: https://mail.google.com/mail/u/2/#inbox/FMfcgzQXKWgMmjdFwwdsfgxzKpVHWPlc
Acked-by: Greg KH <gregkh@linuxfoundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2024-12-02 11:34:44 -08:00
Vijendar Mukunda
d280cf5fbf
ASoC: sdw_utils: Update stream_name in dai_links structure
...
For sof stack, dai_link->stream name will be assigned.
For legacy(No DSP enabled) stack, dai_link->stream name should be updated
explicitly. Update the stream_name in dai_link structure.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com >
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Link: https://patch.msgid.link/20241101020802.1103181-3-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-01 13:22:48 +00:00
Vijendar Mukunda
485df22866
ASoC: sdw_utils/intel/amd: refactor dai link init logic
...
Add 'no_pcm' as parameter for asoc_sdw_init_dai_link() so that
same function can be used for SOF and legacy(No DSP) stack.
Pass 'no_pcm' as 1 for Intel and AMD SOF based machine drivers.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com >
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com >
Link: https://patch.msgid.link/20241101020802.1103181-2-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-11-01 13:22:47 +00:00
Mac Chiang
358ee2c149
ASoC: sdw_utils: Add quirk to exclude amplifier function
...
When SKUs use the multi-function codec, which integrates
Headset, Amplifier and DMIC. The corresponding quirks provide
options to support internal amplifier/DMIC or not.
In the case of RT722, this SKU excludes the internal amplifier and
use an additional amplifier instead.
Signed-off-by: Mac Chiang <mac.chiang@intel.com >
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Link: https://patch.msgid.link/20241028072631.15536-2-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-28 12:35:13 +00:00
Mark Brown
478fc2f421
ASoC/soundwire: add initial support for SDCA
...
Merge series from Bard Liao <yung-chuan.liao@linux.intel.com >:
We need to get rt712 version by reading SDCA version and functions.
This patch series adds initial support for SDCA and add a helper to tell
if the codec is RT712_VB.
This series may go via the ASoC tree with Vinod's Acked-by tag.
Bard Liao (1):
soundwire: sdw_intel: include linux/acpi.h
Pierre-Louis Bossart (10):
ASoC/soundwire: remove sdw_slave_extended_id
ASoC: SDCA: add initial module
soundwire: slave: lookup SDCA version and functions
ASoC: SDCA: add quirk function for RT712_VB match
ASoC: rt712-sdca: detect the SMART_MIC function during the probe stage
ASoC: soc-acpi: introduce new 'machine check' callback
ASoC: sdw_utils: add SmartMic DAI for RT712 VB
ASoC: sdw_utils: add SmartMic DAI for RT713 VB
ASoC: Intel: soc-acpi: add is_device_rt712_vb() helper
ASoC: SOF: Intel: hda: use machine_check() for SoundWire
drivers/soundwire/Kconfig | 1 +
drivers/soundwire/amd_init.c | 12 +-
drivers/soundwire/intel_init.c | 13 +-
drivers/soundwire/slave.c | 14 ++
include/linux/soundwire/sdw.h | 9 +-
include/linux/soundwire/sdw_amd.h | 7 +-
include/linux/soundwire/sdw_intel.h | 8 +-
include/sound/sdca.h | 62 +++++++
include/sound/sdca_function.h | 55 ++++++
include/sound/soc-acpi.h | 8 +-
sound/soc/Kconfig | 1 +
sound/soc/Makefile | 1 +
sound/soc/amd/ps/pci-ps.c | 3 +-
sound/soc/codecs/rt712-sdca-sdw.c | 1 +
sound/soc/codecs/rt712-sdca.c | 38 +++-
sound/soc/codecs/rt712-sdca.h | 1 +
sound/soc/intel/Kconfig | 5 +
sound/soc/intel/common/Makefile | 3 +
.../intel/common/soc-acpi-intel-mtl-match.c | 51 ++++++
.../intel/common/soc-acpi-intel-sdca-quirks.c | 42 +++++
.../intel/common/soc-acpi-intel-sdca-quirks.h | 14 ++
sound/soc/sdca/Kconfig | 11 ++
sound/soc/sdca/Makefile | 5 +
sound/soc/sdca/sdca_device.c | 67 +++++++
sound/soc/sdca/sdca_functions.c | 173 ++++++++++++++++++
sound/soc/sdw_utils/soc_sdw_utils.c | 18 +-
sound/soc/soc-acpi.c | 30 +--
sound/soc/sof/amd/acp-common.c | 3 +-
sound/soc/sof/intel/hda.c | 19 +-
29 files changed, 610 insertions(+), 65 deletions(-)
create mode 100644 include/sound/sdca.h
create mode 100644 include/sound/sdca_function.h
create mode 100644 sound/soc/intel/common/soc-acpi-intel-sdca-quirks.c
create mode 100644 sound/soc/intel/common/soc-acpi-intel-sdca-quirks.h
create mode 100644 sound/soc/sdca/Kconfig
create mode 100644 sound/soc/sdca/Makefile
create mode 100644 sound/soc/sdca/sdca_device.c
create mode 100644 sound/soc/sdca/sdca_functions.c
--
2.43.0
2024-10-18 21:01:45 +01:00
Pierre-Louis Bossart
7d6f2d5254
ASoC: sdw_utils: add SmartMic DAI for RT713 VB
...
In theory the dailinks are created based on the number of endpoints
reported in ACPI match tables, so it should harmless to add a new
dailink: RT713 VA would not use it since it has only 2 endpoints.
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/20241016102333.294448-10-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-17 18:42:16 +01:00
Pierre-Louis Bossart
9489db97f6
ASoC: sdw_utils: add SmartMic DAI for RT712 VB
...
In theory the dailinks are created based on the number of endpoints
reported in ACPI match tables, so it should harmless to add a new
dailink: RT712 VA would not use it since it has only 2 endpoints.
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/20241016102333.294448-9-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-17 18:42:15 +01:00
Charles Keepax
a6f7afb393
ASoC: sdw_utils: Add a quirk to allow the cs42l43 mic DAI to be ignored
...
To support some systems using host microphones add a quirk to allow the
cs42l43 microphone DAI link to be ignored.
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com >
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com >
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Link: https://patch.msgid.link/20241016030344.13535-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-17 12:11:46 +01:00
Charles Keepax
3d9b44d097
ASoC: sdw_utils: Add support for exclusion DAI quirks
...
The system contains a mechanism for certain DAI links to be included
based on a quirk. Add support for certain DAI links to excluded based on
a quirk, this is useful in situations where the vast majority of SKUs
utilise a feature so it is easier to quirk on those that don't.
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com >
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com >
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Link: https://patch.msgid.link/20241016030344.13535-2-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-17 12:11:45 +01:00
Naveen Manohar
846a8d3cf3
ASoC: Intel: soc-acpi-intel-ptl-match: Add rt721 support
...
Patch adds driver data & match table for rt721
multi-function codec on PTL-RVP at sdw link3.
Signed-off-by: Naveen Manohar <naveen.m@intel.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com >
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Link: https://patch.msgid.link/20241007075955.12575-4-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-07 17:10:55 +01:00
Naveen Manohar
10488630e1
ASoC: intel/sdw_utils: refactor RT multifunction sdca speaker codecs
...
Merge spk_rtd_init for multifunction sdca codecs:rt712/rt722
Signed-off-by: Naveen Manohar <naveen.m@intel.com >
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com >
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com >
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Link: https://patch.msgid.link/20241007075955.12575-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-10-07 17:10:54 +01:00
Vijendar Mukunda
13b24f8478
ASoC: sdw_utils/intel: move soundwire endpoint parsing helper functions
...
Move SoundWire endpoint parsing helper functions to common place holder.
These functions will be used by other platform machine driver code.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com >
Link: https://patch.msgid.link/20240913090631.1834543-5-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-09-13 15:11:32 +01:00
Bard Liao
1ab959bea2
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 >
2024-08-28 13:01:52 +01:00
Kuninori Morimoto
61e1f74f73
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 >
2024-08-22 13:36:48 +01:00
Vijendar Mukunda
59f8b622d5
ASoC: intel/sdw_utils: refactor init_dai_link() and init_simple_dai_link()
...
To make it generic, refactor existing implementation for
init_dai_link() and init_simple_dai_link() as mentioned below.
- Move init_dai_link() and init_simple_dai_link() to common place holder
- Rename the functions with "asoc_sdw" as prefix.
- Pass the platform specific 'platform_component' structure and its size as
arguments for init_simple_dai_link() function and allocate one more
extra dlc for platform component.
- Pass the 'platform_component' and 'num_platforms' as arguments for
init_dai_link().
Link: https://github.com/thesofproject/linux/pull/5068
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-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/20240801111821.18076-6-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-08-01 12:44:15 +01:00
Vijendar Mukunda
5bd414c7b8
ASoC: sdw_utils: refactor sof_sdw_card_late_probe function
...
Refactor sof_sdw_card_late_probe() function and derive a generic
function soc_sdw_card_late_probe() function which can be used by
SoundWire generic machine driver.
Link: https://github.com/thesofproject/linux/pull/5068
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-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/20240801111821.18076-5-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-08-01 12:44:14 +01:00
Vijendar Mukunda
778dcb0883
ASoC: intel/sdw_utils: move machine driver dai link helper functions
...
Move machine driver dai link helper functions to common place holder,
So that it can be used by other platform machine driver.
Rename these functions with "asoc_sdw" tag as a prefix.
Link: https://github.com/thesofproject/linux/pull/5068
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-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/20240801111821.18076-4-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-08-01 12:44:13 +01:00
Vijendar Mukunda
e377c94773
ASoC: intel/sdw_utils: move soundwire codec_info_list structure
...
SoundWire 'codec_info_list' structure is not a platform specific one.
Move codec_info_list structure to common file soc_sdw_utils.c.
Move codec helper functions which uses codec_info_list structure to common
place holder and rename the function by adding _sdw tag. This will allow
to use 'codec_info_list' structure and it's helper functions in other
platform machine driver.
Link: https://github.com/thesofproject/linux/pull/5068
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-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/20240801111821.18076-3-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-08-01 12:44:12 +01:00
Vijendar Mukunda
051b7cb3fd
ASoC: intel/sdw_utils: move maxim codec helper functions
...
Move maxim codec helper functions to common place holder so that
it can be used by other platform machine driver.
Link: https://github.com/thesofproject/linux/pull/5068
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-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/20240801091446.10457-21-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-08-01 12:44:09 +01:00
Vijendar Mukunda
5fa46627d5
ASoC: intel/sdw_utils: move cirrus soundwire codec helper functions
...
To make it generic, move Cirrus Soundwire codec helper functions to
common place holder so that it can be used by other platform machine
driver.
Link: https://github.com/thesofproject/linux/pull/5068
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-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/20240801091446.10457-20-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-08-01 12:44:08 +01:00
Vijendar Mukunda
ccc96ae281
ASoC: intel/sdw_utils: move rtk amp codec helper functions
...
Move RTK amp codec helper functions related implementation to common
place holder to make it generic so that these helper functions will be
used by other platform machine driver modules.
Link: https://github.com/thesofproject/linux/pull/5068
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-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/20240801091446.10457-19-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-08-01 12:44:07 +01:00
Vijendar Mukunda
8e84fd22dc
ASoC: intel/sdw_utils: move rt700 and rt711 codec helper functions
...
Move RT700 and RT711 Soundwire codec helper functions to common
place holder so that it can be used by other platform machine driver.
Link: https://github.com/thesofproject/linux/pull/5068
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-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/20240801091446.10457-18-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-08-01 12:44:06 +01:00
Vijendar Mukunda
da5b183167
ASoC: intel/sdw_utils: move rtk jack common helper functions
...
Move RTK codec jack common helper functions to common place holder
(sdw_utils folder) to make it generic so that it will be used by
other platform machine driver code.
Link: https://github.com/thesofproject/linux/pull/5068
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com >
Reviewed-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/20240801091446.10457-17-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2024-08-01 12:44:05 +01:00