From 29aa1a94c4a6cde1573df0752587a2744c26226d Mon Sep 17 00:00:00 2001 From: Mieczyslaw Nalewaj Date: Fri, 29 Mar 2024 11:40:13 +0100 Subject: [PATCH] bcm47xx: 6.6: refresh patches Refresh kernel patches. Remove patches already included in the kernel. Signed-off-by: Mieczyslaw Nalewaj Link: https://github.com/openwrt/openwrt/pull/15010 Signed-off-by: Robert Marko --- ...7XX-Add-support-for-Linksys-E2500-V3.patch | 65 ------------------- ...47XX-Add-support-for-Huawei-B593u-12.patch | 61 ----------------- .../bcm47xx/patches-6.6/159-cpu_fixes.patch | 24 +++---- .../patches-6.6/160-kmap_coherent.patch | 31 ++++----- .../209-b44-register-adm-switch.patch | 6 +- .../bcm47xx/patches-6.6/210-b44_phy_fix.patch | 6 +- .../bcm47xx/patches-6.6/310-no_highpage.patch | 5 +- .../patches-6.6/830-huawei_e970_support.patch | 2 +- .../patches-6.6/831-old_gpio_wdt.patch | 4 +- .../bcm47xx/patches-6.6/999-wl_exports.patch | 2 +- 10 files changed, 36 insertions(+), 170 deletions(-) delete mode 100644 target/linux/bcm47xx/patches-6.6/030-v6.3-MIPS-BCM47XX-Add-support-for-Linksys-E2500-V3.patch delete mode 100644 target/linux/bcm47xx/patches-6.6/130-MIPS-BCM47XX-Add-support-for-Huawei-B593u-12.patch diff --git a/target/linux/bcm47xx/patches-6.6/030-v6.3-MIPS-BCM47XX-Add-support-for-Linksys-E2500-V3.patch b/target/linux/bcm47xx/patches-6.6/030-v6.3-MIPS-BCM47XX-Add-support-for-Linksys-E2500-V3.patch deleted file mode 100644 index 4faecdc7d5..0000000000 --- a/target/linux/bcm47xx/patches-6.6/030-v6.3-MIPS-BCM47XX-Add-support-for-Linksys-E2500-V3.patch +++ /dev/null @@ -1,65 +0,0 @@ -From fc605b914167de75432c3b5aae239fb191e84a31 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Wed, 8 Feb 2023 08:03:01 +0100 -Subject: [PATCH] MIPS: BCM47XX: Add support for Linksys E2500 V3 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It's a BCM5358 based home WiFi router. 16 MiB flash, 64 MiB RAM, BCM5325 -switch, on-SoC 802.11n radio. - -Signed-off-by: Rafał Miłecki -Reviewed-by: Florian Fainelli -Signed-off-by: Thomas Bogendoerfer ---- - arch/mips/bcm47xx/board.c | 1 + - arch/mips/bcm47xx/buttons.c | 9 +++++++++ - arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 1 + - 3 files changed, 11 insertions(+) - ---- a/arch/mips/bcm47xx/board.c -+++ b/arch/mips/bcm47xx/board.c -@@ -130,6 +130,7 @@ struct bcm47xx_board_type_list2 bcm47xx_ - {{BCM47XX_BOARD_LINKSYS_E1000V21, "Linksys E1000 V2.1"}, "E1000", "2.1"}, - {{BCM47XX_BOARD_LINKSYS_E1200V2, "Linksys E1200 V2"}, "E1200", "2.0"}, - {{BCM47XX_BOARD_LINKSYS_E2000V1, "Linksys E2000 V1"}, "Linksys E2000", "1.0"}, -+ {{BCM47XX_BOARD_LINKSYS_E2500V3, "Linksys E2500 V3"}, "E2500", "1.0"}, - /* like WRT610N v2.0 */ - {{BCM47XX_BOARD_LINKSYS_E3000V1, "Linksys E3000 V1"}, "E300", "1.0"}, - {{BCM47XX_BOARD_LINKSYS_E3200V1, "Linksys E3200 V1"}, "E3200", "1.0"}, ---- a/arch/mips/bcm47xx/buttons.c -+++ b/arch/mips/bcm47xx/buttons.c -@@ -223,6 +223,12 @@ bcm47xx_buttons_linksys_e2000v1[] __init - }; - - static const struct gpio_keys_button -+bcm47xx_buttons_linksys_e2500v3[] __initconst = { -+ BCM47XX_GPIO_KEY(9, KEY_WPS_BUTTON), -+ BCM47XX_GPIO_KEY(10, KEY_RESTART), -+}; -+ -+static const struct gpio_keys_button - bcm47xx_buttons_linksys_e3000v1[] __initconst = { - BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON), - BCM47XX_GPIO_KEY(6, KEY_RESTART), -@@ -617,6 +623,9 @@ int __init bcm47xx_buttons_register(void - case BCM47XX_BOARD_LINKSYS_E2000V1: - err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e2000v1); - break; -+ case BCM47XX_BOARD_LINKSYS_E2500V3: -+ err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e2500v3); -+ break; - case BCM47XX_BOARD_LINKSYS_E3000V1: - err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e3000v1); - break; ---- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h -+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h -@@ -61,6 +61,7 @@ enum bcm47xx_board { - BCM47XX_BOARD_LINKSYS_E1000V21, - BCM47XX_BOARD_LINKSYS_E1200V2, - BCM47XX_BOARD_LINKSYS_E2000V1, -+ BCM47XX_BOARD_LINKSYS_E2500V3, - BCM47XX_BOARD_LINKSYS_E3000V1, - BCM47XX_BOARD_LINKSYS_E3200V1, - BCM47XX_BOARD_LINKSYS_E4200V1, diff --git a/target/linux/bcm47xx/patches-6.6/130-MIPS-BCM47XX-Add-support-for-Huawei-B593u-12.patch b/target/linux/bcm47xx/patches-6.6/130-MIPS-BCM47XX-Add-support-for-Huawei-B593u-12.patch deleted file mode 100644 index 333c3d7b87..0000000000 --- a/target/linux/bcm47xx/patches-6.6/130-MIPS-BCM47XX-Add-support-for-Huawei-B593u-12.patch +++ /dev/null @@ -1,61 +0,0 @@ -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Mon, 27 Feb 2023 07:44:38 +0100 -Subject: [PATCH] MIPS: BCM47XX: Add support for Huawei B593u-12 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It's a BCM5358 based home router. One of very few bcm47xx devices with -cellular modems (here: LTE). - -Signed-off-by: Rafał Miłecki ---- - arch/mips/bcm47xx/board.c | 1 + - arch/mips/bcm47xx/leds.c | 8 ++++++++ - arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 1 + - 3 files changed, 10 insertions(+) - ---- a/arch/mips/bcm47xx/board.c -+++ b/arch/mips/bcm47xx/board.c -@@ -193,6 +193,7 @@ struct bcm47xx_board_type_list1 bcm47xx_ - /* boardtype, boardnum, boardrev */ - static const - struct bcm47xx_board_type_list3 bcm47xx_board_list_board[] __initconst = { -+ {{BCM47XX_BOARD_HUAWEI_B593U_12, "Huawei B593u-12"}, "0x053d", "1234", "0x1301"}, - {{BCM47XX_BOARD_HUAWEI_E970, "Huawei E970"}, "0x048e", "0x5347", "0x11"}, - {{BCM47XX_BOARD_PHICOMM_M1, "Phicomm M1"}, "0x0590", "80", "0x1104"}, - {{BCM47XX_BOARD_ZTE_H218N, "ZTE H218N"}, "0x053d", "1234", "0x1305"}, ---- a/arch/mips/bcm47xx/leds.c -+++ b/arch/mips/bcm47xx/leds.c -@@ -223,6 +223,11 @@ bcm47xx_leds_dlink_dir330[] __initconst - /* Huawei */ - - static const struct gpio_led -+bcm47xx_leds_huawei_b593u_12[] __initconst = { -+ BCM47XX_GPIO_LED(5, "blue", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF), -+}; -+ -+static const struct gpio_led - bcm47xx_leds_huawei_e970[] __initconst = { - BCM47XX_GPIO_LED(0, "unk", "wlan", 0, LEDS_GPIO_DEFSTATE_OFF), - }; -@@ -672,6 +677,9 @@ void __init bcm47xx_leds_register(void) - bcm47xx_set_pdata(bcm47xx_leds_dlink_dir330); - break; - -+ case BCM47XX_BOARD_HUAWEI_B593U_12: -+ bcm47xx_set_pdata(bcm47xx_leds_huawei_b593u_12); -+ break; - case BCM47XX_BOARD_HUAWEI_E970: - bcm47xx_set_pdata(bcm47xx_leds_huawei_e970); - break; ---- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h -+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h -@@ -53,6 +53,7 @@ enum bcm47xx_board { - BCM47XX_BOARD_DLINK_DIR130, - BCM47XX_BOARD_DLINK_DIR330, - -+ BCM47XX_BOARD_HUAWEI_B593U_12, - BCM47XX_BOARD_HUAWEI_E970, - - BCM47XX_BOARD_LINKSYS_E900V1, diff --git a/target/linux/bcm47xx/patches-6.6/159-cpu_fixes.patch b/target/linux/bcm47xx/patches-6.6/159-cpu_fixes.patch index f51ed83d93..f4360664c5 100644 --- a/target/linux/bcm47xx/patches-6.6/159-cpu_fixes.patch +++ b/target/linux/bcm47xx/patches-6.6/159-cpu_fixes.patch @@ -350,27 +350,27 @@ /* * Bits describing what cache ops an SMP callback function may perform. * -@@ -189,6 +192,9 @@ static void r4k_blast_dcache_user_page_s +@@ -144,6 +147,9 @@ static void r4k_blast_dcache_page_setup( { unsigned long dc_lsize = cpu_dcache_line_size(); + if (bcm4710) + r4k_blast_dcache_page = blast_dcache_page; + else - if (dc_lsize == 0) - r4k_blast_dcache_user_page = (void *)cache_noop; - else if (dc_lsize == 16) -@@ -207,6 +213,9 @@ static void r4k_blast_dcache_page_indexe + switch (dc_lsize) { + case 0: + r4k_blast_dcache_page = (void *)cache_noop; +@@ -175,6 +181,9 @@ static void r4k_blast_dcache_user_page_s { - unsigned long dc_lsize = cpu_dcache_line_size(); + unsigned long dc_lsize = cpu_dcache_line_size(); + if (bcm4710) -+ r4k_blast_dcache_page_indexed = blast_dcache_page_indexed; ++ r4k_blast_dcache_user_page = blast_dcache_user_page; + else if (dc_lsize == 0) - r4k_blast_dcache_page_indexed = (void *)cache_noop; + r4k_blast_dcache_user_page = (void *)cache_noop; else if (dc_lsize == 16) -@@ -226,6 +235,9 @@ static void r4k_blast_dcache_setup(void) +@@ -194,6 +203,9 @@ static void r4k_blast_dcache_setup(void) { unsigned long dc_lsize = cpu_dcache_line_size(); @@ -380,7 +380,7 @@ if (dc_lsize == 0) r4k_blast_dcache = (void *)cache_noop; else if (dc_lsize == 16) -@@ -1779,6 +1791,17 @@ static void coherency_setup(void) +@@ -1669,6 +1681,17 @@ static void coherency_setup(void) * silly idea of putting something else there ... */ switch (current_cpu_type()) { @@ -398,7 +398,7 @@ case CPU_R4000PC: case CPU_R4000SC: case CPU_R4000MC: -@@ -1825,6 +1848,15 @@ void r4k_cache_init(void) +@@ -1715,6 +1738,15 @@ void r4k_cache_init(void) extern void build_copy_page(void); struct cpuinfo_mips *c = ¤t_cpu_data; @@ -414,7 +414,7 @@ probe_pcache(); probe_vcache(); setup_scache(); -@@ -1897,7 +1929,15 @@ void r4k_cache_init(void) +@@ -1777,7 +1809,15 @@ void r4k_cache_init(void) */ local_r4k___flush_cache_all(NULL); diff --git a/target/linux/bcm47xx/patches-6.6/160-kmap_coherent.patch b/target/linux/bcm47xx/patches-6.6/160-kmap_coherent.patch index 2af9d42fe5..19ab8df7c4 100644 --- a/target/linux/bcm47xx/patches-6.6/160-kmap_coherent.patch +++ b/target/linux/bcm47xx/patches-6.6/160-kmap_coherent.patch @@ -29,16 +29,7 @@ This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485 #endif /* __ASM_MACH_BCM47XX_CPU_FEATURE_OVERRIDES_H */ --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c -@@ -701,7 +701,7 @@ static inline void local_r4k_flush_cache - map_coherent = (cpu_has_dc_aliases && - page_mapcount(page) && - !Page_dcache_dirty(page)); -- if (map_coherent) -+ if (map_coherent && cpu_use_kmap_coherent) - vaddr = kmap_coherent(page, addr); - else - vaddr = kmap_atomic(page); -@@ -728,7 +728,7 @@ static inline void local_r4k_flush_cache +@@ -618,7 +618,7 @@ static inline void local_r4k_flush_cache } if (vaddr) { @@ -49,30 +40,30 @@ This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485 kunmap_atomic(vaddr); --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c -@@ -172,7 +172,7 @@ void copy_user_highpage(struct page *to, +@@ -173,7 +173,7 @@ void copy_user_highpage(struct page *to, void *vfrom, *vto; vto = kmap_atomic(to); - if (cpu_has_dc_aliases && + if (cpu_has_dc_aliases && cpu_use_kmap_coherent && - page_mapcount(from) && !Page_dcache_dirty(from)) { + folio_mapped(src) && !folio_test_dcache_dirty(src)) { vfrom = kmap_coherent(from, vaddr); copy_page(vto, vfrom); -@@ -194,7 +194,7 @@ void copy_to_user_page(struct vm_area_st - struct page *page, unsigned long vaddr, void *dst, const void *src, - unsigned long len) +@@ -197,7 +197,7 @@ void copy_to_user_page(struct vm_area_st { + struct folio *folio = page_folio(page); + - if (cpu_has_dc_aliases && + if (cpu_has_dc_aliases && cpu_use_kmap_coherent && - page_mapcount(page) && !Page_dcache_dirty(page)) { + folio_mapped(folio) && !folio_test_dcache_dirty(folio)) { void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK); memcpy(vto, src, len); -@@ -212,7 +212,7 @@ void copy_from_user_page(struct vm_area_ - struct page *page, unsigned long vaddr, void *dst, const void *src, - unsigned long len) +@@ -217,7 +217,7 @@ void copy_from_user_page(struct vm_area_ { + struct folio *folio = page_folio(page); + - if (cpu_has_dc_aliases && + if (cpu_has_dc_aliases && cpu_use_kmap_coherent && - page_mapcount(page) && !Page_dcache_dirty(page)) { + folio_mapped(folio) && !folio_test_dcache_dirty(folio)) { void *vfrom = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK); memcpy(dst, vfrom, len); diff --git a/target/linux/bcm47xx/patches-6.6/209-b44-register-adm-switch.patch b/target/linux/bcm47xx/patches-6.6/209-b44-register-adm-switch.patch index af4e218f9e..a18f582969 100644 --- a/target/linux/bcm47xx/patches-6.6/209-b44-register-adm-switch.patch +++ b/target/linux/bcm47xx/patches-6.6/209-b44-register-adm-switch.patch @@ -19,7 +19,7 @@ Subject: [PATCH 210/210] b44: register adm switch #include #include -@@ -2249,6 +2251,69 @@ static void b44_adjust_link(struct net_d +@@ -2225,6 +2227,69 @@ static void b44_adjust_link(struct net_d } } @@ -89,7 +89,7 @@ Subject: [PATCH 210/210] b44: register adm switch static int b44_register_phy_one(struct b44 *bp) { __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, }; -@@ -2285,6 +2350,9 @@ static int b44_register_phy_one(struct b +@@ -2261,6 +2326,9 @@ static int b44_register_phy_one(struct b if (!mdiobus_is_registered_device(bp->mii_bus, bp->phy_addr) && (sprom->boardflags_lo & (B44_BOARDFLAG_ROBO | B44_BOARDFLAG_ADM))) { @@ -99,7 +99,7 @@ Subject: [PATCH 210/210] b44: register adm switch dev_info(sdev->dev, "could not find PHY at %i, use fixed one\n", bp->phy_addr); -@@ -2479,6 +2547,7 @@ static void b44_remove_one(struct ssb_de +@@ -2455,6 +2523,7 @@ static void b44_remove_one(struct ssb_de unregister_netdev(dev); if (bp->flags & B44_FLAG_EXTERNAL_PHY) b44_unregister_phy_one(bp); diff --git a/target/linux/bcm47xx/patches-6.6/210-b44_phy_fix.patch b/target/linux/bcm47xx/patches-6.6/210-b44_phy_fix.patch index ffe029b9fe..eeb66d9501 100644 --- a/target/linux/bcm47xx/patches-6.6/210-b44_phy_fix.patch +++ b/target/linux/bcm47xx/patches-6.6/210-b44_phy_fix.patch @@ -1,6 +1,6 @@ --- a/drivers/net/ethernet/broadcom/b44.c +++ b/drivers/net/ethernet/broadcom/b44.c -@@ -430,10 +430,34 @@ static void b44_wap54g10_workaround(stru +@@ -408,10 +408,34 @@ static void b44_wap54g10_workaround(stru error: pr_warn("PHY: cannot reset MII transceiver isolate bit\n"); } @@ -35,7 +35,7 @@ #endif static int b44_setup_phy(struct b44 *bp) -@@ -442,6 +466,7 @@ static int b44_setup_phy(struct b44 *bp) +@@ -420,6 +444,7 @@ static int b44_setup_phy(struct b44 *bp) int err; b44_wap54g10_workaround(bp); @@ -43,7 +43,7 @@ if (bp->flags & B44_FLAG_EXTERNAL_PHY) return 0; -@@ -2179,6 +2204,8 @@ static int b44_get_invariants(struct b44 +@@ -2155,6 +2180,8 @@ static int b44_get_invariants(struct b44 * valid PHY address. */ bp->phy_addr &= 0x1F; diff --git a/target/linux/bcm47xx/patches-6.6/310-no_highpage.patch b/target/linux/bcm47xx/patches-6.6/310-no_highpage.patch index 8f368e3e9e..7a4cd6ed90 100644 --- a/target/linux/bcm47xx/patches-6.6/310-no_highpage.patch +++ b/target/linux/bcm47xx/patches-6.6/310-no_highpage.patch @@ -41,18 +41,19 @@ For details see OpenWrt ticket #2035 https://dev.openwrt.org/ticket/2035 * These are used to make use of C type-checking.. --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c -@@ -166,30 +166,6 @@ void kunmap_coherent(void) +@@ -166,31 +166,6 @@ void kunmap_coherent(void) preempt_enable(); } -void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) -{ +- struct folio *src = page_folio(from); - void *vfrom, *vto; - - vto = kmap_atomic(to); - if (cpu_has_dc_aliases && cpu_use_kmap_coherent && -- page_mapcount(from) && !Page_dcache_dirty(from)) { +- folio_mapped(src) && !folio_test_dcache_dirty(src)) { - vfrom = kmap_coherent(from, vaddr); - copy_page(vto, vfrom); - kunmap_coherent(); diff --git a/target/linux/bcm47xx/patches-6.6/830-huawei_e970_support.patch b/target/linux/bcm47xx/patches-6.6/830-huawei_e970_support.patch index 1746fee592..21ab40206f 100644 --- a/target/linux/bcm47xx/patches-6.6/830-huawei_e970_support.patch +++ b/target/linux/bcm47xx/patches-6.6/830-huawei_e970_support.patch @@ -52,7 +52,7 @@ device_initcall(bcm47xx_register_bus_complete); --- a/arch/mips/configs/bcm47xx_defconfig +++ b/arch/mips/configs/bcm47xx_defconfig -@@ -63,6 +63,7 @@ CONFIG_HW_RANDOM=y +@@ -62,6 +62,7 @@ CONFIG_HW_RANDOM=y CONFIG_GPIO_SYSFS=y CONFIG_WATCHDOG=y CONFIG_BCM47XX_WDT=y diff --git a/target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch b/target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch index 55639c6d2e..6c76cbeee7 100644 --- a/target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch +++ b/target/linux/bcm47xx/patches-6.6/831-old_gpio_wdt.patch @@ -4,7 +4,7 @@ Signed-off-by: Mathias Adam --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig -@@ -1728,6 +1728,15 @@ config WDT_MTX1 +@@ -1755,6 +1755,15 @@ config WDT_MTX1 Hardware driver for the MTX-1 boards. This is a watchdog timer that will reboot the machine after a 100 seconds timer expired. @@ -22,7 +22,7 @@ Signed-off-by: Mathias Adam depends on CPU_SB1 --- a/drivers/watchdog/Makefile +++ b/drivers/watchdog/Makefile -@@ -164,6 +164,7 @@ obj-$(CONFIG_RC32434_WDT) += rc32434_wdt +@@ -167,6 +167,7 @@ obj-$(CONFIG_RC32434_WDT) += rc32434_wdt obj-$(CONFIG_INDYDOG) += indydog.o obj-$(CONFIG_JZ4740_WDT) += jz4740_wdt.o obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o diff --git a/target/linux/bcm47xx/patches-6.6/999-wl_exports.patch b/target/linux/bcm47xx/patches-6.6/999-wl_exports.patch index b47913af70..72be498776 100644 --- a/target/linux/bcm47xx/patches-6.6/999-wl_exports.patch +++ b/target/linux/bcm47xx/patches-6.6/999-wl_exports.patch @@ -12,7 +12,7 @@ static int cfe_env; --- a/arch/mips/mm/cache.c +++ b/arch/mips/mm/cache.c -@@ -63,6 +63,9 @@ void (*_dma_cache_wback_inv)(unsigned lo +@@ -80,6 +80,9 @@ void (*_dma_cache_wback_inv)(unsigned lo void (*_dma_cache_wback)(unsigned long start, unsigned long size); void (*_dma_cache_inv)(unsigned long start, unsigned long size); -- 2.30.2