aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/mediatek/mt76/mt76x02_debugfs.c
diff options
context:
space:
mode:
authorLorenzo Bianconi <lorenzo@kernel.org>2019-05-11 17:30:10 +0200
committerFelix Fietkau <nbd@nbd.name>2019-06-25 12:55:27 +0200
commit8aac454dbb51387a3429ab88993878193381a7cc (patch)
tree33a4f02ff6342b830030c246a2d4e28b9e947635 /drivers/net/wireless/mediatek/mt76/mt76x02_debugfs.c
parent6e4caaea99256632625fb4a3ec0557b6e5274e2d (diff)
mt76: mt76x02: run mt76x02_edcca_init atomically in mt76_edcca_set
Run mt76x02_edcca_init atomically in mt76_edcca_set since it runs concurrently with calibration work and mt76x2_set_channel. Moreover perform phy calibration atomically Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt76x02_debugfs.c')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x02_debugfs.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_debugfs.c b/drivers/net/wireless/mediatek/mt76/mt76x02_debugfs.c
index 7853078e8ca4..f412c779d8e2 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_debugfs.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_debugfs.c
@@ -122,11 +122,15 @@ mt76_edcca_set(void *data, u64 val)
struct mt76x02_dev *dev = data;
enum nl80211_dfs_regions region = dev->dfs_pd.region;
+ mutex_lock(&dev->mt76.mutex);
+
dev->ed_monitor_enabled = !!val;
dev->ed_monitor = dev->ed_monitor_enabled &&
region == NL80211_DFS_ETSI;
mt76x02_edcca_init(dev);
+ mutex_unlock(&dev->mt76.mutex);
+
return 0;
}