diff options
Diffstat (limited to 'target/linux/mediatek/patches-6.6/942-net-ethernet-mtk_wed-move-cpuboot-in-a-dedicated-dts.patch')
-rw-r--r-- | target/linux/mediatek/patches-6.6/942-net-ethernet-mtk_wed-move-cpuboot-in-a-dedicated-dts.patch | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/target/linux/mediatek/patches-6.6/942-net-ethernet-mtk_wed-move-cpuboot-in-a-dedicated-dts.patch b/target/linux/mediatek/patches-6.6/942-net-ethernet-mtk_wed-move-cpuboot-in-a-dedicated-dts.patch index b4bea2087b..43014c5d12 100644 --- a/target/linux/mediatek/patches-6.6/942-net-ethernet-mtk_wed-move-cpuboot-in-a-dedicated-dts.patch +++ b/target/linux/mediatek/patches-6.6/942-net-ethernet-mtk_wed-move-cpuboot-in-a-dedicated-dts.patch @@ -23,9 +23,12 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> --- a/drivers/net/ethernet/mediatek/mtk_wed_mcu.c +++ b/drivers/net/ethernet/mediatek/mtk_wed_mcu.c -@@ -34,12 +34,23 @@ static struct mtk_wed_wo_memory_region m +@@ -32,14 +32,25 @@ static struct mtk_wed_wo_memory_region m + }, + }; - static u32 wo_r32(struct mtk_wed_wo *wo, u32 reg) +-static u32 wo_r32(u32 reg) ++static u32 wo_r32(struct mtk_wed_wo *wo, u32 reg) { - return readl(mem_region[MTK_WED_WO_REGION_BOOT].addr + reg); + u32 val; @@ -39,7 +42,8 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> + return val; } - static void wo_w32(struct mtk_wed_wo *wo, u32 reg, u32 val) +-static void wo_w32(u32 reg, u32 val) ++static void wo_w32(struct mtk_wed_wo *wo, u32 reg, u32 val) { - writel(val, mem_region[MTK_WED_WO_REGION_BOOT].addr + reg); + if (wo->boot_regmap) @@ -49,7 +53,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> } static struct sk_buff * -@@ -313,6 +324,9 @@ mtk_wed_mcu_load_firmware(struct mtk_wed +@@ -317,6 +328,9 @@ mtk_wed_mcu_load_firmware(struct mtk_wed u32 val, boot_cr; int ret, i; @@ -59,7 +63,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> /* load firmware region metadata */ for (i = 0; i < ARRAY_SIZE(mem_region); i++) { int index = of_property_match_string(wo->hw->node, -@@ -321,6 +335,9 @@ mtk_wed_mcu_load_firmware(struct mtk_wed +@@ -325,6 +339,9 @@ mtk_wed_mcu_load_firmware(struct mtk_wed if (index < 0) continue; @@ -69,6 +73,24 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> ret = mtk_wed_get_reserved_memory_region(wo->hw, index, &mem_region[i]); if (ret) return ret; +@@ -373,13 +390,13 @@ mtk_wed_mcu_load_firmware(struct mtk_wed + boot_cr = MTK_WO_MCU_CFG_LS_WA_BOOT_ADDR_ADDR; + else + boot_cr = MTK_WO_MCU_CFG_LS_WM_BOOT_ADDR_ADDR; +- wo_w32(boot_cr, mem_region[MTK_WED_WO_REGION_EMI].phy_addr >> 16); ++ wo_w32(wo, boot_cr, mem_region[MTK_WED_WO_REGION_EMI].phy_addr >> 16); + /* wo firmware reset */ +- wo_w32(MTK_WO_MCU_CFG_LS_WF_MCCR_CLR_ADDR, 0xc00); ++ wo_w32(wo, MTK_WO_MCU_CFG_LS_WF_MCCR_CLR_ADDR, 0xc00); + +- val = wo_r32(MTK_WO_MCU_CFG_LS_WF_MCU_CFG_WM_WA_ADDR) | ++ val = wo_r32(wo, MTK_WO_MCU_CFG_LS_WF_MCU_CFG_WM_WA_ADDR) | + MTK_WO_MCU_CFG_LS_WF_WM_WA_WM_CPU_RSTB_MASK; +- wo_w32(MTK_WO_MCU_CFG_LS_WF_MCU_CFG_WM_WA_ADDR, val); ++ wo_w32(wo, MTK_WO_MCU_CFG_LS_WF_MCU_CFG_WM_WA_ADDR, val); + out: + release_firmware(fw); + --- a/drivers/net/ethernet/mediatek/mtk_wed_wo.h +++ b/drivers/net/ethernet/mediatek/mtk_wed_wo.h @@ -231,6 +231,7 @@ struct mtk_wed_wo_queue { |