ASoC: SOF: Intel: hda-loader: keep init cores alive
authorBard Liao <yung-chuan.liao@linux.intel.com>
Thu, 28 Jan 2021 09:38:47 +0000 (11:38 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 28 Jan 2021 17:11:35 +0000 (17:11 +0000)
init_core_mask should be the available cores mask after fw boot. So we
should keep not core 0 but init cores alive.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20210128093850.1041387-3-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/intel/hda-loader.c

index 4b2ab351e2cc6adac07e9976ef571712a1f9eb37..07b73fe3c5e5d688c59ba5f033cc3bb095008890 100644 (file)
@@ -147,8 +147,9 @@ static int cl_dsp_init(struct snd_sof_dev *sdev, int stream_tag)
                                       chip->ipc_ack_mask,
                                       chip->ipc_ack_mask);
 
-       /* step 5: power down corex */
-       ret = hda_dsp_core_power_down(sdev, chip->host_managed_cores_mask & ~(BIT(0)));
+       /* step 5: power down cores that are no longer needed */
+       ret = hda_dsp_core_power_down(sdev, chip->host_managed_cores_mask &
+                                     ~(chip->init_core_mask));
        if (ret < 0) {
                if (hda->boot_iteration == HDA_FW_BOOT_ATTEMPTS)
                        dev_err(sdev->dev,