aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>2018-10-12 06:16:24 -0400
committerFelix Fietkau <nbd@nbd.name>2018-10-13 11:39:48 -0400
commitb225a9b6c27ef2a0ea4a5e7fce647c6017b8affb (patch)
treee5bb6ce5c7a880aa1edf2d651124fde07c1175f9 /drivers/net/wireless
parent66a34c66e0cbf53c9e5c8b8f4445bf6f271c4571 (diff)
mt76: move rssi_gain_thresh routines in mt76x02-lib module
Move mt76x2_get_rssi_gain_thresh and mt76x2_get_low_rssi_gain_thresh routines in mt76x02-lib module in order to be reused by mt76x0 driver for dynamic vga calibration Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x02_phy.h26
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c30
2 files changed, 28 insertions, 28 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_phy.h b/drivers/net/wireless/mediatek/mt76/mt76x02_phy.h
index 1a20c1852dbf..3a5ba5d209ba 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_phy.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_phy.h
@@ -19,6 +19,32 @@
19 19
20#include "mt76x02_regs.h" 20#include "mt76x02_regs.h"
21 21
22static inline int
23mt76x02_get_rssi_gain_thresh(struct mt76x02_dev *dev)
24{
25 switch (dev->mt76.chandef.width) {
26 case NL80211_CHAN_WIDTH_80:
27 return -62;
28 case NL80211_CHAN_WIDTH_40:
29 return -65;
30 default:
31 return -68;
32 }
33}
34
35static inline int
36mt76x02_get_low_rssi_gain_thresh(struct mt76x02_dev *dev)
37{
38 switch (dev->mt76.chandef.width) {
39 case NL80211_CHAN_WIDTH_80:
40 return -76;
41 case NL80211_CHAN_WIDTH_40:
42 return -79;
43 default:
44 return -82;
45 }
46}
47
22void mt76x02_add_rate_power_offset(struct mt76_rate_power *r, int offset); 48void mt76x02_add_rate_power_offset(struct mt76_rate_power *r, int offset);
23void mt76x02_phy_set_txpower(struct mt76x02_dev *dev, int txp_0, int txp_2); 49void mt76x02_phy_set_txpower(struct mt76x02_dev *dev, int txp_0, int txp_2);
24void mt76x02_limit_rate_power(struct mt76_rate_power *r, int limit); 50void mt76x02_limit_rate_power(struct mt76_rate_power *r, int limit);
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c b/drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
index 55708b8e6e10..86b87d896b46 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
@@ -131,32 +131,6 @@ mt76x2_get_agc_gain(struct mt76x02_dev *dev, u8 *dest)
131 dest[1] = mt76_get_field(dev, MT_BBP(AGC, 9), MT_BBP_AGC_GAIN); 131 dest[1] = mt76_get_field(dev, MT_BBP(AGC, 9), MT_BBP_AGC_GAIN);
132} 132}
133 133
134static int
135mt76x2_get_rssi_gain_thresh(struct mt76x02_dev *dev)
136{
137 switch (dev->mt76.chandef.width) {
138 case NL80211_CHAN_WIDTH_80:
139 return -62;
140 case NL80211_CHAN_WIDTH_40:
141 return -65;
142 default:
143 return -68;
144 }
145}
146
147static int
148mt76x2_get_low_rssi_gain_thresh(struct mt76x02_dev *dev)
149{
150 switch (dev->mt76.chandef.width) {
151 case NL80211_CHAN_WIDTH_80:
152 return -76;
153 case NL80211_CHAN_WIDTH_40:
154 return -79;
155 default:
156 return -82;
157 }
158}
159
160static void 134static void
161mt76x2_phy_set_gain_val(struct mt76x02_dev *dev) 135mt76x2_phy_set_gain_val(struct mt76x02_dev *dev)
162{ 136{
@@ -212,8 +186,8 @@ mt76x2_phy_update_channel_gain(struct mt76x02_dev *dev)
212 186
213 dev->cal.avg_rssi_all = mt76x02_phy_get_min_avg_rssi(dev); 187 dev->cal.avg_rssi_all = mt76x02_phy_get_min_avg_rssi(dev);
214 188
215 low_gain = (dev->cal.avg_rssi_all > mt76x2_get_rssi_gain_thresh(dev)) + 189 low_gain = (dev->cal.avg_rssi_all > mt76x02_get_rssi_gain_thresh(dev)) +
216 (dev->cal.avg_rssi_all > mt76x2_get_low_rssi_gain_thresh(dev)); 190 (dev->cal.avg_rssi_all > mt76x02_get_low_rssi_gain_thresh(dev));
217 191
218 gain_change = (dev->cal.low_gain & 2) ^ (low_gain & 2); 192 gain_change = (dev->cal.low_gain & 2) ^ (low_gain & 2);
219 dev->cal.low_gain = low_gain; 193 dev->cal.low_gain = low_gain;