]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: mt76: mt7996: fill txd by host driver
authorRyder Lee <ryder.lee@mediatek.com>
Wed, 19 Apr 2023 05:58:40 +0000 (13:58 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 May 2023 14:11:17 +0000 (23:11 +0900)
[ Upstream commit 3b522cadedfe6e9e0e8193d7d4ab5aa8d0c73209 ]

The hardware SDO has issue to fill txd for the moment, so fallback to
driver filling method.

Fixes: 98686cd21624 (wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices)
Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/mediatek/mt76/mt7996/mac.c

index 4a9d1d35568251317b4e6d7a5922b923a45d35cc..e643a27048f930b23f702cc867e7b33f8daa5fea 100644 (file)
@@ -1101,11 +1101,8 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
                return id;
 
        pid = mt76_tx_status_skb_add(mdev, wcid, tx_info->skb);
-       memset(txwi_ptr, 0, MT_TXD_SIZE);
-       /* Transmit non qos data by 802.11 header and need to fill txd by host*/
-       if (!is_8023 || pid >= MT_PACKET_ID_FIRST)
-               mt7996_mac_write_txwi(dev, txwi_ptr, tx_info->skb, wcid, key,
-                                     pid, qid, 0);
+       mt7996_mac_write_txwi(dev, txwi_ptr, tx_info->skb, wcid, key,
+                             pid, qid, 0);
 
        txp = (struct mt76_connac_txp_common *)(txwi + MT_TXD_SIZE);
        for (i = 0; i < nbuf; i++) {
@@ -1114,10 +1111,8 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
        }
        txp->fw.nbuf = nbuf;
 
-       txp->fw.flags = cpu_to_le16(MT_CT_INFO_FROM_HOST);
-
-       if (!is_8023 || pid >= MT_PACKET_ID_FIRST)
-               txp->fw.flags |= cpu_to_le16(MT_CT_INFO_APPLY_TXD);
+       txp->fw.flags =
+               cpu_to_le16(MT_CT_INFO_FROM_HOST | MT_CT_INFO_APPLY_TXD);
 
        if (!key)
                txp->fw.flags |= cpu_to_le16(MT_CT_INFO_NONE_CIPHER_FRAME);