Linux Sound subsystem development
 help / color / mirror / Atom feed
* [PATCH 0/3] ASoC: SOF: misc fixes
@ 2024-04-08 19:41 Pierre-Louis Bossart
  2024-04-08 19:41 ` [PATCH 1/3] ASoC: SOF: Intel: add default firmware library path for LNL Pierre-Louis Bossart
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Pierre-Louis Bossart @ 2024-04-08 19:41 UTC (permalink / raw)
  To: linux-sound; +Cc: alsa-devel, tiwai, broonie, Pierre-Louis Bossart

We somehow missed the default path for DSP libraries for LNL, and need
to restrict support for D0i3 w/ IPC4. Also add debugfs support for
firmware profile information so that sof-test scripts can show what is
being tested.

Pierre-Louis Bossart (2):
  ASoC: SOF: Intel: add default firmware library path for LNL
  ASoC: SOF: debug: show firmware/topology prefix/names

Ranjani Sridharan (1):
  ASoC: SOF: pcm: Restrict DSP D0i3 during S0ix to IPC3

 sound/soc/sof/debug.c         | 18 ++++++++++++++++++
 sound/soc/sof/intel/pci-lnl.c |  3 +++
 sound/soc/sof/ipc3-pcm.c      |  1 +
 sound/soc/sof/pcm.c           | 13 ++++++-------
 sound/soc/sof/sof-audio.h     |  2 ++
 5 files changed, 30 insertions(+), 7 deletions(-)

-- 
2.40.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/3] ASoC: SOF: Intel: add default firmware library path for LNL
  2024-04-08 19:41 [PATCH 0/3] ASoC: SOF: misc fixes Pierre-Louis Bossart
@ 2024-04-08 19:41 ` Pierre-Louis Bossart
  2024-04-08 19:41 ` [PATCH 2/3] ASoC: SOF: pcm: Restrict DSP D0i3 during S0ix to IPC3 Pierre-Louis Bossart
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Pierre-Louis Bossart @ 2024-04-08 19:41 UTC (permalink / raw)
  To: linux-sound
  Cc: alsa-devel, tiwai, broonie, Pierre-Louis Bossart,
	Péter Ujfalusi, Bard Liao

The commit cd6f2a2e6346 ("ASoC: SOF: Intel: Set the default firmware
library path for IPC4") added the default_lib_path field for all
platforms, but this was missed when LunarLake was later introduced.

Fixes: 64a63d9914a5 ("ASoC: SOF: Intel: LNL: Add support for Lunarlake platform")
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
---
 sound/soc/sof/intel/pci-lnl.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sound/soc/sof/intel/pci-lnl.c b/sound/soc/sof/intel/pci-lnl.c
index b26ffe767fab..b14e508f1f31 100644
--- a/sound/soc/sof/intel/pci-lnl.c
+++ b/sound/soc/sof/intel/pci-lnl.c
@@ -35,6 +35,9 @@ static const struct sof_dev_desc lnl_desc = {
 	.default_fw_path = {
 		[SOF_IPC_TYPE_4] = "intel/sof-ipc4/lnl",
 	},
+	.default_lib_path = {
+		[SOF_IPC_TYPE_4] = "intel/sof-ipc4-lib/lnl",
+	},
 	.default_tplg_path = {
 		[SOF_IPC_TYPE_4] = "intel/sof-ipc4-tplg",
 	},
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] ASoC: SOF: pcm: Restrict DSP D0i3 during S0ix to IPC3
  2024-04-08 19:41 [PATCH 0/3] ASoC: SOF: misc fixes Pierre-Louis Bossart
  2024-04-08 19:41 ` [PATCH 1/3] ASoC: SOF: Intel: add default firmware library path for LNL Pierre-Louis Bossart
@ 2024-04-08 19:41 ` Pierre-Louis Bossart
  2024-04-08 19:41 ` [PATCH 3/3] ASoC: SOF: debug: show firmware/topology prefix/names Pierre-Louis Bossart
  2024-04-09 23:34 ` [PATCH 0/3] ASoC: SOF: misc fixes Mark Brown
  3 siblings, 0 replies; 5+ messages in thread
From: Pierre-Louis Bossart @ 2024-04-08 19:41 UTC (permalink / raw)
  To: linux-sound
  Cc: alsa-devel, tiwai, broonie, Ranjani Sridharan, Uday M Bhat,
	Bard Liao, Pierre-Louis Bossart

From: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>

Introduce a new field in struct sof_ipc_pcm_ops that can be used to
restrict DSP D0i3 during S0ix suspend to IPC3. With IPC4, all streams
must be stopped before S0ix suspend.

Reviewed-by: Uday M Bhat <uday.m.bhat@intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
 sound/soc/sof/ipc3-pcm.c  |  1 +
 sound/soc/sof/pcm.c       | 13 ++++++-------
 sound/soc/sof/sof-audio.h |  2 ++
 3 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/sound/soc/sof/ipc3-pcm.c b/sound/soc/sof/ipc3-pcm.c
index 35769dd7905e..af0bf354cb20 100644
--- a/sound/soc/sof/ipc3-pcm.c
+++ b/sound/soc/sof/ipc3-pcm.c
@@ -434,4 +434,5 @@ const struct sof_ipc_pcm_ops ipc3_pcm_ops = {
 	.trigger = sof_ipc3_pcm_trigger,
 	.dai_link_fixup = sof_ipc3_pcm_dai_link_fixup,
 	.reset_hw_params_during_stop = true,
+	.d0i3_supported_in_s0ix = true,
 };
diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
index 4e11df6b4823..8fca4b0d63de 100644
--- a/sound/soc/sof/pcm.c
+++ b/sound/soc/sof/pcm.c
@@ -312,14 +312,13 @@ static int sof_pcm_trigger(struct snd_soc_component *component,
 			ipc_first = true;
 		break;
 	case SNDRV_PCM_TRIGGER_SUSPEND:
-		if (sdev->system_suspend_target == SOF_SUSPEND_S0IX &&
+		/*
+		 * If DSP D0I3 is allowed during S0iX, set the suspend_ignored flag for
+		 * D0I3-compatible streams to keep the firmware pipeline running
+		 */
+		if (pcm_ops && pcm_ops->d0i3_supported_in_s0ix &&
+		    sdev->system_suspend_target == SOF_SUSPEND_S0IX &&
 		    spcm->stream[substream->stream].d0i3_compatible) {
-			/*
-			 * trap the event, not sending trigger stop to
-			 * prevent the FW pipelines from being stopped,
-			 * and mark the flag to ignore the upcoming DAPM
-			 * PM events.
-			 */
 			spcm->stream[substream->stream].suspend_ignored = true;
 			return 0;
 		}
diff --git a/sound/soc/sof/sof-audio.h b/sound/soc/sof/sof-audio.h
index f4134257789e..2aeb269af752 100644
--- a/sound/soc/sof/sof-audio.h
+++ b/sound/soc/sof/sof-audio.h
@@ -117,6 +117,7 @@ struct snd_sof_dai_config_data {
  *				  triggers. The FW keeps the host DMA running in this case and
  *				  therefore the host must do the same and should stop the DMA during
  *				  hw_free.
+ * @d0i3_supported_in_s0ix: Allow DSP D0I3 during S0iX
  */
 struct sof_ipc_pcm_ops {
 	int (*hw_params)(struct snd_soc_component *component, struct snd_pcm_substream *substream,
@@ -136,6 +137,7 @@ struct sof_ipc_pcm_ops {
 	bool reset_hw_params_during_stop;
 	bool ipc_first_on_start;
 	bool platform_stop_during_hw_free;
+	bool d0i3_supported_in_s0ix;
 };
 
 /**
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] ASoC: SOF: debug: show firmware/topology prefix/names
  2024-04-08 19:41 [PATCH 0/3] ASoC: SOF: misc fixes Pierre-Louis Bossart
  2024-04-08 19:41 ` [PATCH 1/3] ASoC: SOF: Intel: add default firmware library path for LNL Pierre-Louis Bossart
  2024-04-08 19:41 ` [PATCH 2/3] ASoC: SOF: pcm: Restrict DSP D0i3 during S0ix to IPC3 Pierre-Louis Bossart
@ 2024-04-08 19:41 ` Pierre-Louis Bossart
  2024-04-09 23:34 ` [PATCH 0/3] ASoC: SOF: misc fixes Mark Brown
  3 siblings, 0 replies; 5+ messages in thread
From: Pierre-Louis Bossart @ 2024-04-08 19:41 UTC (permalink / raw)
  To: linux-sound
  Cc: alsa-devel, tiwai, broonie, Pierre-Louis Bossart,
	Péter Ujfalusi, Bard Liao

The SOF driver has multiple profiles to select firmware/topology
prefix/names depending on the platform and ipc_type, and each of those
fields can be overridden with kernel parameters. This results in some
cases in confusion on what configuration is actually used in a given
test.

We currently log the firmware and topology names in the kernel logs,
but there's been an ask to add the information in debugfs to simplify
test scripts used by developers and CI.

This isn't meant to be a stable ABI used by apps, changes will be
allowed as needed.

Closes: https://github.com/thesofproject/linux/issues/3867
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
---
 sound/soc/sof/debug.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/sound/soc/sof/debug.c b/sound/soc/sof/debug.c
index 937e51b02a24..cf282c8b18af 100644
--- a/sound/soc/sof/debug.c
+++ b/sound/soc/sof/debug.c
@@ -311,14 +311,32 @@ EXPORT_SYMBOL_GPL(snd_sof_dbg_memory_info_init);
 
 int snd_sof_dbg_init(struct snd_sof_dev *sdev)
 {
+	struct snd_sof_pdata *plat_data = sdev->pdata;
 	struct snd_sof_dsp_ops *ops = sof_ops(sdev);
 	const struct snd_sof_debugfs_map *map;
+	struct dentry *fw_profile;
 	int i;
 	int err;
 
 	/* use "sof" as top level debugFS dir */
 	sdev->debugfs_root = debugfs_create_dir("sof", NULL);
 
+	/* expose firmware/topology prefix/names for test purposes */
+	fw_profile = debugfs_create_dir("fw_profile", sdev->debugfs_root);
+
+	debugfs_create_str("fw_path", 0444, fw_profile,
+			   (char **)&plat_data->fw_filename_prefix);
+	debugfs_create_str("fw_lib_path", 0444, fw_profile,
+			   (char **)&plat_data->fw_lib_prefix);
+	debugfs_create_str("tplg_path", 0444, fw_profile,
+			   (char **)&plat_data->tplg_filename_prefix);
+	debugfs_create_str("fw_name", 0444, fw_profile,
+			   (char **)&plat_data->fw_filename);
+	debugfs_create_str("tplg_name", 0444, fw_profile,
+			   (char **)&plat_data->tplg_filename);
+	debugfs_create_u32("ipc_type", 0444, fw_profile,
+			   (u32 *)&plat_data->ipc_type);
+
 	/* init dfsentry list */
 	INIT_LIST_HEAD(&sdev->dfsentry_list);
 
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 0/3] ASoC: SOF: misc fixes
  2024-04-08 19:41 [PATCH 0/3] ASoC: SOF: misc fixes Pierre-Louis Bossart
                   ` (2 preceding siblings ...)
  2024-04-08 19:41 ` [PATCH 3/3] ASoC: SOF: debug: show firmware/topology prefix/names Pierre-Louis Bossart
@ 2024-04-09 23:34 ` Mark Brown
  3 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2024-04-09 23:34 UTC (permalink / raw)
  To: linux-sound, Pierre-Louis Bossart; +Cc: alsa-devel, tiwai

On Mon, 08 Apr 2024 14:41:44 -0500, Pierre-Louis Bossart wrote:
> We somehow missed the default path for DSP libraries for LNL, and need
> to restrict support for D0i3 w/ IPC4. Also add debugfs support for
> firmware profile information so that sof-test scripts can show what is
> being tested.
> 
> Pierre-Louis Bossart (2):
>   ASoC: SOF: Intel: add default firmware library path for LNL
>   ASoC: SOF: debug: show firmware/topology prefix/names
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/3] ASoC: SOF: Intel: add default firmware library path for LNL
      commit: 305539a25a1c9929b058381aac6104bd939c0fee
[2/3] ASoC: SOF: pcm: Restrict DSP D0i3 during S0ix to IPC3
      commit: 90a2353080eedec855d63f6aadfda14104ee9b06
[3/3] ASoC: SOF: debug: show firmware/topology prefix/names
      commit: 17f4041244e66a417c646c8a90bc6747d5f1de1e

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-04-09 23:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-08 19:41 [PATCH 0/3] ASoC: SOF: misc fixes Pierre-Louis Bossart
2024-04-08 19:41 ` [PATCH 1/3] ASoC: SOF: Intel: add default firmware library path for LNL Pierre-Louis Bossart
2024-04-08 19:41 ` [PATCH 2/3] ASoC: SOF: pcm: Restrict DSP D0i3 during S0ix to IPC3 Pierre-Louis Bossart
2024-04-08 19:41 ` [PATCH 3/3] ASoC: SOF: debug: show firmware/topology prefix/names Pierre-Louis Bossart
2024-04-09 23:34 ` [PATCH 0/3] ASoC: SOF: misc fixes Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox