struct snd_sof_pdata *pdata = sdev->pdata;
        int ret;
 
-       ret = snd_sof_dsp_power_down_notify(sdev);
-       if (ret < 0)
-               dev_warn(dev, "error: %d failed to prepare DSP for device removal",
-                        ret);
-
        if (IS_ENABLED(CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE))
                cancel_work_sync(&sdev->probe_work);
 
        if (sdev->fw_state > SOF_FW_BOOT_NOT_STARTED) {
+               ret = snd_sof_dsp_power_down_notify(sdev);
+               if (ret < 0)
+                       dev_warn(dev, "error: %d failed to prepare DSP for device removal",
+                                ret);
+
                snd_sof_fw_unload(sdev);
                snd_sof_ipc_free(sdev);
                snd_sof_free_debug(sdev);