return 0;
 }
 
+static int
+mt7603_edcca_set(void *data, u64 val)
+{
+       struct mt7603_dev *dev = data;
+
+       mutex_lock(&dev->mt76.mutex);
+
+       dev->ed_monitor_enabled = !!val;
+       dev->ed_monitor = dev->ed_monitor_enabled &&
+                         dev->region == NL80211_DFS_ETSI;
+       mt7603_init_edcca(dev);
+
+       mutex_unlock(&dev->mt76.mutex);
+
+       return 0;
+}
+
+static int
+mt7603_edcca_get(void *data, u64 *val)
+{
+       struct mt7603_dev *dev = data;
+
+       *val = dev->ed_monitor_enabled;
+       return 0;
+}
+
+DEFINE_DEBUGFS_ATTRIBUTE(fops_edcca, mt7603_edcca_get,
+                        mt7603_edcca_set, "%lld\n");
+
 void mt7603_init_debugfs(struct mt7603_dev *dev)
 {
        struct dentry *dir;
        if (!dir)
                return;
 
+       debugfs_create_file("edcca", 0600, dir, dev, &fops_edcca);
        debugfs_create_u32("reset_test", 0600, dir, &dev->reset_test);
        debugfs_create_devm_seqfile(dev->mt76.dev, "reset", dir,
                                    mt7603_reset_read);
 
        struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy);
        struct mt7603_dev *dev = hw->priv;
 
-       dev->ed_monitor = request->dfs_region == NL80211_DFS_ETSI;
+       dev->region = request->dfs_region;
+       dev->ed_monitor = dev->ed_monitor_enabled &&
+                         dev->region == NL80211_DFS_ETSI;
 }
 
 static int
 
        mutex_unlock(&dev->mt76.mutex);
 }
 
-static void
-mt7603_init_edcca(struct mt7603_dev *dev)
+void mt7603_init_edcca(struct mt7603_dev *dev)
 {
        /* Set lower signal level to -65dBm */
        mt76_rmw_field(dev, MT_RXTD(8), MT_RXTD_8_LOWER_SIGNAL, 0x23);
 
        u8 mac_work_count;
 
        u8 mcu_running;
-       u8 ed_monitor;
 
+       enum nl80211_dfs_regions region;
+
+       u8 ed_monitor_enabled;
+       u8 ed_monitor;
        s8 ed_trigger;
        u8 ed_strict_mode;
        u8 ed_strong_signal;
 void mt7603_edcca_set_strict(struct mt7603_dev *dev, bool val);
 void mt7603_cca_stats_reset(struct mt7603_dev *dev);
 
+void mt7603_init_edcca(struct mt7603_dev *dev);
 #endif