Commit b376d963 authored by Felix Fietkau's avatar Felix Fietkau

wifi: mt76: move mt76_rate_power from core to mt76x02 driver code

Its layout and code is mt76x02 specific
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 94b9b9de
...@@ -100,23 +100,6 @@ void mt76_seq_puts_array(struct seq_file *file, const char *str, ...@@ -100,23 +100,6 @@ void mt76_seq_puts_array(struct seq_file *file, const char *str,
} }
EXPORT_SYMBOL_GPL(mt76_seq_puts_array); EXPORT_SYMBOL_GPL(mt76_seq_puts_array);
static int mt76_read_rate_txpower(struct seq_file *s, void *data)
{
struct mt76_dev *dev = dev_get_drvdata(s->private);
mt76_seq_puts_array(s, "CCK", dev->rate_power.cck,
ARRAY_SIZE(dev->rate_power.cck));
mt76_seq_puts_array(s, "OFDM", dev->rate_power.ofdm,
ARRAY_SIZE(dev->rate_power.ofdm));
mt76_seq_puts_array(s, "STBC", dev->rate_power.stbc,
ARRAY_SIZE(dev->rate_power.stbc));
mt76_seq_puts_array(s, "HT", dev->rate_power.ht,
ARRAY_SIZE(dev->rate_power.ht));
mt76_seq_puts_array(s, "VHT", dev->rate_power.vht,
ARRAY_SIZE(dev->rate_power.vht));
return 0;
}
struct dentry * struct dentry *
mt76_register_debugfs_fops(struct mt76_phy *phy, mt76_register_debugfs_fops(struct mt76_phy *phy,
const struct file_operations *ops) const struct file_operations *ops)
...@@ -137,8 +120,6 @@ mt76_register_debugfs_fops(struct mt76_phy *phy, ...@@ -137,8 +120,6 @@ mt76_register_debugfs_fops(struct mt76_phy *phy,
debugfs_create_blob("eeprom", 0400, dir, &dev->eeprom); debugfs_create_blob("eeprom", 0400, dir, &dev->eeprom);
if (dev->otp.data) if (dev->otp.data)
debugfs_create_blob("otp", 0400, dir, &dev->otp); debugfs_create_blob("otp", 0400, dir, &dev->otp);
debugfs_create_devm_seqfile(dev->dev, "rate_txpower", dir,
mt76_read_rate_txpower);
debugfs_create_devm_seqfile(dev->dev, "rx-queues", dir, debugfs_create_devm_seqfile(dev->dev, "rx-queues", dir,
mt76_rx_queues_read); mt76_rx_queues_read);
......
...@@ -470,19 +470,6 @@ struct mt76_sband { ...@@ -470,19 +470,6 @@ struct mt76_sband {
struct mt76_channel_state *chan; struct mt76_channel_state *chan;
}; };
struct mt76_rate_power {
union {
struct {
s8 cck[4];
s8 ofdm[8];
s8 stbc[10];
s8 ht[16];
s8 vht[10];
};
s8 all[48];
};
};
/* addr req mask */ /* addr req mask */
#define MT_VEND_TYPE_EEPROM BIT(31) #define MT_VEND_TYPE_EEPROM BIT(31)
#define MT_VEND_TYPE_CFG BIT(30) #define MT_VEND_TYPE_CFG BIT(30)
...@@ -802,8 +789,6 @@ struct mt76_dev { ...@@ -802,8 +789,6 @@ struct mt76_dev {
struct debugfs_blob_wrapper eeprom; struct debugfs_blob_wrapper eeprom;
struct debugfs_blob_wrapper otp; struct debugfs_blob_wrapper otp;
struct mt76_rate_power rate_power;
char alpha2[3]; char alpha2[3];
enum nl80211_dfs_regions region; enum nl80211_dfs_regions region;
......
...@@ -151,7 +151,7 @@ static s8 mt76x0_get_delta(struct mt76x02_dev *dev) ...@@ -151,7 +151,7 @@ static s8 mt76x0_get_delta(struct mt76x02_dev *dev)
void mt76x0_get_tx_power_per_rate(struct mt76x02_dev *dev, void mt76x0_get_tx_power_per_rate(struct mt76x02_dev *dev,
struct ieee80211_channel *chan, struct ieee80211_channel *chan,
struct mt76_rate_power *t) struct mt76x02_rate_power *t)
{ {
bool is_2ghz = chan->band == NL80211_BAND_2GHZ; bool is_2ghz = chan->band == NL80211_BAND_2GHZ;
u16 val, addr; u16 val, addr;
...@@ -235,7 +235,7 @@ void mt76x0_get_power_info(struct mt76x02_dev *dev, ...@@ -235,7 +235,7 @@ void mt76x0_get_power_info(struct mt76x02_dev *dev,
data = mt76x02_eeprom_get(dev, MT_EE_5G_TARGET_POWER); data = mt76x02_eeprom_get(dev, MT_EE_5G_TARGET_POWER);
else else
data = mt76x02_eeprom_get(dev, MT_EE_2G_TARGET_POWER); data = mt76x02_eeprom_get(dev, MT_EE_2G_TARGET_POWER);
target_power = (data & 0xff) - dev->mt76.rate_power.ofdm[7]; target_power = (data & 0xff) - dev->rate_power.ofdm[7];
*tp = target_power + mt76x0_get_delta(dev); *tp = target_power + mt76x0_get_delta(dev);
return; return;
......
...@@ -19,7 +19,7 @@ int mt76x0_eeprom_init(struct mt76x02_dev *dev); ...@@ -19,7 +19,7 @@ int mt76x0_eeprom_init(struct mt76x02_dev *dev);
void mt76x0_read_rx_gain(struct mt76x02_dev *dev); void mt76x0_read_rx_gain(struct mt76x02_dev *dev);
void mt76x0_get_tx_power_per_rate(struct mt76x02_dev *dev, void mt76x0_get_tx_power_per_rate(struct mt76x02_dev *dev,
struct ieee80211_channel *chan, struct ieee80211_channel *chan,
struct mt76_rate_power *t); struct mt76x02_rate_power *t);
void mt76x0_get_power_info(struct mt76x02_dev *dev, void mt76x0_get_power_info(struct mt76x02_dev *dev,
struct ieee80211_channel *chan, s8 *tp); struct ieee80211_channel *chan, s8 *tp);
......
...@@ -217,7 +217,7 @@ mt76x0_init_txpower(struct mt76x02_dev *dev, ...@@ -217,7 +217,7 @@ mt76x0_init_txpower(struct mt76x02_dev *dev,
struct ieee80211_supported_band *sband) struct ieee80211_supported_band *sband)
{ {
struct ieee80211_channel *chan; struct ieee80211_channel *chan;
struct mt76_rate_power t; struct mt76x02_rate_power t;
s8 tp; s8 tp;
int i; int i;
......
...@@ -598,7 +598,7 @@ mt76x0_phy_get_target_power(struct mt76x02_dev *dev, u8 tx_mode, ...@@ -598,7 +598,7 @@ mt76x0_phy_get_target_power(struct mt76x02_dev *dev, u8 tx_mode,
if (tx_rate > 3) if (tx_rate > 3)
return -EINVAL; return -EINVAL;
*target_power = cur_power + dev->mt76.rate_power.cck[tx_rate]; *target_power = cur_power + dev->rate_power.cck[tx_rate];
*target_pa_power = mt76x0_phy_get_rf_pa_mode(dev, 0, tx_rate); *target_pa_power = mt76x0_phy_get_rf_pa_mode(dev, 0, tx_rate);
break; break;
case 1: { case 1: {
...@@ -635,7 +635,7 @@ mt76x0_phy_get_target_power(struct mt76x02_dev *dev, u8 tx_mode, ...@@ -635,7 +635,7 @@ mt76x0_phy_get_target_power(struct mt76x02_dev *dev, u8 tx_mode,
return -EINVAL; return -EINVAL;
} }
*target_power = cur_power + dev->mt76.rate_power.ofdm[index]; *target_power = cur_power + dev->rate_power.ofdm[index];
*target_pa_power = mt76x0_phy_get_rf_pa_mode(dev, 0, index + 4); *target_pa_power = mt76x0_phy_get_rf_pa_mode(dev, 0, index + 4);
break; break;
} }
...@@ -645,7 +645,7 @@ mt76x0_phy_get_target_power(struct mt76x02_dev *dev, u8 tx_mode, ...@@ -645,7 +645,7 @@ mt76x0_phy_get_target_power(struct mt76x02_dev *dev, u8 tx_mode,
if (tx_rate > 9) if (tx_rate > 9)
return -EINVAL; return -EINVAL;
*target_power = cur_power + dev->mt76.rate_power.vht[tx_rate]; *target_power = cur_power + dev->rate_power.vht[tx_rate];
*target_pa_power = mt76x0_phy_get_rf_pa_mode(dev, 1, tx_rate); *target_pa_power = mt76x0_phy_get_rf_pa_mode(dev, 1, tx_rate);
break; break;
default: default:
...@@ -654,7 +654,7 @@ mt76x0_phy_get_target_power(struct mt76x02_dev *dev, u8 tx_mode, ...@@ -654,7 +654,7 @@ mt76x0_phy_get_target_power(struct mt76x02_dev *dev, u8 tx_mode,
if (tx_rate > 9) if (tx_rate > 9)
return -EINVAL; return -EINVAL;
*target_power = cur_power + dev->mt76.rate_power.ht[tx_rate]; *target_power = cur_power + dev->rate_power.ht[tx_rate];
*target_pa_power = mt76x0_phy_get_rf_pa_mode(dev, 1, tx_rate); *target_pa_power = mt76x0_phy_get_rf_pa_mode(dev, 1, tx_rate);
break; break;
} }
...@@ -841,7 +841,7 @@ static void mt76x0_phy_tssi_calibrate(struct mt76x02_dev *dev) ...@@ -841,7 +841,7 @@ static void mt76x0_phy_tssi_calibrate(struct mt76x02_dev *dev)
void mt76x0_phy_set_txpower(struct mt76x02_dev *dev) void mt76x0_phy_set_txpower(struct mt76x02_dev *dev)
{ {
struct mt76_rate_power *t = &dev->mt76.rate_power; struct mt76x02_rate_power *t = &dev->rate_power;
s8 info; s8 info;
mt76x0_get_tx_power_per_rate(dev, dev->mphy.chandef.chan, t); mt76x0_get_tx_power_per_rate(dev, dev->mphy.chandef.chan, t);
......
...@@ -72,6 +72,19 @@ struct mt76x02_beacon_ops { ...@@ -72,6 +72,19 @@ struct mt76x02_beacon_ops {
#define mt76x02_pre_tbtt_enable(dev, enable) \ #define mt76x02_pre_tbtt_enable(dev, enable) \
(dev)->beacon_ops->pre_tbtt_enable(dev, enable) (dev)->beacon_ops->pre_tbtt_enable(dev, enable)
struct mt76x02_rate_power {
union {
struct {
s8 cck[4];
s8 ofdm[8];
s8 stbc[10];
s8 ht[16];
s8 vht[10];
};
s8 all[48];
};
};
struct mt76x02_dev { struct mt76x02_dev {
union { /* must be first */ union { /* must be first */
struct mt76_dev mt76; struct mt76_dev mt76;
...@@ -107,6 +120,8 @@ struct mt76x02_dev { ...@@ -107,6 +120,8 @@ struct mt76x02_dev {
u8 beacon_hang_check; u8 beacon_hang_check;
u8 mcu_timeout; u8 mcu_timeout;
struct mt76x02_rate_power rate_power;
struct mt76x02_calibration cal; struct mt76x02_calibration cal;
int txpower_conf; int txpower_conf;
......
...@@ -114,6 +114,23 @@ mt76_edcca_get(void *data, u64 *val) ...@@ -114,6 +114,23 @@ mt76_edcca_get(void *data, u64 *val)
DEFINE_DEBUGFS_ATTRIBUTE(fops_edcca, mt76_edcca_get, mt76_edcca_set, DEFINE_DEBUGFS_ATTRIBUTE(fops_edcca, mt76_edcca_get, mt76_edcca_set,
"%lld\n"); "%lld\n");
static int mt76x02_read_rate_txpower(struct seq_file *s, void *data)
{
struct mt76x02_dev *dev = dev_get_drvdata(s->private);
mt76_seq_puts_array(s, "CCK", dev->rate_power.cck,
ARRAY_SIZE(dev->rate_power.cck));
mt76_seq_puts_array(s, "OFDM", dev->rate_power.ofdm,
ARRAY_SIZE(dev->rate_power.ofdm));
mt76_seq_puts_array(s, "STBC", dev->rate_power.stbc,
ARRAY_SIZE(dev->rate_power.stbc));
mt76_seq_puts_array(s, "HT", dev->rate_power.ht,
ARRAY_SIZE(dev->rate_power.ht));
mt76_seq_puts_array(s, "VHT", dev->rate_power.vht,
ARRAY_SIZE(dev->rate_power.vht));
return 0;
}
void mt76x02_init_debugfs(struct mt76x02_dev *dev) void mt76x02_init_debugfs(struct mt76x02_dev *dev)
{ {
struct dentry *dir; struct dentry *dir;
...@@ -133,6 +150,8 @@ void mt76x02_init_debugfs(struct mt76x02_dev *dev) ...@@ -133,6 +150,8 @@ void mt76x02_init_debugfs(struct mt76x02_dev *dev)
debugfs_create_devm_seqfile(dev->mt76.dev, "txpower", dir, debugfs_create_devm_seqfile(dev->mt76.dev, "txpower", dir,
read_txpower); read_txpower);
debugfs_create_devm_seqfile(dev->mt76.dev, "rate_txpower", dir,
mt76x02_read_rate_txpower);
debugfs_create_devm_seqfile(dev->mt76.dev, "agc", dir, read_agc); debugfs_create_devm_seqfile(dev->mt76.dev, "agc", dir, read_agc);
debugfs_create_u32("tx_hang_reset", 0400, dir, &dev->tx_hang_reset); debugfs_create_u32("tx_hang_reset", 0400, dir, &dev->tx_hang_reset);
......
...@@ -59,7 +59,7 @@ mt76x02_tx_power_mask(u8 v1, u8 v2, u8 v3, u8 v4) ...@@ -59,7 +59,7 @@ mt76x02_tx_power_mask(u8 v1, u8 v2, u8 v3, u8 v4)
return val; return val;
} }
int mt76x02_get_max_rate_power(struct mt76_rate_power *r) int mt76x02_get_max_rate_power(struct mt76x02_rate_power *r)
{ {
s8 ret = 0; s8 ret = 0;
int i; int i;
...@@ -71,7 +71,7 @@ int mt76x02_get_max_rate_power(struct mt76_rate_power *r) ...@@ -71,7 +71,7 @@ int mt76x02_get_max_rate_power(struct mt76_rate_power *r)
} }
EXPORT_SYMBOL_GPL(mt76x02_get_max_rate_power); EXPORT_SYMBOL_GPL(mt76x02_get_max_rate_power);
void mt76x02_limit_rate_power(struct mt76_rate_power *r, int limit) void mt76x02_limit_rate_power(struct mt76x02_rate_power *r, int limit)
{ {
int i; int i;
...@@ -81,7 +81,7 @@ void mt76x02_limit_rate_power(struct mt76_rate_power *r, int limit) ...@@ -81,7 +81,7 @@ void mt76x02_limit_rate_power(struct mt76_rate_power *r, int limit)
} }
EXPORT_SYMBOL_GPL(mt76x02_limit_rate_power); EXPORT_SYMBOL_GPL(mt76x02_limit_rate_power);
void mt76x02_add_rate_power_offset(struct mt76_rate_power *r, int offset) void mt76x02_add_rate_power_offset(struct mt76x02_rate_power *r, int offset)
{ {
int i; int i;
...@@ -92,7 +92,7 @@ EXPORT_SYMBOL_GPL(mt76x02_add_rate_power_offset); ...@@ -92,7 +92,7 @@ EXPORT_SYMBOL_GPL(mt76x02_add_rate_power_offset);
void mt76x02_phy_set_txpower(struct mt76x02_dev *dev, int txp_0, int txp_1) void mt76x02_phy_set_txpower(struct mt76x02_dev *dev, int txp_0, int txp_1)
{ {
struct mt76_rate_power *t = &dev->mt76.rate_power; struct mt76x02_rate_power *t = &dev->rate_power;
mt76_rmw_field(dev, MT_TX_ALC_CFG_0, MT_TX_ALC_CFG_0_CH_INIT_0, txp_0); mt76_rmw_field(dev, MT_TX_ALC_CFG_0, MT_TX_ALC_CFG_0_CH_INIT_0, txp_0);
mt76_rmw_field(dev, MT_TX_ALC_CFG_0, MT_TX_ALC_CFG_0_CH_INIT_1, txp_1); mt76_rmw_field(dev, MT_TX_ALC_CFG_0, MT_TX_ALC_CFG_0_CH_INIT_1, txp_1);
......
...@@ -34,10 +34,10 @@ mt76x02_get_low_rssi_gain_thresh(struct mt76x02_dev *dev) ...@@ -34,10 +34,10 @@ mt76x02_get_low_rssi_gain_thresh(struct mt76x02_dev *dev)
} }
} }
void mt76x02_add_rate_power_offset(struct mt76_rate_power *r, int offset); void mt76x02_add_rate_power_offset(struct mt76x02_rate_power *r, int offset);
void mt76x02_phy_set_txpower(struct mt76x02_dev *dev, int txp_0, int txp_2); void mt76x02_phy_set_txpower(struct mt76x02_dev *dev, int txp_0, int txp_2);
void mt76x02_limit_rate_power(struct mt76_rate_power *r, int limit); void mt76x02_limit_rate_power(struct mt76x02_rate_power *r, int limit);
int mt76x02_get_max_rate_power(struct mt76_rate_power *r); int mt76x02_get_max_rate_power(struct mt76x02_rate_power *r);
void mt76x02_phy_set_rxpath(struct mt76x02_dev *dev); void mt76x02_phy_set_rxpath(struct mt76x02_dev *dev);
void mt76x02_phy_set_txdac(struct mt76x02_dev *dev); void mt76x02_phy_set_txdac(struct mt76x02_dev *dev);
void mt76x02_phy_set_bw(struct mt76x02_dev *dev, int width, u8 ctrl); void mt76x02_phy_set_bw(struct mt76x02_dev *dev, int width, u8 ctrl);
......
...@@ -62,23 +62,23 @@ s8 mt76x02_tx_get_max_txpwr_adj(struct mt76x02_dev *dev, ...@@ -62,23 +62,23 @@ s8 mt76x02_tx_get_max_txpwr_adj(struct mt76x02_dev *dev,
u8 mcs = ieee80211_rate_get_vht_mcs(rate); u8 mcs = ieee80211_rate_get_vht_mcs(rate);
if (mcs == 8 || mcs == 9) { if (mcs == 8 || mcs == 9) {
max_txpwr = dev->mt76.rate_power.vht[8]; max_txpwr = dev->rate_power.vht[8];
} else { } else {
u8 nss, idx; u8 nss, idx;
nss = ieee80211_rate_get_vht_nss(rate); nss = ieee80211_rate_get_vht_nss(rate);
idx = ((nss - 1) << 3) + mcs; idx = ((nss - 1) << 3) + mcs;
max_txpwr = dev->mt76.rate_power.ht[idx & 0xf]; max_txpwr = dev->rate_power.ht[idx & 0xf];
} }
} else if (rate->flags & IEEE80211_TX_RC_MCS) { } else if (rate->flags & IEEE80211_TX_RC_MCS) {
max_txpwr = dev->mt76.rate_power.ht[rate->idx & 0xf]; max_txpwr = dev->rate_power.ht[rate->idx & 0xf];
} else { } else {
enum nl80211_band band = dev->mphy.chandef.chan->band; enum nl80211_band band = dev->mphy.chandef.chan->band;
if (band == NL80211_BAND_2GHZ) { if (band == NL80211_BAND_2GHZ) {
const struct ieee80211_rate *r; const struct ieee80211_rate *r;
struct wiphy *wiphy = dev->mt76.hw->wiphy; struct wiphy *wiphy = dev->mt76.hw->wiphy;
struct mt76_rate_power *rp = &dev->mt76.rate_power; struct mt76x02_rate_power *rp = &dev->rate_power;
r = &wiphy->bands[band]->bitrates[rate->idx]; r = &wiphy->bands[band]->bitrates[rate->idx];
if (r->flags & IEEE80211_RATE_SHORT_PREAMBLE) if (r->flags & IEEE80211_RATE_SHORT_PREAMBLE)
...@@ -86,7 +86,7 @@ s8 mt76x02_tx_get_max_txpwr_adj(struct mt76x02_dev *dev, ...@@ -86,7 +86,7 @@ s8 mt76x02_tx_get_max_txpwr_adj(struct mt76x02_dev *dev,
else else
max_txpwr = rp->ofdm[r->hw_value & 0x7]; max_txpwr = rp->ofdm[r->hw_value & 0x7];
} else { } else {
max_txpwr = dev->mt76.rate_power.ofdm[rate->idx & 0x7]; max_txpwr = dev->rate_power.ofdm[rate->idx & 0x7];
} }
} }
...@@ -112,7 +112,7 @@ void mt76x02_tx_set_txpwr_auto(struct mt76x02_dev *dev, s8 txpwr) ...@@ -112,7 +112,7 @@ void mt76x02_tx_set_txpwr_auto(struct mt76x02_dev *dev, s8 txpwr)
s8 txpwr_adj; s8 txpwr_adj;
txpwr_adj = mt76x02_tx_get_txpwr_adj(dev, txpwr, txpwr_adj = mt76x02_tx_get_txpwr_adj(dev, txpwr,
dev->mt76.rate_power.ofdm[4]); dev->rate_power.ofdm[4]);
mt76_rmw_field(dev, MT_PROT_AUTO_TX_CFG, mt76_rmw_field(dev, MT_PROT_AUTO_TX_CFG,
MT_PROT_AUTO_TX_CFG_PROT_PADJ, txpwr_adj); MT_PROT_AUTO_TX_CFG_PROT_PADJ, txpwr_adj);
mt76_rmw_field(dev, MT_PROT_AUTO_TX_CFG, mt76_rmw_field(dev, MT_PROT_AUTO_TX_CFG,
......
...@@ -280,7 +280,7 @@ void mt76x2_read_rx_gain(struct mt76x02_dev *dev) ...@@ -280,7 +280,7 @@ void mt76x2_read_rx_gain(struct mt76x02_dev *dev)
} }
EXPORT_SYMBOL_GPL(mt76x2_read_rx_gain); EXPORT_SYMBOL_GPL(mt76x2_read_rx_gain);
void mt76x2_get_rate_power(struct mt76x02_dev *dev, struct mt76_rate_power *t, void mt76x2_get_rate_power(struct mt76x02_dev *dev, struct mt76x02_rate_power *t,
struct ieee80211_channel *chan) struct ieee80211_channel *chan)
{ {
bool is_5ghz; bool is_5ghz;
......
...@@ -40,7 +40,7 @@ struct mt76x2_temp_comp { ...@@ -40,7 +40,7 @@ struct mt76x2_temp_comp {
unsigned int low_slope; /* J / dB */ unsigned int low_slope; /* J / dB */
}; };
void mt76x2_get_rate_power(struct mt76x02_dev *dev, struct mt76_rate_power *t, void mt76x2_get_rate_power(struct mt76x02_dev *dev, struct mt76x02_rate_power *t,
struct ieee80211_channel *chan); struct ieee80211_channel *chan);
void mt76x2_get_power_info(struct mt76x02_dev *dev, void mt76x2_get_power_info(struct mt76x02_dev *dev,
struct mt76x2_tx_power_info *t, struct mt76x2_tx_power_info *t,
......
...@@ -182,7 +182,7 @@ void mt76x2_init_txpower(struct mt76x02_dev *dev, ...@@ -182,7 +182,7 @@ void mt76x2_init_txpower(struct mt76x02_dev *dev,
{ {
struct ieee80211_channel *chan; struct ieee80211_channel *chan;
struct mt76x2_tx_power_info txp; struct mt76x2_tx_power_info txp;
struct mt76_rate_power t = {}; struct mt76x02_rate_power t = {};
int i; int i;
for (i = 0; i < sband->n_channels; i++) { for (i = 0; i < sband->n_channels; i++) {
......
...@@ -116,7 +116,7 @@ void mt76x2_phy_set_txpower_regs(struct mt76x02_dev *dev, ...@@ -116,7 +116,7 @@ void mt76x2_phy_set_txpower_regs(struct mt76x02_dev *dev,
EXPORT_SYMBOL_GPL(mt76x2_phy_set_txpower_regs); EXPORT_SYMBOL_GPL(mt76x2_phy_set_txpower_regs);
static int static int
mt76x2_get_min_rate_power(struct mt76_rate_power *r) mt76x2_get_min_rate_power(struct mt76x02_rate_power *r)
{ {
int i; int i;
s8 ret = 0; s8 ret = 0;
...@@ -140,7 +140,7 @@ void mt76x2_phy_set_txpower(struct mt76x02_dev *dev) ...@@ -140,7 +140,7 @@ void mt76x2_phy_set_txpower(struct mt76x02_dev *dev)
struct ieee80211_channel *chan = dev->mphy.chandef.chan; struct ieee80211_channel *chan = dev->mphy.chandef.chan;
struct mt76x2_tx_power_info txp; struct mt76x2_tx_power_info txp;
int txp_0, txp_1, delta = 0; int txp_0, txp_1, delta = 0;
struct mt76_rate_power t = {}; struct mt76x02_rate_power t = {};
int base_power, gain; int base_power, gain;
mt76x2_get_power_info(dev, &txp, chan); mt76x2_get_power_info(dev, &txp, chan);
...@@ -175,7 +175,7 @@ void mt76x2_phy_set_txpower(struct mt76x02_dev *dev) ...@@ -175,7 +175,7 @@ void mt76x2_phy_set_txpower(struct mt76x02_dev *dev)
dev->target_power = txp.target_power; dev->target_power = txp.target_power;
dev->target_power_delta[0] = txp_0 - txp.chain[0].target_power; dev->target_power_delta[0] = txp_0 - txp.chain[0].target_power;
dev->target_power_delta[1] = txp_1 - txp.chain[0].target_power; dev->target_power_delta[1] = txp_1 - txp.chain[0].target_power;
dev->mt76.rate_power = t; dev->rate_power = t;
mt76x02_phy_set_txpower(dev, txp_0, txp_1); mt76x02_phy_set_txpower(dev, txp_0, txp_1);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment