kernel: backport ethtool_puts
[openwrt/openwrt.git] / target / linux / generic / backport-5.15 / 733-v6.4-22-net-mtk_eth_soc-use-WO-firmware-for-MT7981.patch
1 From f5af7931d2a2cae66d0f9dad4ba517b1b00620b3 Mon Sep 17 00:00:00 2001
2 From: Daniel Golle <daniel@makrotopia.org>
3 Date: Wed, 19 Apr 2023 19:07:23 +0100
4 Subject: [PATCH] net: mtk_eth_soc: use WO firmware for MT7981
5
6 In order to support wireless offloading on MT7981 we need to load the
7 appropriate firmware. Recognize MT7981 and load mt7981_wo.bin.
8
9 Signed-off-by: Daniel Golle <daniel@makrotopia.org>
10 ---
11 drivers/net/ethernet/mediatek/mtk_wed_mcu.c | 7 ++++++-
12 drivers/net/ethernet/mediatek/mtk_wed_wo.h | 1 +
13 2 files changed, 7 insertions(+), 1 deletion(-)
14
15 --- a/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
16 +++ b/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
17 @@ -326,7 +326,11 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
18 wo->hw->index + 1);
19
20 /* load firmware */
21 - fw_name = wo->hw->index ? MT7986_FIRMWARE_WO1 : MT7986_FIRMWARE_WO0;
22 + if (of_device_is_compatible(wo->hw->node, "mediatek,mt7981-wed"))
23 + fw_name = MT7981_FIRMWARE_WO;
24 + else
25 + fw_name = wo->hw->index ? MT7986_FIRMWARE_WO1 : MT7986_FIRMWARE_WO0;
26 +
27 ret = request_firmware(&fw, fw_name, wo->hw->dev);
28 if (ret)
29 return ret;
30 @@ -386,5 +390,6 @@ int mtk_wed_mcu_init(struct mtk_wed_wo *
31 100, MTK_FW_DL_TIMEOUT);
32 }
33
34 +MODULE_FIRMWARE(MT7981_FIRMWARE_WO);
35 MODULE_FIRMWARE(MT7986_FIRMWARE_WO0);
36 MODULE_FIRMWARE(MT7986_FIRMWARE_WO1);
37 --- a/drivers/net/ethernet/mediatek/mtk_wed_wo.h
38 +++ b/drivers/net/ethernet/mediatek/mtk_wed_wo.h
39 @@ -88,6 +88,7 @@ enum mtk_wed_dummy_cr_idx {
40 MTK_WED_DUMMY_CR_WO_STATUS,
41 };
42
43 +#define MT7981_FIRMWARE_WO "mediatek/mt7981_wo.bin"
44 #define MT7986_FIRMWARE_WO0 "mediatek/mt7986_wo_0.bin"
45 #define MT7986_FIRMWARE_WO1 "mediatek/mt7986_wo_1.bin"
46