Skip to content

Commit e49b606

Browse files
committed
wifi: mt76: move mt76_rate_power from core to mt76x02 driver code
Its layout and code is mt76x02 specific Signed-off-by: Felix Fietkau <[email protected]>
1 parent 9d601f4 commit e49b606

15 files changed

+62
-62
lines changed

debugfs.c

-19
Original file line numberDiff line numberDiff line change
@@ -74,23 +74,6 @@ void mt76_seq_puts_array(struct seq_file *file, const char *str,
7474
}
7575
EXPORT_SYMBOL_GPL(mt76_seq_puts_array);
7676

77-
static int mt76_read_rate_txpower(struct seq_file *s, void *data)
78-
{
79-
struct mt76_dev *dev = dev_get_drvdata(s->private);
80-
81-
mt76_seq_puts_array(s, "CCK", dev->rate_power.cck,
82-
ARRAY_SIZE(dev->rate_power.cck));
83-
mt76_seq_puts_array(s, "OFDM", dev->rate_power.ofdm,
84-
ARRAY_SIZE(dev->rate_power.ofdm));
85-
mt76_seq_puts_array(s, "STBC", dev->rate_power.stbc,
86-
ARRAY_SIZE(dev->rate_power.stbc));
87-
mt76_seq_puts_array(s, "HT", dev->rate_power.ht,
88-
ARRAY_SIZE(dev->rate_power.ht));
89-
mt76_seq_puts_array(s, "VHT", dev->rate_power.vht,
90-
ARRAY_SIZE(dev->rate_power.vht));
91-
return 0;
92-
}
93-
9477
struct dentry *
9578
mt76_register_debugfs_fops(struct mt76_phy *phy,
9679
const struct file_operations *ops)
@@ -110,8 +93,6 @@ mt76_register_debugfs_fops(struct mt76_phy *phy,
11093
debugfs_create_blob("eeprom", 0400, dir, &dev->eeprom);
11194
if (dev->otp.data)
11295
debugfs_create_blob("otp", 0400, dir, &dev->otp);
113-
debugfs_create_devm_seqfile(dev->dev, "rate_txpower", dir,
114-
mt76_read_rate_txpower);
11596
debugfs_create_devm_seqfile(dev->dev, "rx-queues", dir,
11697
mt76_rx_queues_read);
11798

mt76.h

-15
Original file line numberDiff line numberDiff line change
@@ -470,19 +470,6 @@ struct mt76_sband {
470470
struct mt76_channel_state *chan;
471471
};
472472

473-
struct mt76_rate_power {
474-
union {
475-
struct {
476-
s8 cck[4];
477-
s8 ofdm[8];
478-
s8 stbc[10];
479-
s8 ht[16];
480-
s8 vht[10];
481-
};
482-
s8 all[48];
483-
};
484-
};
485-
486473
/* addr req mask */
487474
#define MT_VEND_TYPE_EEPROM BIT(31)
488475
#define MT_VEND_TYPE_CFG BIT(30)
@@ -802,8 +789,6 @@ struct mt76_dev {
802789
struct debugfs_blob_wrapper eeprom;
803790
struct debugfs_blob_wrapper otp;
804791

805-
struct mt76_rate_power rate_power;
806-
807792
char alpha2[3];
808793
enum nl80211_dfs_regions region;
809794

mt76x0/eeprom.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ static s8 mt76x0_get_delta(struct mt76x02_dev *dev)
151151

152152
void mt76x0_get_tx_power_per_rate(struct mt76x02_dev *dev,
153153
struct ieee80211_channel *chan,
154-
struct mt76_rate_power *t)
154+
struct mt76x02_rate_power *t)
155155
{
156156
bool is_2ghz = chan->band == NL80211_BAND_2GHZ;
157157
u16 val, addr;
@@ -235,7 +235,7 @@ void mt76x0_get_power_info(struct mt76x02_dev *dev,
235235
data = mt76x02_eeprom_get(dev, MT_EE_5G_TARGET_POWER);
236236
else
237237
data = mt76x02_eeprom_get(dev, MT_EE_2G_TARGET_POWER);
238-
target_power = (data & 0xff) - dev->mt76.rate_power.ofdm[7];
238+
target_power = (data & 0xff) - dev->rate_power.ofdm[7];
239239
*tp = target_power + mt76x0_get_delta(dev);
240240

241241
return;

mt76x0/eeprom.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ int mt76x0_eeprom_init(struct mt76x02_dev *dev);
1919
void mt76x0_read_rx_gain(struct mt76x02_dev *dev);
2020
void mt76x0_get_tx_power_per_rate(struct mt76x02_dev *dev,
2121
struct ieee80211_channel *chan,
22-
struct mt76_rate_power *t);
22+
struct mt76x02_rate_power *t);
2323
void mt76x0_get_power_info(struct mt76x02_dev *dev,
2424
struct ieee80211_channel *chan, s8 *tp);
2525

mt76x0/init.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ mt76x0_init_txpower(struct mt76x02_dev *dev,
217217
struct ieee80211_supported_band *sband)
218218
{
219219
struct ieee80211_channel *chan;
220-
struct mt76_rate_power t;
220+
struct mt76x02_rate_power t;
221221
s8 tp;
222222
int i;
223223

mt76x0/phy.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,7 @@ mt76x0_phy_get_target_power(struct mt76x02_dev *dev, u8 tx_mode,
598598
if (tx_rate > 3)
599599
return -EINVAL;
600600

601-
*target_power = cur_power + dev->mt76.rate_power.cck[tx_rate];
601+
*target_power = cur_power + dev->rate_power.cck[tx_rate];
602602
*target_pa_power = mt76x0_phy_get_rf_pa_mode(dev, 0, tx_rate);
603603
break;
604604
case 1: {
@@ -635,7 +635,7 @@ mt76x0_phy_get_target_power(struct mt76x02_dev *dev, u8 tx_mode,
635635
return -EINVAL;
636636
}
637637

638-
*target_power = cur_power + dev->mt76.rate_power.ofdm[index];
638+
*target_power = cur_power + dev->rate_power.ofdm[index];
639639
*target_pa_power = mt76x0_phy_get_rf_pa_mode(dev, 0, index + 4);
640640
break;
641641
}
@@ -645,7 +645,7 @@ mt76x0_phy_get_target_power(struct mt76x02_dev *dev, u8 tx_mode,
645645
if (tx_rate > 9)
646646
return -EINVAL;
647647

648-
*target_power = cur_power + dev->mt76.rate_power.vht[tx_rate];
648+
*target_power = cur_power + dev->rate_power.vht[tx_rate];
649649
*target_pa_power = mt76x0_phy_get_rf_pa_mode(dev, 1, tx_rate);
650650
break;
651651
default:
@@ -654,7 +654,7 @@ mt76x0_phy_get_target_power(struct mt76x02_dev *dev, u8 tx_mode,
654654
if (tx_rate > 9)
655655
return -EINVAL;
656656

657-
*target_power = cur_power + dev->mt76.rate_power.ht[tx_rate];
657+
*target_power = cur_power + dev->rate_power.ht[tx_rate];
658658
*target_pa_power = mt76x0_phy_get_rf_pa_mode(dev, 1, tx_rate);
659659
break;
660660
}
@@ -841,7 +841,7 @@ static void mt76x0_phy_tssi_calibrate(struct mt76x02_dev *dev)
841841

842842
void mt76x0_phy_set_txpower(struct mt76x02_dev *dev)
843843
{
844-
struct mt76_rate_power *t = &dev->mt76.rate_power;
844+
struct mt76x02_rate_power *t = &dev->rate_power;
845845
s8 info;
846846

847847
mt76x0_get_tx_power_per_rate(dev, dev->mphy.chandef.chan, t);

mt76x02.h

+15
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,19 @@ struct mt76x02_beacon_ops {
7272
#define mt76x02_pre_tbtt_enable(dev, enable) \
7373
(dev)->beacon_ops->pre_tbtt_enable(dev, enable)
7474

75+
struct mt76x02_rate_power {
76+
union {
77+
struct {
78+
s8 cck[4];
79+
s8 ofdm[8];
80+
s8 stbc[10];
81+
s8 ht[16];
82+
s8 vht[10];
83+
};
84+
s8 all[48];
85+
};
86+
};
87+
7588
struct mt76x02_dev {
7689
union { /* must be first */
7790
struct mt76_dev mt76;
@@ -107,6 +120,8 @@ struct mt76x02_dev {
107120
u8 beacon_hang_check;
108121
u8 mcu_timeout;
109122

123+
struct mt76x02_rate_power rate_power;
124+
110125
struct mt76x02_calibration cal;
111126

112127
int txpower_conf;

mt76x02_debugfs.c

+19
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,23 @@ mt76_edcca_get(void *data, u64 *val)
114114
DEFINE_DEBUGFS_ATTRIBUTE(fops_edcca, mt76_edcca_get, mt76_edcca_set,
115115
"%lld\n");
116116

117+
static int mt76x02_read_rate_txpower(struct seq_file *s, void *data)
118+
{
119+
struct mt76x02_dev *dev = dev_get_drvdata(s->private);
120+
121+
mt76_seq_puts_array(s, "CCK", dev->rate_power.cck,
122+
ARRAY_SIZE(dev->rate_power.cck));
123+
mt76_seq_puts_array(s, "OFDM", dev->rate_power.ofdm,
124+
ARRAY_SIZE(dev->rate_power.ofdm));
125+
mt76_seq_puts_array(s, "STBC", dev->rate_power.stbc,
126+
ARRAY_SIZE(dev->rate_power.stbc));
127+
mt76_seq_puts_array(s, "HT", dev->rate_power.ht,
128+
ARRAY_SIZE(dev->rate_power.ht));
129+
mt76_seq_puts_array(s, "VHT", dev->rate_power.vht,
130+
ARRAY_SIZE(dev->rate_power.vht));
131+
return 0;
132+
}
133+
117134
void mt76x02_init_debugfs(struct mt76x02_dev *dev)
118135
{
119136
struct dentry *dir;
@@ -133,6 +150,8 @@ void mt76x02_init_debugfs(struct mt76x02_dev *dev)
133150
debugfs_create_devm_seqfile(dev->mt76.dev, "txpower", dir,
134151
read_txpower);
135152

153+
debugfs_create_devm_seqfile(dev->mt76.dev, "rate_txpower", dir,
154+
mt76x02_read_rate_txpower);
136155
debugfs_create_devm_seqfile(dev->mt76.dev, "agc", dir, read_agc);
137156

138157
debugfs_create_u32("tx_hang_reset", 0400, dir, &dev->tx_hang_reset);

mt76x02_phy.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ mt76x02_tx_power_mask(u8 v1, u8 v2, u8 v3, u8 v4)
5959
return val;
6060
}
6161

62-
int mt76x02_get_max_rate_power(struct mt76_rate_power *r)
62+
int mt76x02_get_max_rate_power(struct mt76x02_rate_power *r)
6363
{
6464
s8 ret = 0;
6565
int i;
@@ -71,7 +71,7 @@ int mt76x02_get_max_rate_power(struct mt76_rate_power *r)
7171
}
7272
EXPORT_SYMBOL_GPL(mt76x02_get_max_rate_power);
7373

74-
void mt76x02_limit_rate_power(struct mt76_rate_power *r, int limit)
74+
void mt76x02_limit_rate_power(struct mt76x02_rate_power *r, int limit)
7575
{
7676
int i;
7777

@@ -81,7 +81,7 @@ void mt76x02_limit_rate_power(struct mt76_rate_power *r, int limit)
8181
}
8282
EXPORT_SYMBOL_GPL(mt76x02_limit_rate_power);
8383

84-
void mt76x02_add_rate_power_offset(struct mt76_rate_power *r, int offset)
84+
void mt76x02_add_rate_power_offset(struct mt76x02_rate_power *r, int offset)
8585
{
8686
int i;
8787

@@ -92,7 +92,7 @@ EXPORT_SYMBOL_GPL(mt76x02_add_rate_power_offset);
9292

9393
void mt76x02_phy_set_txpower(struct mt76x02_dev *dev, int txp_0, int txp_1)
9494
{
95-
struct mt76_rate_power *t = &dev->mt76.rate_power;
95+
struct mt76x02_rate_power *t = &dev->rate_power;
9696

9797
mt76_rmw_field(dev, MT_TX_ALC_CFG_0, MT_TX_ALC_CFG_0_CH_INIT_0, txp_0);
9898
mt76_rmw_field(dev, MT_TX_ALC_CFG_0, MT_TX_ALC_CFG_0_CH_INIT_1, txp_1);

mt76x02_phy.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ mt76x02_get_low_rssi_gain_thresh(struct mt76x02_dev *dev)
3434
}
3535
}
3636

37-
void mt76x02_add_rate_power_offset(struct mt76_rate_power *r, int offset);
37+
void mt76x02_add_rate_power_offset(struct mt76x02_rate_power *r, int offset);
3838
void mt76x02_phy_set_txpower(struct mt76x02_dev *dev, int txp_0, int txp_2);
39-
void mt76x02_limit_rate_power(struct mt76_rate_power *r, int limit);
40-
int mt76x02_get_max_rate_power(struct mt76_rate_power *r);
39+
void mt76x02_limit_rate_power(struct mt76x02_rate_power *r, int limit);
40+
int mt76x02_get_max_rate_power(struct mt76x02_rate_power *r);
4141
void mt76x02_phy_set_rxpath(struct mt76x02_dev *dev);
4242
void mt76x02_phy_set_txdac(struct mt76x02_dev *dev);
4343
void mt76x02_phy_set_bw(struct mt76x02_dev *dev, int width, u8 ctrl);

mt76x02_txrx.c

+6-6
Original file line numberDiff line numberDiff line change
@@ -62,31 +62,31 @@ s8 mt76x02_tx_get_max_txpwr_adj(struct mt76x02_dev *dev,
6262
u8 mcs = ieee80211_rate_get_vht_mcs(rate);
6363

6464
if (mcs == 8 || mcs == 9) {
65-
max_txpwr = dev->mt76.rate_power.vht[8];
65+
max_txpwr = dev->rate_power.vht[8];
6666
} else {
6767
u8 nss, idx;
6868

6969
nss = ieee80211_rate_get_vht_nss(rate);
7070
idx = ((nss - 1) << 3) + mcs;
71-
max_txpwr = dev->mt76.rate_power.ht[idx & 0xf];
71+
max_txpwr = dev->rate_power.ht[idx & 0xf];
7272
}
7373
} else if (rate->flags & IEEE80211_TX_RC_MCS) {
74-
max_txpwr = dev->mt76.rate_power.ht[rate->idx & 0xf];
74+
max_txpwr = dev->rate_power.ht[rate->idx & 0xf];
7575
} else {
7676
enum nl80211_band band = dev->mphy.chandef.chan->band;
7777

7878
if (band == NL80211_BAND_2GHZ) {
7979
const struct ieee80211_rate *r;
8080
struct wiphy *wiphy = dev->mt76.hw->wiphy;
81-
struct mt76_rate_power *rp = &dev->mt76.rate_power;
81+
struct mt76x02_rate_power *rp = &dev->rate_power;
8282

8383
r = &wiphy->bands[band]->bitrates[rate->idx];
8484
if (r->flags & IEEE80211_RATE_SHORT_PREAMBLE)
8585
max_txpwr = rp->cck[r->hw_value & 0x3];
8686
else
8787
max_txpwr = rp->ofdm[r->hw_value & 0x7];
8888
} else {
89-
max_txpwr = dev->mt76.rate_power.ofdm[rate->idx & 0x7];
89+
max_txpwr = dev->rate_power.ofdm[rate->idx & 0x7];
9090
}
9191
}
9292

@@ -112,7 +112,7 @@ void mt76x02_tx_set_txpwr_auto(struct mt76x02_dev *dev, s8 txpwr)
112112
s8 txpwr_adj;
113113

114114
txpwr_adj = mt76x02_tx_get_txpwr_adj(dev, txpwr,
115-
dev->mt76.rate_power.ofdm[4]);
115+
dev->rate_power.ofdm[4]);
116116
mt76_rmw_field(dev, MT_PROT_AUTO_TX_CFG,
117117
MT_PROT_AUTO_TX_CFG_PROT_PADJ, txpwr_adj);
118118
mt76_rmw_field(dev, MT_PROT_AUTO_TX_CFG,

mt76x2/eeprom.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ void mt76x2_read_rx_gain(struct mt76x02_dev *dev)
280280
}
281281
EXPORT_SYMBOL_GPL(mt76x2_read_rx_gain);
282282

283-
void mt76x2_get_rate_power(struct mt76x02_dev *dev, struct mt76_rate_power *t,
283+
void mt76x2_get_rate_power(struct mt76x02_dev *dev, struct mt76x02_rate_power *t,
284284
struct ieee80211_channel *chan)
285285
{
286286
bool is_5ghz;

mt76x2/eeprom.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ struct mt76x2_temp_comp {
4040
unsigned int low_slope; /* J / dB */
4141
};
4242

43-
void mt76x2_get_rate_power(struct mt76x02_dev *dev, struct mt76_rate_power *t,
43+
void mt76x2_get_rate_power(struct mt76x02_dev *dev, struct mt76x02_rate_power *t,
4444
struct ieee80211_channel *chan);
4545
void mt76x2_get_power_info(struct mt76x02_dev *dev,
4646
struct mt76x2_tx_power_info *t,

mt76x2/init.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ void mt76x2_init_txpower(struct mt76x02_dev *dev,
182182
{
183183
struct ieee80211_channel *chan;
184184
struct mt76x2_tx_power_info txp;
185-
struct mt76_rate_power t = {};
185+
struct mt76x02_rate_power t = {};
186186
int i;
187187

188188
for (i = 0; i < sband->n_channels; i++) {

mt76x2/phy.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ void mt76x2_phy_set_txpower_regs(struct mt76x02_dev *dev,
116116
EXPORT_SYMBOL_GPL(mt76x2_phy_set_txpower_regs);
117117

118118
static int
119-
mt76x2_get_min_rate_power(struct mt76_rate_power *r)
119+
mt76x2_get_min_rate_power(struct mt76x02_rate_power *r)
120120
{
121121
int i;
122122
s8 ret = 0;
@@ -140,7 +140,7 @@ void mt76x2_phy_set_txpower(struct mt76x02_dev *dev)
140140
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
141141
struct mt76x2_tx_power_info txp;
142142
int txp_0, txp_1, delta = 0;
143-
struct mt76_rate_power t = {};
143+
struct mt76x02_rate_power t = {};
144144
int base_power, gain;
145145

146146
mt76x2_get_power_info(dev, &txp, chan);
@@ -175,7 +175,7 @@ void mt76x2_phy_set_txpower(struct mt76x02_dev *dev)
175175
dev->target_power = txp.target_power;
176176
dev->target_power_delta[0] = txp_0 - txp.chain[0].target_power;
177177
dev->target_power_delta[1] = txp_1 - txp.chain[0].target_power;
178-
dev->mt76.rate_power = t;
178+
dev->rate_power = t;
179179

180180
mt76x02_phy_set_txpower(dev, txp_0, txp_1);
181181
}

0 commit comments

Comments
 (0)