aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>2018-10-07 05:45:19 -0400
committerFelix Fietkau <nbd@nbd.name>2018-10-13 11:39:18 -0400
commitbfdff5d03e9bc6837acd0bad574cb263d6e345c3 (patch)
tree2eba4a11c578c29e0bfddf11c123a72d3060fb4a /drivers/net/wireless
parent499cd0aa3ba60e202abf233d7a7b5e8a4b725d37 (diff)
mt76: use mt76x02_dev instead of mt76_dev in mt76x02_phy.c
Use mt76x02_dev data structure as reference in mt76x02_phy.c instead of mt76_dev 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/mt76x0/phy.c8
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x02_phy.c89
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x02_phy.h8
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c2
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x2/phy.c2
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c4
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c2
7 files changed, 56 insertions, 59 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
index d5fe248e7839..fdf1b3482fd0 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
@@ -618,7 +618,7 @@ void mt76x0_phy_set_txpower(struct mt76x02_dev *dev)
618 dev->mt76.txpower_cur = mt76x02_get_max_rate_power(t); 618 dev->mt76.txpower_cur = mt76x02_get_max_rate_power(t);
619 mt76x02_add_rate_power_offset(t, -info[0]); 619 mt76x02_add_rate_power_offset(t, -info[0]);
620 620
621 mt76x02_phy_set_txpower(&dev->mt76, info[0], info[1]); 621 mt76x02_phy_set_txpower(dev, info[0], info[1]);
622} 622}
623 623
624int mt76x0_phy_set_channel(struct mt76x02_dev *dev, 624int mt76x0_phy_set_channel(struct mt76x02_dev *dev,
@@ -815,7 +815,7 @@ static void mt76x0_dynamic_vga_tuning(struct mt76x02_dev *dev)
815 int avg_rssi; 815 int avg_rssi;
816 816
817 init_vga = chandef->chan->band == NL80211_BAND_5GHZ ? 0x54 : 0x4E; 817 init_vga = chandef->chan->band == NL80211_BAND_5GHZ ? 0x54 : 0x4E;
818 avg_rssi = mt76x02_phy_get_min_avg_rssi(&dev->mt76); 818 avg_rssi = mt76x02_phy_get_min_avg_rssi(dev);
819 if (avg_rssi > -60) 819 if (avg_rssi > -60)
820 init_vga -= 0x20; 820 init_vga -= 0x20;
821 else if (avg_rssi > -70) 821 else if (avg_rssi > -70)
@@ -897,6 +897,6 @@ void mt76x0_phy_init(struct mt76x02_dev *dev)
897 INIT_DELAYED_WORK(&dev->cal_work, mt76x0_phy_calibrate); 897 INIT_DELAYED_WORK(&dev->cal_work, mt76x0_phy_calibrate);
898 898
899 mt76x0_rf_init(dev); 899 mt76x0_rf_init(dev);
900 mt76x02_phy_set_rxpath(&dev->mt76); 900 mt76x02_phy_set_rxpath(dev);
901 mt76x02_phy_set_txdac(&dev->mt76); 901 mt76x02_phy_set_txdac(dev);
902} 902}
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_phy.c b/drivers/net/wireless/mediatek/mt76/mt76x02_phy.c
index d31ce1d7b689..c398471b6376 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_phy.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_phy.c
@@ -17,18 +17,17 @@
17 17
18#include <linux/kernel.h> 18#include <linux/kernel.h>
19 19
20#include "mt76.h" 20#include "mt76x02.h"
21#include "mt76x02_phy.h" 21#include "mt76x02_phy.h"
22#include "mt76x02_mac.h"
23 22
24void mt76x02_phy_set_rxpath(struct mt76_dev *dev) 23void mt76x02_phy_set_rxpath(struct mt76x02_dev *dev)
25{ 24{
26 u32 val; 25 u32 val;
27 26
28 val = __mt76_rr(dev, MT_BBP(AGC, 0)); 27 val = mt76_rr(dev, MT_BBP(AGC, 0));
29 val &= ~BIT(4); 28 val &= ~BIT(4);
30 29
31 switch (dev->chainmask & 0xf) { 30 switch (dev->mt76.chainmask & 0xf) {
32 case 2: 31 case 2:
33 val |= BIT(3); 32 val |= BIT(3);
34 break; 33 break;
@@ -37,23 +36,23 @@ void mt76x02_phy_set_rxpath(struct mt76_dev *dev)
37 break; 36 break;
38 } 37 }
39 38
40 __mt76_wr(dev, MT_BBP(AGC, 0), val); 39 mt76_wr(dev, MT_BBP(AGC, 0), val);
41 mb(); 40 mb();
42 val = __mt76_rr(dev, MT_BBP(AGC, 0)); 41 val = mt76_rr(dev, MT_BBP(AGC, 0));
43} 42}
44EXPORT_SYMBOL_GPL(mt76x02_phy_set_rxpath); 43EXPORT_SYMBOL_GPL(mt76x02_phy_set_rxpath);
45 44
46void mt76x02_phy_set_txdac(struct mt76_dev *dev) 45void mt76x02_phy_set_txdac(struct mt76x02_dev *dev)
47{ 46{
48 int txpath; 47 int txpath;
49 48
50 txpath = (dev->chainmask >> 8) & 0xf; 49 txpath = (dev->mt76.chainmask >> 8) & 0xf;
51 switch (txpath) { 50 switch (txpath) {
52 case 2: 51 case 2:
53 __mt76_set(dev, MT_BBP(TXBE, 5), 0x3); 52 mt76_set(dev, MT_BBP(TXBE, 5), 0x3);
54 break; 53 break;
55 default: 54 default:
56 __mt76_clear(dev, MT_BBP(TXBE, 5), 0x3); 55 mt76_clear(dev, MT_BBP(TXBE, 5), 0x3);
57 break; 56 break;
58 } 57 }
59} 58}
@@ -102,40 +101,38 @@ void mt76x02_add_rate_power_offset(struct mt76_rate_power *r, int offset)
102} 101}
103EXPORT_SYMBOL_GPL(mt76x02_add_rate_power_offset); 102EXPORT_SYMBOL_GPL(mt76x02_add_rate_power_offset);
104 103
105void mt76x02_phy_set_txpower(struct mt76_dev *dev, int txp_0, int txp_1) 104void mt76x02_phy_set_txpower(struct mt76x02_dev *dev, int txp_0, int txp_1)
106{ 105{
107 struct mt76_rate_power *t = &dev->rate_power; 106 struct mt76_rate_power *t = &dev->mt76.rate_power;
108 107
109 __mt76_rmw_field(dev, MT_TX_ALC_CFG_0, MT_TX_ALC_CFG_0_CH_INIT_0, 108 mt76_rmw_field(dev, MT_TX_ALC_CFG_0, MT_TX_ALC_CFG_0_CH_INIT_0, txp_0);
110 txp_0); 109 mt76_rmw_field(dev, MT_TX_ALC_CFG_0, MT_TX_ALC_CFG_0_CH_INIT_1, txp_1);
111 __mt76_rmw_field(dev, MT_TX_ALC_CFG_0, MT_TX_ALC_CFG_0_CH_INIT_1, 110
112 txp_1); 111 mt76_wr(dev, MT_TX_PWR_CFG_0,
113 112 mt76x02_tx_power_mask(t->cck[0], t->cck[2], t->ofdm[0],
114 __mt76_wr(dev, MT_TX_PWR_CFG_0, 113 t->ofdm[2]));
115 mt76x02_tx_power_mask(t->cck[0], t->cck[2], t->ofdm[0], 114 mt76_wr(dev, MT_TX_PWR_CFG_1,
116 t->ofdm[2])); 115 mt76x02_tx_power_mask(t->ofdm[4], t->ofdm[6], t->ht[0],
117 __mt76_wr(dev, MT_TX_PWR_CFG_1, 116 t->ht[2]));
118 mt76x02_tx_power_mask(t->ofdm[4], t->ofdm[6], t->ht[0], 117 mt76_wr(dev, MT_TX_PWR_CFG_2,
119 t->ht[2])); 118 mt76x02_tx_power_mask(t->ht[4], t->ht[6], t->ht[8],
120 __mt76_wr(dev, MT_TX_PWR_CFG_2, 119 t->ht[10]));
121 mt76x02_tx_power_mask(t->ht[4], t->ht[6], t->ht[8], 120 mt76_wr(dev, MT_TX_PWR_CFG_3,
122 t->ht[10])); 121 mt76x02_tx_power_mask(t->ht[12], t->ht[14], t->stbc[0],
123 __mt76_wr(dev, MT_TX_PWR_CFG_3, 122 t->stbc[2]));
124 mt76x02_tx_power_mask(t->ht[12], t->ht[14], t->stbc[0], 123 mt76_wr(dev, MT_TX_PWR_CFG_4,
125 t->stbc[2])); 124 mt76x02_tx_power_mask(t->stbc[4], t->stbc[6], 0, 0));
126 __mt76_wr(dev, MT_TX_PWR_CFG_4, 125 mt76_wr(dev, MT_TX_PWR_CFG_7,
127 mt76x02_tx_power_mask(t->stbc[4], t->stbc[6], 0, 0)); 126 mt76x02_tx_power_mask(t->ofdm[7], t->vht[8], t->ht[7],
128 __mt76_wr(dev, MT_TX_PWR_CFG_7, 127 t->vht[9]));
129 mt76x02_tx_power_mask(t->ofdm[7], t->vht[8], t->ht[7], 128 mt76_wr(dev, MT_TX_PWR_CFG_8,
130 t->vht[9])); 129 mt76x02_tx_power_mask(t->ht[14], 0, t->vht[8], t->vht[9]));
131 __mt76_wr(dev, MT_TX_PWR_CFG_8, 130 mt76_wr(dev, MT_TX_PWR_CFG_9,
132 mt76x02_tx_power_mask(t->ht[14], 0, t->vht[8], t->vht[9])); 131 mt76x02_tx_power_mask(t->ht[7], 0, t->stbc[8], t->stbc[9]));
133 __mt76_wr(dev, MT_TX_PWR_CFG_9,
134 mt76x02_tx_power_mask(t->ht[7], 0, t->stbc[8], t->stbc[9]));
135} 132}
136EXPORT_SYMBOL_GPL(mt76x02_phy_set_txpower); 133EXPORT_SYMBOL_GPL(mt76x02_phy_set_txpower);
137 134
138int mt76x02_phy_get_min_avg_rssi(struct mt76_dev *dev) 135int mt76x02_phy_get_min_avg_rssi(struct mt76x02_dev *dev)
139{ 136{
140 struct mt76x02_sta *sta; 137 struct mt76x02_sta *sta;
141 struct mt76_wcid *wcid; 138 struct mt76_wcid *wcid;
@@ -145,8 +142,8 @@ int mt76x02_phy_get_min_avg_rssi(struct mt76_dev *dev)
145 local_bh_disable(); 142 local_bh_disable();
146 rcu_read_lock(); 143 rcu_read_lock();
147 144
148 for (i = 0; i < ARRAY_SIZE(dev->wcid_mask); i++) { 145 for (i = 0; i < ARRAY_SIZE(dev->mt76.wcid_mask); i++) {
149 unsigned long mask = dev->wcid_mask[i]; 146 unsigned long mask = dev->mt76.wcid_mask[i];
150 147
151 if (!mask) 148 if (!mask)
152 continue; 149 continue;
@@ -155,17 +152,17 @@ int mt76x02_phy_get_min_avg_rssi(struct mt76_dev *dev)
155 if (!(mask & 1)) 152 if (!(mask & 1))
156 continue; 153 continue;
157 154
158 wcid = rcu_dereference(dev->wcid[j]); 155 wcid = rcu_dereference(dev->mt76.wcid[j]);
159 if (!wcid) 156 if (!wcid)
160 continue; 157 continue;
161 158
162 sta = container_of(wcid, struct mt76x02_sta, wcid); 159 sta = container_of(wcid, struct mt76x02_sta, wcid);
163 spin_lock(&dev->rx_lock); 160 spin_lock(&dev->mt76.rx_lock);
164 if (sta->inactive_count++ < 5) 161 if (sta->inactive_count++ < 5)
165 cur_rssi = ewma_signal_read(&sta->rssi); 162 cur_rssi = ewma_signal_read(&sta->rssi);
166 else 163 else
167 cur_rssi = 0; 164 cur_rssi = 0;
168 spin_unlock(&dev->rx_lock); 165 spin_unlock(&dev->mt76.rx_lock);
169 166
170 if (cur_rssi < min_rssi) 167 if (cur_rssi < min_rssi)
171 min_rssi = cur_rssi; 168 min_rssi = cur_rssi;
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_phy.h b/drivers/net/wireless/mediatek/mt76/mt76x02_phy.h
index e70ea6eeb077..c370b4cc68ee 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_phy.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_phy.h
@@ -20,11 +20,11 @@
20#include "mt76x02_regs.h" 20#include "mt76x02_regs.h"
21 21
22void mt76x02_add_rate_power_offset(struct mt76_rate_power *r, int offset); 22void mt76x02_add_rate_power_offset(struct mt76_rate_power *r, int offset);
23void mt76x02_phy_set_txpower(struct mt76_dev *dev, int txp_0, int txp_2); 23void 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); 24void mt76x02_limit_rate_power(struct mt76_rate_power *r, int limit);
25int mt76x02_get_max_rate_power(struct mt76_rate_power *r); 25int mt76x02_get_max_rate_power(struct mt76_rate_power *r);
26void mt76x02_phy_set_rxpath(struct mt76_dev *dev); 26void mt76x02_phy_set_rxpath(struct mt76x02_dev *dev);
27void mt76x02_phy_set_txdac(struct mt76_dev *dev); 27void mt76x02_phy_set_txdac(struct mt76x02_dev *dev);
28int mt76x02_phy_get_min_avg_rssi(struct mt76_dev *dev); 28int mt76x02_phy_get_min_avg_rssi(struct mt76x02_dev *dev);
29 29
30#endif /* __MT76x02_PHY_H */ 30#endif /* __MT76x02_PHY_H */
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c b/drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
index bdc6fba217b1..aff0363e0958 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
@@ -210,7 +210,7 @@ mt76x2_phy_update_channel_gain(struct mt76x02_dev *dev)
210 int low_gain; 210 int low_gain;
211 u32 val; 211 u32 val;
212 212
213 dev->cal.avg_rssi_all = mt76x02_phy_get_min_avg_rssi(&dev->mt76); 213 dev->cal.avg_rssi_all = mt76x02_phy_get_min_avg_rssi(dev);
214 214
215 low_gain = (dev->cal.avg_rssi_all > mt76x2_get_rssi_gain_thresh(dev)) + 215 low_gain = (dev->cal.avg_rssi_all > mt76x2_get_rssi_gain_thresh(dev)) +
216 (dev->cal.avg_rssi_all > mt76x2_get_low_rssi_gain_thresh(dev)); 216 (dev->cal.avg_rssi_all > mt76x2_get_low_rssi_gain_thresh(dev));
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/phy.c b/drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
index 31bf0f891028..93bcab7cccfd 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
@@ -187,7 +187,7 @@ void mt76x2_phy_set_txpower(struct mt76x02_dev *dev)
187 dev->target_power_delta[1] = txp_1 - txp.chain[0].target_power; 187 dev->target_power_delta[1] = txp_1 - txp.chain[0].target_power;
188 dev->mt76.rate_power = t; 188 dev->mt76.rate_power = t;
189 189
190 mt76x02_phy_set_txpower(&dev->mt76, txp_0, txp_1); 190 mt76x02_phy_set_txpower(dev, txp_0, txp_1);
191} 191}
192EXPORT_SYMBOL_GPL(mt76x2_phy_set_txpower); 192EXPORT_SYMBOL_GPL(mt76x2_phy_set_txpower);
193 193
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c
index 7578c7dcd62a..6214781714c4 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c
@@ -237,8 +237,8 @@ int mt76x2u_init_hardware(struct mt76x02_dev *dev)
237 if (err < 0) 237 if (err < 0)
238 return err; 238 return err;
239 239
240 mt76x02_phy_set_rxpath(&dev->mt76); 240 mt76x02_phy_set_rxpath(dev);
241 mt76x02_phy_set_txdac(&dev->mt76); 241 mt76x02_phy_set_txdac(dev);
242 242
243 return mt76x2u_mac_stop(dev); 243 return mt76x2u_mac_stop(dev);
244} 244}
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
index e0ffdd51dced..c4c437770fc9 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
@@ -69,7 +69,7 @@ mt76x2u_phy_update_channel_gain(struct mt76x02_dev *dev)
69 break; 69 break;
70 } 70 }
71 71
72 dev->cal.avg_rssi_all = mt76x02_phy_get_min_avg_rssi(&dev->mt76); 72 dev->cal.avg_rssi_all = mt76x02_phy_get_min_avg_rssi(dev);
73 false_cca = FIELD_GET(MT_RX_STAT_1_CCA_ERRORS, 73 false_cca = FIELD_GET(MT_RX_STAT_1_CCA_ERRORS,
74 mt76_rr(dev, MT_RX_STAT_1)); 74 mt76_rr(dev, MT_RX_STAT_1));
75 75