mt76: move mt76x02_set_tx_ackto in mt76x02-lib module
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Sat, 20 Oct 2018 10:40:52 +0000 (12:40 +0200)
committerFelix Fietkau <nbd@nbd.name>
Fri, 30 Nov 2018 11:21:41 +0000 (12:21 +0100)
Move mt76x02_set_tx_ackto and mt76x02_set_coverage_class routines
in mt76x02-lib module in order to be reused by mt76x0 driver.
This is a preliminary patch to unify drv_bss_info_changed mac80211
callback between mt76x0 and mt76x2 drivers

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76x0/main.c
drivers/net/wireless/mediatek/mt76/mt76x0/pci.c
drivers/net/wireless/mediatek/mt76/mt76x02.h
drivers/net/wireless/mediatek/mt76/mt76x02_util.c
drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2.h
drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c
drivers/net/wireless/mediatek/mt76/mt76x2/pci_main.c

index 3dff198..8de19fe 100644 (file)
@@ -117,8 +117,8 @@ void mt76x0_bss_info_changed(struct ieee80211_hw *hw,
        if (changed & BSS_CHANGED_ERP_SLOT) {
                int slottime = info->use_short_slot ? 9 : 20;
 
-               mt76_rmw_field(dev, MT_BKOFF_SLOT_CFG,
-                              MT_BKOFF_SLOT_CFG_SLOTTIME, slottime);
+               dev->slottime = slottime;
+               mt76x02_set_tx_ackto(dev);
        }
 
        mutex_unlock(&dev->mt76.mutex);
index 08412bb..b16227f 100644 (file)
@@ -104,6 +104,7 @@ static const struct ieee80211_ops mt76x0e_ops = {
        .flush = mt76x0e_flush,
        .set_tim = mt76x0e_set_tim,
        .release_buffered_frames = mt76_release_buffered_frames,
+       .set_coverage_class = mt76x02_set_coverage_class,
 };
 
 static int mt76x0e_register_device(struct mt76x02_dev *dev)
index a414126..95af2b1 100644 (file)
@@ -133,6 +133,9 @@ s8 mt76x02_tx_get_max_txpwr_adj(struct mt76x02_dev *dev,
 s8 mt76x02_tx_get_txpwr_adj(struct mt76x02_dev *dev, s8 txpwr,
                            s8 max_txpwr_adj);
 void mt76x02_tx_set_txpwr_auto(struct mt76x02_dev *dev, s8 txpwr);
+void mt76x02_set_tx_ackto(struct mt76x02_dev *dev);
+void mt76x02_set_coverage_class(struct ieee80211_hw *hw,
+                               s16 coverage_class);
 int mt76x02_insert_hdr_pad(struct sk_buff *skb);
 void mt76x02_remove_hdr_pad(struct sk_buff *skb, int len);
 void mt76x02_tx_complete(struct mt76_dev *dev, struct sk_buff *skb);
index 2a81d2f..c485f66 100644 (file)
@@ -438,6 +438,36 @@ int mt76x02_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 }
 EXPORT_SYMBOL_GPL(mt76x02_conf_tx);
 
+void mt76x02_set_tx_ackto(struct mt76x02_dev *dev)
+{
+       u8 ackto, sifs, slottime = dev->slottime;
+
+       /* As defined by IEEE 802.11-2007 17.3.8.6 */
+       slottime += 3 * dev->coverage_class;
+       mt76_rmw_field(dev, MT_BKOFF_SLOT_CFG,
+                      MT_BKOFF_SLOT_CFG_SLOTTIME, slottime);
+
+       sifs = mt76_get_field(dev, MT_XIFS_TIME_CFG,
+                             MT_XIFS_TIME_CFG_OFDM_SIFS);
+
+       ackto = slottime + sifs;
+       mt76_rmw_field(dev, MT_TX_TIMEOUT_CFG,
+                      MT_TX_TIMEOUT_CFG_ACKTO, ackto);
+}
+EXPORT_SYMBOL_GPL(mt76x02_set_tx_ackto);
+
+void mt76x02_set_coverage_class(struct ieee80211_hw *hw,
+                               s16 coverage_class)
+{
+       struct mt76x02_dev *dev = hw->priv;
+
+       mutex_lock(&dev->mt76.mutex);
+       dev->coverage_class = coverage_class;
+       mt76x02_set_tx_ackto(dev);
+       mutex_unlock(&dev->mt76.mutex);
+}
+EXPORT_SYMBOL_GPL(mt76x02_set_coverage_class);
+
 void mt76x02_sta_rate_tbl_update(struct ieee80211_hw *hw,
                                struct ieee80211_vif *vif,
                                struct ieee80211_sta *sta)
index 0c323a0..3f0b9c7 100644 (file)
@@ -58,7 +58,6 @@ int mt76x2_init_hardware(struct mt76x02_dev *dev);
 void mt76x2_stop_hardware(struct mt76x02_dev *dev);
 int mt76x2_eeprom_init(struct mt76x02_dev *dev);
 int mt76x2_apply_calibration_data(struct mt76x02_dev *dev, int channel);
-void mt76x2_set_tx_ackto(struct mt76x02_dev *dev);
 
 void mt76x2_phy_set_antenna(struct mt76x02_dev *dev);
 int mt76x2_phy_start(struct mt76x02_dev *dev);
index f561f59..41c0cb6 100644 (file)
@@ -153,7 +153,7 @@ static int mt76x2_mac_reset(struct mt76x02_dev *dev, bool hard)
                MT_CH_TIME_CFG_EIFS_AS_BUSY |
                FIELD_PREP(MT_CH_TIME_CFG_CH_TIMER_CLR, 1));
 
-       mt76x2_set_tx_ackto(dev);
+       mt76x02_set_tx_ackto(dev);
 
        return 0;
 }
@@ -260,23 +260,6 @@ mt76x2_power_on(struct mt76x02_dev *dev)
        mt76x2_power_on_rf(dev, 1);
 }
 
-void mt76x2_set_tx_ackto(struct mt76x02_dev *dev)
-{
-       u8 ackto, sifs, slottime = dev->slottime;
-
-       /* As defined by IEEE 802.11-2007 17.3.8.6 */
-       slottime += 3 * dev->coverage_class;
-       mt76_rmw_field(dev, MT_BKOFF_SLOT_CFG,
-                      MT_BKOFF_SLOT_CFG_SLOTTIME, slottime);
-
-       sifs = mt76_get_field(dev, MT_XIFS_TIME_CFG,
-                             MT_XIFS_TIME_CFG_OFDM_SIFS);
-
-       ackto = slottime + sifs;
-       mt76_rmw_field(dev, MT_TX_TIMEOUT_CFG,
-                      MT_TX_TIMEOUT_CFG_ACKTO, ackto);
-}
-
 int mt76x2_init_hardware(struct mt76x02_dev *dev)
 {
        int ret;
index b2c599d..f984bb0 100644 (file)
@@ -158,7 +158,7 @@ mt76x2_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
                int slottime = info->use_short_slot ? 9 : 20;
 
                dev->slottime = slottime;
-               mt76x2_set_tx_ackto(dev);
+               mt76x02_set_tx_ackto(dev);
        }
 
        mutex_unlock(&dev->mt76.mutex);
@@ -170,17 +170,6 @@ mt76x2_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 {
 }
 
-static void mt76x2_set_coverage_class(struct ieee80211_hw *hw,
-                                     s16 coverage_class)
-{
-       struct mt76x02_dev *dev = hw->priv;
-
-       mutex_lock(&dev->mt76.mutex);
-       dev->coverage_class = coverage_class;
-       mt76x2_set_tx_ackto(dev);
-       mutex_unlock(&dev->mt76.mutex);
-}
-
 static int
 mt76x2_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, bool set)
 {
@@ -257,7 +246,7 @@ const struct ieee80211_ops mt76x2_ops = {
        .wake_tx_queue = mt76_wake_tx_queue,
        .sta_rate_tbl_update = mt76x02_sta_rate_tbl_update,
        .release_buffered_frames = mt76_release_buffered_frames,
-       .set_coverage_class = mt76x2_set_coverage_class,
+       .set_coverage_class = mt76x02_set_coverage_class,
        .get_survey = mt76_get_survey,
        .set_tim = mt76x2_set_tim,
        .set_antenna = mt76x2_set_antenna,