Skip to content

Commit

Permalink
sync with upstream
Browse files Browse the repository at this point in the history
Signed-off-by: Felix Fietkau <nbd@nbd.name>
  • Loading branch information
nbd168 committed Dec 10, 2022
1 parent cdd7229 commit ec46d74
Show file tree
Hide file tree
Showing 35 changed files with 250 additions and 204 deletions.
28 changes: 28 additions & 0 deletions debugfs.c
Expand Up @@ -25,6 +25,32 @@ mt76_reg_get(void *data, u64 *val)
DEFINE_DEBUGFS_ATTRIBUTE(fops_regval, mt76_reg_get, mt76_reg_set,
"0x%08llx\n");

static int
mt76_napi_threaded_set(void *data, u64 val)
{
struct mt76_dev *dev = data;

if (!mt76_is_mmio(dev))
return -EOPNOTSUPP;

if (dev->napi_dev.threaded != val)
return dev_set_threaded(&dev->napi_dev, val);

return 0;
}

static int
mt76_napi_threaded_get(void *data, u64 *val)
{
struct mt76_dev *dev = data;

*val = dev->napi_dev.threaded;
return 0;
}

DEFINE_DEBUGFS_ATTRIBUTE(fops_napi_threaded, mt76_napi_threaded_get,
mt76_napi_threaded_set, "%llu\n");

int mt76_queues_read(struct seq_file *s, void *data)
{
struct mt76_dev *dev = dev_get_drvdata(s->private);
Expand Down Expand Up @@ -90,6 +116,8 @@ mt76_register_debugfs_fops(struct mt76_phy *phy,
debugfs_create_bool("led_active_low", 0600, dir, &dev->led_al);
debugfs_create_u32("regidx", 0600, dir, &dev->debugfs_reg);
debugfs_create_file_unsafe("regval", 0600, dir, dev, fops);
debugfs_create_file_unsafe("napi_threaded", 0600, dir, dev,
&fops_napi_threaded);
debugfs_create_blob("eeprom", 0400, dir, &dev->eeprom);
if (dev->otp.data)
debugfs_create_blob("otp", 0400, dir, &dev->otp);
Expand Down
2 changes: 1 addition & 1 deletion dma.c
Expand Up @@ -895,7 +895,7 @@ mt76_dma_init(struct mt76_dev *dev,
dev->napi_dev.threaded = 1;

mt76_for_each_q_rx(dev, i) {
netif_napi_add(&dev->napi_dev, &dev->napi[i], poll, 64);
netif_napi_add(&dev->napi_dev, &dev->napi[i], poll);
mt76_dma_rx_fill(dev, &dev->q_rx[i]);
napi_enable(&dev->napi[i]);
}
Expand Down
1 change: 0 additions & 1 deletion eeprom.c
Expand Up @@ -106,7 +106,6 @@ void
mt76_eeprom_override(struct mt76_phy *phy)
{
struct mt76_dev *dev = phy->dev;

struct device_node *np = dev->dev->of_node;

of_get_mac_address(np, phy->macaddr);
Expand Down
4 changes: 2 additions & 2 deletions mac80211.c
Expand Up @@ -1482,7 +1482,7 @@ EXPORT_SYMBOL_GPL(mt76_get_sar_power);
static void
__mt76_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
{
if (vif->csa_active && ieee80211_beacon_cntdwn_is_complete(vif))
if (vif->bss_conf.csa_active && ieee80211_beacon_cntdwn_is_complete(vif))
ieee80211_csa_finish(vif);
}

Expand All @@ -1504,7 +1504,7 @@ __mt76_csa_check(void *priv, u8 *mac, struct ieee80211_vif *vif)
{
struct mt76_dev *dev = priv;

if (!vif->csa_active)
if (!vif->bss_conf.csa_active)
return;

dev->csa_complete |= ieee80211_beacon_cntdwn_is_complete(vif);
Expand Down
2 changes: 1 addition & 1 deletion mt7603/beacon.c
Expand Up @@ -20,7 +20,7 @@ mt7603_update_beacon_iter(void *priv, u8 *mac, struct ieee80211_vif *vif)
if (!(mdev->beacon_mask & BIT(mvif->idx)))
return;

skb = ieee80211_beacon_get(mt76_hw(dev), vif);
skb = ieee80211_beacon_get(mt76_hw(dev), vif, 0);
if (!skb)
return;

Expand Down
4 changes: 2 additions & 2 deletions mt7603/dma.c
Expand Up @@ -223,8 +223,8 @@ int mt7603_dma_init(struct mt7603_dev *dev)
if (ret)
return ret;

netif_tx_napi_add(&dev->mt76.tx_napi_dev, &dev->mt76.tx_napi,
mt7603_poll_tx, NAPI_POLL_WEIGHT);
netif_napi_add_tx(&dev->mt76.tx_napi_dev, &dev->mt76.tx_napi,
mt7603_poll_tx);
napi_enable(&dev->mt76.tx_napi);

return 0;
Expand Down
16 changes: 9 additions & 7 deletions mt7603/mac.c
Expand Up @@ -326,19 +326,21 @@ void mt7603_wtbl_update_cap(struct mt7603_dev *dev, struct ieee80211_sta *sta)

addr = mt7603_wtbl1_addr(idx);

ampdu_density = sta->ht_cap.ampdu_density;
ampdu_density = sta->deflink.ht_cap.ampdu_density;
if (ampdu_density < IEEE80211_HT_MPDU_DENSITY_4)
ampdu_density = IEEE80211_HT_MPDU_DENSITY_4;

val = mt76_rr(dev, addr + 2 * 4);
val &= MT_WTBL1_W2_KEY_TYPE | MT_WTBL1_W2_ADMISSION_CONTROL;
val |= FIELD_PREP(MT_WTBL1_W2_AMPDU_FACTOR, sta->ht_cap.ampdu_factor) |
FIELD_PREP(MT_WTBL1_W2_MPDU_DENSITY, sta->ht_cap.ampdu_density) |
val |= FIELD_PREP(MT_WTBL1_W2_AMPDU_FACTOR,
sta->deflink.ht_cap.ampdu_factor) |
FIELD_PREP(MT_WTBL1_W2_MPDU_DENSITY,
sta->deflink.ht_cap.ampdu_density) |
MT_WTBL1_W2_TXS_BAF_REPORT;

if (sta->ht_cap.cap)
if (sta->deflink.ht_cap.cap)
val |= MT_WTBL1_W2_HT;
if (sta->vht_cap.cap)
if (sta->deflink.vht_cap.cap)
val |= MT_WTBL1_W2_VHT;

mt76_wr(dev, addr + 2 * 4, val);
Expand All @@ -347,9 +349,9 @@ void mt7603_wtbl_update_cap(struct mt7603_dev *dev, struct ieee80211_sta *sta)
val = mt76_rr(dev, addr + 9 * 4);
val &= ~(MT_WTBL2_W9_SHORT_GI_20 | MT_WTBL2_W9_SHORT_GI_40 |
MT_WTBL2_W9_SHORT_GI_80);
if (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20)
if (sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_SGI_20)
val |= MT_WTBL2_W9_SHORT_GI_20;
if (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40)
if (sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_SGI_40)
val |= MT_WTBL2_W9_SHORT_GI_40;
mt76_wr(dev, addr + 9 * 4, val);
}
Expand Down
9 changes: 5 additions & 4 deletions mt7603/main.c
Expand Up @@ -297,15 +297,15 @@ mt7603_configure_filter(struct ieee80211_hw *hw, unsigned int changed_flags,

static void
mt7603_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info, u32 changed)
struct ieee80211_bss_conf *info, u64 changed)
{
struct mt7603_dev *dev = hw->priv;
struct mt7603_vif *mvif = (struct mt7603_vif *)vif->drv_priv;

mutex_lock(&dev->mt76.mutex);

if (changed & (BSS_CHANGED_ASSOC | BSS_CHANGED_BSSID)) {
if (info->assoc || info->ibss_joined) {
if (vif->cfg.assoc || vif->cfg.ibss_joined) {
mt76_wr(dev, MT_BSSID0(mvif->idx),
get_unaligned_le32(info->bssid));
mt76_wr(dev, MT_BSSID1(mvif->idx),
Expand Down Expand Up @@ -527,7 +527,8 @@ mt7603_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
}

static int
mt7603_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue,
mt7603_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
unsigned int link_id, u16 queue,
const struct ieee80211_tx_queue_params *params)
{
struct mt7603_dev *dev = hw->priv;
Expand Down Expand Up @@ -657,7 +658,7 @@ mt7603_sta_rate_tbl_update(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
mt7603_wtbl_set_rates(dev, msta, NULL, msta->rates);
msta->rate_probe = false;
mt7603_wtbl_set_smps(dev, msta,
sta->smps_mode == IEEE80211_SMPS_DYNAMIC);
sta->deflink.smps_mode == IEEE80211_SMPS_DYNAMIC);
spin_unlock_bh(&dev->mt76.lock);
}

Expand Down
4 changes: 2 additions & 2 deletions mt7615/dma.c
Expand Up @@ -281,8 +281,8 @@ int mt7615_dma_init(struct mt7615_dev *dev)
if (ret < 0)
return ret;

netif_tx_napi_add(&dev->mt76.tx_napi_dev, &dev->mt76.tx_napi,
mt7615_poll_tx, NAPI_POLL_WEIGHT);
netif_napi_add_tx(&dev->mt76.tx_napi_dev, &dev->mt76.tx_napi,
mt7615_poll_tx);
napi_enable(&dev->mt76.tx_napi);

mt76_poll(dev, MT_WPDMA_GLO_CFG,
Expand Down
7 changes: 4 additions & 3 deletions mt7615/main.c
Expand Up @@ -473,7 +473,8 @@ static int mt7615_config(struct ieee80211_hw *hw, u32 changed)
}

static int
mt7615_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 queue,
mt7615_conf_tx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
unsigned int link_id, u16 queue,
const struct ieee80211_tx_queue_params *params)
{
struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
Expand Down Expand Up @@ -555,7 +556,7 @@ static void mt7615_configure_filter(struct ieee80211_hw *hw,
static void mt7615_bss_info_changed(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info,
u32 changed)
u64 changed)
{
struct mt7615_dev *dev = mt7615_hw_dev(hw);
struct mt7615_phy *phy = mt7615_hw_phy(hw);
Expand Down Expand Up @@ -598,7 +599,7 @@ static void mt7615_bss_info_changed(struct ieee80211_hw *hw,
}

if (changed & BSS_CHANGED_ASSOC)
mt7615_mac_set_beacon_filter(phy, vif, info->assoc);
mt7615_mac_set_beacon_filter(phy, vif, vif->cfg.assoc);

mt7615_mutex_release(dev);
}
Expand Down
8 changes: 4 additions & 4 deletions mt7615/mcu.c
Expand Up @@ -352,7 +352,7 @@ static int mt7615_mcu_fw_pmctrl(struct mt7615_dev *dev)
static void
mt7615_mcu_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
{
if (vif->csa_active)
if (vif->bss_conf.csa_active)
ieee80211_csa_finish(vif);
}

Expand Down Expand Up @@ -698,7 +698,7 @@ mt7615_mcu_add_beacon_offload(struct mt7615_dev *dev,
if (!enable)
goto out;

skb = ieee80211_beacon_get_template(hw, vif, &offs);
skb = ieee80211_beacon_get_template(hw, vif, &offs, 0);
if (!skb)
return -EINVAL;

Expand Down Expand Up @@ -1073,7 +1073,7 @@ mt7615_mcu_uni_add_beacon_offload(struct mt7615_dev *dev,
if (!enable)
goto out;

skb = ieee80211_beacon_get_template(mt76_hw(dev), vif, &offs);
skb = ieee80211_beacon_get_template(mt76_hw(dev), vif, &offs, 0);
if (!skb)
return -EINVAL;

Expand Down Expand Up @@ -2525,7 +2525,7 @@ int mt7615_mcu_set_bss_pm(struct mt7615_dev *dev, struct ieee80211_vif *vif,
u8 pad;
} req = {
.bss_idx = mvif->mt76.idx,
.aid = cpu_to_le16(vif->bss_conf.aid),
.aid = cpu_to_le16(vif->cfg.aid),
.dtim_period = vif->bss_conf.dtim_period,
.bcn_interval = cpu_to_le16(vif->bss_conf.beacon_int),
};
Expand Down
3 changes: 1 addition & 2 deletions mt7615/soc.c
Expand Up @@ -31,15 +31,14 @@ int mt7622_wmac_init(struct mt7615_dev *dev)

static int mt7622_wmac_probe(struct platform_device *pdev)
{
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
void __iomem *mem_base;
int irq;

irq = platform_get_irq(pdev, 0);
if (irq < 0)
return irq;

mem_base = devm_ioremap_resource(&pdev->dev, res);
mem_base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
if (IS_ERR(mem_base))
return PTR_ERR(mem_base);

Expand Down

0 comments on commit ec46d74

Please sign in to comment.