* [PATCH 0/2] ASoC: SOF: Intel: hda/mtl: Handle powered on DSP on boot
@ 2026-07-30 12:28 Peter Ujfalusi
2026-07-30 12:28 ` [PATCH 1/2] ASoC: SOF: Intel: hda: Power down DSP if it is left enabled in pre_fw_run() Peter Ujfalusi
2026-07-30 12:28 ` [PATCH 2/2] ASoC: SOF: Intel: mtl: " Peter Ujfalusi
0 siblings, 2 replies; 3+ messages in thread
From: Peter Ujfalusi @ 2026-07-30 12:28 UTC (permalink / raw)
To: lgirdwood, broonie
Cc: linux-sound, kai.vehmanen, yung-chuan.liao, pierre-louis.bossart,
liam.r.girdwood
Hi,
It is expected that the DSP is in power down state when the firmware boot
is attempted.
If the DSP for any reason was left powered up then the DSP boot will
fail since the ROM boot sequence might not be able to run.
Make sure that the DSP is off before proceeding to boot it up.
We have seen reports that for some undetermined reasons the DSP was on
during system boot and this caused firmware boot failure as the DSP
cannot be booted up - it was already in booted up state.
Regards,
Peter
--
Peter Ujfalusi (2):
ASoC: SOF: Intel: hda: Power down DSP if it is left enabled in
pre_fw_run()
ASoC: SOF: Intel: mtl: Power down DSP if it is left enabled in
pre_fw_run()
sound/soc/sof/intel/hda.c | 14 ++++++++++++++
sound/soc/sof/intel/mtl.c | 23 +++++++++++++++++++++++
2 files changed, 37 insertions(+)
--
2.55.0
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH 1/2] ASoC: SOF: Intel: hda: Power down DSP if it is left enabled in pre_fw_run()
2026-07-30 12:28 [PATCH 0/2] ASoC: SOF: Intel: hda/mtl: Handle powered on DSP on boot Peter Ujfalusi
@ 2026-07-30 12:28 ` Peter Ujfalusi
2026-07-30 12:28 ` [PATCH 2/2] ASoC: SOF: Intel: mtl: " Peter Ujfalusi
1 sibling, 0 replies; 3+ messages in thread
From: Peter Ujfalusi @ 2026-07-30 12:28 UTC (permalink / raw)
To: lgirdwood, broonie
Cc: linux-sound, kai.vehmanen, yung-chuan.liao, pierre-louis.bossart,
liam.r.girdwood
It is expected that the DSP is in power down state when the firmware boot
is attempted.
If the DSP for any reason was left powered up then the DSP boot will
fail since the ROM boot sequence might not be able to run.
Make sure that the DSP is off before proceeding to boot it up.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
---
sound/soc/sof/intel/hda.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
index dc85903b8d46..007a8e4a2f3d 100644
--- a/sound/soc/sof/intel/hda.c
+++ b/sound/soc/sof/intel/hda.c
@@ -421,6 +421,20 @@ static inline void hda_dsp_sdw_process_mic_privacy(struct snd_sof_dev *sdev) { }
/* pre fw run operations */
int hda_dsp_pre_fw_run(struct snd_sof_dev *sdev)
{
+ struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
+ const struct sof_intel_dsp_desc *chip = hda->desc;
+ int ret;
+
+ /* Power down DSP if left enabled to ensure a clean boot state. */
+ if (hda_dsp_core_is_enabled(sdev, chip->host_managed_cores_mask)) {
+ dev_dbg(sdev->dev, "DSP core enabled, power down DSP first\n");
+
+ ret = chip->power_down_dsp(sdev);
+ if (ret < 0)
+ dev_warn(sdev->dev,
+ "%s: failed to power down already-enabled DSP\n", __func__);
+ }
+
/* disable clock gating and power gating */
return hda_dsp_ctrl_clock_power_gating(sdev, false);
}
--
2.55.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH 2/2] ASoC: SOF: Intel: mtl: Power down DSP if it is left enabled in pre_fw_run()
2026-07-30 12:28 [PATCH 0/2] ASoC: SOF: Intel: hda/mtl: Handle powered on DSP on boot Peter Ujfalusi
2026-07-30 12:28 ` [PATCH 1/2] ASoC: SOF: Intel: hda: Power down DSP if it is left enabled in pre_fw_run() Peter Ujfalusi
@ 2026-07-30 12:28 ` Peter Ujfalusi
1 sibling, 0 replies; 3+ messages in thread
From: Peter Ujfalusi @ 2026-07-30 12:28 UTC (permalink / raw)
To: lgirdwood, broonie
Cc: linux-sound, kai.vehmanen, yung-chuan.liao, pierre-louis.bossart,
liam.r.girdwood
It is expected that the DSP is in power down state when the firmware boot
is attempted.
If the DSP for any reason was left powered up then the DSP boot will
fail since the ROM boot sequence might not be able to run.
Make sure that the DSP is off before proceeding to boot it up.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
---
sound/soc/sof/intel/mtl.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/sound/soc/sof/intel/mtl.c b/sound/soc/sof/intel/mtl.c
index 9503d00e6002..3d67d6777f1b 100644
--- a/sound/soc/sof/intel/mtl.c
+++ b/sound/soc/sof/intel/mtl.c
@@ -236,6 +236,17 @@ int mtl_enable_interrupts(struct snd_sof_dev *sdev, bool enable)
}
EXPORT_SYMBOL_NS(mtl_enable_interrupts, "SND_SOC_SOF_INTEL_MTL");
+static bool mtl_dsp_is_enabled(struct snd_sof_dev *sdev)
+{
+ int val;
+
+ val = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_HFDSSCS);
+ if (val & MTL_HFDSSCS_CPA_MASK)
+ return true;
+
+ return false;
+}
+
/* pre fw run operations */
static int mtl_dsp_pre_fw_run(struct snd_sof_dev *sdev)
{
@@ -249,6 +260,18 @@ static int mtl_dsp_pre_fw_run(struct snd_sof_dev *sdev)
u32 dsppwrsts;
const struct sof_intel_dsp_desc *chip;
+ /* Power down the DSP if it is left enabled to ensure clean boot state */
+ if (mtl_dsp_is_enabled(sdev)) {
+ dev_dbg(sdev->dev, "powering down DSP first\n");
+
+ ret = mtl_power_down_dsp(sdev);
+ if (ret < 0) {
+ dev_warn(sdev->dev,
+ "%s: failed to power down already-enabled DSP\n", __func__);
+ /* Continue anyway to attempt recovery */
+ }
+ }
+
chip = get_chip_info(sdev->pdata);
if (chip->hw_ip_version > SOF_INTEL_ACE_2_0) {
dsppwrctl = PTL_HFPWRCTL2;
--
2.55.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-07-30 12:28 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-30 12:28 [PATCH 0/2] ASoC: SOF: Intel: hda/mtl: Handle powered on DSP on boot Peter Ujfalusi
2026-07-30 12:28 ` [PATCH 1/2] ASoC: SOF: Intel: hda: Power down DSP if it is left enabled in pre_fw_run() Peter Ujfalusi
2026-07-30 12:28 ` [PATCH 2/2] ASoC: SOF: Intel: mtl: " Peter Ujfalusi
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.