generic: add support for wireless offloading on MT7981
Load appropriate firmware for wireless offloading on MT7981. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
		| @@ -0,0 +1,46 @@ | ||||
| From f5af7931d2a2cae66d0f9dad4ba517b1b00620b3 Mon Sep 17 00:00:00 2001 | ||||
| From: Daniel Golle <daniel@makrotopia.org> | ||||
| Date: Wed, 19 Apr 2023 19:07:23 +0100 | ||||
| Subject: [PATCH] net: mtk_eth_soc: use WO firmware for MT7981 | ||||
|  | ||||
| In order to support wireless offloading on MT7981 we need to load the | ||||
| appropriate firmware. Recognize MT7981 and load mt7981_wo.bin. | ||||
|  | ||||
| Signed-off-by: Daniel Golle <daniel@makrotopia.org> | ||||
| --- | ||||
|  drivers/net/ethernet/mediatek/mtk_wed_mcu.c | 7 ++++++- | ||||
|  drivers/net/ethernet/mediatek/mtk_wed_wo.h  | 1 + | ||||
|  2 files changed, 7 insertions(+), 1 deletion(-) | ||||
|  | ||||
| --- a/drivers/net/ethernet/mediatek/mtk_wed_mcu.c | ||||
| +++ b/drivers/net/ethernet/mediatek/mtk_wed_mcu.c | ||||
| @@ -326,7 +326,11 @@ mtk_wed_mcu_load_firmware(struct mtk_wed | ||||
|  		wo->hw->index + 1); | ||||
|   | ||||
|  	/* load firmware */ | ||||
| -	fw_name = wo->hw->index ? MT7986_FIRMWARE_WO1 : MT7986_FIRMWARE_WO0; | ||||
| +	if (of_device_is_compatible(wo->hw->node, "mediatek,mt7981-wed")) | ||||
| +		fw_name = MT7981_FIRMWARE_WO; | ||||
| +	else | ||||
| +		fw_name = wo->hw->index ? MT7986_FIRMWARE_WO1 : MT7986_FIRMWARE_WO0; | ||||
| + | ||||
|  	ret = request_firmware(&fw, fw_name, wo->hw->dev); | ||||
|  	if (ret) | ||||
|  		return ret; | ||||
| @@ -386,5 +390,6 @@ int mtk_wed_mcu_init(struct mtk_wed_wo * | ||||
|  				  100, MTK_FW_DL_TIMEOUT); | ||||
|  } | ||||
|   | ||||
| +MODULE_FIRMWARE(MT7981_FIRMWARE_WO); | ||||
|  MODULE_FIRMWARE(MT7986_FIRMWARE_WO0); | ||||
|  MODULE_FIRMWARE(MT7986_FIRMWARE_WO1); | ||||
| --- a/drivers/net/ethernet/mediatek/mtk_wed_wo.h | ||||
| +++ b/drivers/net/ethernet/mediatek/mtk_wed_wo.h | ||||
| @@ -88,6 +88,7 @@ enum mtk_wed_dummy_cr_idx { | ||||
|  	MTK_WED_DUMMY_CR_WO_STATUS, | ||||
|  }; | ||||
|   | ||||
| +#define MT7981_FIRMWARE_WO	"mediatek/mt7981_wo.bin" | ||||
|  #define MT7986_FIRMWARE_WO0	"mediatek/mt7986_wo_0.bin" | ||||
|  #define MT7986_FIRMWARE_WO1	"mediatek/mt7986_wo_1.bin" | ||||
|   | ||||
| @@ -77,7 +77,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> | ||||
|  	wed_w32(wo->hw->wed_dev, MTK_WED_SCR0 + 4 * MTK_WED_DUMMY_CR_FWDL, | ||||
| --- a/drivers/net/ethernet/mediatek/mtk_wed_wo.h | ||||
| +++ b/drivers/net/ethernet/mediatek/mtk_wed_wo.h | ||||
| @@ -227,7 +227,8 @@ struct mtk_wed_wo_queue { | ||||
| @@ -228,7 +228,8 @@ struct mtk_wed_wo_queue { | ||||
|   | ||||
|  struct mtk_wed_wo { | ||||
|  	struct mtk_wed_hw *hw; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Daniel Golle
					Daniel Golle