diff options
author | Lorenzo Bianconi <lorenzo@kernel.org> | 2019-05-11 17:30:10 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2019-06-25 12:55:27 +0200 |
commit | 8aac454dbb51387a3429ab88993878193381a7cc (patch) | |
tree | 33a4f02ff6342b830030c246a2d4e28b9e947635 /drivers/net/wireless/mediatek/mt76/mt76x02_debugfs.c | |
parent | 6e4caaea99256632625fb4a3ec0557b6e5274e2d (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.c | 4 |
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; } |