summaryrefslogtreecommitdiff
path: root/sound/soc/sof/intel
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2026-01-14 20:11:26 +0000
committerMark Brown <broonie@kernel.org>2026-01-14 20:11:26 +0000
commit57aa7735a536adfdf4a0e535a95a2ed3e34c7c9a (patch)
tree240eb4c730efdb1cbc391dfd9343a317118f1878 /sound/soc/sof/intel
parent32bc4e7dde407b7c2287915bfcb30c84e8e6ad46 (diff)
parent8a98e7f55f975360975083166e21982ef307b8fd (diff)
downloadlwn-57aa7735a536adfdf4a0e535a95a2ed3e34c7c9a.tar.gz
lwn-57aa7735a536adfdf4a0e535a95a2ed3e34c7c9a.zip
sound: codecs: tlv320adcx140: assorted patches
Merge series from Sascha Hauer <s.hauer@pengutronix.de>: These are some patches for the tlv320adcx140 codec we are carrying around for a while, time to upstream them.
Diffstat (limited to 'sound/soc/sof/intel')
-rw-r--r--sound/soc/sof/intel/hda.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
index 72c98154c027..d88ec66728fd 100644
--- a/sound/soc/sof/intel/hda.c
+++ b/sound/soc/sof/intel/hda.c
@@ -1549,6 +1549,7 @@ struct snd_soc_acpi_mach *hda_machine_select(struct snd_sof_dev *sdev)
* name string if quirk flag is set.
*/
if (mach) {
+ const struct sof_intel_dsp_desc *chip = get_chip_info(sdev->pdata);
bool tplg_fixup = false;
bool dmic_fixup = false;
@@ -1598,6 +1599,18 @@ struct snd_soc_acpi_mach *hda_machine_select(struct snd_sof_dev *sdev)
sof_pdata->tplg_filename = tplg_filename;
}
+ if (tplg_fixup && mach->mach_params.bt_link_mask &&
+ chip->hw_ip_version >= SOF_INTEL_ACE_4_0) {
+ int bt_port = fls(mach->mach_params.bt_link_mask) - 1;
+
+ tplg_filename = devm_kasprintf(sdev->dev, GFP_KERNEL, "%s-ssp%d-bt",
+ sof_pdata->tplg_filename, bt_port);
+ if (!tplg_filename)
+ return NULL;
+
+ sof_pdata->tplg_filename = tplg_filename;
+ }
+
if (mach->link_mask) {
mach->mach_params.links = mach->links;
mach->mach_params.link_mask = mach->link_mask;
@@ -1609,7 +1622,6 @@ struct snd_soc_acpi_mach *hda_machine_select(struct snd_sof_dev *sdev)
if (tplg_fixup &&
mach->tplg_quirk_mask & SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER &&
mach->mach_params.i2s_link_mask) {
- const struct sof_intel_dsp_desc *chip = get_chip_info(sdev->pdata);
int ssp_num;
if (hweight_long(mach->mach_params.i2s_link_mask) > 1 &&