wifi: mt76: mt7925: fix mcu query command fail
authorHao Zhang <hao.zhang@mediatek.com>
Fri, 29 Dec 2023 03:09:30 +0000 (11:09 +0800)
committerFelix Fietkau <nbd@nbd.name>
Thu, 22 Feb 2024 08:55:17 +0000 (09:55 +0100)
Apply query command type properly to make the chip send the response back.
Otherwise, we may see the command timeout in driver side.

Fixes: c948b5da6bbe ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt7925 chips")
Signed-off-by: Hao Zhang <hao.zhang@mediatek.com>
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c

index 9a8db9b1a4f2bfa0dd8d019819eb6e5fa58a951e..4811fccbe30e8beb94ad41620660651f671684f2 100644 (file)
@@ -2850,12 +2850,16 @@ int mt7925_mcu_fill_message(struct mt76_dev *mdev, struct sk_buff *skb,
        if (cmd & __MCU_CMD_FIELD_UNI) {
                uni_txd = (struct mt76_connac2_mcu_uni_txd *)txd;
                uni_txd->len = cpu_to_le16(skb->len - sizeof(uni_txd->txd));
-               uni_txd->option = MCU_CMD_UNI_EXT_ACK;
                uni_txd->cid = cpu_to_le16(mcu_cmd);
                uni_txd->s2d_index = MCU_S2D_H2N;
                uni_txd->pkt_type = MCU_PKT_ID;
                uni_txd->seq = seq;
 
+               if (cmd & __MCU_CMD_FIELD_QUERY)
+                       uni_txd->option = MCU_CMD_UNI_QUERY_ACK;
+               else
+                       uni_txd->option = MCU_CMD_UNI_EXT_ACK;
+
                goto exit;
        }