linux/sound/soc
Ranjani Sridharan 6ca5cecbd1
ASoC: SOF: Introduce state machine for FW boot
Add a state machine for FW boot to track the
different stages of FW boot and replace the boot_complete
field with fw_state field in struct snd_sof_dev.
This will be used to determine the actions to be performed
during system suspend.

One of the main motivations for adding this change is the
fact that errors during the top-level SOF device probe cannot
be propagated and therefore suspending the SOF device normally
during system suspend could potentially run into errors.
For example, with the current flow, if the FW boot failed
for some reason and the system suspends, the SOF device
suspend could fail because the CTX_SAVE IPC would be attempted
even though the FW never really booted successfully causing it
to time out. Another scenario that the state machine fixes
is when the runtime suspend for the SOF device fails and
the DSP is powered down nevertheless, the CTX_SAVE IPC during
system suspend would timeout because the DSP is already
powered down.

Reviewed-by: Curtis Malainey <cujomalainey@chromium.org>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20191218002616.7652-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-12-18 19:52:20 +00:00
..
adi treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
amd ASoC: amd: Drop superfluous ioctl PCM ops 2019-12-11 15:55:28 +00:00
atmel ASoC: atmel: Drop superfluous ioctl PCM ops 2019-12-11 15:55:46 +00:00
au1x ASoC: au1x: Use managed buffer allocation 2019-12-11 16:43:18 +00:00
bcm ASoC: bcm: Drop superfluous ioctl PCM ops 2019-12-11 15:56:04 +00:00
cirrus sound: Fix Kconfig indentation 2019-10-07 03:53:03 +02:00
codecs ASoC: rt5677-spi: Use managed buffer allocation 2019-12-11 16:43:29 +00:00
dwc ASoC: dwc: Use managed buffer allocation 2019-12-11 16:43:19 +00:00
fsl ASoC: fsl: imx-audmix: use snd_soc_dai_link_component for codec_conf 2019-12-16 12:02:02 +00:00
generic ASoC: simple-card: Don't create separate link when platform is present 2019-12-10 13:10:40 +00:00
hisilicon treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 340 2019-06-05 17:37:07 +02:00
img treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
intel ASoC: Intel: cml_rt1011_rt5682: fix codec_conf by removing legacy style 2019-12-18 19:50:42 +00:00
jz4740 ASoC: jz4740: Remove unused match variable 2019-10-09 10:58:01 +01:00
kirkwood ASoC: kirkwood: Drop superfluous ioctl PCM ops 2019-12-11 15:57:19 +00:00
mediatek ASoC: mediatek: mt8183-da7219-max98357: use snd_soc_dai_link_component for codec_conf 2019-12-16 12:02:32 +00:00
meson ASoC: meson: Use managed buffer allocation 2019-12-11 16:43:20 +00:00
mxs ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
pxa ASoC: pxa: Drop superfluous ioctl PCM ops 2019-12-11 15:58:04 +00:00
qcom ASoC: qcom: Drop superfluous ioctl PCM ops 2019-12-11 15:58:23 +00:00
rockchip ASoC: Fixes for v5.4 2019-11-07 13:52:17 +01:00
samsung ASoC: samsung: speyside: use snd_soc_dai_link_component for codec_conf 2019-12-16 12:02:48 +00:00
sh ASoC: sh: Drop superfluous ioctl PCM ops 2019-12-11 16:51:07 +00:00
sirf ASoC: sirf: use devm_platform_ioremap_resource() to simplify code 2019-07-31 12:05:39 +01:00
sof ASoC: SOF: Introduce state machine for FW boot 2019-12-18 19:52:20 +00:00
spear ASoC: spear: use devm_platform_ioremap_resource() to simplify code 2019-07-31 12:06:18 +01:00
sprd ASoC: sprd: Drop superfluous ioctl PCM ops 2019-12-11 15:59:40 +00:00
sti ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
stm ASoC: stm32: Use managed buffer allocation 2019-12-11 16:43:23 +00:00
sunxi ASoC: sunxi: sun4i-codec: remove unneeded semicolon 2019-10-28 13:12:39 +00:00
tegra ASoC: soc-core: find rtd via dai_link pointer at snd_soc_get_pcm_runtime() 2019-12-10 13:15:21 +00:00
ti ASoC: ti: rx51: use snd_soc_dai_link_component for codec_conf 2019-12-16 12:02:52 +00:00
txx9 ASoC: txx9: Use managed buffer allocation 2019-12-11 16:43:24 +00:00
uniphier ASoC: uniphier: Drop superfluous ioctl PCM ops 2019-12-11 16:51:25 +00:00
ux500 ASoC: ux500: Remove redundant variable "status" 2019-11-04 13:22:25 +00:00
xilinx ASoC: xilinx: Use managed buffer allocation 2019-12-11 16:43:25 +00:00
xtensa ASoC: xtensa: Use managed buffer allocation 2019-12-11 16:43:26 +00:00
zte sound: Fix Kconfig indentation 2019-10-07 03:53:03 +02:00
Kconfig ASoC: remove w90x900/nuc900 platform drivers 2019-08-12 14:00:29 +01:00
Makefile ASoC: remove w90x900/nuc900 platform drivers 2019-08-12 14:00:29 +01:00
soc-ac97.c
soc-acpi.c ASoC: soc-acpi: fix implicit header use of module.h/export.h 2019-05-08 18:06:28 +09:00
soc-component.c ASoC: More updates for v5.5 2019-11-25 14:27:41 +01:00
soc-compress.c ASoC: compress: Add pm_runtime support 2019-12-17 12:35:02 +00:00
soc-core.c ASoC: soc-core: remove legacy style of codec_conf 2019-12-16 12:02:56 +00:00
soc-dai.c ASoC: soc-dai: move snd_soc_dai_stream_valid() to soc-dai.c 2019-07-23 18:14:26 +01:00
soc-dapm.c ASoC: soc-core: add snd_soc_dapm_init() 2019-09-02 13:21:20 +01:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: generic-dmaengine-pcm: Use managed buffer allocation 2019-12-11 16:43:23 +00:00
soc-io.c
soc-jack.c ASoC: Jack: Fix NULL pointer dereference in snd_soc_jack_report 2019-11-12 17:12:56 +00:00
soc-ops.c ASoC: soc-ops: use snd_soc_card_get_kcontrol() at snd_soc_limit_volume() 2019-10-03 14:37:20 +01:00
soc-pcm.c Merge branch 'for-5.5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.6 2019-12-10 13:27:14 +00:00
soc-topology.c Merge branch 'for-5.5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.6 2019-12-10 13:27:14 +00:00
soc-utils.c ASoC: utils: Drop superfluous ioctl PCM ops 2019-12-11 16:00:48 +00:00