diff options
author | Ingo Molnar <mingo@kernel.org> | 2025-03-03 21:05:45 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2025-03-03 21:05:45 +0100 |
commit | 1fff9f8730b00c39ec5055656e45ef69acd9409a (patch) | |
tree | 96fea59eb525c4e76ec0872ff74962c6f28fab8b /sound/soc/sof/amd/vangogh.c | |
parent | 604ea3e90b17f27928a64d86259c57710c254438 (diff) | |
parent | 7eb172143d5508b4da468ed59ee857c6e5e01da6 (diff) |
Merge tag 'v6.14-rc5' into x86/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'sound/soc/sof/amd/vangogh.c')
-rw-r--r-- | sound/soc/sof/amd/vangogh.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/sound/soc/sof/amd/vangogh.c b/sound/soc/sof/amd/vangogh.c index 8e2672106ac6..6ed5f9aaa414 100644 --- a/sound/soc/sof/amd/vangogh.c +++ b/sound/soc/sof/amd/vangogh.c @@ -11,13 +11,10 @@ * Hardware interface for Audio DSP on Vangogh platform */ -#include <linux/platform_device.h> +#include <linux/delay.h> #include <linux/module.h> -#include "../ops.h" -#include "../sof-audio.h" #include "acp.h" -#include "acp-dsp-offset.h" #define I2S_HS_INSTANCE 0 #define I2S_BT_INSTANCE 1 @@ -136,6 +133,20 @@ static struct snd_soc_dai_driver vangogh_sof_dai[] = { }, }; +static int sof_vangogh_post_fw_run_delay(struct snd_sof_dev *sdev) +{ + /* + * Resuming from suspend in some cases my cause the DSP firmware + * to enter an unrecoverable faulty state. Delaying a bit any host + * to DSP transmission right after firmware boot completion seems + * to resolve the issue. + */ + if (!sdev->first_boot) + usleep_range(100, 150); + + return 0; +} + /* Vangogh ops */ struct snd_sof_dsp_ops sof_vangogh_ops; EXPORT_SYMBOL_NS(sof_vangogh_ops, "SND_SOC_SOF_AMD_COMMON"); @@ -157,6 +168,9 @@ int sof_vangogh_ops_init(struct snd_sof_dev *sdev) if (quirks->signed_fw_image) sof_vangogh_ops.load_firmware = acp_sof_load_signed_firmware; + + if (quirks->post_fw_run_delay) + sof_vangogh_ops.post_fw_run = sof_vangogh_post_fw_run_delay; } return 0; |