mt76: mt7615: parse mcu return code for unified commands
authorLorenzo Bianconi <lorenzo@kernel.org>
Mon, 20 Apr 2020 11:58:44 +0000 (13:58 +0200)
committerFelix Fietkau <nbd@nbd.name>
Tue, 12 May 2020 17:52:31 +0000 (19:52 +0200)
Add return code parsing for the following unified commands:
- MCU_UNI_CMD_DEV_INFO_UPDATE
- MCU_UNI_CMD_BSS_INFO_UPDATE
- MCU_UNI_CMD_STA_REC_UPDATE

Co-developed-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
drivers/net/wireless/mediatek/mt76/mt7615/mcu.h

index 74cbb975be7568bfe6bcf5dfea99db5a3991359a..5329bd4f8237dbec92a19b8217d6459a3816d236 100644 (file)
@@ -187,6 +187,16 @@ mt7615_mcu_parse_response(struct mt7615_dev *dev, int cmd,
                skb_pull(skb, sizeof(*rxd));
                ret = le32_to_cpu(*(__le32 *)skb->data);
                break;
+       case MCU_UNI_CMD_DEV_INFO_UPDATE:
+       case MCU_UNI_CMD_BSS_INFO_UPDATE:
+       case MCU_UNI_CMD_STA_REC_UPDATE: {
+               struct mt7615_mcu_uni_event *event;
+
+               skb_pull(skb, sizeof(*rxd));
+               event = (struct mt7615_mcu_uni_event *)skb->data;
+               ret = le32_to_cpu(event->status);
+               break;
+       }
        default:
                break;
        }
index 5440f24a834ae7ded35e08e6b61b05e9c82982d0..032b5f98608ec7a96b282b10c2dba1229187ff65 100644 (file)
@@ -282,6 +282,12 @@ enum {
        MCU_UNI_CMD_STA_REC_UPDATE = MCU_UNI_PREFIX | 0x03,
 };
 
+struct mt7615_mcu_uni_event {
+       u8 cid;
+       u8 pad[3];
+       __le32 status; /* 0: success, others: fail */
+} __packed;
+
 struct mt7615_mcu_scan_ssid {
        __le32 ssid_len;
        u8 ssid[IEEE80211_MAX_SSID_LEN];