mt7925_hwmon_groups);
        return PTR_ERR_OR_ZERO(hwmon);
 }
+
+void mt7925_regd_update(struct mt792x_dev *dev)
+{
+       struct mt76_dev *mdev = &dev->mt76;
+       struct ieee80211_hw *hw = mdev->hw;
+
+       mt7925_mcu_set_clc(dev, mdev->alpha2, dev->country_ie_env);
+       mt7925_mcu_set_channel_domain(hw->priv);
+       mt7925_set_tx_sar_pwr(hw, NULL);
+}
+EXPORT_SYMBOL_GPL(mt7925_regd_update);
+
 static void
 mt7925_regd_notifier(struct wiphy *wiphy,
                     struct regulatory_request *req)
        struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy);
        struct mt792x_dev *dev = mt792x_hw_dev(hw);
        struct mt76_dev *mdev = &dev->mt76;
+       struct mt76_connac_pm *pm = &dev->pm;
 
        /* allow world regdom at the first boot only */
        if (!memcmp(req->alpha2, "00", 2) &&
        mdev->region = req->dfs_region;
        dev->country_ie_env = req->country_ie_env;
 
+       if (pm->suspended)
+               return;
+
        dev->regd_in_progress = true;
        mt792x_mutex_acquire(dev);
-       mt7925_mcu_set_clc(dev, req->alpha2, req->country_ie_env);
-       mt7925_mcu_set_channel_domain(hw->priv);
-       mt7925_set_tx_sar_pwr(hw, NULL);
+       mt7925_regd_update(dev);
        mt792x_mutex_release(dev);
        dev->regd_in_progress = false;
        wake_up(&dev->wait);
 
 int mt7925_mcu_set_rxfilter(struct mt792x_dev *dev, u32 fif,
                            u8 bit_op, u32 bit_map);
 
+void mt7925_regd_update(struct mt792x_dev *dev);
 int mt7925_mac_init(struct mt792x_dev *dev);
 int mt7925_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
                       struct ieee80211_sta *sta);