OSDN Git Service

mt76x0: remove hw_atomic_mutex mutex in mt76x0_dev
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Thu, 4 Oct 2018 21:53:07 +0000 (23:53 +0200)
committerFelix Fietkau <nbd@nbd.name>
Fri, 5 Oct 2018 18:05:45 +0000 (20:05 +0200)
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.bianconi@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76x0/init.c
drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c

index c4ea89e..eb41e24 100644 (file)
@@ -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;
index 178fb4f..66b5986 100644 (file)
@@ -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;
 
index ee7f071..6613332 100644 (file)
@@ -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;