Remove hw_atomic_mutex mutex in mt76x0_dev data structure
since mt76x0_phy_set_channel is already protected by mt76_dev
mutex while mt76x0_chip_onoff is used just at device probe or
cleanup

Signed-off-by: Lorenzo Bianconi <lorenzo.bianc...@redhat.com>
---
 .../net/wireless/mediatek/mt76/mt76x0/init.c    |  5 -----
 .../net/wireless/mediatek/mt76/mt76x0/mt76x0.h  |  3 ---
 drivers/net/wireless/mediatek/mt76/mt76x0/phy.c | 17 ++---------------
 3 files changed, 2 insertions(+), 23 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/init.c 
b/drivers/net/wireless/mediatek/mt76/mt76x0/init.c
index c4ea89e61c40..eb41e247a801 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x0/init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x0/init.c
@@ -73,8 +73,6 @@ void mt76x0_chip_onoff(struct mt76x0_dev *dev, bool enable, 
bool reset)
 {
        u32 val;
 
-       mutex_lock(&dev->hw_atomic_mutex);
-
        val = mt76_rr(dev, MT_WLAN_FUN_CTRL);
 
        if (reset) {
@@ -96,8 +94,6 @@ void mt76x0_chip_onoff(struct mt76x0_dev *dev, bool enable, 
bool reset)
        udelay(20);
 
        mt76x0_set_wlan_state(dev, val, enable);
-
-       mutex_unlock(&dev->hw_atomic_mutex);
 }
 EXPORT_SYMBOL_GPL(mt76x0_chip_onoff);
 
@@ -346,7 +342,6 @@ mt76x0_alloc_device(struct device *pdev,
 
        dev = container_of(mdev, struct mt76x0_dev, mt76);
        mutex_init(&dev->reg_atomic_mutex);
-       mutex_init(&dev->hw_atomic_mutex);
        atomic_set(&dev->avg_ampdu_len, 1);
 
        return dev;
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h 
b/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h
index 178fb4f085c5..66b5986d78d3 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h
@@ -72,8 +72,6 @@ enum mt_bw {
  * @mutex:             ensures exclusive access from mac80211 callbacks.
  * @reg_atomic_mutex:  ensures atomicity of indirect register accesses
  *                     (accesses to RF and BBP).
- * @hw_atomic_mutex:   ensures exclusive access to HW during critical
- *                     operations (power management, channel switch).
  */
 struct mt76x0_dev {
        struct mt76_dev mt76; /* must be first */
@@ -84,7 +82,6 @@ struct mt76x0_dev {
        struct mt76x0_caldata caldata;
 
        struct mutex reg_atomic_mutex;
-       struct mutex hw_atomic_mutex;
 
        atomic_t avg_ampdu_len;
 
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c 
b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
index ee7f071a96f8..661333243052 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
@@ -614,9 +614,8 @@ void mt76x0_phy_set_txpower(struct mt76x0_dev *dev)
        mt76x02_phy_set_txpower(&dev->mt76, info[0], info[1]);
 }
 
-static int
-__mt76x0_phy_set_channel(struct mt76x0_dev *dev,
-                      struct cfg80211_chan_def *chandef)
+int mt76x0_phy_set_channel(struct mt76x0_dev *dev,
+                          struct cfg80211_chan_def *chandef)
 {
        u32 ext_cca_chan[4] = {
                [0] = FIELD_PREP(MT_EXT_CCA_CFG_CCA0, 0) |
@@ -713,18 +712,6 @@ __mt76x0_phy_set_channel(struct mt76x0_dev *dev,
        return 0;
 }
 
-int mt76x0_phy_set_channel(struct mt76x0_dev *dev,
-                          struct cfg80211_chan_def *chandef)
-{
-       int ret;
-
-       mutex_lock(&dev->hw_atomic_mutex);
-       ret = __mt76x0_phy_set_channel(dev, chandef);
-       mutex_unlock(&dev->hw_atomic_mutex);
-
-       return ret;
-}
-
 void mt76x0_phy_recalibrate_after_assoc(struct mt76x0_dev *dev)
 {
        u32 tx_alc, reg_val;
-- 
2.19.0

Reply via email to