aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
authorPeter Ujfalusi <peter.ujfalusi@linux.intel.com>2026-05-20 18:06:38 +0300
committerMark Brown <broonie@kernel.org>2026-05-22 00:16:31 +0100
commit978152b2cab5375f5f8f03871bd4a1f1842dd0e4 (patch)
tree97a536a0e7ada6f64380b81e3e743ea2614789f1 /sound
parent5200f5f493f79f14bbdc349e402a40dfb32f23c8 (diff)
downloadlinux-next-history-978152b2cab5375f5f8f03871bd4a1f1842dd0e4.tar.gz
ASoC: SOF: Intel: hda-mlink/lnl: Convert offload enable functions to void
hdac_bus_eml_enable_offload() can only fail in case the IP is not enabled in the platform, which is not really an error as the ACE IP can be configured differently when integrated into a specific SoC. While it is unlikely, but it is a valid configuration that for example the DMIC is disabled. In this case we will just skip setting the offload for a link that is not present. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Link: https://patch.msgid.link/20260520150639.25301-2-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/sof/intel/hda-mlink.c11
-rw-r--r--sound/soc/sof/intel/lnl.c39
2 files changed, 17 insertions, 33 deletions
diff --git a/sound/soc/sof/intel/hda-mlink.c b/sound/soc/sof/intel/hda-mlink.c
index ce603a2343de1..92314e3b568aa 100644
--- a/sound/soc/sof/intel/hda-mlink.c
+++ b/sound/soc/sof/intel/hda-mlink.c
@@ -988,24 +988,19 @@ struct hdac_ext_link *hdac_bus_eml_sdw_get_hlink(struct hdac_bus *bus)
}
EXPORT_SYMBOL_NS(hdac_bus_eml_sdw_get_hlink, "SND_SOC_SOF_HDA_MLINK");
-int hdac_bus_eml_enable_offload(struct hdac_bus *bus, bool alt, int elid, bool enable)
+void hdac_bus_eml_enable_offload(struct hdac_bus *bus, bool alt, int elid, bool enable)
{
struct hdac_ext2_link *h2link;
struct hdac_ext_link *hlink;
h2link = find_ext2_link(bus, alt, elid);
- if (!h2link)
- return -ENODEV;
-
- if (!h2link->ofls)
- return 0;
+ if (!h2link || !h2link->ofls)
+ return;
hlink = &h2link->hext_link;
scoped_guard(mutex, &h2link->eml_lock)
hdaml_lctl_offload_enable(hlink->ml_addr + AZX_REG_ML_LCTL, enable);
-
- return 0;
}
EXPORT_SYMBOL_NS(hdac_bus_eml_enable_offload, "SND_SOC_SOF_HDA_MLINK");
diff --git a/sound/soc/sof/intel/lnl.c b/sound/soc/sof/intel/lnl.c
index c01ea7e731aab..19f753dca30b1 100644
--- a/sound/soc/sof/intel/lnl.c
+++ b/sound/soc/sof/intel/lnl.c
@@ -20,22 +20,11 @@
#include "lnl.h"
#include <sound/hda-mlink.h>
-/* this helps allows the DSP to setup DMIC/SSP */
-static int hdac_bus_offload_dmic_ssp(struct hdac_bus *bus, bool enable)
+/* Configure DSP offload for DMIC/SSP */
+static void hdac_bus_set_dsp_offload(struct hdac_bus *bus, bool enable)
{
- int ret;
-
- ret = hdac_bus_eml_enable_offload(bus, true,
- AZX_REG_ML_LEPTR_ID_INTEL_SSP, enable);
- if (ret < 0)
- return ret;
-
- ret = hdac_bus_eml_enable_offload(bus, true,
- AZX_REG_ML_LEPTR_ID_INTEL_DMIC, enable);
- if (ret < 0)
- return ret;
-
- return 0;
+ hdac_bus_eml_enable_offload(bus, true, AZX_REG_ML_LEPTR_ID_INTEL_SSP, enable);
+ hdac_bus_eml_enable_offload(bus, true, AZX_REG_ML_LEPTR_ID_INTEL_DMIC, enable);
}
static int lnl_hda_dsp_probe(struct snd_sof_dev *sdev)
@@ -46,18 +35,14 @@ static int lnl_hda_dsp_probe(struct snd_sof_dev *sdev)
if (ret < 0)
return ret;
- return hdac_bus_offload_dmic_ssp(sof_to_bus(sdev), true);
+ hdac_bus_set_dsp_offload(sof_to_bus(sdev), true);
+
+ return 0;
}
static void lnl_hda_dsp_remove(struct snd_sof_dev *sdev)
{
- int ret;
-
- ret = hdac_bus_offload_dmic_ssp(sof_to_bus(sdev), false);
- if (ret < 0)
- dev_warn(sdev->dev,
- "Failed to disable offload for DMIC/SSP: %d\n", ret);
-
+ hdac_bus_set_dsp_offload(sof_to_bus(sdev), false);
hda_dsp_remove(sdev);
}
@@ -69,7 +54,9 @@ static int lnl_hda_dsp_resume(struct snd_sof_dev *sdev)
if (ret < 0)
return ret;
- return hdac_bus_offload_dmic_ssp(sof_to_bus(sdev), true);
+ hdac_bus_set_dsp_offload(sof_to_bus(sdev), true);
+
+ return 0;
}
static int lnl_hda_dsp_runtime_resume(struct snd_sof_dev *sdev)
@@ -80,7 +67,9 @@ static int lnl_hda_dsp_runtime_resume(struct snd_sof_dev *sdev)
if (ret < 0)
return ret;
- return hdac_bus_offload_dmic_ssp(sof_to_bus(sdev), true);
+ hdac_bus_set_dsp_offload(sof_to_bus(sdev), true);
+
+ return 0;
}
static int lnl_dsp_post_fw_run(struct snd_sof_dev *sdev)