struct sk_buff *skb);
 void mt76x02_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control,
                struct sk_buff *skb);
+int mt76x02_tx_prepare_skb(struct mt76_dev *mdev, void *txwi,
+                          struct sk_buff *skb, struct mt76_queue *q,
+                          struct mt76_wcid *wcid, struct ieee80211_sta *sta,
+                          u32 *tx_info);
 
 extern const u16 mt76x02_beacon_offsets[16];
 void mt76x02_set_beacon_offsets(struct mt76_dev *dev);
 
        return true;
 }
 EXPORT_SYMBOL_GPL(mt76x02_tx_status_data);
+
+int mt76x02_tx_prepare_skb(struct mt76_dev *mdev, void *txwi,
+                          struct sk_buff *skb, struct mt76_queue *q,
+                          struct mt76_wcid *wcid, struct ieee80211_sta *sta,
+                          u32 *tx_info)
+{
+       struct mt76x02_dev *dev = container_of(mdev, struct mt76x02_dev, mt76);
+       struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
+       int qsel = MT_QSEL_EDCA;
+       int ret;
+
+       if (q == &dev->mt76.q_tx[MT_TXQ_PSD] && wcid && wcid->idx < 128)
+               mt76x02_mac_wcid_set_drop(&dev->mt76, wcid->idx, false);
+
+       mt76x02_mac_write_txwi(mdev, txwi, skb, wcid, sta, skb->len);
+
+       ret = mt76x02_insert_hdr_pad(skb);
+       if (ret < 0)
+               return ret;
+
+       if (info->flags & IEEE80211_TX_CTL_RATE_CTRL_PROBE)
+               qsel = MT_QSEL_MGMT;
+
+       *tx_info = FIELD_PREP(MT_TXD_INFO_QSEL, qsel) |
+                  MT_TXD_INFO_80211;
+
+       if (!wcid || wcid->hw_key_idx == 0xff || wcid->sw_iv)
+               *tx_info |= MT_TXD_INFO_WIV;
+
+       return 0;
+}
+EXPORT_SYMBOL_GPL(mt76x02_tx_prepare_skb);
 
 
 void mt76x2_cleanup(struct mt76x02_dev *dev);
 
-int mt76x2_tx_prepare_skb(struct mt76_dev *mdev, void *txwi,
-                         struct sk_buff *skb, struct mt76_queue *q,
-                         struct mt76_wcid *wcid, struct ieee80211_sta *sta,
-                         u32 *tx_info);
 void mt76x2_tx_complete_skb(struct mt76_dev *mdev, struct mt76_queue *q,
                            struct mt76_queue_entry *e, bool flush);
 void mt76x2_mac_set_tx_protection(struct mt76x02_dev *dev, u32 val);
 
        static const struct mt76_driver_ops drv_ops = {
                .txwi_size = sizeof(struct mt76x02_txwi),
                .update_survey = mt76x2_update_channel,
-               .tx_prepare_skb = mt76x2_tx_prepare_skb,
+               .tx_prepare_skb = mt76x02_tx_prepare_skb,
                .tx_complete_skb = mt76x2_tx_complete_skb,
                .rx_skb = mt76x02_queue_rx_skb,
                .rx_poll_complete = mt76x2_rx_poll_complete,
 
        struct sk_buff *tail[8];
 };
 
-int mt76x2_tx_prepare_skb(struct mt76_dev *mdev, void *txwi,
-                         struct sk_buff *skb, struct mt76_queue *q,
-                         struct mt76_wcid *wcid, struct ieee80211_sta *sta,
-                         u32 *tx_info)
-{
-       struct mt76x02_dev *dev = container_of(mdev, struct mt76x02_dev, mt76);
-       struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
-       int qsel = MT_QSEL_EDCA;
-       int ret;
-
-       if (q == &dev->mt76.q_tx[MT_TXQ_PSD] && wcid && wcid->idx < 128)
-               mt76x02_mac_wcid_set_drop(&dev->mt76, wcid->idx, false);
-
-       mt76x02_mac_write_txwi(mdev, txwi, skb, wcid, sta, skb->len);
-
-       ret = mt76x02_insert_hdr_pad(skb);
-       if (ret < 0)
-               return ret;
-
-       if (info->flags & IEEE80211_TX_CTL_RATE_CTRL_PROBE)
-               qsel = MT_QSEL_MGMT;
-
-       *tx_info = FIELD_PREP(MT_TXD_INFO_QSEL, qsel) |
-                  MT_TXD_INFO_80211;
-
-       if (!wcid || wcid->hw_key_idx == 0xff || wcid->sw_iv)
-               *tx_info |= MT_TXD_INFO_WIV;
-
-       return 0;
-}
-
 static void
 mt76x2_update_beacon_iter(void *priv, u8 *mac, struct ieee80211_vif *vif)
 {