Commit 128c9b7d authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau

mt76: add phy_idx in mt76_rx_status

Introduce phy_idx mt76_rx_status instead of ext_idx. This is a
preliminary patch to add newer chipset support
Co-developed-by: default avatarBo Jiao <bo.jiao@mediatek.com>
Signed-off-by: default avatarBo Jiao <bo.jiao@mediatek.com>
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent fc8f841b
...@@ -739,7 +739,7 @@ static void mt76_rx_release_burst(struct mt76_phy *phy, enum mt76_rxq_id q, ...@@ -739,7 +739,7 @@ static void mt76_rx_release_burst(struct mt76_phy *phy, enum mt76_rxq_id q,
void mt76_rx(struct mt76_dev *dev, enum mt76_rxq_id q, struct sk_buff *skb) void mt76_rx(struct mt76_dev *dev, enum mt76_rxq_id q, struct sk_buff *skb)
{ {
struct mt76_rx_status *status = (struct mt76_rx_status *)skb->cb; struct mt76_rx_status *status = (struct mt76_rx_status *)skb->cb;
struct mt76_phy *phy = mt76_dev_phy(dev, status->ext_phy); struct mt76_phy *phy = mt76_dev_phy(dev, status->phy_idx);
if (!test_bit(MT76_STATE_RUNNING, &phy->state)) { if (!test_bit(MT76_STATE_RUNNING, &phy->state)) {
dev_kfree_skb(skb); dev_kfree_skb(skb);
...@@ -1015,7 +1015,7 @@ mt76_rx_convert(struct mt76_dev *dev, struct sk_buff *skb, ...@@ -1015,7 +1015,7 @@ mt76_rx_convert(struct mt76_dev *dev, struct sk_buff *skb,
sizeof(mstat.chain_signal)); sizeof(mstat.chain_signal));
*sta = wcid_to_sta(mstat.wcid); *sta = wcid_to_sta(mstat.wcid);
*hw = mt76_phy_hw(dev, mstat.ext_phy); *hw = mt76_phy_hw(dev, mstat.phy_idx);
} }
static void static void
...@@ -1178,7 +1178,7 @@ mt76_check_sta(struct mt76_dev *dev, struct sk_buff *skb) ...@@ -1178,7 +1178,7 @@ mt76_check_sta(struct mt76_dev *dev, struct sk_buff *skb)
u8 tidno = status->qos_ctl & IEEE80211_QOS_CTL_TID_MASK; u8 tidno = status->qos_ctl & IEEE80211_QOS_CTL_TID_MASK;
bool ps; bool ps;
hw = mt76_phy_hw(dev, status->ext_phy); hw = mt76_phy_hw(dev, status->phy_idx);
if (ieee80211_is_pspoll(hdr->frame_control) && !wcid && if (ieee80211_is_pspoll(hdr->frame_control) && !wcid &&
!(status->flag & RX_FLAG_8023)) { !(status->flag & RX_FLAG_8023)) {
sta = ieee80211_find_sta_by_ifaddr(hw, hdr->addr2, NULL); sta = ieee80211_find_sta_by_ifaddr(hw, hdr->addr2, NULL);
......
...@@ -574,7 +574,7 @@ struct mt76_rx_status { ...@@ -574,7 +574,7 @@ struct mt76_rx_status {
u8 iv[6]; u8 iv[6];
u8 ext_phy:1; u8 phy_idx:2;
u8 aggr:1; u8 aggr:1;
u8 qos_ctl; u8 qos_ctl;
u16 seqno; u16 seqno;
...@@ -998,17 +998,18 @@ static inline int mt76_init_mcu_queue(struct mt76_dev *dev, int qid, int idx, ...@@ -998,17 +998,18 @@ static inline int mt76_init_mcu_queue(struct mt76_dev *dev, int qid, int idx,
} }
static inline struct mt76_phy * static inline struct mt76_phy *
mt76_dev_phy(struct mt76_dev *dev, bool phy_ext) mt76_dev_phy(struct mt76_dev *dev, u8 phy_idx)
{ {
if (phy_ext && dev->phy2) if (phy_idx && dev->phy2)
return dev->phy2; return dev->phy2;
return &dev->phy; return &dev->phy;
} }
static inline struct ieee80211_hw * static inline struct ieee80211_hw *
mt76_phy_hw(struct mt76_dev *dev, bool phy_ext) mt76_phy_hw(struct mt76_dev *dev, u8 phy_idx)
{ {
return mt76_dev_phy(dev, phy_ext)->hw; return mt76_dev_phy(dev, phy_idx)->hw;
} }
static inline u8 * static inline u8 *
......
...@@ -500,7 +500,7 @@ static int mt7615_mac_fill_rx(struct mt7615_dev *dev, struct sk_buff *skb) ...@@ -500,7 +500,7 @@ static int mt7615_mac_fill_rx(struct mt7615_dev *dev, struct sk_buff *skb)
if (phy_idx == 1 && phy2) { if (phy_idx == 1 && phy2) {
mphy = dev->mt76.phy2; mphy = dev->mt76.phy2;
phy = phy2; phy = phy2;
status->ext_phy = true; status->phy_idx = phy_idx;
} }
if (!mt7615_firmware_offload(dev) && chfreq != phy->chfreq) if (!mt7615_firmware_offload(dev) && chfreq != phy->chfreq)
......
...@@ -247,7 +247,7 @@ mt7915_mac_fill_rx(struct mt7915_dev *dev, struct sk_buff *skb) ...@@ -247,7 +247,7 @@ mt7915_mac_fill_rx(struct mt7915_dev *dev, struct sk_buff *skb)
return -EINVAL; return -EINVAL;
phy = mphy->priv; phy = mphy->priv;
status->ext_phy = true; status->phy_idx = 1;
} }
if (!test_bit(MT76_STATE_RUNNING, &mphy->state)) if (!test_bit(MT76_STATE_RUNNING, &mphy->state))
......
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