int ret;
 
        /* Use wm_adsp to load and apply the firmware patch and coefficient files */
-       ret = wm_adsp_power_up(&cs35l56->dsp);
+       ret = wm_adsp_power_up(&cs35l56->dsp, true);
        if (ret)
                dev_dbg(cs35l56->base.dev, "%s: wm_adsp_power_up ret %d\n", __func__, ret);
        else
                goto err;
 
        /* Use wm_adsp to load and apply the firmware patch and coefficient files */
-       ret = wm_adsp_power_up(&cs35l56->dsp);
+       ret = wm_adsp_power_up(&cs35l56->dsp, true);
        if (ret) {
                dev_dbg(cs35l56->base.dev, "%s: wm_adsp_power_up ret %d\n", __func__, ret);
                goto err;
 
 }
 EXPORT_SYMBOL_GPL(wm_adsp2_preloader_put);
 
-int wm_adsp_power_up(struct wm_adsp *dsp)
+int wm_adsp_power_up(struct wm_adsp *dsp, bool load_firmware)
 {
        int ret = 0;
        char *wmfw_filename = NULL;
        char *coeff_filename = NULL;
        const struct firmware *coeff_firmware = NULL;
 
-       ret = wm_adsp_request_firmware_files(dsp,
-                                            &wmfw_firmware, &wmfw_filename,
-                                            &coeff_firmware, &coeff_filename);
-       if (ret)
-               return ret;
+       if (load_firmware) {
+               ret = wm_adsp_request_firmware_files(dsp,
+                                                    &wmfw_firmware, &wmfw_filename,
+                                                    &coeff_firmware, &coeff_filename);
+               if (ret)
+                       return ret;
+       }
 
        ret = cs_dsp_power_up(&dsp->cs_dsp,
                              wmfw_firmware, wmfw_filename,
                                           struct wm_adsp,
                                           boot_work);
 
-       wm_adsp_power_up(dsp);
+       wm_adsp_power_up(dsp, true);
 }
 
 int wm_adsp_early_event(struct snd_soc_dapm_widget *w,
 
 int wm_adsp_early_event(struct snd_soc_dapm_widget *w,
                        struct snd_kcontrol *kcontrol, int event);
 
-int wm_adsp_power_up(struct wm_adsp *dsp);
+int wm_adsp_power_up(struct wm_adsp *dsp, bool load_firmware);
 void wm_adsp_power_down(struct wm_adsp *dsp);
 
 irqreturn_t wm_adsp2_bus_error(int irq, void *data);