int mt7615_mac_write_txwi(struct mt7615_dev *dev, __le32 *txwi,
                          struct sk_buff *skb, struct mt76_wcid *wcid,
                          struct ieee80211_sta *sta, int pid,
-                         struct ieee80211_key_conf *key)
+                         struct ieee80211_key_conf *key, bool beacon)
 {
        struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
        struct ieee80211_tx_rate *rate = &info->control.rates[0];
                q_idx = wmm_idx * MT7615_MAX_WMM_SETS +
                        skb_get_queue_mapping(skb);
                p_fmt = MT_TX_TYPE_CT;
-       } else if (ieee80211_is_beacon(fc)) {
+       } else if (beacon) {
                if (ext_phy)
                        q_idx = MT_LMAC_BCN1;
                else
                return id;
 
        mt7615_mac_write_txwi(dev, txwi_ptr, tx_info->skb, wcid, sta,
-                             pid, key);
+                             pid, key, false);
 
        txp = txwi + MT_TXD_SIZE;
        memset(txp, 0, sizeof(struct mt7615_txp_common));
 
        }
 
        mt7615_mac_write_txwi(dev, (__le32 *)(req.pkt), skb, wcid, NULL,
-                             0, NULL);
+                             0, NULL, true);
        memcpy(req.pkt + MT_TXD_SIZE, skb->data, skb->len);
        req.pkt_len = cpu_to_le16(MT_TXD_SIZE + skb->len);
        req.tim_ie_pos = cpu_to_le16(MT_TXD_SIZE + offs.tim_offset);
 
 int mt7615_mac_write_txwi(struct mt7615_dev *dev, __le32 *txwi,
                          struct sk_buff *skb, struct mt76_wcid *wcid,
                          struct ieee80211_sta *sta, int pid,
-                         struct ieee80211_key_conf *key);
+                         struct ieee80211_key_conf *key, bool beacon);
 void mt7615_mac_set_timing(struct mt7615_phy *phy);
 int mt7615_mac_fill_rx(struct mt7615_dev *dev, struct sk_buff *skb);
 void mt7615_mac_add_txs(struct mt7615_dev *dev, void *data);