const char *default_fw_filename;
 
        const struct snd_sof_dsp_ops *ops;
-       const struct sof_arch_ops *arch_ops;
 };
 
 int sof_nocodec_setup(struct device *dev,
 
                        SNDRV_PCM_INFO_INTERLEAVED |
                        SNDRV_PCM_INFO_PAUSE |
                        SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+
+       .arch_ops = &sof_xtensa_arch_ops,
 };
 EXPORT_SYMBOL_NS(sof_apl_ops, SND_SOC_SOF_INTEL_HDA_COMMON);
 
 
                        SNDRV_PCM_INFO_INTERLEAVED |
                        SNDRV_PCM_INFO_PAUSE |
                        SNDRV_PCM_INFO_BATCH,
+
+       .arch_ops = &sof_xtensa_arch_ops,
 };
 EXPORT_SYMBOL_NS(sof_bdw_ops, SND_SOC_SOF_BROADWELL);
 
 
                        SNDRV_PCM_INFO_INTERLEAVED |
                        SNDRV_PCM_INFO_PAUSE |
                        SNDRV_PCM_INFO_BATCH,
+
+       .arch_ops = &sof_xtensa_arch_ops,
 };
 EXPORT_SYMBOL_NS(sof_tng_ops, SND_SOC_SOF_MERRIFIELD);
 
                        SNDRV_PCM_INFO_INTERLEAVED |
                        SNDRV_PCM_INFO_PAUSE |
                        SNDRV_PCM_INFO_BATCH,
+
+       .arch_ops = &sof_xtensa_arch_ops,
 };
 EXPORT_SYMBOL_NS(sof_byt_ops, SND_SOC_SOF_BAYTRAIL);
 
                        SNDRV_PCM_INFO_INTERLEAVED |
                        SNDRV_PCM_INFO_PAUSE |
                        SNDRV_PCM_INFO_BATCH,
+
+       .arch_ops = &sof_xtensa_arch_ops,
 };
 EXPORT_SYMBOL_NS(sof_cht_ops, SND_SOC_SOF_BAYTRAIL);
 
 
                        SNDRV_PCM_INFO_INTERLEAVED |
                        SNDRV_PCM_INFO_PAUSE |
                        SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+
+       .arch_ops = &sof_xtensa_arch_ops,
 };
 EXPORT_SYMBOL_NS(sof_cnl_ops, SND_SOC_SOF_INTEL_HDA_COMMON);
 
 
        .default_fw_filename = "sof-bdw.ri",
        .nocodec_tplg_filename = "sof-bdw-nocodec.tplg",
        .ops = &sof_bdw_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 #endif
 
        .default_fw_filename = "sof-byt.ri",
        .nocodec_tplg_filename = "sof-byt-nocodec.tplg",
        .ops = &sof_byt_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 
 static const struct sof_dev_desc sof_acpi_baytrail_desc = {
        .default_fw_filename = "sof-byt.ri",
        .nocodec_tplg_filename = "sof-byt-nocodec.tplg",
        .ops = &sof_byt_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 
 static const struct sof_dev_desc sof_acpi_cherrytrail_desc = {
        .default_fw_filename = "sof-cht.ri",
        .nocodec_tplg_filename = "sof-cht-nocodec.tplg",
        .ops = &sof_cht_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 
 #endif
 
        .default_fw_filename = "sof-apl.ri",
        .nocodec_tplg_filename = "sof-apl-nocodec.tplg",
        .ops = &sof_apl_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 #endif
 
        .default_fw_filename = "sof-glk.ri",
        .nocodec_tplg_filename = "sof-glk-nocodec.tplg",
        .ops = &sof_apl_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 #endif
 
        .default_fw_filename = "sof-byt.ri",
        .nocodec_tplg_filename = "sof-byt.tplg",
        .ops = &sof_tng_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 #endif
 
        .default_fw_filename = "sof-cnl.ri",
        .nocodec_tplg_filename = "sof-cnl-nocodec.tplg",
        .ops = &sof_cnl_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 #endif
 
        .default_fw_filename = "sof-cfl.ri",
        .nocodec_tplg_filename = "sof-cnl-nocodec.tplg",
        .ops = &sof_cnl_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 #endif
 
        .default_fw_filename = "sof-cml.ri",
        .nocodec_tplg_filename = "sof-cnl-nocodec.tplg",
        .ops = &sof_cnl_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 #endif
 
        .default_fw_filename = "sof-icl.ri",
        .nocodec_tplg_filename = "sof-icl-nocodec.tplg",
        .ops = &sof_cnl_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 #endif
 
        .default_fw_filename = "sof-tgl.ri",
        .nocodec_tplg_filename = "sof-tgl-nocodec.tplg",
        .ops = &sof_cnl_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 #endif
 
        .default_fw_filename = "sof-ehl.ri",
        .nocodec_tplg_filename = "sof-ehl-nocodec.tplg",
        .ops = &sof_cnl_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 #endif
 
        .default_tplg_path = "intel/sof-tplg",
        .nocodec_tplg_filename = "sof-jsl-nocodec.tplg",
        .ops = &sof_cnl_ops,
-       .arch_ops = &sof_xtensa_arch_ops
 };
 #endif
 
 
 
        /* ALSA HW info flags, will be stored in snd_pcm_runtime.hw.info */
        u32 hw_info;
+
+       const struct sof_arch_ops *arch_ops;
 };
 
 /* DSP architecture specific callbacks for oops and stack dumps */
                          u32 *stack, u32 stack_words);
 };
 
-#define sof_arch_ops(sdev) ((sdev)->pdata->desc->arch_ops)
+#define sof_arch_ops(sdev) ((sdev)->pdata->desc->ops->arch_ops)
 
 /* DSP device HW descriptor mapping between bus ID and ops */
 struct sof_ops_table {