From 64d91a2c5c82e023639c032c8dde34da2d125628 Mon Sep 17 00:00:00 2001
From: Evelyn Tsai <evelyn.tsai@mediatek.com>
Date: Wed, 17 Aug 2022 13:40:24 +0800
Subject: [PATCH 1008/1033] wifi: mt76: mt7915: add fw_version dump

---
 mt76.h               |  4 ++++
 mt76_connac_mcu.c    |  9 +++++++++
 mt7915/mtk_debugfs.c | 19 +++++++++++++++++++
 3 files changed, 32 insertions(+)

diff --git a/mt76.h b/mt76.h
index a8f26a8..3425159 100644
--- a/mt76.h
+++ b/mt76.h
@@ -849,6 +849,10 @@ struct mt76_dev {
 		struct mt76_usb usb;
 		struct mt76_sdio sdio;
 	};
+
+	struct mt76_connac2_patch_hdr *patch_hdr;
+	struct mt76_connac2_fw_trailer *wm_hdr;
+	struct mt76_connac2_fw_trailer *wa_hdr;
 };
 
 struct mt76_power_limits {
diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
index 732a4e6..1cdef36 100644
--- a/mt76_connac_mcu.c
+++ b/mt76_connac_mcu.c
@@ -2976,6 +2976,9 @@ int mt76_connac2_load_ram(struct mt76_dev *dev, const char *fw_wm,
 		 sizeof(dev->hw->wiphy->fw_version),
 		 "%.10s-%.15s", hdr->fw_ver, hdr->build_date);
 
+	dev->wm_hdr = devm_kzalloc(dev->dev, sizeof(*hdr), GFP_KERNEL);
+	memcpy(dev->wm_hdr, hdr, sizeof(*hdr));
+
 	release_firmware(fw);
 
 	if (!fw_wa)
@@ -3001,6 +3004,9 @@ int mt76_connac2_load_ram(struct mt76_dev *dev, const char *fw_wm,
 		goto out;
 	}
 
+	dev->wa_hdr = devm_kzalloc(dev->dev, sizeof(*hdr), GFP_KERNEL);
+	memcpy(dev->wa_hdr, hdr, sizeof(*hdr));
+
 	snprintf(dev->hw->wiphy->fw_version,
 		 sizeof(dev->hw->wiphy->fw_version),
 		 "%.10s-%.15s", hdr->fw_ver, hdr->build_date);
@@ -3071,6 +3077,9 @@ int mt76_connac2_load_patch(struct mt76_dev *dev, const char *fw_name)
 	dev_info(dev->dev, "HW/SW Version: 0x%x, Build Time: %.16s\n",
 		 be32_to_cpu(hdr->hw_sw_ver), hdr->build_date);
 
+	dev->patch_hdr = devm_kzalloc(dev->dev, sizeof(*hdr), GFP_KERNEL);
+	memcpy(dev->patch_hdr, hdr, sizeof(*hdr));
+
 	for (i = 0; i < be32_to_cpu(hdr->desc.n_region); i++) {
 		struct mt76_connac2_patch_sec *sec;
 		u32 len, addr, mode;
diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
index fc148d4..c6cec57 100644
--- a/mt7915/mtk_debugfs.c
+++ b/mt7915/mtk_debugfs.c
@@ -2799,6 +2799,22 @@ static int mt7915_agginfo_read_band1(struct seq_file *s, void *data)
 	return 0;
 }
 
+static int mt7915_dump_version(struct seq_file *s, void *data)
+{
+	struct mt7915_dev *dev = dev_get_drvdata(s->private);
+	struct mt76_dev *mdev = NULL;
+	seq_printf(s, "Version: 2.2.11.0\n");
+
+	if (!test_bit(MT76_STATE_MCU_RUNNING, &dev->mphy.state))
+		return 0;
+
+	mdev = &dev->mt76;
+	seq_printf(s, "Rom Patch Build Time: %.16s\n", mdev->patch_hdr->build_date);
+	seq_printf(s, "WM Patch Build Time: %.16s\n", mdev->wm_hdr->build_date);
+	seq_printf(s, "WA Patch Build Time: %.16s\n", mdev->wa_hdr->build_date);
+	return 0;
+}
+
 /*usage: <en> <num> <len>
 	en: BIT(16) 0: sw amsdu  1: hw amsdu
 	num: GENMASK(15, 8) range 1-8
@@ -3635,6 +3651,9 @@ int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir)
 
 	debugfs_create_u8("sku_disable", 0600, dir, &dev->dbg.sku_disable);
 
+	debugfs_create_devm_seqfile(dev->mt76.dev, "fw_version", dir,
+				    mt7915_dump_version);
+
 	return 0;
 }
 #endif
-- 
2.18.0

