Patch "ASOC: SOF: Intel: hda-loader: only wait for HDaudio IOC for IPC4 devices" has been added to the 6.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ASOC: SOF: Intel: hda-loader: only wait for HDaudio IOC for IPC4 devices

to the 6.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     asoc-sof-intel-hda-loader-only-wait-for-hdaudio-ioc-.patch
and it can be found in the queue-6.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit c790a7434973a0b80ce75834d1ff7a041d9d448b
Author: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
Date:   Tue Jul 16 10:45:30 2024 +0200

    ASOC: SOF: Intel: hda-loader: only wait for HDaudio IOC for IPC4 devices
    
    [ Upstream commit 9ee3f0d8c9999eb1ef2866e86f8d57d996fc0348 ]
    
    Multiple users report a regression bisected to commit d5263dbbd8af
    ("ASoC: SOF: Intel: don't ignore IOC interrupts for non-audio
    transfers"). The firmware version is the likely suspect, as these
    users relied on SOF 2.0 while Intel only tested with the 2.2 release.
    
    Rather than completely disable the wait_for_completion(), which can
    help us gather timing information on the different stages of the boot
    process, the simplest course of action is to just disable it for older
    IPC versions which are no longer under active development.
    
    Closes: https://github.com/thesofproject/linux/issues/5072
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218961
    Fixes: d5263dbbd8af ("ASoC: SOF: Intel: don't ignore IOC interrupts for non-audio transfers")
    Tested-by: Mike Krinkin <krinkin.m.u@xxxxxxxxx>
    Tested-by: Todd Brandt <todd.e.brandt@xxxxxxxxxxxxxxx>
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
    Reviewed-by: Bard Liao <yung-chuan.liao@xxxxxxxxxxxxxxx>
    Link: https://patch.msgid.link/20240716084530.300829-1-pierre-louis.bossart@xxxxxxxxxxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/soc/sof/intel/hda-loader.c b/sound/soc/sof/intel/hda-loader.c
index b8b914eaf7e05..75f6240cf3e1d 100644
--- a/sound/soc/sof/intel/hda-loader.c
+++ b/sound/soc/sof/intel/hda-loader.c
@@ -310,15 +310,19 @@ int hda_cl_copy_fw(struct snd_sof_dev *sdev, struct hdac_ext_stream *hext_stream
 		return ret;
 	}
 
-	/* Wait for completion of transfer */
-	time_left = wait_for_completion_timeout(&hda_stream->ioc,
-						msecs_to_jiffies(HDA_CL_DMA_IOC_TIMEOUT_MS));
-
-	if (!time_left) {
-		dev_err(sdev->dev, "Code loader DMA did not complete\n");
-		return -ETIMEDOUT;
+	if (sdev->pdata->ipc_type == SOF_IPC_TYPE_4) {
+		/* Wait for completion of transfer */
+		time_left = wait_for_completion_timeout(&hda_stream->ioc,
+							msecs_to_jiffies(HDA_CL_DMA_IOC_TIMEOUT_MS));
+
+		if (!time_left) {
+			dev_err(sdev->dev, "Code loader DMA did not complete\n");
+			return -ETIMEDOUT;
+		}
+		dev_dbg(sdev->dev, "Code loader DMA done\n");
 	}
-	dev_dbg(sdev->dev, "Code loader DMA done, waiting for FW_ENTERED status\n");
+
+	dev_dbg(sdev->dev, "waiting for FW_ENTERED status\n");
 
 	status = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR,
 					chip->rom_status_reg, reg,




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux