u8 val;
        int ret;
 
+       rtw89_mac_disable_cpu(rtwdev);
+       ret = rtw89_mac_enable_cpu(rtwdev, 0, true);
+       if (ret)
+               return ret;
+
        if (!fw || !len) {
                rtw89_err(rtwdev, "fw type %d isn't recognized\n", type);
                return -ENOENT;
 
        rtw89_mac_mem_write(rtwdev, R_AX_WDT_STATUS, val32, RTW89_MAC_MEM_CPU_LOCAL);
 }
 
-static void rtw89_mac_disable_cpu(struct rtw89_dev *rtwdev)
+void rtw89_mac_disable_cpu(struct rtw89_dev *rtwdev)
 {
        clear_bit(RTW89_FLAG_FW_RDY, rtwdev->flags);
 
        rtw89_write32_set(rtwdev, R_AX_PLATFORM_ENABLE, B_AX_PLATFORM_EN);
 }
 
-static int rtw89_mac_enable_cpu(struct rtw89_dev *rtwdev, u8 boot_reason,
-                               bool dlfw)
+int rtw89_mac_enable_cpu(struct rtw89_dev *rtwdev, u8 boot_reason, bool dlfw)
 {
        u32 val;
        int ret;
                        return ret;
        }
 
-       rtw89_mac_disable_cpu(rtwdev);
-       ret = rtw89_mac_enable_cpu(rtwdev, 0, true);
-       if (ret)
-               return ret;
-
        ret = rtw89_fw_download(rtwdev, RTW89_FW_NORMAL);
        if (ret)
                return ret;
 
 void rtw89_mac_set_he_obss_narrow_bw_ru(struct rtw89_dev *rtwdev,
                                        struct ieee80211_vif *vif);
 int rtw89_mac_remove_vif(struct rtw89_dev *rtwdev, struct rtw89_vif *vif);
+void rtw89_mac_disable_cpu(struct rtw89_dev *rtwdev);
+int rtw89_mac_enable_cpu(struct rtw89_dev *rtwdev, u8 boot_reason, bool dlfw);
 int rtw89_mac_enable_bb_rf(struct rtw89_dev *rtwdev);
 int rtw89_mac_disable_bb_rf(struct rtw89_dev *rtwdev);