mt76: verify evt type in usb mcu response
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Fri, 24 Aug 2018 10:41:44 +0000 (12:41 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 31 Aug 2018 15:54:14 +0000 (18:54 +0300)
Verify if evt field is set to EVT_CMD_DONE in usb mcu
response messages. This is a preliminary patch for usb_mcu layer
unification between mt76x0u and mt76x2u driver.

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/mediatek/mt76/dma.h
drivers/net/wireless/mediatek/mt76/usb_mcu.c

index 27248e24a19b1b82b08a99e894642e39afc91b93..828e52ae70e8ddedc53fd36700776d6c828ee1ee 100644 (file)
@@ -75,6 +75,16 @@ enum dma_msg_port {
        DISCARD,
 };
 
+enum mt76_mcu_evt_type {
+       EVT_CMD_DONE,
+       EVT_CMD_ERROR,
+       EVT_CMD_RETRY,
+       EVT_EVENT_PWR_RSP,
+       EVT_EVENT_WOW_RSP,
+       EVT_EVENT_CARRIER_DETECT_RSP,
+       EVT_EVENT_DFS_DETECT_RSP,
+};
+
 int mt76_dma_attach(struct mt76_dev *dev);
 void mt76_dma_cleanup(struct mt76_dev *dev);
 
index 070be803d4637aee4b538467c359cc5d0857f0c6..ebf3e7ffb26bd98bd89ae2c9a8ab533b2a628c24 100644 (file)
@@ -73,7 +73,8 @@ static int mt76u_mcu_wait_resp(struct mt76_dev *dev, u8 seq)
                if (ret)
                        return ret;
 
-               if (seq == FIELD_GET(MT_RX_FCE_INFO_CMD_SEQ, rxfce))
+               if (seq == FIELD_GET(MT_RX_FCE_INFO_CMD_SEQ, rxfce) &&
+                   FIELD_GET(MT_RX_FCE_INFO_EVT_TYPE, rxfce) == EVT_CMD_DONE)
                        return 0;
 
                dev_err(dev->dev, "error: MCU resp evt:%lx seq:%hhx-%lx\n",