mt76x0: eeprom: introduce mt76x0_tssi_enabled routine
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Fri, 12 Oct 2018 10:16:22 +0000 (12:16 +0200)
committerFelix Fietkau <nbd@nbd.name>
Sat, 13 Oct 2018 15:39:46 +0000 (17:39 +0200)
Add mt76x0_tssi_enabled in order to check if tssi compensation
is enabled since mt76x0 condition differs from mt76x2 one.
Moreover move back mt76x02_temp_tx_alc_enabled and mt76x02_tssi_enabled
routines in mt76x2/eeprom.h since they are mt76x2 specific

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

index 1defb07..ab4fd6e 100644 (file)
@@ -135,7 +135,7 @@ static s8 mt76x0_get_delta(struct mt76x02_dev *dev)
        struct cfg80211_chan_def *chandef = &dev->mt76.chandef;
        u8 val;
 
-       if (mt76x02_tssi_enabled(dev))
+       if (mt76x0_tssi_enabled(dev))
                return 0;
 
        if (chandef->width == NL80211_CHAN_WIDTH_80) {
index 40fd4e6..ee9ade9 100644 (file)
@@ -37,4 +37,10 @@ static inline s8 s6_to_s8(u32 val)
        return ret;
 }
 
+static inline bool mt76x0_tssi_enabled(struct mt76x02_dev *dev)
+{
+       return (mt76x02_eeprom_get(dev, MT_EE_NIC_CONF_1) &
+               MT_EE_NIC_CONF_1_TX_ALC_EN);
+}
+
 #endif
index 0fba43d..b3ec748 100644 (file)
@@ -179,27 +179,6 @@ mt76x02_eeprom_get(struct mt76x02_dev *dev,
        return get_unaligned_le16(dev->mt76.eeprom.data + field);
 }
 
-static inline bool
-mt76x02_temp_tx_alc_enabled(struct mt76x02_dev *dev)
-{
-       u16 val;
-
-       val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_EXT_PA_5G);
-       if (!(val & BIT(15)))
-               return false;
-
-       return mt76x02_eeprom_get(dev, MT_EE_NIC_CONF_1) &
-              MT_EE_NIC_CONF_1_TEMP_TX_ALC;
-}
-
-static inline bool
-mt76x02_tssi_enabled(struct mt76x02_dev *dev)
-{
-       return !mt76x02_temp_tx_alc_enabled(dev) &&
-              (mt76x02_eeprom_get(dev, MT_EE_NIC_CONF_1) &
-               MT_EE_NIC_CONF_1_TX_ALC_EN);
-}
-
 bool mt76x02_ext_pa_enabled(struct mt76x02_dev *dev, enum nl80211_band band);
 int mt76x02_get_efuse_data(struct mt76x02_dev *dev, u16 base, void *buf,
                           int len, enum mt76x02_eeprom_modes mode);
index 5fb9532..f39b622 100644 (file)
@@ -464,7 +464,7 @@ void mt76x2_get_power_info(struct mt76x02_dev *dev,
                                         MT_EE_TX_POWER_1_START_2G);
        }
 
-       if (mt76x02_tssi_enabled(dev) ||
+       if (mt76x2_tssi_enabled(dev) ||
            !mt76x02_field_valid(t->target_power))
                t->target_power = t->chain[0].target_power;
 
@@ -481,7 +481,7 @@ int mt76x2_get_temp_comp(struct mt76x02_dev *dev, struct mt76x2_temp_comp *t)
 
        memset(t, 0, sizeof(*t));
 
-       if (!mt76x02_temp_tx_alc_enabled(dev))
+       if (!mt76x2_temp_tx_alc_enabled(dev))
                return -EINVAL;
 
        if (!mt76x02_ext_pa_enabled(dev, band))
index 13bceb6..9e73552 100644 (file)
@@ -70,4 +70,25 @@ mt76x2_has_ext_lna(struct mt76x02_dev *dev)
                return val & MT_EE_NIC_CONF_1_LNA_EXT_5G;
 }
 
+static inline bool
+mt76x2_temp_tx_alc_enabled(struct mt76x02_dev *dev)
+{
+       u16 val;
+
+       val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_EXT_PA_5G);
+       if (!(val & BIT(15)))
+               return false;
+
+       return mt76x02_eeprom_get(dev, MT_EE_NIC_CONF_1) &
+              MT_EE_NIC_CONF_1_TEMP_TX_ALC;
+}
+
+static inline bool
+mt76x2_tssi_enabled(struct mt76x02_dev *dev)
+{
+       return !mt76x2_temp_tx_alc_enabled(dev) &&
+              (mt76x02_eeprom_get(dev, MT_EE_NIC_CONF_1) &
+               MT_EE_NIC_CONF_1_TX_ALC_EN);
+}
+
 #endif
index 5942cc7..55708b8 100644 (file)
@@ -26,7 +26,7 @@ mt76x2_phy_tssi_init_cal(struct mt76x02_dev *dev)
        struct ieee80211_channel *chan = dev->mt76.chandef.chan;
        u32 flag = 0;
 
-       if (!mt76x02_tssi_enabled(dev))
+       if (!mt76x2_tssi_enabled(dev))
                return false;
 
        if (mt76x2_channel_silent(dev))
@@ -391,7 +391,7 @@ int mt76x2_phy_set_channel(struct mt76x02_dev *dev,
               sizeof(dev->cal.agc_gain_cur));
 
        /* init default values for temp compensation */
-       if (mt76x02_tssi_enabled(dev)) {
+       if (mt76x2_tssi_enabled(dev)) {
                mt76_rmw_field(dev, MT_TX_ALC_CFG_1, MT_TX_ALC_CFG_1_TEMP_COMP,
                               0x38);
                mt76_rmw_field(dev, MT_TX_ALC_CFG_2, MT_TX_ALC_CFG_2_TEMP_COMP,
index c0c8c0a..ca96ba6 100644 (file)
@@ -202,7 +202,7 @@ int mt76x2u_phy_set_channel(struct mt76x02_dev *dev,
        if (scan)
                return 0;
 
-       if (mt76x02_tssi_enabled(dev)) {
+       if (mt76x2_tssi_enabled(dev)) {
                /* init default values for temp compensation */
                mt76_rmw_field(dev, MT_TX_ALC_CFG_1, MT_TX_ALC_CFG_1_TEMP_COMP,
                               0x38);