Commit 32406ca4 authored by Ryder Lee's avatar Ryder Lee Committed by Felix Fietkau
Browse files

mt76: mt7915: check band idx for bcc event



Add missing band idx check for DBDC cases.

Signed-off-by: default avatarRyder Lee <ryder.lee@mediatek.com>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 9273ffcc
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -415,6 +415,22 @@ mt7915_mcu_cca_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
	ieee80211_color_change_finish(vif);
}

static void
mt7915_mcu_rx_bcc_notify(struct mt7915_dev *dev, struct sk_buff *skb)
{
	struct mt76_phy *mphy = &dev->mt76.phy;
	struct mt7915_mcu_bcc_notify *b;

	b = (struct mt7915_mcu_bcc_notify *)skb->data;

	if ((b->band_idx && !dev->phy.band_idx) && dev->mt76.phy2)
		mphy = dev->mt76.phy2;

	ieee80211_iterate_active_interfaces_atomic(mphy->hw,
			IEEE80211_IFACE_ITER_RESUME_ALL,
			mt7915_mcu_cca_finish, mphy->hw);
}

static void
mt7915_mcu_rx_ext_event(struct mt7915_dev *dev, struct sk_buff *skb)
{
@@ -434,9 +450,7 @@ mt7915_mcu_rx_ext_event(struct mt7915_dev *dev, struct sk_buff *skb)
		mt7915_mcu_rx_log_message(dev, skb);
		break;
	case MCU_EXT_EVENT_BCC_NOTIFY:
		ieee80211_iterate_active_interfaces_atomic(dev->mt76.hw,
				IEEE80211_IFACE_ITER_RESUME_ALL,
				mt7915_mcu_cca_finish, dev);
		mt7915_mcu_rx_bcc_notify(dev, skb);
		break;
	default:
		break;
+9 −0
Original line number Diff line number Diff line
@@ -79,6 +79,15 @@ struct mt7915_mcu_csa_notify {
	u8 rsv;
} __packed;

struct mt7915_mcu_bcc_notify {
	struct mt7915_mcu_rxd rxd;

	u8 band_idx;
	u8 omac_idx;
	u8 cca_count;
	u8 rsv;
} __packed;

struct mt7915_mcu_rdd_report {
	struct mt7915_mcu_rxd rxd;