ASoC: Intel: avs: Disable DSP before loading basefw
authorWu Zhou <wu.zhou@intel.com>
Fri, 29 Sep 2023 11:24:35 +0000 (13:24 +0200)
committerMark Brown <broonie@kernel.org>
Fri, 29 Sep 2023 12:17:54 +0000 (14:17 +0200)
When audio controller is passed-through to the guest machine in
virtualized environment, the basefw load will fail the next time guest
OS reboots. Disable the DSP main core before loading the base firmware
to sanitize the environment.

Signed-off-by: Wu Zhou <wu.zhou@intel.com>
Signed-off-by: Libin Yang <libin.yang@intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Link: https://lore.kernel.org/r/20230929112436.787058-6-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/avs/loader.c

index 56bb0a59249d54da16ec44fadec2453237855bfc..65dd8f140fc1ede2b27bff32fbdc3912662ce949 100644 (file)
@@ -662,6 +662,10 @@ int avs_dsp_first_boot_firmware(struct avs_dev *adev)
                }
        }
 
+       ret = avs_dsp_core_disable(adev, AVS_MAIN_CORE_MASK);
+       if (ret < 0)
+               return ret;
+
        ret = avs_dsp_boot_firmware(adev, true);
        if (ret < 0) {
                dev_err(adev->dev, "firmware boot failed: %d\n", ret);