Update the comment for the cl_dsp_init() to clarify what is done by the function and use the chip->init_core_mask instead of BIT(0) when unstalling/running the init core.
Unified · Split
| @@ -95,9 +95,9 @@ out_put: · 94 unmodified lines | ||
| 95 | 95 | } |
| 96 | 96 | |
| 97 | 97 | /* |
| 98 | − * first boot sequence has some extra steps. core 0 waits for power | |
| 99 | − * status on core 1, so power up core 1 also momentarily, keep it in | |
| 100 | − * reset/stall and then turn it off | |
| 98 | + * first boot sequence has some extra steps. | |
| 99 | + * power on all host managed cores and only unstall/run the boot core to boot the | |
| 100 | + * DSP then turn off all non boot cores (if any) is powered on. | |
| 101 | 101 | */ |
| 102 | 102 | static int cl_dsp_init(struct snd_sof_dev *sdev, int stream_tag, bool imr_boot) |
| 103 | 103 | { |
| @@ -127,7 +127,7 @@ static int cl_dsp_init(struct snd_sof_dev *sdev, int stream_tag, bool imr_boot) · 23 unmodified lines | ||
| 127 | 127 | snd_sof_dsp_write(sdev, HDA_DSP_BAR, chip->ipc_req, ipc_hdr); |
| 128 | 128 | |
| 129 | 129 | /* step 3: unset core 0 reset state & unstall/run core 0 */ |
| 130 | − ret = hda_dsp_core_run(sdev, BIT(0)); | |
| 130 | + ret = hda_dsp_core_run(sdev, chip->init_core_mask); | |
| 131 | 131 | if (ret < 0) { |
| 132 | 132 | if (hda->boot_iteration == HDA_FW_BOOT_ATTEMPTS) |
| 133 | 133 | dev_err(sdev->dev, |