status->aggr = unicast &&
                       !ieee80211_is_qos_nullfunc(hdr->frame_control);
        status->tid = *ieee80211_get_qos_ctl(hdr) & IEEE80211_QOS_CTL_TID_MASK;
-       status->seqno = IEEE80211_SEQ_TO_SN(hdr->seq_ctrl);
+       status->seqno = IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl));
 
        return 0;
 }
        struct ieee80211_vif *vif = info->control.vif;
        int tx_count = 8;
        u8 fc_type, fc_stype, p_fmt, q_idx, omac_idx = 0;
-       u16 fc = le16_to_cpu(hdr->frame_control);
+       __le16 fc = hdr->frame_control;
        u16 seqno = 0;
        u32 val;
 
                tx_count = msta->rate_count;
        }
 
-       fc_type = (fc & IEEE80211_FCTL_FTYPE) >> 2;
-       fc_stype = (fc & IEEE80211_FCTL_STYPE) >> 4;
+       fc_type = (le16_to_cpu(fc) & IEEE80211_FCTL_FTYPE) >> 2;
+       fc_stype = (le16_to_cpu(fc) & IEEE80211_FCTL_STYPE) >> 4;
 
        if (ieee80211_is_data(fc)) {
                q_idx = skb_get_queue_mapping(skb);
        txp = (struct mt7615_txp *)(txwi + MT_TXD_SIZE);
        for (i = 1; i < txp->nbuf; i++)
                dma_unmap_single(dev->dev, le32_to_cpu(txp->buf[i]),
-                                le32_to_cpu(txp->len[i]), DMA_TO_DEVICE);
+                                le16_to_cpu(txp->len[i]), DMA_TO_DEVICE);
 }
 
 int mt7615_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
        txp = (struct mt7615_txp *)(txwi + MT_TXD_SIZE);
        for (i = 0; i < nbuf; i++) {
                txp->buf[i] = cpu_to_le32(tx_info->buf[i + 1].addr);
-               txp->len[i] = cpu_to_le32(tx_info->buf[i + 1].len);
+               txp->len[i] = cpu_to_le16(tx_info->buf[i + 1].len);
        }
        txp->nbuf = nbuf;