linux-stable/sound/soc/sof
Ranjani Sridharan 82b18242ae
ASoC: SOF: pcm: do not free widgets during suspend trigger
IPC3 and IPC4 have different requirements for the order in which the FE
CPU and BE CPU DAI trigger callbacks must be invoked. With a regular PCM
start/stop, pipeline widgets are set up during hw_params and freed
during hw_free.

But when the system is suspended when a PCM is running,
pipeline widgets are freed during the SUSPEND trigger callback for the
FE CPU DAI. In order to avoid freeing the pipeline widgets before the BE
CPU DAI trigger is executed, the trigger order was modified in previous
contributions in the PCM dai_link_fixup callback to make sure that the BE
CPU DAI trigger stop/suspend is always invoked before the FE CPU DAI
trigger. But this contradicts the firmware requirement for IPC4 w.r.t.
ordering of pipeline triggers.

So, remove the freeing of pipeline widgets during FE CPU DAI suspend
trigger and handle it during system suspend when the
tear_down_all_pipelines() IPC op is invoked. This will be followed up
with a patch to fix the trigger order for IPC4.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20230127120031.10709-6-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-01-27 12:14:02 +00:00
..
amd ASoC: SOF: Prepare set_stream_data_offset for compress API 2023-01-17 13:37:52 +00:00
imx ASoC: SOF: imx8ulp: add missing of_node_put() in imx8ulp_probe() 2022-08-24 12:21:28 +01:00
intel ASoC: SOF: Prepare set_stream_data_offset for compress API 2023-01-17 13:37:52 +00:00
mediatek ASoC: SOF: Prepare ipc_msg_data to be used with compress API 2023-01-17 13:37:51 +00:00
xtensa ASoC: SOF: dsp_arch_ops: add kernel log level parameter for oops and stack 2021-12-23 13:38:25 +00:00
compress.c ASoC: SOF: compress: Set compress data offset 2023-01-17 13:37:54 +00:00
control.c ASoC: SOF: control: Extend the optionality of IPC ops to IPC as well 2022-12-25 23:32:33 +00:00
core.c ASoC: SOF: core: Print out the value of sof_debug if it is set 2022-12-25 23:33:21 +00:00
debug.c ASoC: SOF: Add FW state to debugfs 2022-12-21 12:11:51 +00:00
iomem-utils.c ASoC: SOF: Split up utils.c into sof-utils and iomem-utils 2022-02-10 15:19:04 +00:00
ipc.c ASoC: SOF: client: Add sof_client_ipc_set_get_data() 2022-10-31 13:20:20 +00:00
ipc3-control.c ASoC: SOF: ipc3: Remove the ipc3-ops.h header file 2022-05-04 15:31:18 +01:00
ipc3-dtrace.c ASoC: SOF: ipc3-dtrace: remove use of __func__ in dev_dbg 2022-06-17 10:46:41 +01:00
ipc3-loader.c ASoC: SOF: Introduce container struct for SOF firmware 2022-10-21 13:04:54 +01:00
ipc3-pcm.c ASoC: SOF: Prepare set_stream_data_offset for compress API 2023-01-17 13:37:52 +00:00
ipc3-priv.h ASoC: SOF: Modify the host trace_init parameter list to include dmab 2022-05-19 16:44:17 +01:00
ipc3-topology.c ASoC: SOF: pcm: do not free widgets during suspend trigger 2023-01-27 12:14:02 +00:00
ipc3.c ASoC: SOF: Prepare ipc_msg_data to be used with compress API 2023-01-17 13:37:51 +00:00
ipc4-control.c ASoC: SOF: ipc4-topology: Fix error code in sof_ipc4_volume_put() 2022-06-16 09:31:17 +01:00
ipc4-loader.c ASoC: SOF: ipc4-loader: get max pipeline number 2022-11-09 13:44:18 +00:00
ipc4-mtrace.c ASoC: SOF: ipc4-mtrace: protect per-core nodes against multiple open 2022-10-18 21:17:21 +01:00
ipc4-pcm.c ASoC: SOF: pcm: do not free widgets during suspend trigger 2023-01-27 12:14:02 +00:00
ipc4-priv.h ASoC: SOF: ipc4-loader: get max pipeline number 2022-11-09 13:44:18 +00:00
ipc4-topology.c ASoC: SOF: pcm: do not free widgets during suspend trigger 2023-01-27 12:14:02 +00:00
ipc4-topology.h ASoC: SOF: ipc4-topology: add buffer type support 2023-01-26 13:32:44 +00:00
ipc4.c ASoC: SOF: Intel/IPC4: Support for external firmware libraries 2022-10-21 20:04:19 +01:00
Kconfig ASoC: SOF: Drop obsolete dependency on COMPILE_TEST 2022-11-28 13:04:35 +00:00
loader.c ASoC: SOF: loader: Remove the query_fw_configuration ops 2022-10-21 13:05:10 +01:00
Makefile ASoC: SOF: IPC4: probes: Implement IPC4 ops for probes client device 2022-10-31 13:20:22 +00:00
nocodec.c ASoC: SOF: nocodec: Drop empty platform remove function 2022-12-25 23:32:55 +00:00
ops.c ASoC: SOF: Switch to IPC generic firmware tracing 2022-05-19 16:44:15 +01:00
ops.h ASoC: SOF: Prepare set_stream_data_offset for compress API 2023-01-17 13:37:52 +00:00
pcm.c ASoC: SOF: pcm: do not free widgets during suspend trigger 2023-01-27 12:14:02 +00:00
pm.c ASoC: Merge up 6.2 fixes 2023-01-18 15:33:51 +00:00
sof-acpi-dev.c ASoC: SOF: add IPC-dependent file names 2022-04-19 12:03:34 +01:00
sof-acpi-dev.h
sof-audio.c ASoC: SOF: sof-audio: Only process widgets in the connected widget list 2023-01-27 12:14:01 +00:00
sof-audio.h ASoC: SOF: sof-audio: Update documentation for sof_ipc_tplg_ops 2022-12-25 23:32:30 +00:00
sof-client-ipc-flood-test.c ASoC: SOF: sof-client-ipc-flood-test: use pm_runtime_resume_and_get() 2022-05-19 16:44:29 +01:00
sof-client-ipc-msg-injector.c ASoC: SOF: ipc-msg-injector: fix copy in sof_msg_inject_ipc4_dfs_write() 2022-07-14 13:26:37 +01:00
sof-client-probes-ipc3.c ASoC: SOF: probes: Separate IPC3 operations to a separate file 2022-10-31 13:20:18 +00:00
sof-client-probes-ipc4.c ASoC: SOF: IPC4: probes: Implement IPC4 ops for probes client device 2022-10-31 13:20:22 +00:00
sof-client-probes.c ASoC: SOF: probes: Check ops before memory allocation 2022-11-17 13:58:43 +00:00
sof-client-probes.h ASoC: SOF: IPC4: probes: Implement IPC4 ops for probes client device 2022-10-31 13:20:22 +00:00
sof-client.c ASoC: SOF: client: Add sof_client_ipc4_find_module() function 2022-10-31 13:20:21 +00:00
sof-client.h ASoC: SOF: client: Add sof_client_ipc4_find_module() function 2022-10-31 13:20:21 +00:00
sof-of-dev.c ASoC: SOF: add IPC-dependent file names 2022-04-19 12:03:34 +01:00
sof-of-dev.h ASoC: SOF: Introduce function sof_of_machine_select 2022-08-23 18:22:29 +01:00
sof-pci-dev.c ASoC: SOF: Add path definition for external firmware libraries 2022-10-21 13:05:03 +01:00
sof-pci-dev.h
sof-priv.h ASoC: SOF: Add support for compress API for stream data/offset 2023-01-17 13:37:53 +00:00
sof-utils.c ASoC: SOF: remove unneeded dev_vdbg 2022-09-19 15:44:06 +01:00
sof-utils.h ASoC: SOF: Split up utils.c into sof-utils and iomem-utils 2022-02-10 15:19:04 +00:00
stream-ipc.c ASoC: SOF: Add support for compress API for stream data/offset 2023-01-17 13:37:53 +00:00
topology.c ASoC: SOF: topology: Extend the optionality of IPC ops to IPC as well 2022-12-25 23:32:35 +00:00
trace.c ASoC: SOF: trace: No need to check for op pointer in sof_fw_trace_free() 2022-12-25 23:32:39 +00:00