]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
mt76: move mt76x02_phy_adjust_vga_gain in mt76/mt76x02_phy.c
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Fri, 12 Oct 2018 10:16:25 +0000 (12:16 +0200)
committerFelix Fietkau <nbd@nbd.name>
Sat, 13 Oct 2018 15:39:49 +0000 (17:39 +0200)
Move mt76x02_phy_adjust_vga_gain routine in mt76x02-lib module
in order to be reused by mt76x0 driver for vga calibration

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76x02_phy.c
drivers/net/wireless/mediatek/mt76/mt76x02_phy.h
drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c

index b0c78ab97ad7d7e6e91fd3b9a67e106219fa6917..97310da37d77d50844d7438bde897e2988aafebe 100644 (file)
@@ -223,3 +223,24 @@ void mt76x02_phy_set_band(struct mt76x02_dev *dev, int band,
                       primary_upper);
 }
 EXPORT_SYMBOL_GPL(mt76x02_phy_set_band);
+
+bool mt76x02_phy_adjust_vga_gain(struct mt76x02_dev *dev)
+{
+       u8 limit = dev->cal.low_gain > 0 ? 16 : 4;
+       bool ret = false;
+       u32 false_cca;
+
+       false_cca = FIELD_GET(MT_RX_STAT_1_CCA_ERRORS, mt76_rr(dev, MT_RX_STAT_1));
+       dev->cal.false_cca = false_cca;
+       if (false_cca > 800 && dev->cal.agc_gain_adjust < limit) {
+               dev->cal.agc_gain_adjust += 2;
+               ret = true;
+       } else if ((false_cca < 10 && dev->cal.agc_gain_adjust > 0) ||
+                  (dev->cal.agc_gain_adjust >= limit && false_cca < 500)) {
+               dev->cal.agc_gain_adjust -= 2;
+               ret = true;
+       }
+
+       return ret;
+}
+EXPORT_SYMBOL_GPL(mt76x02_phy_adjust_vga_gain);
index 3a5ba5d209baac99c0986e432c83182fad88760c..8e3a0f93ca803fc52c0f6d70ddf483a507cd0a2a 100644 (file)
@@ -55,5 +55,6 @@ int mt76x02_phy_get_min_avg_rssi(struct mt76x02_dev *dev);
 void mt76x02_phy_set_bw(struct mt76x02_dev *dev, int width, u8 ctrl);
 void mt76x02_phy_set_band(struct mt76x02_dev *dev, int band,
                          bool primary_upper);
+bool mt76x02_phy_adjust_vga_gain(struct mt76x02_dev *dev);
 
 #endif /* __MT76x02_PHY_H */
index 86b87d896b468d147ae93ef3a4d5b317e27231f4..818d2f3e8ac9d9d441030a366426bc81fbd01bf4 100644 (file)
@@ -156,25 +156,6 @@ mt76x2_phy_set_gain_val(struct mt76x02_dev *dev)
                mt76x2_dfs_adjust_agc(dev);
 }
 
-static void
-mt76x2_phy_adjust_vga_gain(struct mt76x02_dev *dev)
-{
-       u32 false_cca;
-       u8 limit = dev->cal.low_gain > 0 ? 16 : 4;
-
-       false_cca = FIELD_GET(MT_RX_STAT_1_CCA_ERRORS, mt76_rr(dev, MT_RX_STAT_1));
-       dev->cal.false_cca = false_cca;
-       if (false_cca > 800 && dev->cal.agc_gain_adjust < limit)
-               dev->cal.agc_gain_adjust += 2;
-       else if ((false_cca < 10 && dev->cal.agc_gain_adjust > 0) ||
-                (dev->cal.agc_gain_adjust >= limit && false_cca < 500))
-               dev->cal.agc_gain_adjust -= 2;
-       else
-               return;
-
-       mt76x2_phy_set_gain_val(dev);
-}
-
 static void
 mt76x2_phy_update_channel_gain(struct mt76x02_dev *dev)
 {
@@ -193,7 +174,8 @@ mt76x2_phy_update_channel_gain(struct mt76x02_dev *dev)
        dev->cal.low_gain = low_gain;
 
        if (!gain_change) {
-               mt76x2_phy_adjust_vga_gain(dev);
+               if (mt76x02_phy_adjust_vga_gain(dev))
+                       mt76x2_phy_set_gain_val(dev);
                return;
        }