From 81832b38a0833290ad794065f4bde07df271beb1 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Sat, 6 Nov 2021 02:46:36 +0000 Subject: [PATCH 01/53] uqmi: update to git HEAD and improve proto handler script e303ba8 uqmi: update code generator 7880de8 uqmi: sync data from libqmi project d647f8d uqmi: add more diagnostics commands 6f95626 uim: add --uim-get-sim-state Use newly introduce --uim-get-sim-state command to query PIN status from modems which require using uim instead of dms command for that. Signed-off-by: Daniel Golle --- package/network/utils/uqmi/Makefile | 8 ++++---- package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh | 8 +++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/package/network/utils/uqmi/Makefile b/package/network/utils/uqmi/Makefile index 53ca67230b..8f0caf5e8d 100644 --- a/package/network/utils/uqmi/Makefile +++ b/package/network/utils/uqmi/Makefile @@ -1,13 +1,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=uqmi -PKG_RELEASE:=3 +PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/uqmi.git -PKG_SOURCE_DATE:=2020-11-22 -PKG_SOURCE_VERSION:=0a19b5b77140465c29e2afa7d611fe93abc9672f -PKG_MIRROR_HASH:=0a6641f8e167efd21d464b0b2aeb1fec5f974dddcdb8822fbd5d7190d0b741b4 +PKG_SOURCE_DATE:=2021-11-06 +PKG_SOURCE_VERSION:=6f956265167945267d676c99f123a8c822f0a77b +PKG_MIRROR_HASH:=1dbe14a28ec59b364dbde5dea9e10ed1c5c3eda274b6c7690c793a06643acf3e PKG_MAINTAINER:=Matti Laakso PKG_LICENSE:=GPL-2.0 diff --git a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh index c0134f44dd..156e57b135 100755 --- a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh +++ b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh @@ -94,7 +94,8 @@ proto_qmi_setup() { fi done - if uqmi -s -d "$device" --get-pin-status | grep '"Not supported"\|"Invalid QMI command"' > /dev/null; then + if uqmi -s -d "$device" --uim-get-sim-state | grep -q '"Not supported"\|"Invalid QMI command"' && + uqmi -s -d "$device" --get-pin-status | grep -q '"Not supported"\|"Invalid QMI command"' ; then [ -n "$pincode" ] && { uqmi -s -d "$device" --verify-pin1 "$pincode" > /dev/null || uqmi -s -d "$device" --uim-verify-pin1 "$pincode" > /dev/null || { echo "Unable to verify PIN" @@ -105,7 +106,8 @@ proto_qmi_setup() { } else . /usr/share/libubox/jshn.sh - json_load "$(uqmi -s -d "$device" --get-pin-status)" + json_load "$(uqmi -s -d "$device" --get-pin-status)" 2>&1 | grep -q Failed && + json_load "$(uqmi -s -d "$device" --uim-get-sim-state)" json_get_var pin1_status pin1_status json_get_var pin1_verify_tries pin1_verify_tries @@ -144,7 +146,7 @@ proto_qmi_setup() { echo "PIN already verified" ;; *) - echo "PIN status failed ($pin1_status)" + echo "PIN status failed (${pin1_status:-sim_not_present})" proto_notify_error "$interface" PIN_STATUS_FAILED proto_block_restart "$interface" return 1 From 15e55a2190ba087679b24b8844a51a6e4d512cf3 Mon Sep 17 00:00:00 2001 From: Paul Spooren Date: Tue, 12 Oct 2021 15:36:33 -1000 Subject: [PATCH 02/53] imagebuilder: fix local packages/ folder This commit fixes commit "2999f810ff: build,IB: include kmods only in local builds" which cause the local packages/ folder only to be added for local builds but no longer for ImageBuilder created by the Buildbot. The commits intention was to use remote kmods repositories rather than storing them locally. Accidentally the entire handling of the local `packages/` was removed. Re-add the folder and include a README describing what it can be used for. Signed-off-by: Paul Spooren --- target/imagebuilder/Makefile | 6 +++++- target/imagebuilder/files/README.md | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 target/imagebuilder/files/README.md diff --git a/target/imagebuilder/Makefile b/target/imagebuilder/Makefile index 0580e41c57..8607a2d709 100644 --- a/target/imagebuilder/Makefile +++ b/target/imagebuilder/Makefile @@ -46,12 +46,16 @@ ifeq ($(CONFIG_IB_STANDALONE),) $(VERSION_SED_SCRIPT) $(PKG_BUILD_DIR)/repositories.conf endif -ifeq ($(CONFIG_BUILDBOT),) $(INSTALL_DIR) $(PKG_BUILD_DIR)/packages + # create an empty package index so `opkg` doesn't report an error + touch $(PKG_BUILD_DIR)/packages/Packages + $(INSTALL_DATA) ./files/README.md $(PKG_BUILD_DIR)/packages/ + echo '' >> $(PKG_BUILD_DIR)/repositories.conf echo '## This is the local package repository, do not remove!' >> $(PKG_BUILD_DIR)/repositories.conf echo 'src imagebuilder file:packages' >> $(PKG_BUILD_DIR)/repositories.conf +ifeq ($(CONFIG_BUILDBOT),) ifeq ($(CONFIG_IB_STANDALONE),) $(FIND) $(call FeedPackageDir,libc) -type f \ \( -name 'libc_*.ipk' -or -name 'kernel_*.ipk' -or -name 'kmod-*.ipk' \) \ diff --git a/target/imagebuilder/files/README.md b/target/imagebuilder/files/README.md new file mode 100644 index 0000000000..9a9616d06d --- /dev/null +++ b/target/imagebuilder/files/README.md @@ -0,0 +1,11 @@ +# ./packages folder + +Add `.ipk` packages to this folder will allow the ImageBuilder to install them. + +For more complex setups consider adding a custom feed containing packages. + + src custom file:///path/to/packages + +Whenever the ImageBuilder builds a firmware image this folder will be reloaded +and a new package index created. In case signature checks are enabled the +`./packages/Packages` index will be signed with a locally generated key pair. From e37dffbf3583e8f18ae197daba662ca157d99062 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Mon, 1 Nov 2021 07:59:21 +0100 Subject: [PATCH 03/53] tools/mkimage: pass --static via PKG_CONFIG_EXTRAARGS Remove the then unnecessary patch doing exactly that individually. See also 09465d80 "u-boot.mk: always link host libraries static". Signed-off-by: Andre Heider --- tools/mkimage/Makefile | 1 + .../patches/210-link-libcrypto-static.patch | 14 -------------- 2 files changed, 1 insertion(+), 14 deletions(-) delete mode 100644 tools/mkimage/patches/210-link-libcrypto-static.patch diff --git a/tools/mkimage/Makefile b/tools/mkimage/Makefile index 6901d921cf..1eb713a22a 100644 --- a/tools/mkimage/Makefile +++ b/tools/mkimage/Makefile @@ -32,6 +32,7 @@ define Host/Compile $(MAKE) -C $(HOST_BUILD_DIR) \ HOSTCFLAGS="$(HOST_CFLAGS)" \ HOSTLDFLAGS="$(HOST_LDFLAGS)" \ + PKG_CONFIG_EXTRAARGS="--static" \ no-dot-config-targets=tools-only \ CONFIG_MKIMAGE_DTC_PATH=dtc \ CONFIG_FIT=y \ diff --git a/tools/mkimage/patches/210-link-libcrypto-static.patch b/tools/mkimage/patches/210-link-libcrypto-static.patch deleted file mode 100644 index 87a425bd94..0000000000 --- a/tools/mkimage/patches/210-link-libcrypto-static.patch +++ /dev/null @@ -1,14 +0,0 @@ -OpenWrt links the libressl statically against mkimage, make sure all the -needed dependencies are added too. - ---- a/tools/Makefile -+++ b/tools/Makefile -@@ -158,7 +158,7 @@ ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CON - HOSTCFLAGS_kwbimage.o += \ - $(shell pkg-config --cflags libssl libcrypto 2> /dev/null || echo "") - HOSTLDLIBS_mkimage += \ -- $(shell pkg-config --libs libssl libcrypto 2> /dev/null || echo "-lssl -lcrypto") -+ $(shell pkg-config --libs --static libssl libcrypto 2> /dev/null || echo "-lssl -lcrypto") - - # OS X deprecate openssl in favour of CommonCrypto, supress deprecation - # warnings on those systems From 4b26ba4155db8403beb5de42bcff5bd04800a67f Mon Sep 17 00:00:00 2001 From: Rui Salvaterra Date: Tue, 2 Nov 2021 21:05:27 +0000 Subject: [PATCH 04/53] kernel: bump 5.10 to 5.10.77 Deleted (upstreamed): bcm53xx/patches-5.10/081-v5.15-Revert-pinctrl-bcm-ns-support-updated-DT-binding-as-.patch [1] [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.10.y&id=01c2881bb0e0a71b87ca425e1b763ac13855aa7e Signed-off-by: Rui Salvaterra --- include/kernel-version.mk | 4 +- ...o_user-and-__copy_from_user-performa.patch | 2 +- ...-0201-mmc-sdhci-Silence-MMC-warnings.patch | 4 +- ...ovide-missing-documentation-for-some.patch | 10 +- ...x-a-couple-of-spelling-errors-in-fw_.patch | 2 +- ...153_ecm-support-ECM-mode-for-RTL8153.patch | 10 +- ...45-net-usb-r8152-use-new-tasklet-API.patch | 4 +- ...veral-functions-about-phy-patch-requ.patch | 16 +- ...t-the-flow-of-power-cut-for-RTL8153B.patch | 10 +- ...152-enable-U1-U2-for-USB_SPEED_SUPER.patch | 6 +- ...f-the-pointer-of-the-function-exists.patch | 6 +- ...r8152-replace-netif_err-with-dev_err.patch | 4 +- ...rtl_set_eee_plus-and-r8153b_green_en.patch | 6 +- ...ter-fram-gap-time-depending-on-speed.patch | 6 +- ...just-rtl8152_check_firmware-function.patch | 10 +- ...8152-add-help-function-to-change-mtu.patch | 22 +-- .../950-0555-r8152-support-new-chips.patch | 156 +++++++++--------- ...port-PHY-firmware-for-RTL8156-series.patch | 26 +-- ...rch-the-configuration-of-vendor-mode.patch | 6 +- ...oup-Disable-cgroup-memory-by-default.patch | 8 +- ...cm-ns-support-updated-DT-binding-as-.patch | 106 ------------ ...pi-poll-functionality-to-__napi_poll.patch | 8 +- ...threaded-able-napi-poll-loop-support.patch | 10 +- ...tribute-to-control-napi-threaded-mod.patch | 4 +- ...ween-napi-kthread-mode-and-busy-poll.patch | 6 +- ...up-on-napi_disable-for-threaded-napi.patch | 4 +- ...the-dst-buffer-to-of_get_mac_address.patch | 6 +- .../721-net-add-packet-mangeling.patch | 2 +- ...T-skip-GRO-for-foreign-MAC-addresses.patch | 10 +- .../105-ipq40xx-fix-sleep-clock.patch | 2 +- ...y-simplify-phy_link_change-arguments.patch | 8 +- .../721-NET-no-auto-carrier-off-support.patch | 4 +- 32 files changed, 191 insertions(+), 297 deletions(-) delete mode 100644 target/linux/bcm53xx/patches-5.10/081-v5.15-Revert-pinctrl-bcm-ns-support-updated-DT-binding-as-.patch diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 531a760281..17cb009f3c 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -7,10 +7,10 @@ ifdef CONFIG_TESTING_KERNEL endif LINUX_VERSION-5.4 = .155 -LINUX_VERSION-5.10 = .76 +LINUX_VERSION-5.10 = .77 LINUX_KERNEL_HASH-5.4.155 = cc0c0f902748d251cb22d0e69e3b8d260c447eb0072ef853da15da6cce775038 -LINUX_KERNEL_HASH-5.10.76 = 480a09ba1962862ff18df9453fa0df6ba11cbe19eefedeab81bf2c84f49e1890 +LINUX_KERNEL_HASH-5.10.77 = d3b64edfc1dd7212e62ed733aeeb73d64ffd6d9658d322d44cddf1b41d5b8fc3 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) diff --git a/target/linux/bcm27xx/patches-5.10/950-0057-Improve-__copy_to_user-and-__copy_from_user-performa.patch b/target/linux/bcm27xx/patches-5.10/950-0057-Improve-__copy_to_user-and-__copy_from_user-performa.patch index 7fff55b50c..e549ce963d 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0057-Improve-__copy_to_user-and-__copy_from_user-performa.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0057-Improve-__copy_to_user-and-__copy_from_user-performa.patch @@ -76,7 +76,7 @@ Signed-off-by: Christopher Blake #endif --- a/arch/arm/include/asm/uaccess.h +++ b/arch/arm/include/asm/uaccess.h -@@ -516,6 +516,9 @@ do { \ +@@ -518,6 +518,9 @@ do { \ extern unsigned long __must_check arm_copy_from_user(void *to, const void __user *from, unsigned long n); diff --git a/target/linux/bcm27xx/patches-5.10/950-0201-mmc-sdhci-Silence-MMC-warnings.patch b/target/linux/bcm27xx/patches-5.10/950-0201-mmc-sdhci-Silence-MMC-warnings.patch index e015cc81c6..ae6eba1cb4 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0201-mmc-sdhci-Silence-MMC-warnings.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0201-mmc-sdhci-Silence-MMC-warnings.patch @@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard #define MAX_TUNING_LOOP 40 -@@ -3127,7 +3127,7 @@ static void sdhci_timeout_timer(struct t +@@ -3133,7 +3133,7 @@ static void sdhci_timeout_timer(struct t spin_lock_irqsave(&host->lock, flags); if (host->cmd && !sdhci_data_line_cmd(host->cmd)) { @@ -31,7 +31,7 @@ Signed-off-by: Maxime Ripard mmc_hostname(host->mmc)); sdhci_dumpregs(host); -@@ -3149,7 +3149,7 @@ static void sdhci_timeout_data_timer(str +@@ -3155,7 +3155,7 @@ static void sdhci_timeout_data_timer(str if (host->data || host->data_cmd || (host->cmd && sdhci_data_line_cmd(host->cmd))) { diff --git a/target/linux/bcm27xx/patches-5.10/950-0542-net-usb-r8152-Provide-missing-documentation-for-some.patch b/target/linux/bcm27xx/patches-5.10/950-0542-net-usb-r8152-Provide-missing-documentation-for-some.patch index e69144fcd8..bec2867a48 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0542-net-usb-r8152-Provide-missing-documentation-for-some.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0542-net-usb-r8152-Provide-missing-documentation-for-some.patch @@ -27,7 +27,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -898,6 +898,7 @@ struct fw_header { +@@ -899,6 +899,7 @@ struct fw_header { * struct fw_mac - a firmware block used by RTL_FW_PLA and RTL_FW_USB. * The layout of the firmware block is: * + + . @@ -35,7 +35,7 @@ Signed-off-by: Jakub Kicinski * @fw_offset: offset of the firmware binary data. The start address of * the data would be the address of struct fw_mac + @fw_offset. * @fw_reg: the register to load the firmware. Depends on chip. -@@ -911,6 +912,7 @@ struct fw_header { +@@ -912,6 +913,7 @@ struct fw_header { * @bp_num: the break point number which needs to be set for this firmware. * Depends on the firmware. * @bp: break points. Depends on firmware. @@ -43,7 +43,7 @@ Signed-off-by: Jakub Kicinski * @fw_ver_reg: the register to store the fw version. * @fw_ver_data: the firmware version of the current type. * @info: additional information for debugging, and is followed by the -@@ -936,8 +938,10 @@ struct fw_mac { +@@ -937,8 +939,10 @@ struct fw_mac { /** * struct fw_phy_patch_key - a firmware block used by RTL_FW_PHY_START. * This is used to set patch key when loading the firmware of PHY. @@ -54,7 +54,7 @@ Signed-off-by: Jakub Kicinski */ struct fw_phy_patch_key { struct fw_block blk_hdr; -@@ -950,6 +954,7 @@ struct fw_phy_patch_key { +@@ -951,6 +955,7 @@ struct fw_phy_patch_key { * struct fw_phy_nc - a firmware block used by RTL_FW_PHY_NC. * The layout of the firmware block is: * + + . @@ -62,7 +62,7 @@ Signed-off-by: Jakub Kicinski * @fw_offset: offset of the firmware binary data. The start address of * the data would be the address of struct fw_phy_nc + @fw_offset. * @fw_reg: the register to load the firmware. Depends on chip. -@@ -960,6 +965,7 @@ struct fw_phy_patch_key { +@@ -961,6 +966,7 @@ struct fw_phy_patch_key { * @mode_reg: the regitster of switching the mode. * @mod_pre: the mode needing to be set before loading the firmware. * @mod_post: the mode to be set when finishing to load the firmware. diff --git a/target/linux/bcm27xx/patches-5.10/950-0543-net-usb-r8152-Fix-a-couple-of-spelling-errors-in-fw_.patch b/target/linux/bcm27xx/patches-5.10/950-0543-net-usb-r8152-Fix-a-couple-of-spelling-errors-in-fw_.patch index 96a9a3363d..aa2763e7de 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0543-net-usb-r8152-Fix-a-couple-of-spelling-errors-in-fw_.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0543-net-usb-r8152-Fix-a-couple-of-spelling-errors-in-fw_.patch @@ -21,7 +21,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -963,8 +963,8 @@ struct fw_phy_patch_key { +@@ -964,8 +964,8 @@ struct fw_phy_patch_key { * @patch_en_addr: the register of enabling patch mode. Depends on chip. * @patch_en_value: patch mode enabled mask. Depends on the firmware. * @mode_reg: the regitster of switching the mode. diff --git a/target/linux/bcm27xx/patches-5.10/950-0544-net-usb-r8153_ecm-support-ECM-mode-for-RTL8153.patch b/target/linux/bcm27xx/patches-5.10/950-0544-net-usb-r8153_ecm-support-ECM-mode-for-RTL8153.patch index b3eb58831c..789de8e6fd 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0544-net-usb-r8153_ecm-support-ECM-mode-for-RTL8153.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0544-net-usb-r8153_ecm-support-ECM-mode-for-RTL8153.patch @@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski obj-$(CONFIG_USB_NET_SR9700) += sr9700.o --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -26,6 +26,7 @@ +@@ -27,6 +27,7 @@ #include #include #include @@ -48,7 +48,7 @@ Signed-off-by: Jakub Kicinski /* Information for net-next */ #define NETNEXT_VERSION "11" -@@ -653,18 +654,6 @@ enum rtl_register_content { +@@ -654,18 +655,6 @@ enum rtl_register_content { #define INTR_LINK 0x0004 @@ -67,7 +67,7 @@ Signed-off-by: Jakub Kicinski #define RTL8153_MAX_PACKET 9216 /* 9K */ #define RTL8153_MAX_MTU (RTL8153_MAX_PACKET - VLAN_ETH_HLEN - \ ETH_FCS_LEN) -@@ -689,21 +678,9 @@ enum rtl8152_flags { +@@ -690,21 +679,9 @@ enum rtl8152_flags { LENOVO_MACPASSTHRU, }; @@ -89,7 +89,7 @@ Signed-off-by: Jakub Kicinski struct tally_counter { __le64 tx_packets; __le64 rx_packets; -@@ -6602,7 +6579,7 @@ static int rtl_fw_init(struct r8152 *tp) +@@ -6625,7 +6602,7 @@ static int rtl_fw_init(struct r8152 *tp) return 0; } @@ -98,7 +98,7 @@ Signed-off-by: Jakub Kicinski { struct usb_device *udev = interface_to_usbdev(intf); u32 ocp_data = 0; -@@ -6660,12 +6637,13 @@ static u8 rtl_get_version(struct usb_int +@@ -6683,12 +6660,13 @@ static u8 rtl_get_version(struct usb_int return version; } diff --git a/target/linux/bcm27xx/patches-5.10/950-0545-net-usb-r8152-use-new-tasklet-API.patch b/target/linux/bcm27xx/patches-5.10/950-0545-net-usb-r8152-use-new-tasklet-API.patch index eeb85d7951..b625d5ea99 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0545-net-usb-r8152-use-new-tasklet-API.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0545-net-usb-r8152-use-new-tasklet-API.patch @@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -2393,11 +2393,9 @@ static void tx_bottom(struct r8152 *tp) +@@ -2394,11 +2394,9 @@ static void tx_bottom(struct r8152 *tp) } while (res == 0); } @@ -30,7 +30,7 @@ Signed-off-by: Jakub Kicinski if (test_bit(RTL8152_UNPLUG, &tp->flags)) return; -@@ -6695,7 +6693,7 @@ static int rtl8152_probe(struct usb_inte +@@ -6718,7 +6716,7 @@ static int rtl8152_probe(struct usb_inte mutex_init(&tp->control); INIT_DELAYED_WORK(&tp->schedule, rtl_work_func_t); INIT_DELAYED_WORK(&tp->hw_phy_work, rtl_hw_phy_work_func_t); diff --git a/target/linux/bcm27xx/patches-5.10/950-0546-r8152-replace-several-functions-about-phy-patch-requ.patch b/target/linux/bcm27xx/patches-5.10/950-0546-r8152-replace-several-functions-about-phy-patch-requ.patch index faaa8275c5..bbb2b5c0c9 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0546-r8152-replace-several-functions-about-phy-patch-requ.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0546-r8152-replace-several-functions-about-phy-patch-requ.patch @@ -25,7 +25,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -3443,59 +3443,76 @@ static void rtl_clear_bp(struct r8152 *t +@@ -3444,59 +3444,76 @@ static void rtl_clear_bp(struct r8152 *t ocp_write_word(tp, type, PLA_BP_BA, 0); } @@ -127,7 +127,7 @@ Signed-off-by: Jakub Kicinski ocp_write_word(tp, MCU_TYPE_PLA, PLA_OCP_GPHY_BASE, tp->ocp_base); -@@ -3980,7 +3997,7 @@ static void rtl8152_fw_mac_apply(struct +@@ -3981,7 +3998,7 @@ static void rtl8152_fw_mac_apply(struct dev_dbg(&tp->intf->dev, "successfully applied %s\n", mac->info); } @@ -136,7 +136,7 @@ Signed-off-by: Jakub Kicinski { struct rtl_fw *rtl_fw = &tp->rtl_fw; const struct firmware *fw; -@@ -4011,12 +4028,11 @@ static void rtl8152_apply_firmware(struc +@@ -4012,12 +4029,11 @@ static void rtl8152_apply_firmware(struc case RTL_FW_PHY_START: key = (struct fw_phy_patch_key *)block; key_addr = __le16_to_cpu(key->key_reg); @@ -151,7 +151,7 @@ Signed-off-by: Jakub Kicinski break; case RTL_FW_PHY_NC: rtl8152_fw_phy_nc_apply(tp, (struct fw_phy_nc *)block); -@@ -4221,7 +4237,7 @@ static void rtl8152_disable(struct r8152 +@@ -4222,7 +4238,7 @@ static void rtl8152_disable(struct r8152 static void r8152b_hw_phy_cfg(struct r8152 *tp) { @@ -160,7 +160,7 @@ Signed-off-by: Jakub Kicinski rtl_eee_enable(tp, tp->eee_en); r8152_aldps_en(tp, true); r8152b_enable_fc(tp); -@@ -4503,7 +4519,7 @@ static void r8153_hw_phy_cfg(struct r815 +@@ -4504,7 +4520,7 @@ static void r8153_hw_phy_cfg(struct r815 /* disable EEE before updating the PHY parameters */ rtl_eee_enable(tp, false); @@ -169,7 +169,7 @@ Signed-off-by: Jakub Kicinski if (tp->version == RTL_VER_03) { data = ocp_reg_read(tp, OCP_EEE_CFG); -@@ -4577,7 +4593,7 @@ static void r8153b_hw_phy_cfg(struct r81 +@@ -4578,7 +4594,7 @@ static void r8153b_hw_phy_cfg(struct r81 /* disable EEE before updating the PHY parameters */ rtl_eee_enable(tp, false); @@ -178,7 +178,7 @@ Signed-off-by: Jakub Kicinski r8153b_green_en(tp, test_bit(GREEN_ETHERNET, &tp->flags)); -@@ -4618,7 +4634,7 @@ static void r8153b_hw_phy_cfg(struct r81 +@@ -4619,7 +4635,7 @@ static void r8153b_hw_phy_cfg(struct r81 ocp_write_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR, ocp_data); /* Advnace EEE */ @@ -187,7 +187,7 @@ Signed-off-by: Jakub Kicinski data = ocp_reg_read(tp, OCP_POWER_CFG); data |= EEE_CLKDIV_EN; ocp_reg_write(tp, OCP_POWER_CFG, data); -@@ -4635,7 +4651,7 @@ static void r8153b_hw_phy_cfg(struct r81 +@@ -4636,7 +4652,7 @@ static void r8153b_hw_phy_cfg(struct r81 ocp_reg_write(tp, OCP_SYSCLK_CFG, clk_div_expo(5)); tp->ups_info._250m_ckdiv = true; diff --git a/target/linux/bcm27xx/patches-5.10/950-0547-r8152-adjust-the-flow-of-power-cut-for-RTL8153B.patch b/target/linux/bcm27xx/patches-5.10/950-0547-r8152-adjust-the-flow-of-power-cut-for-RTL8153B.patch index 9d12cb9761..b28e89a43f 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0547-r8152-adjust-the-flow-of-power-cut-for-RTL8153B.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0547-r8152-adjust-the-flow-of-power-cut-for-RTL8153B.patch @@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -1371,6 +1371,10 @@ void write_mii_word(struct net_device *n +@@ -1372,6 +1372,10 @@ void write_mii_word(struct net_device *n static int r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags); @@ -31,7 +31,7 @@ Signed-off-by: Jakub Kicinski static int rtl8152_set_mac_address(struct net_device *netdev, void *p) { struct r8152 *tp = netdev_priv(netdev); -@@ -3182,8 +3186,6 @@ static void r8153b_ups_en(struct r8152 * +@@ -3183,8 +3187,6 @@ static void r8153b_ups_en(struct r8152 * ocp_data |= BIT(0); ocp_write_byte(tp, MCU_TYPE_USB, 0xcfff, ocp_data); } else { @@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski ocp_data &= ~(UPS_EN | USP_PREWAKE); ocp_write_byte(tp, MCU_TYPE_USB, USB_POWER_CUT, ocp_data); -@@ -3191,31 +3193,20 @@ static void r8153b_ups_en(struct r8152 * +@@ -3192,31 +3194,20 @@ static void r8153b_ups_en(struct r8152 * ocp_data &= ~BIT(0); ocp_write_byte(tp, MCU_TYPE_USB, 0xcfff, ocp_data); @@ -83,7 +83,7 @@ Signed-off-by: Jakub Kicinski } } } -@@ -4587,13 +4578,37 @@ static void r8153b_hw_phy_cfg(struct r81 +@@ -4588,13 +4579,37 @@ static void r8153b_hw_phy_cfg(struct r81 u32 ocp_data; u16 data; @@ -122,7 +122,7 @@ Signed-off-by: Jakub Kicinski r8153b_green_en(tp, test_bit(GREEN_ETHERNET, &tp->flags)); -@@ -5522,9 +5537,6 @@ static void r8153b_init(struct r8152 *tp +@@ -5543,9 +5558,6 @@ static void r8153b_init(struct r8152 *tp /* MSC timer = 0xfff * 8ms = 32760 ms */ ocp_write_word(tp, MCU_TYPE_USB, USB_MSC_TIMER, 0x0fff); diff --git a/target/linux/bcm27xx/patches-5.10/950-0548-r8152-enable-U1-U2-for-USB_SPEED_SUPER.patch b/target/linux/bcm27xx/patches-5.10/950-0548-r8152-enable-U1-U2-for-USB_SPEED_SUPER.patch index f97deaa7d2..8cf91c3893 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0548-r8152-enable-U1-U2-for-USB_SPEED_SUPER.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0548-r8152-enable-U1-U2-for-USB_SPEED_SUPER.patch @@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -3335,7 +3335,7 @@ static void rtl8153b_runtime_enable(stru +@@ -3336,7 +3336,7 @@ static void rtl8153b_runtime_enable(stru r8153b_ups_en(tp, false); r8153_queue_wake(tp, false); rtl_runtime_suspend_enable(tp, false); @@ -25,7 +25,7 @@ Signed-off-by: Jakub Kicinski r8153b_u1u2en(tp, true); } } -@@ -5028,7 +5028,7 @@ static void rtl8153b_up(struct r8152 *tp +@@ -5029,7 +5029,7 @@ static void rtl8153b_up(struct r8152 *tp r8153_aldps_en(tp, true); @@ -34,7 +34,7 @@ Signed-off-by: Jakub Kicinski r8153b_u1u2en(tp, true); } -@@ -5550,8 +5550,9 @@ static void r8153b_init(struct r8152 *tp +@@ -5571,8 +5571,9 @@ static void r8153b_init(struct r8152 *tp ocp_data |= POLL_LINK_CHG; ocp_write_word(tp, MCU_TYPE_PLA, PLA_EXTRA_STATUS, ocp_data); diff --git a/target/linux/bcm27xx/patches-5.10/950-0549-r8152-check-if-the-pointer-of-the-function-exists.patch b/target/linux/bcm27xx/patches-5.10/950-0549-r8152-check-if-the-pointer-of-the-function-exists.patch index 4f754bc69e..5bc4e2b0a1 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0549-r8152-check-if-the-pointer-of-the-function-exists.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0549-r8152-check-if-the-pointer-of-the-function-exists.patch @@ -15,7 +15,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -5735,6 +5735,9 @@ static int rtl8152_runtime_suspend(struc +@@ -5758,6 +5758,9 @@ static int rtl8152_runtime_suspend(struc struct net_device *netdev = tp->netdev; int ret = 0; @@ -25,7 +25,7 @@ Signed-off-by: Jakub Kicinski set_bit(SELECTIVE_SUSPEND, &tp->flags); smp_mb__after_atomic(); -@@ -6134,6 +6137,11 @@ rtl_ethtool_get_eee(struct net_device *n +@@ -6157,6 +6160,11 @@ rtl_ethtool_get_eee(struct net_device *n struct r8152 *tp = netdev_priv(net); int ret; @@ -37,7 +37,7 @@ Signed-off-by: Jakub Kicinski ret = usb_autopm_get_interface(tp->intf); if (ret < 0) goto out; -@@ -6156,6 +6164,11 @@ rtl_ethtool_set_eee(struct net_device *n +@@ -6179,6 +6187,11 @@ rtl_ethtool_set_eee(struct net_device *n struct r8152 *tp = netdev_priv(net); int ret; diff --git a/target/linux/bcm27xx/patches-5.10/950-0550-r8152-replace-netif_err-with-dev_err.patch b/target/linux/bcm27xx/patches-5.10/950-0550-r8152-replace-netif_err-with-dev_err.patch index 9136611e0f..967b4ccc16 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0550-r8152-replace-netif_err-with-dev_err.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0550-r8152-replace-netif_err-with-dev_err.patch @@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -6571,7 +6571,7 @@ static int rtl_ops_init(struct r8152 *tp +@@ -6594,7 +6594,7 @@ static int rtl_ops_init(struct r8152 *tp default: ret = -ENODEV; @@ -25,7 +25,7 @@ Signed-off-by: Jakub Kicinski break; } -@@ -6828,7 +6828,7 @@ static int rtl8152_probe(struct usb_inte +@@ -6851,7 +6851,7 @@ static int rtl8152_probe(struct usb_inte ret = register_netdev(netdev); if (ret != 0) { diff --git a/target/linux/bcm27xx/patches-5.10/950-0551-r8152-spilt-rtl_set_eee_plus-and-r8153b_green_en.patch b/target/linux/bcm27xx/patches-5.10/950-0551-r8152-spilt-rtl_set_eee_plus-and-r8153b_green_en.patch index 0467e06a3c..c49a4ce5b6 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0551-r8152-spilt-rtl_set_eee_plus-and-r8153b_green_en.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0551-r8152-spilt-rtl_set_eee_plus-and-r8153b_green_en.patch @@ -15,7 +15,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -2632,21 +2632,24 @@ static inline u8 rtl8152_get_speed(struc +@@ -2633,21 +2633,24 @@ static inline u8 rtl8152_get_speed(struc return ocp_read_byte(tp, MCU_TYPE_PLA, PLA_PHYSTATUS); } @@ -50,7 +50,7 @@ Signed-off-by: Jakub Kicinski } static void rxdy_gated_en(struct r8152 *tp, bool enable) -@@ -3127,10 +3130,22 @@ static void r8153b_ups_flags(struct r815 +@@ -3128,10 +3131,22 @@ static void r8153b_ups_flags(struct r815 ocp_write_dword(tp, MCU_TYPE_USB, USB_UPS_FLAGS, ups_flags); } @@ -74,7 +74,7 @@ Signed-off-by: Jakub Kicinski if (enable) { sram_write(tp, 0x8045, 0); /* 10M abiq&ldvbias */ sram_write(tp, 0x804d, 0x1222); /* 100M short abiq&ldvbias */ -@@ -3141,11 +3156,7 @@ static void r8153b_green_en(struct r8152 +@@ -3142,11 +3157,7 @@ static void r8153b_green_en(struct r8152 sram_write(tp, 0x805d, 0x2444); /* 1000M short abiq&ldvbias */ } diff --git a/target/linux/bcm27xx/patches-5.10/950-0552-r8152-set-inter-fram-gap-time-depending-on-speed.patch b/target/linux/bcm27xx/patches-5.10/950-0552-r8152-set-inter-fram-gap-time-depending-on-speed.patch index 15ba2bf29c..f2593e8f00 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0552-r8152-set-inter-fram-gap-time-depending-on-speed.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0552-r8152-set-inter-fram-gap-time-depending-on-speed.patch @@ -24,7 +24,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -249,6 +249,9 @@ +@@ -250,6 +250,9 @@ /* PLA_TCR1 */ #define VERSION_MASK 0x7cf0 @@ -34,7 +34,7 @@ Signed-off-by: David S. Miller /* PLA_MTPS */ #define MTPS_JUMBO (12 * 1024 / 64) -@@ -2747,6 +2750,29 @@ static int rtl_stop_rx(struct r8152 *tp) +@@ -2748,6 +2751,29 @@ static int rtl_stop_rx(struct r8152 *tp) return 0; } @@ -64,7 +64,7 @@ Signed-off-by: David S. Miller static inline void r8153b_rx_agg_chg_indicate(struct r8152 *tp) { ocp_write_byte(tp, MCU_TYPE_USB, USB_UPT_RXDMA_OWN, -@@ -2850,6 +2876,8 @@ static int rtl8153_enable(struct r8152 * +@@ -2851,6 +2877,8 @@ static int rtl8153_enable(struct r8152 * r8153_set_rx_early_timeout(tp); r8153_set_rx_early_size(tp); diff --git a/target/linux/bcm27xx/patches-5.10/950-0553-r8152-adjust-rtl8152_check_firmware-function.patch b/target/linux/bcm27xx/patches-5.10/950-0553-r8152-adjust-rtl8152_check_firmware-function.patch index f07c160c71..cddd39ea94 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0553-r8152-adjust-rtl8152_check_firmware-function.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0553-r8152-adjust-rtl8152_check_firmware-function.patch @@ -15,7 +15,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -874,6 +874,14 @@ struct fw_header { +@@ -875,6 +875,14 @@ struct fw_header { struct fw_block blocks[]; } __packed; @@ -30,7 +30,7 @@ Signed-off-by: David S. Miller /** * struct fw_mac - a firmware block used by RTL_FW_PLA and RTL_FW_USB. * The layout of the firmware block is: -@@ -3800,10 +3808,7 @@ static long rtl8152_check_firmware(struc +@@ -3801,10 +3809,7 @@ static long rtl8152_check_firmware(struc { const struct firmware *fw = rtl_fw->fw; struct fw_header *fw_hdr = (struct fw_header *)fw->data; @@ -42,7 +42,7 @@ Signed-off-by: David S. Miller long ret = -EFAULT; int i; -@@ -3832,50 +3837,52 @@ static long rtl8152_check_firmware(struc +@@ -3833,50 +3838,52 @@ static long rtl8152_check_firmware(struc goto fail; goto fw_end; case RTL_FW_PLA: @@ -106,7 +106,7 @@ Signed-off-by: David S. Miller dev_err(&tp->intf->dev, "Check PHY_STOP fail\n"); goto fail; -@@ -3886,28 +3893,28 @@ static long rtl8152_check_firmware(struc +@@ -3887,28 +3894,28 @@ static long rtl8152_check_firmware(struc "Invalid length for PHY_STOP\n"); goto fail; } @@ -141,7 +141,7 @@ Signed-off-by: David S. Miller break; default: -@@ -3921,7 +3928,7 @@ static long rtl8152_check_firmware(struc +@@ -3922,7 +3929,7 @@ static long rtl8152_check_firmware(struc } fw_end: diff --git a/target/linux/bcm27xx/patches-5.10/950-0554-r8152-add-help-function-to-change-mtu.patch b/target/linux/bcm27xx/patches-5.10/950-0554-r8152-add-help-function-to-change-mtu.patch index 63da9adfd3..3559e3b95a 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0554-r8152-add-help-function-to-change-mtu.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0554-r8152-add-help-function-to-change-mtu.patch @@ -20,7 +20,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -657,15 +657,13 @@ enum rtl_register_content { +@@ -658,15 +658,13 @@ enum rtl_register_content { #define INTR_LINK 0x0004 @@ -39,7 +39,7 @@ Signed-off-by: David S. Miller /* rtl8152 flags */ enum rtl8152_flags { -@@ -795,6 +793,7 @@ struct r8152 { +@@ -796,6 +794,7 @@ struct r8152 { bool (*in_nway)(struct r8152 *tp); void (*hw_phy_cfg)(struct r8152 *tp); void (*autosuspend_en)(struct r8152 *tp, bool enable); @@ -47,7 +47,7 @@ Signed-off-by: David S. Miller } rtl_ops; struct ups_info { -@@ -1021,8 +1020,7 @@ enum tx_csum_stat { +@@ -1022,8 +1021,7 @@ enum tx_csum_stat { static const int multicast_filter_limit = 32; static unsigned int agg_buf_sz = 16384; @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller static int get_registers(struct r8152 *tp, u16 value, u16 index, u16 size, void *data) -@@ -2632,10 +2630,7 @@ static void rtl8152_nic_reset(struct r81 +@@ -2633,10 +2631,7 @@ static void rtl8152_nic_reset(struct r81 static void set_tx_qlen(struct r8152 *tp) { @@ -69,7 +69,7 @@ Signed-off-by: David S. Miller } static inline u8 rtl8152_get_speed(struct r8152 *tp) -@@ -4724,6 +4719,12 @@ static void r8153b_hw_phy_cfg(struct r81 +@@ -4725,6 +4720,12 @@ static void r8153b_hw_phy_cfg(struct r81 set_bit(PHY_RESET, &tp->flags); } @@ -82,7 +82,7 @@ Signed-off-by: David S. Miller static void r8153_first_init(struct r8152 *tp) { u32 ocp_data; -@@ -4756,9 +4757,7 @@ static void r8153_first_init(struct r815 +@@ -4757,9 +4758,7 @@ static void r8153_first_init(struct r815 rtl_rx_vlan_en(tp, tp->netdev->features & NETIF_F_HW_VLAN_CTAG_RX); @@ -93,7 +93,7 @@ Signed-off-by: David S. Miller ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_TCR0); ocp_data |= TCR0_AUTO_FIFO; -@@ -4793,8 +4792,7 @@ static void r8153_enter_oob(struct r8152 +@@ -4794,8 +4793,7 @@ static void r8153_enter_oob(struct r8152 wait_oob_link_list_ready(tp); @@ -103,7 +103,7 @@ Signed-off-by: David S. Miller switch (tp->version) { case RTL_VER_03: -@@ -6495,12 +6493,21 @@ static int rtl8152_change_mtu(struct net +@@ -6518,12 +6516,21 @@ static int rtl8152_change_mtu(struct net dev->mtu = new_mtu; if (netif_running(dev)) { @@ -130,7 +130,7 @@ Signed-off-by: David S. Miller } mutex_unlock(&tp->control); -@@ -6589,6 +6596,7 @@ static int rtl_ops_init(struct r8152 *tp +@@ -6612,6 +6619,7 @@ static int rtl_ops_init(struct r8152 *tp ops->in_nway = rtl8153_in_nway; ops->hw_phy_cfg = r8153_hw_phy_cfg; ops->autosuspend_en = rtl8153_runtime_enable; @@ -138,7 +138,7 @@ Signed-off-by: David S. Miller if (tp->udev->speed < USB_SPEED_SUPER) tp->rx_buf_sz = 16 * 1024; else -@@ -6610,6 +6618,7 @@ static int rtl_ops_init(struct r8152 *tp +@@ -6633,6 +6641,7 @@ static int rtl_ops_init(struct r8152 *tp ops->in_nway = rtl8153_in_nway; ops->hw_phy_cfg = r8153b_hw_phy_cfg; ops->autosuspend_en = rtl8153b_runtime_enable; @@ -146,7 +146,7 @@ Signed-off-by: David S. Miller tp->rx_buf_sz = 32 * 1024; tp->eee_en = true; tp->eee_adv = MDIO_EEE_1000T | MDIO_EEE_100TX; -@@ -6830,7 +6839,7 @@ static int rtl8152_probe(struct usb_inte +@@ -6853,7 +6862,7 @@ static int rtl8152_probe(struct usb_inte netdev->max_mtu = ETH_DATA_LEN; break; default: diff --git a/target/linux/bcm27xx/patches-5.10/950-0555-r8152-support-new-chips.patch b/target/linux/bcm27xx/patches-5.10/950-0555-r8152-support-new-chips.patch index c53315a0df..06a141b451 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0555-r8152-support-new-chips.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0555-r8152-support-new-chips.patch @@ -16,7 +16,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -43,10 +43,14 @@ +@@ -44,10 +44,14 @@ #define PLA_IDR 0xc000 #define PLA_RCR 0xc010 @@ -31,7 +31,7 @@ Signed-off-by: David S. Miller #define PLA_DMY_REG0 0xc0b0 #define PLA_FMC 0xc0b4 #define PLA_CFG_WOL 0xc0b6 -@@ -63,6 +67,8 @@ +@@ -64,6 +68,8 @@ #define PLA_MACDBG_PRE 0xd38c /* RTL_VER_04 only */ #define PLA_MACDBG_POST 0xd38e /* RTL_VER_04 only */ #define PLA_EXTRA_STATUS 0xd398 @@ -40,7 +40,7 @@ Signed-off-by: David S. Miller #define PLA_EFUSE_DATA 0xdd00 #define PLA_EFUSE_CMD 0xdd02 #define PLA_LEDSEL 0xdd90 -@@ -72,6 +78,8 @@ +@@ -73,6 +79,8 @@ #define PLA_LWAKE_CTRL_REG 0xe007 #define PLA_GPHY_INTR_IMR 0xe022 #define PLA_EEE_CR 0xe040 @@ -49,7 +49,7 @@ Signed-off-by: David S. Miller #define PLA_EEEP_CR 0xe080 #define PLA_MAC_PWR_CTRL 0xe0c0 #define PLA_MAC_PWR_CTRL2 0xe0ca -@@ -82,6 +90,7 @@ +@@ -83,6 +91,7 @@ #define PLA_TCR1 0xe612 #define PLA_MTPS 0xe615 #define PLA_TXFIFO_CTRL 0xe618 @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller #define PLA_RSTTALLY 0xe800 #define PLA_CR 0xe813 #define PLA_CRWECR 0xe81c -@@ -98,6 +107,7 @@ +@@ -99,6 +108,7 @@ #define PLA_SFF_STS_7 0xe8de #define PLA_PHYSTATUS 0xe908 #define PLA_CONFIG6 0xe90a /* CONFIG6 */ @@ -65,7 +65,7 @@ Signed-off-by: David S. Miller #define PLA_BP_BA 0xfc26 #define PLA_BP_0 0xfc28 #define PLA_BP_1 0xfc2a -@@ -112,6 +122,7 @@ +@@ -113,6 +123,7 @@ #define USB_USB2PHY 0xb41e #define USB_SSPHYLINK1 0xb426 #define USB_SSPHYLINK2 0xb428 @@ -73,7 +73,7 @@ Signed-off-by: David S. Miller #define USB_U2P3_CTRL 0xb460 #define USB_CSR_DUMMY1 0xb464 #define USB_CSR_DUMMY2 0xb466 -@@ -122,7 +133,12 @@ +@@ -123,7 +134,12 @@ #define USB_FW_FIX_EN0 0xcfca #define USB_FW_FIX_EN1 0xcfcc #define USB_LPM_CONFIG 0xcfd8 @@ -86,7 +86,7 @@ Signed-off-by: David S. Miller #define USB_FW_CTRL 0xd334 /* RTL8153B */ #define USB_FC_TIMER 0xd340 #define USB_USB_CTRL 0xd406 -@@ -136,16 +152,20 @@ +@@ -137,16 +153,20 @@ #define USB_RX_EXTRA_AGGR_TMR 0xd432 /* RTL8153B */ #define USB_TX_DMA 0xd434 #define USB_UPT_RXDMA_OWN 0xd437 @@ -107,7 +107,7 @@ Signed-off-by: David S. Miller #define USB_UPS_CFG 0xd842 #define USB_UPS_FLAGS 0xd848 #define USB_WDT1_CTRL 0xe404 -@@ -188,6 +208,9 @@ +@@ -189,6 +209,9 @@ #define OCP_EEE_ABLE 0xa5c4 #define OCP_EEE_ADV 0xa5d0 #define OCP_EEE_LPABLE 0xa5d2 @@ -117,7 +117,7 @@ Signed-off-by: David S. Miller #define OCP_PHY_STATE 0xa708 /* nway state for 8153 */ #define OCP_PHY_PATCH_STAT 0xb800 #define OCP_PHY_PATCH_CMD 0xb820 -@@ -199,6 +222,7 @@ +@@ -200,6 +223,7 @@ /* SRAM Register */ #define SRAM_GREEN_CFG 0x8011 #define SRAM_LPF_CFG 0x8012 @@ -125,7 +125,7 @@ Signed-off-by: David S. Miller #define SRAM_10M_AMP1 0x8080 #define SRAM_10M_AMP2 0x8082 #define SRAM_IMPEDANCE 0x8084 -@@ -210,11 +234,19 @@ +@@ -211,11 +235,19 @@ #define RCR_AM 0x00000004 #define RCR_AB 0x00000008 #define RCR_ACPT_ALL (RCR_AAP | RCR_APM | RCR_AM | RCR_AB) @@ -145,7 +145,7 @@ Signed-off-by: David S. Miller /* PLA_RXFIFO_CTRL1 */ #define RXFIFO_THR2_FULL 0x00000060 #define RXFIFO_THR2_HIGH 0x00000038 -@@ -285,6 +317,7 @@ +@@ -286,6 +318,7 @@ #define MCU_BORW_EN 0x4000 /* PLA_CPCR */ @@ -153,7 +153,7 @@ Signed-off-by: David S. Miller #define CPCR_RX_VLAN 0x0040 /* PLA_CFG_WOL */ -@@ -310,6 +343,10 @@ +@@ -311,6 +344,10 @@ /* PLA_CONFIG6 */ #define LANWAKE_CLR_EN BIT(0) @@ -164,7 +164,7 @@ Signed-off-by: David S. Miller /* PLA_CONFIG5 */ #define BWF_EN 0x0040 #define MWF_EN 0x0020 -@@ -333,6 +370,7 @@ +@@ -334,6 +371,7 @@ /* PLA_MAC_PWR_CTRL2 */ #define EEE_SPDWN_RATIO 0x8007 #define MAC_CLK_SPDWN_EN BIT(15) @@ -172,7 +172,7 @@ Signed-off-by: David S. Miller /* PLA_MAC_PWR_CTRL3 */ #define PLA_MCU_SPDWN_EN BIT(14) -@@ -345,6 +383,7 @@ +@@ -346,6 +384,7 @@ #define PWRSAVE_SPDWN_EN 0x1000 #define RXDV_SPDWN_EN 0x0800 #define TX10MIDLE_EN 0x0100 @@ -180,7 +180,7 @@ Signed-off-by: David S. Miller #define TP100_SPDWN_EN 0x0020 #define TP500_SPDWN_EN 0x0010 #define TP1000_SPDWN_EN 0x0008 -@@ -385,6 +424,13 @@ +@@ -386,6 +425,13 @@ #define LINK_CHANGE_FLAG BIT(8) #define POLL_LINK_CHG BIT(0) @@ -194,7 +194,7 @@ Signed-off-by: David S. Miller /* USB_USB2PHY */ #define USB2PHY_SUSPEND 0x0001 #define USB2PHY_L1 0x0002 -@@ -433,6 +479,9 @@ +@@ -434,6 +480,9 @@ #define BMU_RESET_EP_IN 0x01 #define BMU_RESET_EP_OUT 0x02 @@ -204,7 +204,7 @@ Signed-off-by: David S. Miller /* USB_UPT_RXDMA_OWN */ #define OWN_UPDATE BIT(0) #define OWN_CLEAR BIT(1) -@@ -440,27 +489,52 @@ +@@ -441,27 +490,52 @@ /* USB_FW_TASK */ #define FC_PATCH_TASK BIT(1) @@ -257,7 +257,7 @@ Signed-off-by: David S. Miller /* USB_POWER_CUT */ #define PWR_EN 0x0001 -@@ -496,8 +570,12 @@ +@@ -497,8 +571,12 @@ #define SEN_VAL_NORMAL 0xa000 #define SEL_RXIDLE 0x0100 @@ -270,7 +270,7 @@ Signed-off-by: David S. Miller /* USB_UPS_FLAGS */ #define UPS_FLAGS_R_TUNE BIT(0) -@@ -505,6 +583,7 @@ +@@ -506,6 +584,7 @@ #define UPS_FLAGS_250M_CKDIV BIT(2) #define UPS_FLAGS_EN_ALDPS BIT(3) #define UPS_FLAGS_CTAP_SHORT_DIS BIT(4) @@ -278,7 +278,7 @@ Signed-off-by: David S. Miller #define ups_flags_speed(x) ((x) << 16) #define UPS_FLAGS_EN_EEE BIT(20) #define UPS_FLAGS_EN_500M_EEE BIT(21) -@@ -525,6 +604,8 @@ enum spd_duplex { +@@ -526,6 +605,8 @@ enum spd_duplex { FORCE_10M_FULL, FORCE_100M_HALF, FORCE_100M_FULL, @@ -287,7 +287,7 @@ Signed-off-by: David S. Miller }; /* OCP_ALDPS_CONFIG */ -@@ -589,6 +670,9 @@ enum spd_duplex { +@@ -590,6 +671,9 @@ enum spd_duplex { #define EN_10M_CLKDIV BIT(11) #define EN_10M_BGOFF 0x0080 @@ -297,7 +297,7 @@ Signed-off-by: David S. Miller /* OCP_PHY_STATE */ #define TXDIS_STATE 0x01 #define ABD_STATE 0x02 -@@ -608,7 +692,8 @@ enum spd_duplex { +@@ -609,7 +693,8 @@ enum spd_duplex { #define EN_EMI_L 0x0040 /* OCP_SYSCLK_CFG */ @@ -307,7 +307,7 @@ Signed-off-by: David S. Miller /* SRAM_GREEN_CFG */ #define GREEN_ETH_EN BIT(15) -@@ -639,6 +724,11 @@ enum spd_duplex { +@@ -640,6 +725,11 @@ enum spd_duplex { #define BP4_SUPER_ONLY 0x1578 /* RTL_VER_04 only */ enum rtl_register_content { @@ -319,7 +319,7 @@ Signed-off-by: David S. Miller _1000bps = 0x10, _100bps = 0x08, _10bps = 0x04, -@@ -646,6 +736,9 @@ enum rtl_register_content { +@@ -647,6 +737,9 @@ enum rtl_register_content { FULL_DUP = 0x01, }; @@ -329,7 +329,7 @@ Signed-off-by: David S. Miller #define RTL8152_MAX_TX 4 #define RTL8152_MAX_RX 10 #define INTBUFSIZE 2 -@@ -660,7 +753,6 @@ enum rtl_register_content { +@@ -661,7 +754,6 @@ enum rtl_register_content { #define RTL8152_RMS (VLAN_ETH_FRAME_LEN + ETH_FCS_LEN) #define RTL8153_RMS RTL8153_MAX_PACKET #define RTL8152_TX_TIMEOUT (5 * HZ) @@ -337,7 +337,7 @@ Signed-off-by: David S. Miller #define mtu_to_size(m) ((m) + VLAN_ETH_HLEN + ETH_FCS_LEN) #define size_to_mtu(s) ((s) - VLAN_ETH_HLEN - ETH_FCS_LEN) #define rx_reserved_size(x) (mtu_to_size(x) + sizeof(struct rx_desc) + RX_ALIGN) -@@ -797,6 +889,7 @@ struct r8152 { +@@ -798,6 +890,7 @@ struct r8152 { } rtl_ops; struct ups_info { @@ -345,7 +345,7 @@ Signed-off-by: David S. Miller u32 _10m_ckdiv:1; u32 _250m_ckdiv:1; u32 aldps:1; -@@ -838,7 +931,9 @@ struct r8152 { +@@ -839,7 +932,9 @@ struct r8152 { u32 rx_buf_sz; u32 rx_copybreak; u32 rx_pending; @@ -355,7 +355,7 @@ Signed-off-by: David S. Miller u16 ocp_base; u16 speed; u16 eee_adv; -@@ -998,6 +1093,15 @@ enum rtl_version { +@@ -999,6 +1094,15 @@ enum rtl_version { RTL_VER_07, RTL_VER_08, RTL_VER_09, @@ -371,7 +371,7 @@ Signed-off-by: David S. Miller RTL_VER_MAX }; -@@ -1013,6 +1117,7 @@ enum tx_csum_stat { +@@ -1014,6 +1118,7 @@ enum tx_csum_stat { #define RTL_ADVERTISED_100_FULL BIT(3) #define RTL_ADVERTISED_1000_HALF BIT(4) #define RTL_ADVERTISED_1000_FULL BIT(5) @@ -379,7 +379,7 @@ Signed-off-by: David S. Miller /* Maximum number of multicast addresses to filter (vs. Rx-all-multicast). * The RTL chips use a 64 element hash table based on the Ethernet CRC. -@@ -2606,7 +2711,7 @@ static netdev_tx_t rtl8152_start_xmit(st +@@ -2607,7 +2712,7 @@ static netdev_tx_t rtl8152_start_xmit(st static void r8152b_reset_packet_filter(struct r8152 *tp) { @@ -388,7 +388,7 @@ Signed-off-by: David S. Miller ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_FMC); ocp_data &= ~FMC_FCR_MCU_EN; -@@ -2617,14 +2722,47 @@ static void r8152b_reset_packet_filter(s +@@ -2618,14 +2723,47 @@ static void r8152b_reset_packet_filter(s static void rtl8152_nic_reset(struct r8152 *tp) { @@ -442,7 +442,7 @@ Signed-off-by: David S. Miller } } -@@ -2633,9 +2771,9 @@ static void set_tx_qlen(struct r8152 *tp +@@ -2634,9 +2772,9 @@ static void set_tx_qlen(struct r8152 *tp tp->tx_qlen = agg_buf_sz / (mtu_to_size(tp->netdev->mtu) + sizeof(struct tx_desc)); } @@ -454,7 +454,7 @@ Signed-off-by: David S. Miller } static void rtl_eee_plus_en(struct r8152 *tp, bool enable) -@@ -2795,6 +2933,7 @@ static int rtl_enable(struct r8152 *tp) +@@ -2796,6 +2934,7 @@ static int rtl_enable(struct r8152 *tp) switch (tp->version) { case RTL_VER_08: case RTL_VER_09: @@ -462,7 +462,7 @@ Signed-off-by: David S. Miller r8153b_rx_agg_chg_indicate(tp); break; default: -@@ -2832,6 +2971,7 @@ static void r8153_set_rx_early_timeout(s +@@ -2833,6 +2972,7 @@ static void r8153_set_rx_early_timeout(s case RTL_VER_08: case RTL_VER_09: @@ -470,7 +470,7 @@ Signed-off-by: David S. Miller /* The RTL8153B uses USB_RX_EXTRA_AGGR_TMR for rx timeout * primarily. For USB_RX_EARLY_TIMEOUT, we fix it to 128ns. */ -@@ -2841,6 +2981,18 @@ static void r8153_set_rx_early_timeout(s +@@ -2842,6 +2982,18 @@ static void r8153_set_rx_early_timeout(s ocp_data); break; @@ -489,7 +489,7 @@ Signed-off-by: David S. Miller default: break; } -@@ -2860,8 +3012,19 @@ static void r8153_set_rx_early_size(stru +@@ -2861,8 +3013,19 @@ static void r8153_set_rx_early_size(stru break; case RTL_VER_08: case RTL_VER_09: @@ -509,7 +509,7 @@ Signed-off-by: David S. Miller break; default: WARN_ON_ONCE(1); -@@ -2871,6 +3034,8 @@ static void r8153_set_rx_early_size(stru +@@ -2872,6 +3035,8 @@ static void r8153_set_rx_early_size(stru static int rtl8153_enable(struct r8152 *tp) { @@ -518,7 +518,7 @@ Signed-off-by: David S. Miller if (test_bit(RTL8152_UNPLUG, &tp->flags)) return -ENODEV; -@@ -2881,15 +3046,18 @@ static int rtl8153_enable(struct r8152 * +@@ -2882,15 +3047,18 @@ static int rtl8153_enable(struct r8152 * rtl_set_ifg(tp, rtl8152_get_speed(tp)); @@ -540,7 +540,7 @@ Signed-off-by: David S. Miller } return rtl_enable(tp); -@@ -2954,12 +3122,40 @@ static void rtl_rx_vlan_en(struct r8152 +@@ -2955,12 +3123,40 @@ static void rtl_rx_vlan_en(struct r8152 { u32 ocp_data; @@ -587,7 +587,7 @@ Signed-off-by: David S. Miller } static int rtl8152_set_features(struct net_device *dev, -@@ -3052,6 +3248,40 @@ static void __rtl_set_wol(struct r8152 * +@@ -3053,6 +3249,40 @@ static void __rtl_set_wol(struct r8152 * device_set_wakeup_enable(&tp->udev->dev, false); } @@ -628,7 +628,7 @@ Signed-off-by: David S. Miller static void r8153_u1u2en(struct r8152 *tp, bool enable) { u8 u1u2[8]; -@@ -3111,6 +3341,9 @@ static void r8153b_ups_flags(struct r815 +@@ -3112,6 +3342,9 @@ static void r8153b_ups_flags(struct r815 if (tp->ups_info.eee_cmod_lv) ups_flags |= UPS_FLAGS_EEE_CMOD_LV_EN; @@ -638,7 +638,7 @@ Signed-off-by: David S. Miller if (tp->ups_info._10m_ckdiv) ups_flags |= UPS_FLAGS_EN_10M_CKDIV; -@@ -3161,6 +3394,88 @@ static void r8153b_ups_flags(struct r815 +@@ -3162,6 +3395,88 @@ static void r8153b_ups_flags(struct r815 ocp_write_dword(tp, MCU_TYPE_USB, USB_UPS_FLAGS, ups_flags); } @@ -727,7 +727,7 @@ Signed-off-by: David S. Miller static void rtl_green_en(struct r8152 *tp, bool enable) { u16 data; -@@ -3224,16 +3539,16 @@ static void r8153b_ups_en(struct r8152 * +@@ -3225,16 +3540,16 @@ static void r8153b_ups_en(struct r8152 * ocp_data |= UPS_EN | USP_PREWAKE | PHASE2_EN; ocp_write_byte(tp, MCU_TYPE_USB, USB_POWER_CUT, ocp_data); @@ -750,7 +750,7 @@ Signed-off-by: David S. Miller if (ocp_read_word(tp, MCU_TYPE_USB, USB_MISC_0) & PCUT_STATUS) { int i; -@@ -3253,6 +3568,95 @@ static void r8153b_ups_en(struct r8152 * +@@ -3254,6 +3569,95 @@ static void r8153b_ups_en(struct r8152 * } } @@ -846,7 +846,7 @@ Signed-off-by: David S. Miller static void r8153_power_cut_en(struct r8152 *tp, bool enable) { u32 ocp_data; -@@ -3382,6 +3786,38 @@ static void rtl8153b_runtime_enable(stru +@@ -3383,6 +3787,38 @@ static void rtl8153b_runtime_enable(stru } } @@ -885,7 +885,7 @@ Signed-off-by: David S. Miller static void r8153_teredo_off(struct r8152 *tp) { u32 ocp_data; -@@ -3402,14 +3838,19 @@ static void r8153_teredo_off(struct r815 +@@ -3403,14 +3839,19 @@ static void r8153_teredo_off(struct r815 case RTL_VER_08: case RTL_VER_09: @@ -908,7 +908,7 @@ Signed-off-by: David S. Miller } ocp_write_word(tp, MCU_TYPE_PLA, PLA_WDT6_CTRL, WDT6_SET_MODE); -@@ -3444,6 +3885,12 @@ static void rtl_clear_bp(struct r8152 *t +@@ -3445,6 +3886,12 @@ static void rtl_clear_bp(struct r8152 *t break; case RTL_VER_08: case RTL_VER_09: @@ -921,7 +921,7 @@ Signed-off-by: David S. Miller default: if (type == MCU_TYPE_USB) { ocp_write_word(tp, MCU_TYPE_USB, USB_BP2_EN, 0); -@@ -3653,6 +4100,11 @@ static bool rtl8152_is_fw_mac_ok(struct +@@ -3654,6 +4101,11 @@ static bool rtl8152_is_fw_mac_ok(struct case RTL_VER_06: case RTL_VER_08: case RTL_VER_09: @@ -933,7 +933,7 @@ Signed-off-by: David S. Miller fw_reg = 0xf800; bp_ba_addr = PLA_BP_BA; bp_en_addr = PLA_BP_EN; -@@ -3676,6 +4128,11 @@ static bool rtl8152_is_fw_mac_ok(struct +@@ -3677,6 +4129,11 @@ static bool rtl8152_is_fw_mac_ok(struct break; case RTL_VER_08: case RTL_VER_09: @@ -945,7 +945,7 @@ Signed-off-by: David S. Miller fw_reg = 0xe600; bp_ba_addr = USB_BP_BA; bp_en_addr = USB_BP2_EN; -@@ -4215,6 +4672,22 @@ static void r8153_eee_en(struct r8152 *t +@@ -4216,6 +4673,22 @@ static void r8153_eee_en(struct r8152 *t tp->ups_info.eee = enable; } @@ -968,7 +968,7 @@ Signed-off-by: David S. Miller static void rtl_eee_enable(struct r8152 *tp, bool enable) { switch (tp->version) { -@@ -4236,6 +4709,7 @@ static void rtl_eee_enable(struct r8152 +@@ -4237,6 +4710,7 @@ static void rtl_eee_enable(struct r8152 case RTL_VER_06: case RTL_VER_08: case RTL_VER_09: @@ -976,7 +976,7 @@ Signed-off-by: David S. Miller if (enable) { r8153_eee_en(tp, true); ocp_reg_write(tp, OCP_EEE_ADV, tp->eee_adv); -@@ -4244,6 +4718,19 @@ static void rtl_eee_enable(struct r8152 +@@ -4245,6 +4719,19 @@ static void rtl_eee_enable(struct r8152 ocp_reg_write(tp, OCP_EEE_ADV, 0); } break; @@ -996,7 +996,7 @@ Signed-off-by: David S. Miller default: break; } -@@ -4290,6 +4777,20 @@ static void wait_oob_link_list_ready(str +@@ -4291,6 +4778,20 @@ static void wait_oob_link_list_ready(str } } @@ -1017,7 +1017,7 @@ Signed-off-by: David S. Miller static void r8152b_exit_oob(struct r8152 *tp) { u32 ocp_data; -@@ -4340,7 +4841,7 @@ static void r8152b_exit_oob(struct r8152 +@@ -4341,7 +4842,7 @@ static void r8152b_exit_oob(struct r8152 } /* TX share fifo free credit full threshold */ @@ -1026,7 +1026,7 @@ Signed-off-by: David S. Miller ocp_write_byte(tp, MCU_TYPE_USB, USB_TX_AGG, TX_AGG_MAX_THRESHOLD); ocp_write_dword(tp, MCU_TYPE_USB, USB_RX_BUF_TH, RX_THR_HIGH); -@@ -4517,6 +5018,21 @@ static int r8153b_post_firmware_1(struct +@@ -4518,6 +5019,21 @@ static int r8153b_post_firmware_1(struct return 0; } @@ -1048,7 +1048,7 @@ Signed-off-by: David S. Miller static void r8153_aldps_en(struct r8152 *tp, bool enable) { u16 data; -@@ -4719,6 +5235,13 @@ static void r8153b_hw_phy_cfg(struct r81 +@@ -4720,6 +5236,13 @@ static void r8153b_hw_phy_cfg(struct r81 set_bit(PHY_RESET, &tp->flags); } @@ -1062,7 +1062,7 @@ Signed-off-by: David S. Miller static void rtl8153_change_mtu(struct r8152 *tp) { ocp_write_word(tp, MCU_TYPE_PLA, PLA_RMS, mtu_to_size(tp->netdev->mtu)); -@@ -4806,6 +5329,7 @@ static void r8153_enter_oob(struct r8152 +@@ -4807,6 +5330,7 @@ static void r8153_enter_oob(struct r8152 case RTL_VER_08: case RTL_VER_09: @@ -1070,7 +1070,7 @@ Signed-off-by: David S. Miller /* Clear teredo wake event. bit[15:8] is the teredo wakeup * type. Set it to zero. bits[7:0] are the W1C bits about * the events. Set them to all 1 to clear them. -@@ -4842,6 +5366,96 @@ static void rtl8153_disable(struct r8152 +@@ -4843,6 +5367,96 @@ static void rtl8153_disable(struct r8152 r8153_aldps_en(tp, true); } @@ -1167,7 +1167,7 @@ Signed-off-by: David S. Miller static int rtl8152_set_speed(struct r8152 *tp, u8 autoneg, u32 speed, u8 duplex, u32 advertising) { -@@ -4890,58 +5504,73 @@ static int rtl8152_set_speed(struct r815 +@@ -4891,58 +5505,73 @@ static int rtl8152_set_speed(struct r815 tp->mii.force_media = 1; } else { @@ -1259,7 +1259,7 @@ Signed-off-by: David S. Miller } bmcr = BMCR_ANENABLE | BMCR_ANRESTART; -@@ -5097,6 +5726,253 @@ static void rtl8153b_down(struct r8152 * +@@ -5098,6 +5727,253 @@ static void rtl8153b_down(struct r8152 * r8153_aldps_en(tp, true); } @@ -1513,7 +1513,7 @@ Signed-off-by: David S. Miller static bool rtl8152_in_nway(struct r8152 *tp) { u16 nway_state; -@@ -5127,7 +6003,7 @@ static void set_carrier(struct r8152 *tp +@@ -5128,7 +6004,7 @@ static void set_carrier(struct r8152 *tp { struct net_device *netdev = tp->netdev; struct napi_struct *napi = &tp->napi; @@ -1522,7 +1522,7 @@ Signed-off-by: David S. Miller speed = rtl8152_get_speed(tp); -@@ -5140,7 +6016,7 @@ static void set_carrier(struct r8152 *tp +@@ -5141,7 +6017,7 @@ static void set_carrier(struct r8152 *tp rtl_start_rx(tp); clear_bit(RTL8152_SET_RX_MODE, &tp->flags); _rtl8152_set_rx_mode(netdev); @@ -1531,7 +1531,7 @@ Signed-off-by: David S. Miller netif_wake_queue(netdev); netif_info(tp, link, netdev, "carrier on\n"); } else if (netif_queue_stopped(netdev) && -@@ -5502,14 +6378,9 @@ static void r8153_init(struct r8152 *tp) +@@ -5521,14 +6397,9 @@ static void r8153_init(struct r8152 *tp) ocp_write_word(tp, MCU_TYPE_USB, USB_CONNECT_TIMER, 0x0001); @@ -1547,7 +1547,7 @@ Signed-off-by: David S. Miller r8153_u1u2en(tp, true); usb_enable_lpm(tp->udev); -@@ -5600,9 +6471,7 @@ static void r8153b_init(struct r8152 *tp +@@ -5621,9 +6492,7 @@ static void r8153b_init(struct r8152 *tp usb_enable_lpm(tp->udev); /* MAC clock speed down */ @@ -1558,8 +1558,8 @@ Signed-off-by: David S. Miller ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3); ocp_data &= ~PLA_MCU_SPDWN_EN; -@@ -5629,6 +6498,1069 @@ static void r8153b_init(struct r8152 *tp - tp->coalesce = 15000; /* 15 us */ +@@ -5652,6 +6521,1069 @@ static void r8153b_init(struct r8152 *tp + r8152_led_configuration(tp); } +static void r8153c_init(struct r8152 *tp) @@ -2628,7 +2628,7 @@ Signed-off-by: David S. Miller static int rtl8152_pre_reset(struct usb_interface *intf) { struct r8152 *tp = usb_get_intfdata(intf); -@@ -5992,6 +7924,22 @@ int rtl8152_get_link_ksettings(struct ne +@@ -6015,6 +7947,22 @@ int rtl8152_get_link_ksettings(struct ne mii_ethtool_get_link_ksettings(&tp->mii, cmd); @@ -2651,7 +2651,7 @@ Signed-off-by: David S. Miller mutex_unlock(&tp->control); usb_autopm_put_interface(tp->intf); -@@ -6035,6 +7983,10 @@ static int rtl8152_set_link_ksettings(st +@@ -6058,6 +8006,10 @@ static int rtl8152_set_link_ksettings(st cmd->link_modes.advertising)) advertising |= RTL_ADVERTISED_1000_FULL; @@ -2662,7 +2662,7 @@ Signed-off-by: David S. Miller mutex_lock(&tp->control); ret = rtl8152_set_speed(tp, cmd->base.autoneg, cmd->base.speed, -@@ -6624,6 +8576,67 @@ static int rtl_ops_init(struct r8152 *tp +@@ -6647,6 +8599,67 @@ static int rtl_ops_init(struct r8152 *tp tp->eee_adv = MDIO_EEE_1000T | MDIO_EEE_100TX; break; @@ -2730,7 +2730,7 @@ Signed-off-by: David S. Miller default: ret = -ENODEV; dev_err(&tp->intf->dev, "Unknown Device\n"); -@@ -6637,11 +8650,13 @@ static int rtl_ops_init(struct r8152 *tp +@@ -6660,11 +8673,13 @@ static int rtl_ops_init(struct r8152 *tp #define FIRMWARE_8153A_3 "rtl_nic/rtl8153a-3.fw" #define FIRMWARE_8153A_4 "rtl_nic/rtl8153a-4.fw" #define FIRMWARE_8153B_2 "rtl_nic/rtl8153b-2.fw" @@ -2744,7 +2744,7 @@ Signed-off-by: David S. Miller static int rtl_fw_init(struct r8152 *tp) { -@@ -6667,6 +8682,11 @@ static int rtl_fw_init(struct r8152 *tp) +@@ -6690,6 +8705,11 @@ static int rtl_fw_init(struct r8152 *tp) rtl_fw->pre_fw = r8153b_pre_firmware_1; rtl_fw->post_fw = r8153b_post_firmware_1; break; @@ -2756,7 +2756,7 @@ Signed-off-by: David S. Miller default: break; } -@@ -6722,6 +8742,27 @@ u8 rtl8152_get_version(struct usb_interf +@@ -6745,6 +8765,27 @@ u8 rtl8152_get_version(struct usb_interf case 0x6010: version = RTL_VER_09; break; @@ -2784,7 +2784,7 @@ Signed-off-by: David S. Miller default: version = RTL_VER_UNKNOWN; dev_info(&intf->dev, "Unknown version 0x%04x\n", ocp_data); -@@ -6834,12 +8875,29 @@ static int rtl8152_probe(struct usb_inte +@@ -6857,12 +8898,29 @@ static int rtl8152_probe(struct usb_inte /* MTU range: 68 - 1500 or 9194 */ netdev->min_mtu = ETH_MIN_MTU; switch (tp->version) { @@ -2817,7 +2817,7 @@ Signed-off-by: David S. Miller break; } -@@ -6855,7 +8913,13 @@ static int rtl8152_probe(struct usb_inte +@@ -6878,7 +8936,13 @@ static int rtl8152_probe(struct usb_inte tp->advertising = RTL_ADVERTISED_10_HALF | RTL_ADVERTISED_10_FULL | RTL_ADVERTISED_100_HALF | RTL_ADVERTISED_100_FULL; if (tp->mii.supports_gmii) { @@ -2832,7 +2832,7 @@ Signed-off-by: David S. Miller tp->advertising |= RTL_ADVERTISED_1000_FULL; } tp->duplex = DUPLEX_FULL; -@@ -6879,7 +8943,11 @@ static int rtl8152_probe(struct usb_inte +@@ -6902,7 +8966,11 @@ static int rtl8152_probe(struct usb_inte set_ethernet_addr(tp); usb_set_intfdata(intf, tp); @@ -2845,7 +2845,7 @@ Signed-off-by: David S. Miller ret = register_netdev(netdev); if (ret != 0) { -@@ -6915,7 +8983,8 @@ static void rtl8152_disconnect(struct us +@@ -6938,7 +9006,8 @@ static void rtl8152_disconnect(struct us unregister_netdev(tp->netdev); tasklet_kill(&tp->tx_tl); cancel_delayed_work_sync(&tp->hw_phy_work); @@ -2855,7 +2855,7 @@ Signed-off-by: David S. Miller rtl8152_release_firmware(tp); free_netdev(tp->netdev); } -@@ -6935,13 +9004,28 @@ static void rtl8152_disconnect(struct us +@@ -6958,13 +9027,28 @@ static void rtl8152_disconnect(struct us .idProduct = (prod), \ .bInterfaceClass = USB_CLASS_COMM, \ .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET, \ diff --git a/target/linux/bcm27xx/patches-5.10/950-0556-r8152-support-PHY-firmware-for-RTL8156-series.patch b/target/linux/bcm27xx/patches-5.10/950-0556-r8152-support-PHY-firmware-for-RTL8156-series.patch index 351f83e2e4..943c821b82 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0556-r8152-support-PHY-firmware-for-RTL8156-series.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0556-r8152-support-PHY-firmware-for-RTL8156-series.patch @@ -15,7 +15,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -974,8 +974,60 @@ enum rtl8152_fw_flags { +@@ -975,8 +975,60 @@ enum rtl8152_fw_flags { FW_FLAGS_START, FW_FLAGS_STOP, FW_FLAGS_NC, @@ -76,7 +76,7 @@ Signed-off-by: David S. Miller /** * struct fw_mac - a firmware block used by RTL_FW_PLA and RTL_FW_USB. * The layout of the firmware block is: -@@ -1080,6 +1132,15 @@ enum rtl_fw_type { +@@ -1081,6 +1133,15 @@ enum rtl_fw_type { RTL_FW_PHY_START, RTL_FW_PHY_STOP, RTL_FW_PHY_NC, @@ -92,7 +92,7 @@ Signed-off-by: David S. Miller }; enum rtl_version { -@@ -3999,6 +4060,162 @@ static int rtl_post_ram_code(struct r815 +@@ -4000,6 +4061,162 @@ static int rtl_post_ram_code(struct r815 return 0; } @@ -255,7 +255,7 @@ Signed-off-by: David S. Miller static bool rtl8152_is_fw_phy_nc_ok(struct r8152 *tp, struct fw_phy_nc *phy) { u32 length; -@@ -4319,6 +4536,10 @@ static long rtl8152_check_firmware(struc +@@ -4320,6 +4537,10 @@ static long rtl8152_check_firmware(struc case RTL_FW_PHY_START: if (test_bit(FW_FLAGS_START, &fw_flags) || test_bit(FW_FLAGS_NC, &fw_flags) || @@ -266,7 +266,7 @@ Signed-off-by: David S. Miller test_bit(FW_FLAGS_STOP, &fw_flags)) { dev_err(&tp->intf->dev, "check PHY_START fail\n"); -@@ -4367,7 +4588,153 @@ static long rtl8152_check_firmware(struc +@@ -4368,7 +4589,153 @@ static long rtl8152_check_firmware(struc goto fail; } __set_bit(FW_FLAGS_NC, &fw_flags); @@ -420,7 +420,7 @@ Signed-off-by: David S. Miller break; default: dev_warn(&tp->intf->dev, "Unknown type %u is found\n", -@@ -4390,6 +4757,143 @@ fail: +@@ -4391,6 +4758,143 @@ fail: return ret; } @@ -564,7 +564,7 @@ Signed-off-by: David S. Miller static void rtl8152_fw_phy_nc_apply(struct r8152 *tp, struct fw_phy_nc *phy) { u16 mode_reg, bp_index; -@@ -4443,6 +4947,12 @@ static void rtl8152_fw_mac_apply(struct +@@ -4444,6 +4948,12 @@ static void rtl8152_fw_mac_apply(struct return; } @@ -577,7 +577,7 @@ Signed-off-by: David S. Miller rtl_clear_bp(tp, type); /* Enable backup/restore of MACDBG. This is required after clearing PLA -@@ -4478,7 +4988,6 @@ static void rtl8152_fw_mac_apply(struct +@@ -4479,7 +4989,6 @@ static void rtl8152_fw_mac_apply(struct ocp_write_word(tp, type, bp_en_addr, __le16_to_cpu(mac->bp_en_value)); @@ -585,7 +585,7 @@ Signed-off-by: David S. Miller if (fw_ver_reg) ocp_write_byte(tp, MCU_TYPE_USB, fw_ver_reg, mac->fw_ver_data); -@@ -4493,7 +5002,7 @@ static void rtl8152_apply_firmware(struc +@@ -4494,7 +5003,7 @@ static void rtl8152_apply_firmware(struc struct fw_header *fw_hdr; struct fw_phy_patch_key *key; u16 key_addr = 0; @@ -594,7 +594,7 @@ Signed-off-by: David S. Miller if (IS_ERR_OR_NULL(rtl_fw->fw)) return; -@@ -4515,17 +5024,40 @@ static void rtl8152_apply_firmware(struc +@@ -4516,17 +5025,40 @@ static void rtl8152_apply_firmware(struc rtl8152_fw_mac_apply(tp, (struct fw_mac *)block); break; case RTL_FW_PHY_START: @@ -635,7 +635,7 @@ Signed-off-by: David S. Miller default: break; } -@@ -5033,6 +5565,21 @@ static int r8153c_post_firmware_1(struct +@@ -5034,6 +5566,21 @@ static int r8153c_post_firmware_1(struct return 0; } @@ -657,7 +657,7 @@ Signed-off-by: David S. Miller static void r8153_aldps_en(struct r8152 *tp, bool enable) { u16 data; -@@ -8651,12 +9198,16 @@ static int rtl_ops_init(struct r8152 *tp +@@ -8674,12 +9221,16 @@ static int rtl_ops_init(struct r8152 *tp #define FIRMWARE_8153A_4 "rtl_nic/rtl8153a-4.fw" #define FIRMWARE_8153B_2 "rtl_nic/rtl8153b-2.fw" #define FIRMWARE_8153C_1 "rtl_nic/rtl8153c-1.fw" @@ -674,7 +674,7 @@ Signed-off-by: David S. Miller static int rtl_fw_init(struct r8152 *tp) { -@@ -8682,6 +9233,14 @@ static int rtl_fw_init(struct r8152 *tp) +@@ -8705,6 +9256,14 @@ static int rtl_fw_init(struct r8152 *tp) rtl_fw->pre_fw = r8153b_pre_firmware_1; rtl_fw->post_fw = r8153b_post_firmware_1; break; diff --git a/target/linux/bcm27xx/patches-5.10/950-0557-r8152-search-the-configuration-of-vendor-mode.patch b/target/linux/bcm27xx/patches-5.10/950-0557-r8152-search-the-configuration-of-vendor-mode.patch index f5abb5d3c9..9ce0e778cf 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0557-r8152-search-the-configuration-of-vendor-mode.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0557-r8152-search-the-configuration-of-vendor-mode.patch @@ -16,7 +16,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c -@@ -29,7 +29,7 @@ +@@ -30,7 +30,7 @@ #include /* Information for net-next */ @@ -25,7 +25,7 @@ Signed-off-by: David S. Miller /* Information for net */ #define NET_VERSION "11" -@@ -8108,6 +8108,39 @@ static void r8156b_init(struct r8152 *tp +@@ -8131,6 +8131,39 @@ static void r8156b_init(struct r8152 *tp tp->coalesce = 15000; /* 15 us */ } @@ -65,7 +65,7 @@ Signed-off-by: David S. Miller static int rtl8152_pre_reset(struct usb_interface *intf) { struct r8152 *tp = usb_get_intfdata(intf); -@@ -9346,10 +9379,8 @@ static int rtl8152_probe(struct usb_inte +@@ -9369,10 +9402,8 @@ static int rtl8152_probe(struct usb_inte if (version == RTL_VER_UNKNOWN) return -ENODEV; diff --git a/target/linux/bcm27xx/patches-5.10/950-0639-cgroup-Disable-cgroup-memory-by-default.patch b/target/linux/bcm27xx/patches-5.10/950-0639-cgroup-Disable-cgroup-memory-by-default.patch index 9eddc3eb0a..bf7c09482c 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0639-cgroup-Disable-cgroup-memory-by-default.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0639-cgroup-Disable-cgroup-memory-by-default.patch @@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c -@@ -5665,6 +5665,9 @@ int __init cgroup_init_early(void) +@@ -5667,6 +5667,9 @@ int __init cgroup_init_early(void) return 0; } @@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell /** * cgroup_init - cgroup initialization * -@@ -5703,6 +5706,12 @@ int __init cgroup_init(void) +@@ -5705,6 +5708,12 @@ int __init cgroup_init(void) mutex_unlock(&cgroup_mutex); @@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell for_each_subsys(ss, ssid) { if (ss->early_init) { struct cgroup_subsys_state *css = -@@ -6240,6 +6249,10 @@ static int __init cgroup_disable(char *s +@@ -6242,6 +6251,10 @@ static int __init cgroup_disable(char *s strcmp(token, ss->legacy_name)) continue; @@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell static_branch_disable(cgroup_subsys_enabled_key[i]); pr_info("Disabling %s control group subsystem\n", ss->name); -@@ -6249,6 +6262,31 @@ static int __init cgroup_disable(char *s +@@ -6251,6 +6264,31 @@ static int __init cgroup_disable(char *s } __setup("cgroup_disable=", cgroup_disable); diff --git a/target/linux/bcm53xx/patches-5.10/081-v5.15-Revert-pinctrl-bcm-ns-support-updated-DT-binding-as-.patch b/target/linux/bcm53xx/patches-5.10/081-v5.15-Revert-pinctrl-bcm-ns-support-updated-DT-binding-as-.patch deleted file mode 100644 index 822716d8e6..0000000000 --- a/target/linux/bcm53xx/patches-5.10/081-v5.15-Revert-pinctrl-bcm-ns-support-updated-DT-binding-as-.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 6dba4bdfd7a30e77b848a45404b224588bf989e5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Fri, 8 Oct 2021 22:59:38 +0200 -Subject: [PATCH] Revert "pinctrl: bcm: ns: support updated DT binding as - syscon subnode" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This reverts commit a49d784d5a8272d0f63c448fe8dc69e589db006e. - -The updated binding was wrong / invalid and has been reverted. There -isn't any upstream kernel DTS using it and Broadcom isn't known to use -it neither. There is close to zero chance this will cause regression for -anyone. - -Actually in-kernel bcm5301x.dtsi still uses the old good binding and so -it's broken since the driver update. This revert fixes it. - -Signed-off-by: Rafał Miłecki -Link: https://lore.kernel.org/r/20211008205938.29925-3-zajec5@gmail.com -Signed-off-by: Linus Walleij ---- - drivers/pinctrl/bcm/pinctrl-ns.c | 29 ++++++++++------------------- - 1 file changed, 10 insertions(+), 19 deletions(-) - ---- a/drivers/pinctrl/bcm/pinctrl-ns.c -+++ b/drivers/pinctrl/bcm/pinctrl-ns.c -@@ -5,7 +5,6 @@ - - #include - #include --#include - #include - #include - #include -@@ -13,7 +12,6 @@ - #include - #include - #include --#include - #include - - #define FLAG_BCM4708 BIT(1) -@@ -24,8 +22,7 @@ struct ns_pinctrl { - struct device *dev; - unsigned int chipset_flag; - struct pinctrl_dev *pctldev; -- struct regmap *regmap; -- u32 offset; -+ void __iomem *base; - - struct pinctrl_desc pctldesc; - struct ns_pinctrl_group *groups; -@@ -232,9 +229,9 @@ static int ns_pinctrl_set_mux(struct pin - unset |= BIT(pin_number); - } - -- regmap_read(ns_pinctrl->regmap, ns_pinctrl->offset, &tmp); -+ tmp = readl(ns_pinctrl->base); - tmp &= ~unset; -- regmap_write(ns_pinctrl->regmap, ns_pinctrl->offset, tmp); -+ writel(tmp, ns_pinctrl->base); - - return 0; - } -@@ -266,13 +263,13 @@ static const struct of_device_id ns_pinc - static int ns_pinctrl_probe(struct platform_device *pdev) - { - struct device *dev = &pdev->dev; -- struct device_node *np = dev->of_node; - const struct of_device_id *of_id; - struct ns_pinctrl *ns_pinctrl; - struct pinctrl_desc *pctldesc; - struct pinctrl_pin_desc *pin; - struct ns_pinctrl_group *group; - struct ns_pinctrl_function *function; -+ struct resource *res; - int i; - - ns_pinctrl = devm_kzalloc(dev, sizeof(*ns_pinctrl), GFP_KERNEL); -@@ -290,18 +287,12 @@ static int ns_pinctrl_probe(struct platf - return -EINVAL; - ns_pinctrl->chipset_flag = (uintptr_t)of_id->data; - -- ns_pinctrl->regmap = syscon_node_to_regmap(of_get_parent(np)); -- if (IS_ERR(ns_pinctrl->regmap)) { -- int err = PTR_ERR(ns_pinctrl->regmap); -- -- dev_err(dev, "Failed to map pinctrl regs: %d\n", err); -- -- return err; -- } -- -- if (of_property_read_u32(np, "offset", &ns_pinctrl->offset)) { -- dev_err(dev, "Failed to get register offset\n"); -- return -ENOENT; -+ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, -+ "cru_gpio_control"); -+ ns_pinctrl->base = devm_ioremap_resource(dev, res); -+ if (IS_ERR(ns_pinctrl->base)) { -+ dev_err(dev, "Failed to map pinctrl regs\n"); -+ return PTR_ERR(ns_pinctrl->base); - } - - memcpy(pctldesc, &ns_pinctrl_desc, sizeof(*pctldesc)); diff --git a/target/linux/generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch b/target/linux/generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch index b036b5852e..58cfd5da93 100644 --- a/target/linux/generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch +++ b/target/linux/generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch @@ -18,7 +18,7 @@ Signed-off-by: David S. Miller --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -6793,15 +6793,10 @@ void __netif_napi_del(struct napi_struct +@@ -6799,15 +6799,10 @@ void __netif_napi_del(struct napi_struct } EXPORT_SYMBOL(__netif_napi_del); @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller weight = n->weight; /* This NAPI_STATE_SCHED test is for avoiding a race -@@ -6821,7 +6816,7 @@ static int napi_poll(struct napi_struct +@@ -6827,7 +6822,7 @@ static int napi_poll(struct napi_struct n->poll, work, weight); if (likely(work < weight)) @@ -44,7 +44,7 @@ Signed-off-by: David S. Miller /* Drivers must not modify the NAPI state if they * consume the entire weight. In such cases this code -@@ -6830,7 +6825,7 @@ static int napi_poll(struct napi_struct +@@ -6836,7 +6831,7 @@ static int napi_poll(struct napi_struct */ if (unlikely(napi_disable_pending(n))) { napi_complete(n); @@ -53,7 +53,7 @@ Signed-off-by: David S. Miller } if (n->gro_bitmask) { -@@ -6848,12 +6843,29 @@ static int napi_poll(struct napi_struct +@@ -6854,12 +6849,29 @@ static int napi_poll(struct napi_struct if (unlikely(!list_empty(&n->poll_list))) { pr_warn_once("%s: Budget exhausted after napi rescheduled\n", n->dev ? n->dev->name : "backlog"); diff --git a/target/linux/generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch b/target/linux/generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch index 05f89932e8..4fde0bb708 100644 --- a/target/linux/generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch +++ b/target/linux/generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch @@ -131,7 +131,7 @@ Signed-off-by: David S. Miller static int __dev_open(struct net_device *dev, struct netlink_ext_ack *extack) { const struct net_device_ops *ops = dev->netdev_ops; -@@ -4255,6 +4277,21 @@ int gro_normal_batch __read_mostly = 8; +@@ -4261,6 +4283,21 @@ int gro_normal_batch __read_mostly = 8; static inline void ____napi_schedule(struct softnet_data *sd, struct napi_struct *napi) { @@ -153,7 +153,7 @@ Signed-off-by: David S. Miller list_add_tail(&napi->poll_list, &sd->poll_list); __raise_softirq_irqoff(NET_RX_SOFTIRQ); } -@@ -6746,6 +6783,12 @@ void netif_napi_add(struct net_device *d +@@ -6752,6 +6789,12 @@ void netif_napi_add(struct net_device *d set_bit(NAPI_STATE_NPSVC, &napi->state); list_add_rcu(&napi->dev_list, &dev->napi_list); napi_hash_add(napi); @@ -166,7 +166,7 @@ Signed-off-by: David S. Miller } EXPORT_SYMBOL(netif_napi_add); -@@ -6762,9 +6805,28 @@ void napi_disable(struct napi_struct *n) +@@ -6768,9 +6811,28 @@ void napi_disable(struct napi_struct *n) hrtimer_cancel(&n->timer); clear_bit(NAPI_STATE_DISABLE, &n->state); @@ -195,7 +195,7 @@ Signed-off-by: David S. Miller static void flush_gro_hash(struct napi_struct *napi) { int i; -@@ -6790,6 +6852,11 @@ void __netif_napi_del(struct napi_struct +@@ -6796,6 +6858,11 @@ void __netif_napi_del(struct napi_struct flush_gro_hash(napi); napi->gro_bitmask = 0; @@ -207,7 +207,7 @@ Signed-off-by: David S. Miller } EXPORT_SYMBOL(__netif_napi_del); -@@ -6871,6 +6938,51 @@ static int napi_poll(struct napi_struct +@@ -6877,6 +6944,51 @@ static int napi_poll(struct napi_struct return work; } diff --git a/target/linux/generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch b/target/linux/generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch index 1009d82046..dfe8b68d4a 100644 --- a/target/linux/generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch +++ b/target/linux/generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller * @n: NAPI context --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4281,8 +4281,9 @@ static inline void ____napi_schedule(str +@@ -4287,8 +4287,9 @@ static inline void ____napi_schedule(str if (test_bit(NAPI_STATE_THREADED, &napi->state)) { /* Paired with smp_mb__before_atomic() in @@ -69,7 +69,7 @@ Signed-off-by: David S. Miller * wake_up_process() when it's not NULL. */ thread = READ_ONCE(napi->thread); -@@ -6756,6 +6757,49 @@ static void init_gro_hash(struct napi_st +@@ -6762,6 +6763,49 @@ static void init_gro_hash(struct napi_st napi->gro_bitmask = 0; } diff --git a/target/linux/generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch b/target/linux/generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch index a7fe9b360f..6617ee172e 100644 --- a/target/linux/generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch +++ b/target/linux/generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch @@ -45,7 +45,7 @@ Cc: Hannes Frederic Sowa enum gro_result { --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4288,6 +4288,8 @@ static inline void ____napi_schedule(str +@@ -4294,6 +4294,8 @@ static inline void ____napi_schedule(str */ thread = READ_ONCE(napi->thread); if (thread) { @@ -54,7 +54,7 @@ Cc: Hannes Frederic Sowa wake_up_process(thread); return; } -@@ -6548,7 +6550,8 @@ bool napi_complete_done(struct napi_stru +@@ -6554,7 +6556,8 @@ bool napi_complete_done(struct napi_stru WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED)); @@ -64,7 +64,7 @@ Cc: Hannes Frederic Sowa /* If STATE_MISSED was set, leave STATE_SCHED set, * because we will call napi->poll() one more time. -@@ -6984,16 +6987,25 @@ static int napi_poll(struct napi_struct +@@ -6990,16 +6993,25 @@ static int napi_poll(struct napi_struct static int napi_thread_wait(struct napi_struct *napi) { diff --git a/target/linux/generic/backport-5.10/604-v5.12-net-fix-hangup-on-napi_disable-for-threaded-napi.patch b/target/linux/generic/backport-5.10/604-v5.12-net-fix-hangup-on-napi_disable-for-threaded-napi.patch index d921856668..1ea38ed286 100644 --- a/target/linux/generic/backport-5.10/604-v5.12-net-fix-hangup-on-napi_disable-for-threaded-napi.patch +++ b/target/linux/generic/backport-5.10/604-v5.12-net-fix-hangup-on-napi_disable-for-threaded-napi.patch @@ -34,7 +34,7 @@ Signed-off-by: Jakub Kicinski --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -6991,7 +6991,7 @@ static int napi_thread_wait(struct napi_ +@@ -6997,7 +6997,7 @@ static int napi_thread_wait(struct napi_ set_current_state(TASK_INTERRUPTIBLE); @@ -43,7 +43,7 @@ Signed-off-by: Jakub Kicinski /* Testing SCHED_THREADED bit here to make sure the current * kthread owns this napi and could poll on this napi. * Testing SCHED bit is not enough because SCHED bit might be -@@ -7009,6 +7009,7 @@ static int napi_thread_wait(struct napi_ +@@ -7015,6 +7015,7 @@ static int napi_thread_wait(struct napi_ set_current_state(TASK_INTERRUPTIBLE); } __set_current_state(TASK_RUNNING); diff --git a/target/linux/generic/backport-5.10/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch b/target/linux/generic/backport-5.10/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch index 4d721c4f56..8e242bfffc 100644 --- a/target/linux/generic/backport-5.10/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch +++ b/target/linux/generic/backport-5.10/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch @@ -933,7 +933,7 @@ Signed-off-by: David S. Miller } --- a/drivers/net/ethernet/microchip/lan743x_main.c +++ b/drivers/net/ethernet/microchip/lan743x_main.c -@@ -2815,7 +2815,6 @@ static int lan743x_pcidev_probe(struct p +@@ -2835,7 +2835,6 @@ static int lan743x_pcidev_probe(struct p { struct lan743x_adapter *adapter = NULL; struct net_device *netdev = NULL; @@ -941,7 +941,7 @@ Signed-off-by: David S. Miller int ret = -ENODEV; netdev = devm_alloc_etherdev(&pdev->dev, -@@ -2832,9 +2831,7 @@ static int lan743x_pcidev_probe(struct p +@@ -2852,9 +2851,7 @@ static int lan743x_pcidev_probe(struct p NETIF_MSG_IFDOWN | NETIF_MSG_TX_QUEUED; netdev->max_mtu = LAN743X_MAX_FRAME_SIZE; @@ -954,7 +954,7 @@ Signed-off-by: David S. Miller if (ret) --- a/drivers/net/ethernet/nxp/lpc_eth.c +++ b/drivers/net/ethernet/nxp/lpc_eth.c -@@ -1348,9 +1348,7 @@ static int lpc_eth_drv_probe(struct plat +@@ -1347,9 +1347,7 @@ static int lpc_eth_drv_probe(struct plat __lpc_get_mac(pldat, ndev->dev_addr); if (!is_valid_ether_addr(ndev->dev_addr)) { diff --git a/target/linux/generic/hack-5.10/721-net-add-packet-mangeling.patch b/target/linux/generic/hack-5.10/721-net-add-packet-mangeling.patch index 26ed829363..b6fe6c65d3 100644 --- a/target/linux/generic/hack-5.10/721-net-add-packet-mangeling.patch +++ b/target/linux/generic/hack-5.10/721-net-add-packet-mangeling.patch @@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau help --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3638,6 +3638,11 @@ static int xmit_one(struct sk_buff *skb, +@@ -3644,6 +3644,11 @@ static int xmit_one(struct sk_buff *skb, if (dev_nit_active(dev)) dev_queue_xmit_nit(skb, dev); diff --git a/target/linux/generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index a0aac3d140..5140b50924 100644 --- a/target/linux/generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau __u16 tc_index; /* traffic control index */ --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -6050,6 +6050,9 @@ static enum gro_result dev_gro_receive(s +@@ -6056,6 +6056,9 @@ static enum gro_result dev_gro_receive(s int same_flow; int grow; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau if (netif_elide_gro(skb->dev)) goto normal; -@@ -8027,6 +8030,48 @@ static void __netdev_adjacent_dev_unlink +@@ -8033,6 +8036,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info, -@@ -8078,6 +8123,7 @@ static int __netdev_upper_dev_link(struc +@@ -8084,6 +8129,7 @@ static int __netdev_upper_dev_link(struc if (ret) return ret; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); ret = notifier_to_errno(ret); -@@ -8174,6 +8220,7 @@ static void __netdev_upper_dev_unlink(st +@@ -8180,6 +8226,7 @@ static void __netdev_upper_dev_unlink(st __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); -@@ -8960,6 +9007,7 @@ int dev_set_mac_address(struct net_devic +@@ -8966,6 +9013,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/ipq40xx/patches-5.10/105-ipq40xx-fix-sleep-clock.patch b/target/linux/ipq40xx/patches-5.10/105-ipq40xx-fix-sleep-clock.patch index 97a36872e9..8afcbdcf98 100644 --- a/target/linux/ipq40xx/patches-5.10/105-ipq40xx-fix-sleep-clock.patch +++ b/target/linux/ipq40xx/patches-5.10/105-ipq40xx-fix-sleep-clock.patch @@ -15,7 +15,7 @@ Signed-off-by: Pavel Kubelun --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi +++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi -@@ -141,9 +141,9 @@ +@@ -140,9 +140,9 @@ }; clocks { diff --git a/target/linux/ramips/patches-5.10/720-Revert-net-phy-simplify-phy_link_change-arguments.patch b/target/linux/ramips/patches-5.10/720-Revert-net-phy-simplify-phy_link_change-arguments.patch index a2ace6057f..c9fcefe18b 100644 --- a/target/linux/ramips/patches-5.10/720-Revert-net-phy-simplify-phy_link_change-arguments.patch +++ b/target/linux/ramips/patches-5.10/720-Revert-net-phy-simplify-phy_link_change-arguments.patch @@ -33,7 +33,7 @@ still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c phy_led_trigger_change_speed(phydev); } -@@ -618,7 +618,7 @@ int phy_start_cable_test(struct phy_devi +@@ -567,7 +567,7 @@ int phy_start_cable_test(struct phy_devi goto out; /* Mark the carrier down until the test is complete */ @@ -42,7 +42,7 @@ still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c netif_testing_on(dev); err = phydev->drv->cable_test_start(phydev); -@@ -689,7 +689,7 @@ int phy_start_cable_test_tdr(struct phy_ +@@ -638,7 +638,7 @@ int phy_start_cable_test_tdr(struct phy_ goto out; /* Mark the carrier down until the test is complete */ @@ -51,7 +51,7 @@ still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c netif_testing_on(dev); err = phydev->drv->cable_test_tdr_start(phydev, config); -@@ -760,7 +760,7 @@ static int phy_check_link_status(struct +@@ -709,7 +709,7 @@ static int phy_check_link_status(struct phy_link_up(phydev); } else if (!phydev->link && phydev->state != PHY_NOLINK) { phydev->state = PHY_NOLINK; @@ -60,7 +60,7 @@ still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c } return 0; -@@ -1164,7 +1164,7 @@ void phy_state_machine(struct work_struc +@@ -1186,7 +1186,7 @@ void phy_state_machine(struct work_struc case PHY_HALTED: if (phydev->link) { phydev->link = 0; diff --git a/target/linux/ramips/patches-5.10/721-NET-no-auto-carrier-off-support.patch b/target/linux/ramips/patches-5.10/721-NET-no-auto-carrier-off-support.patch index 02bcb17354..0ef06615b6 100644 --- a/target/linux/ramips/patches-5.10/721-NET-no-auto-carrier-off-support.patch +++ b/target/linux/ramips/patches-5.10/721-NET-no-auto-carrier-off-support.patch @@ -11,7 +11,7 @@ Signed-off-by: John Crispin --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -760,7 +760,10 @@ static int phy_check_link_status(struct +@@ -709,7 +709,10 @@ static int phy_check_link_status(struct phy_link_up(phydev); } else if (!phydev->link && phydev->state != PHY_NOLINK) { phydev->state = PHY_NOLINK; @@ -23,7 +23,7 @@ Signed-off-by: John Crispin } return 0; -@@ -1164,7 +1167,10 @@ void phy_state_machine(struct work_struc +@@ -1186,7 +1189,10 @@ void phy_state_machine(struct work_struc case PHY_HALTED: if (phydev->link) { phydev->link = 0; From 30b0bd69fd57d6179d1d8825710d3bf2a40bd98b Mon Sep 17 00:00:00 2001 From: John Audia Date: Sun, 31 Oct 2021 07:08:40 -0400 Subject: [PATCH 05/53] kernel: bump 5.4 to 5.4.156 Removed upstreamed: backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch All other patches automatically rebased. Signed-off-by: John Audia --- include/kernel-version.mk | 4 +- ...the-dst-buffer-to-of_get_mac_address.patch | 2 +- ...-not-propagate-bridge-updates-across.patch | 60 ------------------- .../hack-5.4/220-arm-gc_sections.patch | 2 +- ...or-support-mtd-name-from-device-tree.patch | 4 +- 5 files changed, 6 insertions(+), 66 deletions(-) delete mode 100644 target/linux/generic/backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 17cb009f3c..cb4d195588 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -6,10 +6,10 @@ ifdef CONFIG_TESTING_KERNEL KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) endif -LINUX_VERSION-5.4 = .155 +LINUX_VERSION-5.4 = .156 LINUX_VERSION-5.10 = .77 -LINUX_KERNEL_HASH-5.4.155 = cc0c0f902748d251cb22d0e69e3b8d260c447eb0072ef853da15da6cce775038 +LINUX_KERNEL_HASH-5.4.156 = 06fe73e4623fcf1b3c0d0e1983d8286a2ff5b8fffbcb2163f4c01696a1c377fe LINUX_KERNEL_HASH-5.10.77 = d3b64edfc1dd7212e62ed733aeeb73d64ffd6d9658d322d44cddf1b41d5b8fc3 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) diff --git a/target/linux/generic/backport-5.4/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch b/target/linux/generic/backport-5.4/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch index 3847610df5..bf0ff9eddf 100644 --- a/target/linux/generic/backport-5.4/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch +++ b/target/linux/generic/backport-5.4/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch @@ -1340,7 +1340,7 @@ Signed-off-by: David S. Miller } plat->phy_interface = of_get_phy_mode(np); -@@ -631,7 +631,7 @@ void stmmac_remove_config_dt(struct plat +@@ -639,7 +639,7 @@ void stmmac_remove_config_dt(struct plat } #else struct plat_stmmacenet_data * diff --git a/target/linux/generic/backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch b/target/linux/generic/backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch deleted file mode 100644 index bc8014b772..0000000000 --- a/target/linux/generic/backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 07c6f9805f12f1bb538ef165a092b300350384aa Mon Sep 17 00:00:00 2001 -From: Russell King -Date: Wed, 26 Feb 2020 17:14:21 +0000 -Subject: [PATCH] net: switchdev: do not propagate bridge updates across - bridges - -When configuring a tree of independent bridges, propagating changes -from the upper bridge across a bridge master to the lower bridge -ports brings surprises. - -For example, a lower bridge may have vlan filtering enabled. It -may have a vlan interface attached to the bridge master, which may -then be incorporated into another bridge. As soon as the lower -bridge vlan interface is attached to the upper bridge, the lower -bridge has vlan filtering disabled. - -This occurs because switchdev recursively applies its changes to -all lower devices no matter what. - -Reviewed-by: Ido Schimmel -Tested-by: Ido Schimmel -Signed-off-by: Russell King -Reviewed-by: Florian Fainelli -Signed-off-by: David S. Miller ---- - net/switchdev/switchdev.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - ---- a/net/switchdev/switchdev.c -+++ b/net/switchdev/switchdev.c -@@ -476,6 +476,9 @@ static int __switchdev_handle_port_obj_a - * necessary to go through this helper. - */ - netdev_for_each_lower_dev(dev, lower_dev, iter) { -+ if (netif_is_bridge_master(lower_dev)) -+ continue; -+ - err = __switchdev_handle_port_obj_add(lower_dev, port_obj_info, - check_cb, add_cb); - if (err && err != -EOPNOTSUPP) -@@ -528,6 +531,9 @@ static int __switchdev_handle_port_obj_d - * necessary to go through this helper. - */ - netdev_for_each_lower_dev(dev, lower_dev, iter) { -+ if (netif_is_bridge_master(lower_dev)) -+ continue; -+ - err = __switchdev_handle_port_obj_del(lower_dev, port_obj_info, - check_cb, del_cb); - if (err && err != -EOPNOTSUPP) -@@ -579,6 +585,9 @@ static int __switchdev_handle_port_attr_ - * necessary to go through this helper. - */ - netdev_for_each_lower_dev(dev, lower_dev, iter) { -+ if (netif_is_bridge_master(lower_dev)) -+ continue; -+ - err = __switchdev_handle_port_attr_set(lower_dev, port_attr_info, - check_cb, set_cb); - if (err && err != -EOPNOTSUPP) diff --git a/target/linux/generic/hack-5.4/220-arm-gc_sections.patch b/target/linux/generic/hack-5.4/220-arm-gc_sections.patch index 70457ab73a..14e2461797 100644 --- a/target/linux/generic/hack-5.4/220-arm-gc_sections.patch +++ b/target/linux/generic/hack-5.4/220-arm-gc_sections.patch @@ -21,7 +21,7 @@ Signed-off-by: Gabor Juhos --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig -@@ -111,6 +111,7 @@ config ARM +@@ -112,6 +112,7 @@ config ARM select HAVE_UID16 select HAVE_VIRT_CPU_ACCOUNTING_GEN select IRQ_FORCED_THREADING diff --git a/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch index 69a8303d2b..cdf0e49b21 100644 --- a/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch +++ b/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch @@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -4938,6 +4938,7 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -4939,6 +4939,7 @@ int spi_nor_scan(struct spi_nor *nor, co struct mtd_info *mtd = &nor->mtd; struct device_node *np = spi_nor_get_flash_node(nor); struct spi_nor_flash_parameter *params = &nor->params; @@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma int ret; int i; -@@ -5000,7 +5001,12 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -5001,7 +5002,12 @@ int spi_nor_scan(struct spi_nor *nor, co /* Init flash parameters based on flash_info struct and SFDP */ spi_nor_init_params(nor); From d91318662d5c290ce97bfb18c84e4cddc514f33a Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Sat, 21 Aug 2021 00:32:31 +0200 Subject: [PATCH 06/53] ath9k: nvmem for ath9k caldata With "getting WIFI MAC from NVMEM" working on ath79 on 5.10, the next logical step I think is to utilize nvmem subsystem to also get the calibration data from there. This will tremendously speed up the wifi bring-up, since we no longer need the userspace helper for the simple devices that can just load them from there. included with this patch is a package/mac80211/refresh. Tested on: WNDR3700v2, TP-Link Archer C7v2 Signed-off-by: Christian Lamparter --- ...-ieee80211-freq-limit-property-to-li.patch | 3 +- .../patches/ath9k/501-ath9k_ahb_init.patch | 2 +- .../ath9k/543-ath9k_entropy_from_adc.patch | 6 +- .../patches/ath9k/552-ath9k-ahb_of.patch | 8 +- .../ath9k/553-ath9k_of_gpio_mask.patch | 4 +- ...calibration-data-via-nvmem-subsystem.patch | 154 +++++++++++++++ ...-fetch-pci-init-values-through-nvmem.patch | 181 ++++++++++++++++++ 7 files changed, 346 insertions(+), 12 deletions(-) create mode 100644 package/kernel/mac80211/patches/ath9k/600-v5.16-ath9k-fetch-calibration-data-via-nvmem-subsystem.patch create mode 100644 package/kernel/mac80211/patches/ath9k/601-v5.16-ath9k-owl-loader-fetch-pci-init-values-through-nvmem.patch diff --git a/package/kernel/mac80211/patches/ath9k/040-ath9k-support-DT-ieee80211-freq-limit-property-to-li.patch b/package/kernel/mac80211/patches/ath9k/040-ath9k-support-DT-ieee80211-freq-limit-property-to-li.patch index 4142cb6ffd..7d44681760 100644 --- a/package/kernel/mac80211/patches/ath9k/040-ath9k-support-DT-ieee80211-freq-limit-property-to-li.patch +++ b/package/kernel/mac80211/patches/ath9k/040-ath9k-support-DT-ieee80211-freq-limit-property-to-li.patch @@ -17,7 +17,7 @@ Link: https://lore.kernel.org/r/20211009212847.1781986-1-chunkeey@gmail.com --- --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -1094,6 +1094,8 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc, +@@ -1038,6 +1038,8 @@ int ath9k_init_device(u16 devid, struct ARRAY_SIZE(ath9k_tpt_blink)); #endif @@ -26,4 +26,3 @@ Link: https://lore.kernel.org/r/20211009212847.1781986-1-chunkeey@gmail.com /* Register with mac80211 */ error = ieee80211_register_hw(hw); if (error) - diff --git a/package/kernel/mac80211/patches/ath9k/501-ath9k_ahb_init.patch b/package/kernel/mac80211/patches/ath9k/501-ath9k_ahb_init.patch index ed78d1f9b4..6ab7972b55 100644 --- a/package/kernel/mac80211/patches/ath9k/501-ath9k_ahb_init.patch +++ b/package/kernel/mac80211/patches/ath9k/501-ath9k_ahb_init.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -1120,25 +1120,25 @@ static int __init ath9k_init(void) +@@ -1122,25 +1122,25 @@ static int __init ath9k_init(void) { int error; diff --git a/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch b/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch index 806e136159..ef4e659870 100644 --- a/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch +++ b/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch @@ -84,9 +84,9 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc, const struct ath_bus_ops *bus_ops) { -@@ -1037,6 +1050,8 @@ int ath9k_init_device(u16 devid, struct - ARRAY_SIZE(ath9k_tpt_blink)); - #endif +@@ -1039,6 +1052,8 @@ int ath9k_init_device(u16 devid, struct + + wiphy_read_of_freq_limits(hw->wiphy); + ath_get_initial_entropy(sc); + diff --git a/package/kernel/mac80211/patches/ath9k/552-ath9k-ahb_of.patch b/package/kernel/mac80211/patches/ath9k/552-ath9k-ahb_of.patch index fce6db2167..7ce8bc5b82 100644 --- a/package/kernel/mac80211/patches/ath9k/552-ath9k-ahb_of.patch +++ b/package/kernel/mac80211/patches/ath9k/552-ath9k-ahb_of.patch @@ -253,7 +253,7 @@ static int ath_ahb_probe(struct platform_device *pdev) { void __iomem *mem; -@@ -80,6 +324,17 @@ static int ath_ahb_probe(struct platform +@@ -80,6 +318,17 @@ static int ath_ahb_probe(struct platform int ret = 0; struct ath_hw *ah; char hw_name[64]; @@ -271,7 +271,7 @@ if (!dev_get_platdata(&pdev->dev)) { dev_err(&pdev->dev, "no platform data specified\n"); -@@ -122,13 +377,16 @@ static int ath_ahb_probe(struct platform +@@ -122,13 +371,16 @@ static int ath_ahb_probe(struct platform sc->mem = mem; sc->irq = irq; @@ -289,7 +289,7 @@ if (ret) { dev_err(&pdev->dev, "failed to initialize device\n"); goto err_irq; -@@ -159,6 +417,9 @@ static int ath_ahb_remove(struct platfor +@@ -159,6 +411,9 @@ static int ath_ahb_remove(struct platfor free_irq(sc->irq, sc); ieee80211_free_hw(sc->hw); } @@ -299,7 +299,7 @@ return 0; } -@@ -168,6 +429,9 @@ static struct platform_driver ath_ahb_dr +@@ -168,6 +423,9 @@ static struct platform_driver ath_ahb_dr .remove = ath_ahb_remove, .driver = { .name = "ath9k", diff --git a/package/kernel/mac80211/patches/ath9k/553-ath9k_of_gpio_mask.patch b/package/kernel/mac80211/patches/ath9k/553-ath9k_of_gpio_mask.patch index f11742d66e..80e0dc4c5e 100644 --- a/package/kernel/mac80211/patches/ath9k/553-ath9k_of_gpio_mask.patch +++ b/package/kernel/mac80211/patches/ath9k/553-ath9k_of_gpio_mask.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -650,6 +650,12 @@ static int ath9k_of_init(struct ath_soft +@@ -644,6 +644,12 @@ static int ath9k_of_init(struct ath_soft return 0; } @@ -13,7 +13,7 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc, const struct ath_bus_ops *bus_ops) { -@@ -753,6 +759,9 @@ static int ath9k_init_softc(u16 devid, s +@@ -747,6 +753,9 @@ static int ath9k_init_softc(u16 devid, s if (ret) goto err_hw; diff --git a/package/kernel/mac80211/patches/ath9k/600-v5.16-ath9k-fetch-calibration-data-via-nvmem-subsystem.patch b/package/kernel/mac80211/patches/ath9k/600-v5.16-ath9k-fetch-calibration-data-via-nvmem-subsystem.patch new file mode 100644 index 0000000000..a250d2318e --- /dev/null +++ b/package/kernel/mac80211/patches/ath9k/600-v5.16-ath9k-fetch-calibration-data-via-nvmem-subsystem.patch @@ -0,0 +1,154 @@ +From dab16ef495dbb3cabb355b6c80f0771a4a25e35d Mon Sep 17 00:00:00 2001 +From: Christian Lamparter +Date: Fri, 20 Aug 2021 22:44:52 +0200 +Subject: [PATCH] ath9k: fetch calibration data via nvmem subsystem + +On most embedded ath9k devices (like range extenders, +routers, accesspoints, ...) the calibration data is +stored in a MTD partitions named "ART", or "caldata"/ +"calibration". + +Ever since commit +4b361cfa8624 ("mtd: core: add OTP nvmem provider support") +all MTD partitions are all automatically available through +the nvmem subsystem. This allows drivers like ath9k to read +the necessary data without needing any userspace helpers +that would do this extraction. + +Signed-off-by: Christian Lamparter +--- + +includes: + +From 57671351379b2051cfb07fc14e0bead9916a0880 Mon Sep 17 00:00:00 2001 +From: Dan Carpenter +Date: Mon, 11 Oct 2021 18:18:01 +0300 +Subject: ath9k: fix an IS_ERR() vs NULL check + +The devm_kmemdup() function doesn't return error pointers, it returns +NULL on error. + +Fixes: eb3a97a69be8 ("ath9k: fetch calibration data via nvmem subsystem") +Signed-off-by: Dan Carpenter +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/20211011123533.GA15188@kili + +--- + +--- a/drivers/net/wireless/ath/ath9k/eeprom.c ++++ b/drivers/net/wireless/ath/ath9k/eeprom.c +@@ -135,13 +135,23 @@ static bool ath9k_hw_nvram_read_firmware + offset, data); + } + ++static bool ath9k_hw_nvram_read_nvmem(struct ath_hw *ah, off_t offset, ++ u16 *data) ++{ ++ return ath9k_hw_nvram_read_array(ah->nvmem_blob, ++ ah->nvmem_blob_len / sizeof(u16), ++ offset, data); ++} ++ + bool ath9k_hw_nvram_read(struct ath_hw *ah, u32 off, u16 *data) + { + struct ath_common *common = ath9k_hw_common(ah); + struct ath9k_platform_data *pdata = ah->dev->platform_data; + bool ret; + +- if (ah->eeprom_blob) ++ if (ah->nvmem_blob) ++ ret = ath9k_hw_nvram_read_nvmem(ah, off, data); ++ else if (ah->eeprom_blob) + ret = ath9k_hw_nvram_read_firmware(ah->eeprom_blob, off, data); + else if (pdata && !pdata->use_eeprom) + ret = ath9k_hw_nvram_read_pdata(pdata, off, data); +--- a/drivers/net/wireless/ath/ath9k/hw.h ++++ b/drivers/net/wireless/ath/ath9k/hw.h +@@ -988,6 +988,8 @@ struct ath_hw { + bool disable_5ghz; + + const struct firmware *eeprom_blob; ++ u16 *nvmem_blob; /* devres managed */ ++ size_t nvmem_blob_len; + + struct ath_dynack dynack; + +--- a/drivers/net/wireless/ath/ath9k/init.c ++++ b/drivers/net/wireless/ath/ath9k/init.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -568,6 +569,57 @@ static void ath9k_eeprom_release(struct + release_firmware(sc->sc_ah->eeprom_blob); + } + ++static int ath9k_nvmem_request_eeprom(struct ath_softc *sc) ++{ ++ struct ath_hw *ah = sc->sc_ah; ++ struct nvmem_cell *cell; ++ void *buf; ++ size_t len; ++ int err; ++ ++ cell = devm_nvmem_cell_get(sc->dev, "calibration"); ++ if (IS_ERR(cell)) { ++ err = PTR_ERR(cell); ++ ++ /* nvmem cell might not be defined, or the nvmem ++ * subsystem isn't included. In this case, follow ++ * the established "just return 0;" convention of ++ * ath9k_init_platform to say: ++ * "All good. Nothing to see here. Please go on." ++ */ ++ if (err == -ENOENT || err == -EOPNOTSUPP) ++ return 0; ++ ++ return err; ++ } ++ ++ buf = nvmem_cell_read(cell, &len); ++ if (IS_ERR(buf)) ++ return PTR_ERR(buf); ++ ++ /* run basic sanity checks on the returned nvram cell length. ++ * That length has to be a multiple of a "u16" (i.e.: & 1). ++ * Furthermore, it has to be more than "let's say" 512 bytes ++ * but less than the maximum of AR9300_EEPROM_SIZE (16kb). ++ */ ++ if (((len & 1) == 1) || (len < 512) || (len >= AR9300_EEPROM_SIZE)) { ++ kfree(buf); ++ return -EINVAL; ++ } ++ ++ /* devres manages the calibration values release on shutdown */ ++ ah->nvmem_blob = (u16 *)devm_kmemdup(sc->dev, buf, len, GFP_KERNEL); ++ kfree(buf); ++ if (!ah->nvmem_blob) ++ return -ENOMEM; ++ ++ ah->nvmem_blob_len = len; ++ ah->ah_flags &= ~AH_USE_EEPROM; ++ ah->ah_flags |= AH_NO_EEP_SWAP; ++ ++ return 0; ++} ++ + static int ath9k_init_platform(struct ath_softc *sc) + { + struct ath9k_platform_data *pdata = sc->dev->platform_data; +@@ -710,6 +762,10 @@ static int ath9k_init_softc(u16 devid, s + if (ret) + return ret; + ++ ret = ath9k_nvmem_request_eeprom(sc); ++ if (ret) ++ return ret; ++ + if (ath9k_led_active_high != -1) + ah->config.led_active_high = ath9k_led_active_high == 1; + diff --git a/package/kernel/mac80211/patches/ath9k/601-v5.16-ath9k-owl-loader-fetch-pci-init-values-through-nvmem.patch b/package/kernel/mac80211/patches/ath9k/601-v5.16-ath9k-owl-loader-fetch-pci-init-values-through-nvmem.patch new file mode 100644 index 0000000000..62c561d619 --- /dev/null +++ b/package/kernel/mac80211/patches/ath9k/601-v5.16-ath9k-owl-loader-fetch-pci-init-values-through-nvmem.patch @@ -0,0 +1,181 @@ +From 9bf31835f11aa3c4fe5a9c1f7462c199c5d8e7ca Mon Sep 17 00:00:00 2001 +From: Christian Lamparter +Date: Sat, 21 Aug 2021 00:22:39 +0200 +Subject: [PATCH] ath9k: owl-loader: fetch pci init values through nvmem + +extends the owl loader to fetch important pci initialization +values - which are stored together with the calibration data - +through the nvmem subsystem. + +This allows for much faster WIFI/ath9k initializations on devices +that do not require to perform any post-processing (like XOR'ing/ +reversal or unpacking) since no userspace helper is required. + +Signed-off-by: Christian Lamparter +--- + .../wireless/ath/ath9k/ath9k_pci_owl_loader.c | 105 +++++++++++++----- + 1 file changed, 76 insertions(+), 29 deletions(-) + +--- a/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c ++++ b/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c +@@ -19,9 +19,14 @@ + #include + #include + #include ++#include ++#include + + struct owl_ctx { ++ struct pci_dev *pdev; + struct completion eeprom_load; ++ struct work_struct work; ++ struct nvmem_cell *cell; + }; + + #define EEPROM_FILENAME_LEN 100 +@@ -42,6 +47,12 @@ static int ath9k_pci_fixup(struct pci_de + u32 bar0; + bool swap_needed = false; + ++ /* also note that we are doing *u16 operations on the file */ ++ if (cal_len > 4096 || cal_len < 0x200 || (cal_len & 1) == 1) { ++ dev_err(&pdev->dev, "eeprom has an invalid size.\n"); ++ return -EINVAL; ++ } ++ + if (*cal_data != AR5416_EEPROM_MAGIC) { + if (*cal_data != swab16(AR5416_EEPROM_MAGIC)) { + dev_err(&pdev->dev, "invalid calibration data\n"); +@@ -99,38 +110,31 @@ static int ath9k_pci_fixup(struct pci_de + return 0; + } + +-static void owl_fw_cb(const struct firmware *fw, void *context) ++static void owl_rescan(struct pci_dev *pdev) + { +- struct pci_dev *pdev = (struct pci_dev *)context; +- struct owl_ctx *ctx = (struct owl_ctx *)pci_get_drvdata(pdev); +- struct pci_bus *bus; +- +- complete(&ctx->eeprom_load); +- +- if (!fw) { +- dev_err(&pdev->dev, "no eeprom data received.\n"); +- goto release; +- } +- +- /* also note that we are doing *u16 operations on the file */ +- if (fw->size > 4096 || fw->size < 0x200 || (fw->size & 1) == 1) { +- dev_err(&pdev->dev, "eeprom file has an invalid size.\n"); +- goto release; +- } +- +- if (ath9k_pci_fixup(pdev, (const u16 *)fw->data, fw->size)) +- goto release; ++ struct pci_bus *bus = pdev->bus; + + pci_lock_rescan_remove(); +- bus = pdev->bus; + pci_stop_and_remove_bus_device(pdev); + /* the device should come back with the proper + * ProductId. But we have to initiate a rescan. + */ + pci_rescan_bus(bus); + pci_unlock_rescan_remove(); ++} ++ ++static void owl_fw_cb(const struct firmware *fw, void *context) ++{ ++ struct owl_ctx *ctx = (struct owl_ctx *)context; ++ ++ complete(&ctx->eeprom_load); + +-release: ++ if (fw) { ++ ath9k_pci_fixup(ctx->pdev, (const u16 *)fw->data, fw->size); ++ owl_rescan(ctx->pdev); ++ } else { ++ dev_err(&ctx->pdev->dev, "no eeprom data received.\n"); ++ } + release_firmware(fw); + } + +@@ -152,6 +156,43 @@ static const char *owl_get_eeprom_name(s + return eeprom_name; + } + ++static void owl_nvmem_work(struct work_struct *work) ++{ ++ struct owl_ctx *ctx = container_of(work, struct owl_ctx, work); ++ void *buf; ++ size_t len; ++ ++ complete(&ctx->eeprom_load); ++ ++ buf = nvmem_cell_read(ctx->cell, &len); ++ if (!IS_ERR(buf)) { ++ ath9k_pci_fixup(ctx->pdev, buf, len); ++ kfree(buf); ++ owl_rescan(ctx->pdev); ++ } else { ++ dev_err(&ctx->pdev->dev, "no nvmem data received.\n"); ++ } ++} ++ ++static int owl_nvmem_probe(struct owl_ctx *ctx) ++{ ++ int err; ++ ++ ctx->cell = devm_nvmem_cell_get(&ctx->pdev->dev, "calibration"); ++ if (IS_ERR(ctx->cell)) { ++ err = PTR_ERR(ctx->cell); ++ if (err == -ENOENT || err == -EOPNOTSUPP) ++ return 1; /* not present, try firmware_request */ ++ ++ return err; ++ } ++ ++ INIT_WORK(&ctx->work, owl_nvmem_work); ++ schedule_work(&ctx->work); ++ ++ return 0; ++} ++ + static int owl_probe(struct pci_dev *pdev, + const struct pci_device_id *id) + { +@@ -164,21 +205,27 @@ static int owl_probe(struct pci_dev *pde + + pcim_pin_device(pdev); + +- eeprom_name = owl_get_eeprom_name(pdev); +- if (!eeprom_name) { +- dev_err(&pdev->dev, "no eeprom filename found.\n"); +- return -ENODEV; +- } +- + ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_KERNEL); + if (!ctx) + return -ENOMEM; + + init_completion(&ctx->eeprom_load); ++ ctx->pdev = pdev; + + pci_set_drvdata(pdev, ctx); ++ ++ err = owl_nvmem_probe(ctx); ++ if (err <= 0) ++ return err; ++ ++ eeprom_name = owl_get_eeprom_name(pdev); ++ if (!eeprom_name) { ++ dev_err(&pdev->dev, "no eeprom filename found.\n"); ++ return -ENODEV; ++ } ++ + err = request_firmware_nowait(THIS_MODULE, true, eeprom_name, +- &pdev->dev, GFP_KERNEL, pdev, owl_fw_cb); ++ &pdev->dev, GFP_KERNEL, ctx, owl_fw_cb); + if (err) + dev_err(&pdev->dev, "failed to request caldata (%d).\n", err); + From 217571b6abb3118a81e1cde32dd1151a9e95a0fc Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Fri, 5 Nov 2021 22:50:45 +0100 Subject: [PATCH 07/53] ath79: WNDR3700/3800/MAC: utilize nvmem for caldata fetching converts the still popular WNDR3700 Series to fetch the caldata through nvmem. As the "MAC with NVMEM" has shown, there could pitfalls along the way. Signed-off-by: Christian Lamparter --- target/linux/ath79/dts/ar7161_netgear_wndr.dtsi | 2 -- .../ath79/dts/ar7161_netgear_wndr3700-v2.dts | 16 ++++++++++++---- .../linux/ath79/dts/ar7161_netgear_wndr3700.dts | 16 ++++++++++++---- .../linux/ath79/dts/ar7161_netgear_wndr3800.dts | 16 ++++++++++++---- .../ath79/dts/ar7161_netgear_wndr3800ch.dts | 16 ++++++++++++---- .../ath79/dts/ar7161_netgear_wndrmac-v1.dts | 16 ++++++++++++---- .../ath79/dts/ar7161_netgear_wndrmac-v2.dts | 16 ++++++++++++---- .../etc/hotplug.d/firmware/10-ath9k-eeprom | 16 ++-------------- 8 files changed, 74 insertions(+), 40 deletions(-) diff --git a/target/linux/ath79/dts/ar7161_netgear_wndr.dtsi b/target/linux/ath79/dts/ar7161_netgear_wndr.dtsi index 414d5e6d99..afbccb8016 100644 --- a/target/linux/ath79/dts/ar7161_netgear_wndr.dtsi +++ b/target/linux/ath79/dts/ar7161_netgear_wndr.dtsi @@ -153,7 +153,6 @@ compatible = "pci168c,0029"; reg = <0x8800 0 0 0 0>; - qca,no-eeprom; #gpio-cells = <2>; gpio-controller; @@ -181,7 +180,6 @@ compatible = "pci168c,0029"; reg = <0x9000 0 0 0 0>; - qca,no-eeprom; #gpio-cells = <2>; gpio-controller; }; diff --git a/target/linux/ath79/dts/ar7161_netgear_wndr3700-v2.dts b/target/linux/ath79/dts/ar7161_netgear_wndr3700-v2.dts index 0a133ce52e..351d5e0364 100644 --- a/target/linux/ath79/dts/ar7161_netgear_wndr3700-v2.dts +++ b/target/linux/ath79/dts/ar7161_netgear_wndr3700-v2.dts @@ -39,13 +39,13 @@ }; &ath9k0 { - nvmem-cells = <&macaddr_art_c>; - nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_art_c>, <&cal_art_1000>; + nvmem-cell-names = "mac-address", "calibration"; }; &ath9k1 { - nvmem-cells = <&macaddr_art_0>; - nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_art_0>, <&cal_art_5000>; + nvmem-cell-names = "mac-address", "calibration"; }; ð0 { @@ -74,4 +74,12 @@ macaddr_art_c: macaddr@c { reg = <0xc 0x6>; }; + + cal_art_1000: cal@1000 { + reg = <0x1000 0xeb8>; + }; + + cal_art_5000: cal@5000 { + reg = <0x5000 0xeb8>; + }; }; diff --git a/target/linux/ath79/dts/ar7161_netgear_wndr3700.dts b/target/linux/ath79/dts/ar7161_netgear_wndr3700.dts index 99bc5f56bb..eedd375cc9 100644 --- a/target/linux/ath79/dts/ar7161_netgear_wndr3700.dts +++ b/target/linux/ath79/dts/ar7161_netgear_wndr3700.dts @@ -39,13 +39,13 @@ }; &ath9k0 { - nvmem-cells = <&macaddr_art_c>; - nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_art_c>, <&cal_art_1000>; + nvmem-cell-names = "mac-address", "calibration"; }; &ath9k1 { - nvmem-cells = <&macaddr_art_0>; - nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_art_0>, <&cal_art_5000>; + nvmem-cell-names = "mac-address", "calibration"; /* The original WNDR3700(v1) variant have four antennae dedicated * to the 5GHz radio as well. Again, two antennae are available for @@ -93,4 +93,12 @@ macaddr_art_c: macaddr@c { reg = <0xc 0x6>; }; + + cal_art_1000: cal@1000 { + reg = <0x1000 0xeb8>; + }; + + cal_art_5000: cal@5000 { + reg = <0x5000 0xeb8>; + }; }; diff --git a/target/linux/ath79/dts/ar7161_netgear_wndr3800.dts b/target/linux/ath79/dts/ar7161_netgear_wndr3800.dts index 0ad5c9d0e8..487b00b0dd 100644 --- a/target/linux/ath79/dts/ar7161_netgear_wndr3800.dts +++ b/target/linux/ath79/dts/ar7161_netgear_wndr3800.dts @@ -40,13 +40,13 @@ }; &ath9k0 { - nvmem-cells = <&macaddr_art_c>; - nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_art_c>, <&cal_art_1000>; + nvmem-cell-names = "mac-address", "calibration"; }; &ath9k1 { - nvmem-cells = <&macaddr_art_0>; - nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_art_0>, <&cal_art_5000>; + nvmem-cell-names = "mac-address", "calibration"; }; ð0 { @@ -75,4 +75,12 @@ macaddr_art_c: macaddr@c { reg = <0xc 0x6>; }; + + cal_art_1000: cal@1000 { + reg = <0x1000 0xeb8>; + }; + + cal_art_5000: cal@5000 { + reg = <0x5000 0xeb8>; + }; }; diff --git a/target/linux/ath79/dts/ar7161_netgear_wndr3800ch.dts b/target/linux/ath79/dts/ar7161_netgear_wndr3800ch.dts index be997211a9..0c2eadae5c 100644 --- a/target/linux/ath79/dts/ar7161_netgear_wndr3800ch.dts +++ b/target/linux/ath79/dts/ar7161_netgear_wndr3800ch.dts @@ -40,13 +40,13 @@ }; &ath9k0 { - nvmem-cells = <&macaddr_art_c>; - nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_art_c>, <&cal_art_1000>; + nvmem-cell-names = "mac-address", "calibration"; }; &ath9k1 { - nvmem-cells = <&macaddr_art_0>; - nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_art_0>, <&cal_art_5000>; + nvmem-cell-names = "mac-address", "calibration"; }; ð0 { @@ -75,4 +75,12 @@ macaddr_art_c: macaddr@c { reg = <0xc 0x6>; }; + + cal_art_1000: cal@1000 { + reg = <0x1000 0xeb8>; + }; + + cal_art_5000: cal@5000 { + reg = <0x5000 0xeb8>; + }; }; diff --git a/target/linux/ath79/dts/ar7161_netgear_wndrmac-v1.dts b/target/linux/ath79/dts/ar7161_netgear_wndrmac-v1.dts index fa0f40c424..88c3170c6e 100644 --- a/target/linux/ath79/dts/ar7161_netgear_wndrmac-v1.dts +++ b/target/linux/ath79/dts/ar7161_netgear_wndrmac-v1.dts @@ -39,13 +39,13 @@ }; &ath9k0 { - nvmem-cells = <&macaddr_art_c>; - nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_art_c>, <&cal_art_1000>; + nvmem-cell-names = "mac-address", "calibration"; }; &ath9k1 { - nvmem-cells = <&macaddr_art_0>; - nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_art_0>, <&cal_art_5000>; + nvmem-cell-names = "mac-address", "calibration"; }; ð0 { @@ -74,4 +74,12 @@ macaddr_art_c: macaddr@c { reg = <0xc 0x6>; }; + + cal_art_1000: cal@1000 { + reg = <0x1000 0xeb8>; + }; + + cal_art_5000: cal@5000 { + reg = <0x5000 0xeb8>; + }; }; diff --git a/target/linux/ath79/dts/ar7161_netgear_wndrmac-v2.dts b/target/linux/ath79/dts/ar7161_netgear_wndrmac-v2.dts index ba96eba262..0536ecb053 100644 --- a/target/linux/ath79/dts/ar7161_netgear_wndrmac-v2.dts +++ b/target/linux/ath79/dts/ar7161_netgear_wndrmac-v2.dts @@ -40,13 +40,13 @@ }; &ath9k0 { - nvmem-cells = <&macaddr_art_c>; - nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_art_c>, <&cal_art_1000>; + nvmem-cell-names = "mac-address", "calibration"; }; &ath9k1 { - nvmem-cells = <&macaddr_art_0>; - nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_art_0>, <&cal_art_5000>; + nvmem-cell-names = "mac-address", "calibration"; }; ð0 { @@ -75,4 +75,12 @@ macaddr_art_c: macaddr@c { reg = <0xc 0x6>; }; + + cal_art_1000: cal@1000 { + reg = <0x1000 0xeb8>; + }; + + cal_art_5000: cal@5000 { + reg = <0x5000 0xeb8>; + }; }; diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index 3e02b066a9..9a3054e276 100644 --- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -146,13 +146,7 @@ case "$FIRMWARE" in "ath9k-eeprom-pci-0000:00:11.0.bin") case $board in buffalo,wzr-600dhp|\ - buffalo,wzr-hp-ag300h|\ - netgear,wndr3700|\ - netgear,wndr3700-v2|\ - netgear,wndr3800|\ - netgear,wndr3800ch|\ - netgear,wndrmac-v1|\ - netgear,wndrmac-v2) + buffalo,wzr-hp-ag300h) caldata_extract "art" 0x1000 0xeb8 ;; dlink,dir-825-b1) @@ -170,13 +164,7 @@ case "$FIRMWARE" in "ath9k-eeprom-pci-0000:00:12.0.bin") case $board in buffalo,wzr-600dhp|\ - buffalo,wzr-hp-ag300h|\ - netgear,wndr3700|\ - netgear,wndr3700-v2|\ - netgear,wndr3800|\ - netgear,wndr3800ch|\ - netgear,wndrmac-v1|\ - netgear,wndrmac-v2) + buffalo,wzr-hp-ag300h) caldata_extract "art" 0x5000 0xeb8 ;; dlink,dir-825-b1) From e17f238f1d6837523504c98eb60a7300b4f148f9 Mon Sep 17 00:00:00 2001 From: Sergio Paracuellos Date: Tue, 19 Oct 2021 12:29:15 +0200 Subject: [PATCH 08/53] ramips: mt7621-dts: make use of 'IRQ_TYPE_LEVEL_HIGH' instead of magic numbers Nodes 'gdma' and 'hsdma' are using magic number '4' in interrupts property. Use 'IRQ_TYPE_LEVEL_HIGH' instead to align with the rest of the nodes in the file. Signed-off-by: Sergio Paracuellos Link: https://lore.kernel.org/r/20211019102915.15409-2-sergio.paracuellos@gmail.com Signed-off-by: Greg Kroah-Hartman --- target/linux/ramips/dts/mt7621.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/linux/ramips/dts/mt7621.dtsi b/target/linux/ramips/dts/mt7621.dtsi index 53e13441e8..f4386a8cf8 100644 --- a/target/linux/ramips/dts/mt7621.dtsi +++ b/target/linux/ramips/dts/mt7621.dtsi @@ -227,7 +227,7 @@ reset-names = "dma"; interrupt-parent = <&gic>; - interrupts = <0 13 4>; + interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>; #dma-cells = <1>; #dma-channels = <16>; @@ -244,7 +244,7 @@ reset-names = "hsdma"; interrupt-parent = <&gic>; - interrupts = <0 11 4>; + interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>; #dma-cells = <1>; #dma-channels = <1>; From 9b52b4e53f980eabdfdaaf80d4ba6255a563e260 Mon Sep 17 00:00:00 2001 From: Sergio Paracuellos Date: Sun, 17 Oct 2021 09:06:56 +0200 Subject: [PATCH 09/53] ramips: mt7621-dts: change some node hex addresses to lower case Hexadecimal addresses in device tree must be defined using lower case. There are some of them that are still in upper case. Change them all. Signed-off-by: Sergio Paracuellos Link: https://lore.kernel.org/r/20211017070656.12654-2-sergio.paracuellos@gmail.com Signed-off-by: Greg Kroah-Hartman --- target/linux/ramips/dts/mt7621.dtsi | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/target/linux/ramips/dts/mt7621.dtsi b/target/linux/ramips/dts/mt7621.dtsi index f4386a8cf8..0860b07029 100644 --- a/target/linux/ramips/dts/mt7621.dtsi +++ b/target/linux/ramips/dts/mt7621.dtsi @@ -56,10 +56,10 @@ clock-frequency = <50000000>; }; - palmbus: palmbus@1E000000 { + palmbus: palmbus@1e000000 { compatible = "palmbus"; - reg = <0x1E000000 0x100000>; - ranges = <0x0 0x1E000000 0x0FFFFF>; + reg = <0x1e000000 0x100000>; + ranges = <0x0 0x1e000000 0x0fffff>; #address-cells = <1>; #size-cells = <1>; @@ -355,11 +355,11 @@ #clock-cells = <1>; }; - sdhci: sdhci@1E130000 { + sdhci: sdhci@1e130000 { status = "disabled"; compatible = "ralink,mt7620-sdhci"; - reg = <0x1E130000 0x4000>; + reg = <0x1e130000 0x4000>; interrupt-parent = <&gic>; interrupts = ; @@ -368,7 +368,7 @@ pinctrl-0 = <&sdhci_pins>; }; - xhci: xhci@1E1C0000 { + xhci: xhci@1e1c0000 { #address-cells = <1>; #size-cells = <0>; From 6e30692e99b1175ad8602b0087497f39c0fdb00f Mon Sep 17 00:00:00 2001 From: Sergio Paracuellos Date: Sat, 2 Oct 2021 08:07:06 +0200 Subject: [PATCH 10/53] ramips: mt7621-dts: properly define 'cpc' and 'mc' nodes 'cpc' and 'mc' nodes correspond with the MIPS 'Cluster Power Controller' and 'MIPS Common Device Memory Map' which are present in some MIPS related boards. There is already bindings documentation for these two located in: - Documentation/devicetree/bindings/power/mti,mips-cpc.yaml - Documentation/devicetree/bindings/bus/mti,mips-cdmm.yaml Hence, properly update compatible strings and align nodes with already mainlined bindings documentation. Also, move their definition to a proper place since both of them are not related with the palmbus at all. Signed-off-by: Sergio Paracuellos Link: https://lore.kernel.org/r/20211002060706.30511-1-sergio.paracuellos@gmail.com Signed-off-by: Greg Kroah-Hartman --- target/linux/ramips/dts/mt7621.dtsi | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/target/linux/ramips/dts/mt7621.dtsi b/target/linux/ramips/dts/mt7621.dtsi index 0860b07029..8d9a2e43ad 100644 --- a/target/linux/ramips/dts/mt7621.dtsi +++ b/target/linux/ramips/dts/mt7621.dtsi @@ -141,16 +141,6 @@ reg = <0x5000 0x1000>; }; - cpc: cpc@1fbf0000 { - compatible = "mtk,mt7621-cpc"; - reg = <0x1fbf0000 0x8000>; - }; - - mc: mc@1fbf8000 { - compatible = "mtk,mt7621-mc"; - reg = <0x1fbf8000 0x8000>; - }; - uartlite: uartlite@c00 { compatible = "ns16550a"; reg = <0xc00 0x100>; @@ -426,6 +416,16 @@ clock-frequency = <125000000>; }; + cpc: cpc@1fbf0000 { + compatible = "mti,mips-cpc"; + reg = <0x1fbf0000 0x8000>; + }; + + mc: mc@1fbf8000 { + compatible = "mti,mips-cdmm"; + reg = <0x1fbf8000 0x8000>; + }; + nand: nand@1e003000 { status = "disabled"; From 93da2277987c3ada2f26f19b3dfaa664e4fc46bf Mon Sep 17 00:00:00 2001 From: DENG Qingfang Date: Fri, 8 Jan 2021 10:51:55 +0800 Subject: [PATCH 11/53] ramips: mt7621-dts: remove obsolete switch node This was for OpenWrt's swconfig driver, which never made it upstream, and was also superseded by MT7530 DSA driver. Reviewed-by: Sergio Paracuellos Signed-off-by: DENG Qingfang Link: https://lore.kernel.org/r/20210108025155.31556-1-dqfext@gmail.com Signed-off-by: Greg Kroah-Hartman --- target/linux/ramips/dts/mt7621.dtsi | 7 ------- 1 file changed, 7 deletions(-) diff --git a/target/linux/ramips/dts/mt7621.dtsi b/target/linux/ramips/dts/mt7621.dtsi index 8d9a2e43ad..779d8c4da0 100644 --- a/target/linux/ramips/dts/mt7621.dtsi +++ b/target/linux/ramips/dts/mt7621.dtsi @@ -546,13 +546,6 @@ }; }; - gsw: gsw@1e110000 { - compatible = "mediatek,mt7621-gsw"; - reg = <0x1e110000 0x8000>; - interrupt-parent = <&gic>; - interrupts = ; - }; - pcie: pcie@1e140000 { compatible = "mediatek,mt7621-pci"; reg = <0x1e140000 0x100 /* host-pci bridge registers */ From f1d154ec6c9a64744be0cdfcbb66d9ed1d9033e3 Mon Sep 17 00:00:00 2001 From: Sergio Paracuellos Date: Wed, 5 May 2021 15:21:53 +0200 Subject: [PATCH 12/53] ramips: mt7621-dts: remove ethsys node MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DT 'ethsys' node is being configured as a syscon to get access to reset and other registers in the 'mediateķ,mt7621-eth' driver. Since the 'sysc' is also a syscon, provides the clock and also is virtually mapped from the same physical address 0x1e000000 we can just use 'sysc' as the phandle for the syscon in the ethernet node. Compatible string 'mediatek,mt7621-ethsys' of the node is not being used anywhere inside the kernel so, this node can be safely removed. Signed-off-by: Sergio Paracuellos Link: https://lore.kernel.org/r/20210505132154.8263-2-sergio.paracuellos@gmail.com Signed-off-by: Greg Kroah-Hartman --- target/linux/ramips/dts/mt7621.dtsi | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/target/linux/ramips/dts/mt7621.dtsi b/target/linux/ramips/dts/mt7621.dtsi index 779d8c4da0..4cb339bcae 100644 --- a/target/linux/ramips/dts/mt7621.dtsi +++ b/target/linux/ramips/dts/mt7621.dtsi @@ -438,13 +438,6 @@ clock-names = "nfi_clk"; }; - ethsys: syscon@1e000000 { - compatible = "mediatek,mt7621-ethsys", - "syscon"; - reg = <0x1e000000 0x1000>; - #clock-cells = <1>; - }; - ethernet: ethernet@1e100000 { compatible = "mediatek,mt7621-eth"; reg = <0x1e100000 0x10000>; @@ -461,7 +454,7 @@ interrupt-parent = <&gic>; interrupts = ; - mediatek,ethsys = <ðsys>; + mediatek,ethsys = <&sysc>; gmac0: mac@0 { compatible = "mediatek,eth-mac"; From e04130fc17fcabd7d2fa224de612bce11ab227c8 Mon Sep 17 00:00:00 2001 From: Sergio Paracuellos Date: Wed, 5 May 2021 15:21:54 +0200 Subject: [PATCH 13/53] ramips: mt7621-dts: use standard 'syscon' string Both 'memc' and 'sysc' nodes are not using 'syscon' as a node string which is the standard one to be used. Update both of them. Signed-off-by: Sergio Paracuellos Link: https://lore.kernel.org/r/20210505132154.8263-3-sergio.paracuellos@gmail.com Signed-off-by: Greg Kroah-Hartman --- target/linux/ramips/dts/mt7621.dtsi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target/linux/ramips/dts/mt7621.dtsi b/target/linux/ramips/dts/mt7621.dtsi index 4cb339bcae..bcbc8d5899 100644 --- a/target/linux/ramips/dts/mt7621.dtsi +++ b/target/linux/ramips/dts/mt7621.dtsi @@ -64,8 +64,8 @@ #address-cells = <1>; #size-cells = <1>; - sysc: sysc@0 { - compatible = "mtk,mt7621-sysc"; + sysc: syscon@0 { + compatible = "mtk,mt7621-sysc", "syscon"; reg = <0x0 0x100>; }; @@ -136,8 +136,8 @@ interrupts = ; }; - memc: memc@5000 { - compatible = "mtk,mt7621-memc"; + memc: syscon@5000 { + compatible = "mtk,mt7621-memc", "syscon"; reg = <0x5000 0x1000>; }; From 82f9d5ad0b17e7bc1afa35fc8fdb69154136c25d Mon Sep 17 00:00:00 2001 From: Sergio Paracuellos Date: Thu, 6 May 2021 19:07:41 +0200 Subject: [PATCH 14/53] ramips: mt7621-dts: remove 'bug-range' property Property 'bus-range' when values are the default are not necessary to be defined. Hence, remove all of them. Signed-off-by: Sergio Paracuellos Link: https://lore.kernel.org/r/20210506170742.28196-2-sergio.paracuellos@gmail.com Signed-off-by: Greg Kroah-Hartman --- target/linux/ramips/dts/mt7621.dtsi | 4 ---- 1 file changed, 4 deletions(-) diff --git a/target/linux/ramips/dts/mt7621.dtsi b/target/linux/ramips/dts/mt7621.dtsi index bcbc8d5899..f9d719cf52 100644 --- a/target/linux/ramips/dts/mt7621.dtsi +++ b/target/linux/ramips/dts/mt7621.dtsi @@ -553,7 +553,6 @@ device_type = "pci"; - bus-range = <0 255>; ranges = < 0x02000000 0 0x00000000 0x60000000 0 0x10000000 /* pci memory */ 0x01000000 0 0x00000000 0x1e160000 0 0x00010000 /* io space */ @@ -580,7 +579,6 @@ #address-cells = <3>; #size-cells = <2>; ranges; - bus-range = <0x00 0xff>; }; pcie1: pcie@1,0 { @@ -588,7 +586,6 @@ #address-cells = <3>; #size-cells = <2>; ranges; - bus-range = <0x00 0xff>; }; pcie2: pcie@2,0 { @@ -596,7 +593,6 @@ #address-cells = <3>; #size-cells = <2>; ranges; - bus-range = <0x00 0xff>; }; }; From 2bc659ee07fa06b82a6272185865cac29819c254 Mon Sep 17 00:00:00 2001 From: Sergio Paracuellos Date: Thu, 6 May 2021 19:07:42 +0200 Subject: [PATCH 15/53] ramips: mt7621-dts: add missing device_type in pcie root ports According to the YAML schema 'pci-bus.yaml' the 'device_type' property is mandatory for all pcie root ports. Hence add it. Signed-off-by: Sergio Paracuellos Link: https://lore.kernel.org/r/20210506170742.28196-3-sergio.paracuellos@gmail.com Signed-off-by: Greg Kroah-Hartman --- target/linux/ramips/dts/mt7621.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/linux/ramips/dts/mt7621.dtsi b/target/linux/ramips/dts/mt7621.dtsi index f9d719cf52..d1c4756cec 100644 --- a/target/linux/ramips/dts/mt7621.dtsi +++ b/target/linux/ramips/dts/mt7621.dtsi @@ -578,6 +578,7 @@ reg = <0x0000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; + device_type = "pci"; ranges; }; @@ -585,6 +586,7 @@ reg = <0x0800 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; + device_type = "pci"; ranges; }; @@ -592,6 +594,7 @@ reg = <0x1000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; + device_type = "pci"; ranges; }; }; From 8bc6654244bf90fbdb09b12541380246dbc9556e Mon Sep 17 00:00:00 2001 From: Sergio Paracuellos Date: Wed, 5 May 2021 14:17:36 +0200 Subject: [PATCH 16/53] ramips: mt7621-dts: properly organize pcie node Device tree pcie node for this SoC is using different styles in its different properties. Hence properly unify them to be able to write a a proper yaml schema documentation. Signed-off-by: Sergio Paracuellos Link: https://lore.kernel.org/r/20210505121736.6459-11-sergio.paracuellos@gmail.com Signed-off-by: Greg Kroah-Hartman --- target/linux/ramips/dts/mt7621.dtsi | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/target/linux/ramips/dts/mt7621.dtsi b/target/linux/ramips/dts/mt7621.dtsi index d1c4756cec..4a3327a364 100644 --- a/target/linux/ramips/dts/mt7621.dtsi +++ b/target/linux/ramips/dts/mt7621.dtsi @@ -541,10 +541,10 @@ pcie: pcie@1e140000 { compatible = "mediatek,mt7621-pci"; - reg = <0x1e140000 0x100 /* host-pci bridge registers */ - 0x1e142000 0x100 /* pcie port 0 RC control registers */ - 0x1e143000 0x100 /* pcie port 1 RC control registers */ - 0x1e144000 0x100>; /* pcie port 2 RC control registers */ + reg = <0x1e140000 0x100>, /* host-pci bridge registers */ + <0x1e142000 0x100>, /* pcie port 0 RC control registers */ + <0x1e143000 0x100>, /* pcie port 1 RC control registers */ + <0x1e144000 0x100>; /* pcie port 2 RC control registers */ #address-cells = <3>; #size-cells = <2>; @@ -553,10 +553,8 @@ device_type = "pci"; - ranges = < - 0x02000000 0 0x00000000 0x60000000 0 0x10000000 /* pci memory */ - 0x01000000 0 0x00000000 0x1e160000 0 0x00010000 /* io space */ - >; + ranges = <0x02000000 0 0x00000000 0x60000000 0 0x10000000>, /* pci memory */ + <0x01000000 0 0x00000000 0x1e160000 0 0x00010000>; /* io space */ interrupt-parent = <&gic>; interrupts = ; + resets = <&rstctrl 24>, <&rstctrl 25>, <&rstctrl 26>; reset-names = "pcie0", "pcie1", "pcie2"; - clocks = <&clkctrl 24 &clkctrl 25 &clkctrl 26>; + clocks = <&clkctrl 24>, <&clkctrl 25>, <&clkctrl 26>; clock-names = "pcie0", "pcie1", "pcie2"; phys = <&pcie0_phy 1>, <&pcie2_phy 0>; phy-names = "pcie-phy0", "pcie-phy2"; From 1f188d8c72a7324367d56cae3f348d0547bfb7d5 Mon Sep 17 00:00:00 2001 From: Alberto Bursi Date: Wed, 3 Nov 2021 20:30:56 +0100 Subject: [PATCH 17/53] x86: enable kmod-tg3 on 64-bit by default Gigabit ethernet adapters using BCM5719/5720 chipset are common on servers and as easy/cheap to get as Intel based ones. Usually found in 2-port and 4-port cards. Also some devices recently added to x86_64 target like the Meraki MX100 use this chipset for 8 of their 12 integrated ports. Signed-off-by: Alberto Bursi --- target/linux/x86/image/64.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/linux/x86/image/64.mk b/target/linux/x86/image/64.mk index f54858d0b7..6f63f5ddb7 100644 --- a/target/linux/x86/image/64.mk +++ b/target/linux/x86/image/64.mk @@ -2,7 +2,8 @@ define Device/generic DEVICE_VENDOR := Generic DEVICE_MODEL := x86/64 DEVICE_PACKAGES += kmod-amazon-ena kmod-bnx2 kmod-e1000e kmod-e1000 \ - kmod-forcedeth kmod-igb kmod-ixgbe kmod-amd-xgbe kmod-r8169 kmod-fs-vfat + kmod-forcedeth kmod-igb kmod-ixgbe kmod-amd-xgbe kmod-r8169 \ + kmod-fs-vfat kmod-tg3 GRUB2_VARIANT := generic endef TARGET_DEVICES += generic From ab1969d9a8a30527058a7882fac19763cdab57c1 Mon Sep 17 00:00:00 2001 From: Alberto Bursi Date: Wed, 3 Nov 2021 20:37:27 +0100 Subject: [PATCH 18/53] x86: sort alphabetically default packages sorting alphabetically default packages and placing them on their own line. Signed-off-by: Alberto Bursi [fixed whitespaces before tab, double whitespaces] Signed-off-by: Christian Lamparter --- target/linux/x86/image/64.mk | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/target/linux/x86/image/64.mk b/target/linux/x86/image/64.mk index 6f63f5ddb7..3e08497a57 100644 --- a/target/linux/x86/image/64.mk +++ b/target/linux/x86/image/64.mk @@ -1,9 +1,10 @@ define Device/generic DEVICE_VENDOR := Generic DEVICE_MODEL := x86/64 - DEVICE_PACKAGES += kmod-amazon-ena kmod-bnx2 kmod-e1000e kmod-e1000 \ - kmod-forcedeth kmod-igb kmod-ixgbe kmod-amd-xgbe kmod-r8169 \ - kmod-fs-vfat kmod-tg3 + DEVICE_PACKAGES += \ + kmod-amazon-ena kmod-amd-xgbe kmod-bnx2 kmod-e1000e kmod-e1000 \ + kmod-forcedeth kmod-fs-vfat kmod-igb kmod-ixgbe kmod-r8169 \ + kmod-tg3 GRUB2_VARIANT := generic endef TARGET_DEVICES += generic From 605d2809141484c062d76df539d064cd99073c0d Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Thu, 4 Nov 2021 12:53:24 +0100 Subject: [PATCH 19/53] ipq40xx: 5.10: refresh config It looks like CONFIG_BLK_CMDLINE_PARSER was forgotten during the Orbi device merge. So lets refresh the config with it. Signed-off-by: Robert Marko --- target/linux/ipq40xx/config-5.10 | 1 + 1 file changed, 1 insertion(+) diff --git a/target/linux/ipq40xx/config-5.10 b/target/linux/ipq40xx/config-5.10 index 16baa99f4d..779c86fc95 100644 --- a/target/linux/ipq40xx/config-5.10 +++ b/target/linux/ipq40xx/config-5.10 @@ -47,6 +47,7 @@ CONFIG_AT803X_PHY=y CONFIG_AUTO_ZRELADDR=y CONFIG_BCH=y CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y +CONFIG_BLK_CMDLINE_PARSER=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_MQ_PCI=y CONFIG_BOUNCE=y From 9a7e3d170cb7ea46ca0a34f4af7db1b3d1b68739 Mon Sep 17 00:00:00 2001 From: Wout Bertrums Date: Fri, 5 Nov 2021 15:09:28 +0100 Subject: [PATCH 20/53] ramips: add broken-flash-reset for HLK-7621A EvB This is needed because the HLK-7621 EvB has 32MB of flash, so it will have to use 4B addressing and the broken-flash-reset hack has to be used to be able to reboot. Signed-off-by: Wout Bertrums [copied github message into commit message] Signed-off-by: Christian Lamparter --- target/linux/ramips/dts/mt7621_hilink_hlk-7621a-evb.dts | 1 + 1 file changed, 1 insertion(+) diff --git a/target/linux/ramips/dts/mt7621_hilink_hlk-7621a-evb.dts b/target/linux/ramips/dts/mt7621_hilink_hlk-7621a-evb.dts index 4b807fcaa5..9776f43e02 100644 --- a/target/linux/ramips/dts/mt7621_hilink_hlk-7621a-evb.dts +++ b/target/linux/ramips/dts/mt7621_hilink_hlk-7621a-evb.dts @@ -27,6 +27,7 @@ compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <44000000>; + broken-flash-reset; partitions { compatible = "fixed-partitions"; From 07543d00e5107c41f6ed6369e1511cfb89efa468 Mon Sep 17 00:00:00 2001 From: Pawel Dembicki Date: Fri, 5 Nov 2021 16:01:54 +0100 Subject: [PATCH 21/53] ipq40xx: use zImage for Cell-C RTL30VW After switch to 5.10 kernel, kernel size was too high. This patch switches Cell-C RTL30VW from uImage to zImage build. Lzma uImage wrap is required for factory booting and it must left untouched. Signed-off-by: Pawel Dembicki --- target/linux/ipq40xx/image/generic.mk | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/target/linux/ipq40xx/image/generic.mk b/target/linux/ipq40xx/image/generic.mk index 57eaef07bb..e2ccafd162 100644 --- a/target/linux/ipq40xx/image/generic.mk +++ b/target/linux/ipq40xx/image/generic.mk @@ -252,10 +252,10 @@ endef TARGET_DEVICES += buffalo_wtr-m2133hp define Device/cellc_rtl30vw - KERNEL_SUFFIX := -fit-uImage.itb + KERNEL_SUFFIX := -fit-zImage.itb KERNEL_INITRAMFS = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb - KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb | uImage lzma | pad-to 2048 - KERNEL_NAME := Image + KERNEL = kernel-bin | fit none $$(DTS_DIR)/$$(DEVICE_DTS).dtb | uImage lzma | pad-to 2048 + KERNEL_NAME := zImage KERNEL_IN_UBI := IMAGES := nand-factory.bin nand-sysupgrade.bin IMAGE/nand-factory.bin := append-rootfshdr | append-ubi | qsdk-ipq-factory-nand-askey @@ -270,7 +270,6 @@ define Device/cellc_rtl30vw BLOCKSIZE := 128k PAGESIZE := 2048 DEVICE_PACKAGES := kmod-usb-net-qmi-wwan kmod-usb-serial-option uqmi ipq-wifi-cellc_rtl30vw - DEFAULT := n endef TARGET_DEVICES += cellc_rtl30vw From f2f42a54e8defb110a3e8b2aab833d67f27e2fe3 Mon Sep 17 00:00:00 2001 From: Matthew Hagan Date: Sat, 6 Nov 2021 13:50:27 +0000 Subject: [PATCH 22/53] kernel: 5.10: compress 7xx patch numbering The qca8k patch series brings the numbering to 799. This patch renames 7xx patches to create space for more backports to be added. Signed-off-by: Matthew Hagan [rename 729->719] Signed-off-by: Adrian Schmutzler --- ...> 705-net-phy-at803x-select-correct-page-on-config-init.patch} | 0 ...06-net-phy-at803x-fix-probe-error-if-copper-page-is-sel.patch} | 0 ...e-x-mode.patch => 710-v5.12-net-phy-Add-100-base-x-mode.patch} | 0 ....patch => 711-v5.12-sfp-add-support-for-100-base-x-SFPs.patch} | 0 ...h => 712-v5.13-net-phy-marvell-refactor-HWMON-OOP-style.patch} | 0 ...> 713-v5.15-net-phy-marvell-add-SFP-support-for-88E1510.patch} | 0 ...12-net-dsa-automatically-bring-up-DSA-master-when-openi.patch} | 0 ...12-net-bridge-notify-switchdev-of-disappearance-of-old-.patch} | 0 ...12-net-dsa-be-louder-when-a-non-legacy-FDB-operation-fa.patch} | 0 ...12-net-dsa-don-t-use-switchdev_notifier_fdb_info-in-dsa.patch} | 0 ...12-net-dsa-move-switchdev-event-implementation-under-th.patch} | 0 ...12-net-dsa-exit-early-in-dsa_slave_switchdev_event-if-w.patch} | 0 ...12-net-dsa-listen-for-SWITCHDEV_-FDB-DEL-_ADD_TO_DEVICE.patch} | 0 ...730-net-dsa-mt7530-setup-core-clock-even-in-TRGMII-mode.patch} | 0 ...> 731-v5.12-net-dsa-mt7530-MT7530-optional-GPIO-support.patch} | 0 ...> 731-v5.13-net-dsa-mt7530-Add-support-for-EEE-features.patch} | 0 ...next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch} | 0 ...-net-fix-of_get_mac_addr_nvmem-for-non-platform-devices.patch} | 0 ...01-net-bgmac-bcma-handle-deferred-probe-error-due-to-ma.patch} | 0 ....15-0002-net-bgmac-platform-handle-mac-address-deferral.patch} | 0 ....patch => 734-v5.16-0001-net-bgmac-improve-handling-PHY.patch} | 0 ...> 734-v5.16-0002-net-bgmac-support-MDIO-described-in-DT.patch} | 0 ....14-01-net-dsa-qca8k-change-simple-print-to-dev-variant.patch} | 0 ...4-02-net-dsa-qca8k-use-iopoll-macro-for-qca8k_busy_wait.patch} | 0 ...03-net-dsa-qca8k-improve-qca8k-read-write-rmw-bus-acces.patch} | 0 ...735-v5.14-04-net-dsa-qca8k-handle-qca8k_set_page-errors.patch} | 0 ...05-net-dsa-qca8k-handle-error-with-qca8k_read-operation.patch} | 0 ...06-net-dsa-qca8k-handle-error-with-qca8k_write-operatio.patch} | 0 ...-07-net-dsa-qca8k-handle-error-with-qca8k_rmw-operation.patch} | 0 ...5.14-08-net-dsa-qca8k-handle-error-from-qca8k_busy_wait.patch} | 0 ...5-v5.14-09-net-dsa-qca8k-add-support-for-qca8327-switch.patch} | 0 ...10-devicetree-net-dsa-qca8k-Document-new-compatible-qca.patch} | 0 ...4-11-net-dsa-qca8k-add-priority-tweak-to-qca8337-switch.patch} | 0 ...735-v5.14-12-net-dsa-qca8k-limit-port5-delay-to-qca8337.patch} | 0 ...13-net-dsa-qca8k-add-GLOBAL_FC-settings-needed-for-qca8.patch} | 0 ...> 735-v5.14-14-net-dsa-qca8k-add-support-for-switch-rev.patch} | 0 ...15-net-dsa-qca8k-add-ethernet-ports-fallback-to-setup_m.patch} | 0 ...35-v5.14-16-net-dsa-qca8k-make-rgmii-delay-configurable.patch} | 0 ...4-17-net-dsa-qca8k-clear-MASTER_EN-after-phy-read-write.patch} | 0 ...18-net-dsa-qca8k-dsa-qca8k-protect-MASTER-busy_wait-wit.patch} | 0 ...5-v5.14-19-net-dsa-qca8k-enlarge-mdio-delay-and-timeout.patch} | 0 ...20-net-dsa-qca8k-add-support-for-internal-phy-and-inter.patch} | 0 ...21-devicetree-bindings-dsa-qca8k-Document-internal-mdio.patch} | 0 ...22-net-dsa-qca8k-improve-internal-mdio-read-write-bus-a.patch} | 0 ...23-net-dsa-qca8k-pass-switch_revision-info-to-phy-dev_f.patch} | 0 ...25-net-phy-add-support-for-qca8k-switch-internal-PHY-in.patch} | 0 ...net-dsa-qca8k-fix-missing-unlock-on-error-in-qca8k-vlan.patch} | 0 ...01-net-dsa-qca8k-check-return-value-of-read-functions-c.patch} | 0 ...02-net-dsa-qca8k-add-missing-check-return-value-in-qca8.patch} | 0 ...01-net-dsa-qca8k-fix-an-endian-bug-in-qca8k-get-ethtool.patch} | 0 ...02-net-dsa-qca8k-check-the-correct-variable-in-qca8k-se.patch} | 0 ...net-dsa-qca8k-fix-kernel-panic-with-legacy-mdio-mapping.patch} | 0 ...13-0001-net-dsa-b53-Add-debug-prints-in-b53_vlan_enable.patch} | 0 ...40-v5.13-0002-net-dsa-b53-spi-allow-device-tree-probing.patch} | 0 ...ch => 740-v5.13-0003-net-dsa-b53-relax-is63xx-condition.patch} | 0 ...v5.13-0004-net-dsa-tag_brcm-add-support-for-legacy-tags.patch} | 0 ...patch => 740-v5.13-0005-net-dsa-b53-support-legacy-tags.patch} | 0 ...740-v5.13-0006-net-dsa-b53-mmap-Add-device-tree-support.patch} | 0 ...13-0007-net-dsa-b53-spi-add-missing-MODULE_DEVICE_TABLE.patch} | 0 ...4-0001-net-dsa-b53-Do-not-force-CPU-to-be-always-tagged.patch} | 0 ....14-0002-net-dsa-b53-remove-redundant-null-check-on-dev.patch} | 0 ...4-0003-net-dsa-b53-Create-default-VLAN-entry-explicitly.patch} | 0 ...16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch} | 0 ....16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch} | 0 ...02-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch} | 0 ...0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch} | 0 ...> 743-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch} | 0 ...15-net-dsa-don-t-set-skb-offload_fwd_mark-when-not-offl.patch} | 0 ...16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch} | 0 ...02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch} | 0 ...03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch} | 0 ... 746-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch} | 0 ...16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch} | 0 ...03-net-phy-at803x-enable-prefer-master-for-83xx-interna.patch} | 0 ... 746-v5.16-04-net-phy-at803x-better-describe-debug-regs.patch} | 0 ...tch => 747-v5.16-01-dsa-qca8k-add-mac-power-sel-support.patch} | 0 ...02-dt-bindings-net-dsa-qca8k-Add-SGMII-clock-phase-prop.patch} | 0 ....16-03-net-dsa-qca8k-add-support-for-sgmii-falling-edge.patch} | 0 ...04-dt-bindings-net-dsa-qca8k-Document-support-for-CPU-p.patch} | 0 ...> 747-v5.16-05-net-dsa-qca8k-add-support-for-cpu-port-6.patch} | 0 ...06-net-dsa-qca8k-rework-rgmii-delay-logic-and-scan-for-.patch} | 0 ...07-dt-bindings-net-dsa-qca8k-Document-qca-sgmii-enable-.patch} | 0 ...47-v5.16-08-net-dsa-qca8k-add-explicit-SGMII-PLL-enable.patch} | 0 ...09-dt-bindings-net-dsa-qca8k-Document-qca-led-open-drai.patch} | 0 ...7-v5.16-10-net-dsa-qca8k-add-support-for-pws-config-reg.patch} | 0 ...11-dt-bindings-net-dsa-qca8k-document-support-for-qca83.patch} | 0 ...h => 747-v5.16-12-net-dsa-qca8k-add-support-for-QCA8328.patch} | 0 ...5.16-13-net-dsa-qca8k-set-internal-delay-also-for-sgmii.patch} | 0 ...6-14-net-dsa-qca8k-move-port-config-to-dedicated-struct.patch} | 0 ...15-dt-bindings-net-ipq8064-mdio-fix-warning-with-new-qc.patch} | 0 ....16-16-dt-bindings-net-dsa-qca8k-convert-to-YAML-schema.patch} | 0 ...net-dsa-qca8k-fix-delay-applied-to-wrong-cpu-in-parse-p.patch} | 0 ...net-dsa-qca8k-tidy-for-loop-in-setup-and-add-cpu-port-c.patch} | 0 93 files changed, 0 insertions(+), 0 deletions(-) rename target/linux/generic/backport-5.10/{730-net-phy-at803x-select-correct-page-on-config-init.patch => 705-net-phy-at803x-select-correct-page-on-config-init.patch} (100%) rename target/linux/generic/backport-5.10/{731-net-phy-at803x-fix-probe-error-if-copper-page-is-sel.patch => 706-net-phy-at803x-fix-probe-error-if-copper-page-is-sel.patch} (100%) rename target/linux/generic/backport-5.10/{740-v5.12-net-phy-Add-100-base-x-mode.patch => 710-v5.12-net-phy-Add-100-base-x-mode.patch} (100%) rename target/linux/generic/backport-5.10/{741-v5.12-sfp-add-support-for-100-base-x-SFPs.patch => 711-v5.12-sfp-add-support-for-100-base-x-SFPs.patch} (100%) rename target/linux/generic/backport-5.10/{742-v5.13-net-phy-marvell-refactor-HWMON-OOP-style.patch => 712-v5.13-net-phy-marvell-refactor-HWMON-OOP-style.patch} (100%) rename target/linux/generic/backport-5.10/{743-v5.15-net-phy-marvell-add-SFP-support-for-88E1510.patch => 713-v5.15-net-phy-marvell-add-SFP-support-for-88E1510.patch} (100%) rename target/linux/generic/backport-5.10/{765-v5.12-net-dsa-automatically-bring-up-DSA-master-when-openi.patch => 719-v5.12-net-dsa-automatically-bring-up-DSA-master-when-openi.patch} (100%) rename target/linux/generic/backport-5.10/{770-v5.12-net-bridge-notify-switchdev-of-disappearance-of-old-.patch => 720-v5.12-net-bridge-notify-switchdev-of-disappearance-of-old-.patch} (100%) rename target/linux/generic/backport-5.10/{771-v5.12-net-dsa-be-louder-when-a-non-legacy-FDB-operation-fa.patch => 721-v5.12-net-dsa-be-louder-when-a-non-legacy-FDB-operation-fa.patch} (100%) rename target/linux/generic/backport-5.10/{772-v5.12-net-dsa-don-t-use-switchdev_notifier_fdb_info-in-dsa.patch => 722-v5.12-net-dsa-don-t-use-switchdev_notifier_fdb_info-in-dsa.patch} (100%) rename target/linux/generic/backport-5.10/{773-v5.12-net-dsa-move-switchdev-event-implementation-under-th.patch => 723-v5.12-net-dsa-move-switchdev-event-implementation-under-th.patch} (100%) rename target/linux/generic/backport-5.10/{774-v5.12-net-dsa-exit-early-in-dsa_slave_switchdev_event-if-w.patch => 724-v5.12-net-dsa-exit-early-in-dsa_slave_switchdev_event-if-w.patch} (100%) rename target/linux/generic/backport-5.10/{775-v5.12-net-dsa-listen-for-SWITCHDEV_-FDB-DEL-_ADD_TO_DEVICE.patch => 725-v5.12-net-dsa-listen-for-SWITCHDEV_-FDB-DEL-_ADD_TO_DEVICE.patch} (100%) rename target/linux/generic/backport-5.10/{780-net-dsa-mt7530-setup-core-clock-even-in-TRGMII-mode.patch => 730-net-dsa-mt7530-setup-core-clock-even-in-TRGMII-mode.patch} (100%) rename target/linux/generic/backport-5.10/{781-v5.12-net-dsa-mt7530-MT7530-optional-GPIO-support.patch => 731-v5.12-net-dsa-mt7530-MT7530-optional-GPIO-support.patch} (100%) rename target/linux/generic/backport-5.10/{781-v5.13-net-dsa-mt7530-Add-support-for-EEE-features.patch => 731-v5.13-net-dsa-mt7530-Add-support-for-EEE-features.patch} (100%) rename target/linux/generic/backport-5.10/{782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch => 732-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch} (100%) rename target/linux/generic/backport-5.10/{782-net-next-2-of-net-fix-of_get_mac_addr_nvmem-for-non-platform-devices.patch => 732-net-next-2-of-net-fix-of_get_mac_addr_nvmem-for-non-platform-devices.patch} (100%) rename target/linux/generic/backport-5.10/{783-v5.15-0001-net-bgmac-bcma-handle-deferred-probe-error-due-to-ma.patch => 733-v5.15-0001-net-bgmac-bcma-handle-deferred-probe-error-due-to-ma.patch} (100%) rename target/linux/generic/backport-5.10/{783-v5.15-0002-net-bgmac-platform-handle-mac-address-deferral.patch => 733-v5.15-0002-net-bgmac-platform-handle-mac-address-deferral.patch} (100%) rename target/linux/generic/backport-5.10/{784-v5.16-0001-net-bgmac-improve-handling-PHY.patch => 734-v5.16-0001-net-bgmac-improve-handling-PHY.patch} (100%) rename target/linux/generic/backport-5.10/{784-v5.16-0002-net-bgmac-support-MDIO-described-in-DT.patch => 734-v5.16-0002-net-bgmac-support-MDIO-described-in-DT.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-01-net-dsa-qca8k-change-simple-print-to-dev-variant.patch => 735-v5.14-01-net-dsa-qca8k-change-simple-print-to-dev-variant.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-02-net-dsa-qca8k-use-iopoll-macro-for-qca8k_busy_wait.patch => 735-v5.14-02-net-dsa-qca8k-use-iopoll-macro-for-qca8k_busy_wait.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-03-net-dsa-qca8k-improve-qca8k-read-write-rmw-bus-acces.patch => 735-v5.14-03-net-dsa-qca8k-improve-qca8k-read-write-rmw-bus-acces.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-04-net-dsa-qca8k-handle-qca8k_set_page-errors.patch => 735-v5.14-04-net-dsa-qca8k-handle-qca8k_set_page-errors.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-05-net-dsa-qca8k-handle-error-with-qca8k_read-operation.patch => 735-v5.14-05-net-dsa-qca8k-handle-error-with-qca8k_read-operation.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-06-net-dsa-qca8k-handle-error-with-qca8k_write-operatio.patch => 735-v5.14-06-net-dsa-qca8k-handle-error-with-qca8k_write-operatio.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-07-net-dsa-qca8k-handle-error-with-qca8k_rmw-operation.patch => 735-v5.14-07-net-dsa-qca8k-handle-error-with-qca8k_rmw-operation.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-08-net-dsa-qca8k-handle-error-from-qca8k_busy_wait.patch => 735-v5.14-08-net-dsa-qca8k-handle-error-from-qca8k_busy_wait.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-09-net-dsa-qca8k-add-support-for-qca8327-switch.patch => 735-v5.14-09-net-dsa-qca8k-add-support-for-qca8327-switch.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-10-devicetree-net-dsa-qca8k-Document-new-compatible-qca.patch => 735-v5.14-10-devicetree-net-dsa-qca8k-Document-new-compatible-qca.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-11-net-dsa-qca8k-add-priority-tweak-to-qca8337-switch.patch => 735-v5.14-11-net-dsa-qca8k-add-priority-tweak-to-qca8337-switch.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-12-net-dsa-qca8k-limit-port5-delay-to-qca8337.patch => 735-v5.14-12-net-dsa-qca8k-limit-port5-delay-to-qca8337.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-13-net-dsa-qca8k-add-GLOBAL_FC-settings-needed-for-qca8.patch => 735-v5.14-13-net-dsa-qca8k-add-GLOBAL_FC-settings-needed-for-qca8.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-14-net-dsa-qca8k-add-support-for-switch-rev.patch => 735-v5.14-14-net-dsa-qca8k-add-support-for-switch-rev.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-15-net-dsa-qca8k-add-ethernet-ports-fallback-to-setup_m.patch => 735-v5.14-15-net-dsa-qca8k-add-ethernet-ports-fallback-to-setup_m.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-16-net-dsa-qca8k-make-rgmii-delay-configurable.patch => 735-v5.14-16-net-dsa-qca8k-make-rgmii-delay-configurable.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-17-net-dsa-qca8k-clear-MASTER_EN-after-phy-read-write.patch => 735-v5.14-17-net-dsa-qca8k-clear-MASTER_EN-after-phy-read-write.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-18-net-dsa-qca8k-dsa-qca8k-protect-MASTER-busy_wait-wit.patch => 735-v5.14-18-net-dsa-qca8k-dsa-qca8k-protect-MASTER-busy_wait-wit.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-19-net-dsa-qca8k-enlarge-mdio-delay-and-timeout.patch => 735-v5.14-19-net-dsa-qca8k-enlarge-mdio-delay-and-timeout.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-20-net-dsa-qca8k-add-support-for-internal-phy-and-inter.patch => 735-v5.14-20-net-dsa-qca8k-add-support-for-internal-phy-and-inter.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-21-devicetree-bindings-dsa-qca8k-Document-internal-mdio.patch => 735-v5.14-21-devicetree-bindings-dsa-qca8k-Document-internal-mdio.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-22-net-dsa-qca8k-improve-internal-mdio-read-write-bus-a.patch => 735-v5.14-22-net-dsa-qca8k-improve-internal-mdio-read-write-bus-a.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-23-net-dsa-qca8k-pass-switch_revision-info-to-phy-dev_f.patch => 735-v5.14-23-net-dsa-qca8k-pass-switch_revision-info-to-phy-dev_f.patch} (100%) rename target/linux/generic/backport-5.10/{785-v5.14-25-net-phy-add-support-for-qca8k-switch-internal-PHY-in.patch => 735-v5.14-25-net-phy-add-support-for-qca8k-switch-internal-PHY-in.patch} (100%) rename target/linux/generic/backport-5.10/{786-v5.14-net-dsa-qca8k-fix-missing-unlock-on-error-in-qca8k-vlan.patch => 736-v5.14-net-dsa-qca8k-fix-missing-unlock-on-error-in-qca8k-vlan.patch} (100%) rename target/linux/generic/backport-5.10/{787-v5.14-01-net-dsa-qca8k-check-return-value-of-read-functions-c.patch => 737-v5.14-01-net-dsa-qca8k-check-return-value-of-read-functions-c.patch} (100%) rename target/linux/generic/backport-5.10/{787-v5.14-02-net-dsa-qca8k-add-missing-check-return-value-in-qca8.patch => 737-v5.14-02-net-dsa-qca8k-add-missing-check-return-value-in-qca8.patch} (100%) rename target/linux/generic/backport-5.10/{788-v5.14-01-net-dsa-qca8k-fix-an-endian-bug-in-qca8k-get-ethtool.patch => 738-v5.14-01-net-dsa-qca8k-fix-an-endian-bug-in-qca8k-get-ethtool.patch} (100%) rename target/linux/generic/backport-5.10/{788-v5.14-02-net-dsa-qca8k-check-the-correct-variable-in-qca8k-se.patch => 738-v5.14-02-net-dsa-qca8k-check-the-correct-variable-in-qca8k-se.patch} (100%) rename target/linux/generic/backport-5.10/{789-v5.15-net-dsa-qca8k-fix-kernel-panic-with-legacy-mdio-mapping.patch => 739-v5.15-net-dsa-qca8k-fix-kernel-panic-with-legacy-mdio-mapping.patch} (100%) rename target/linux/generic/backport-5.10/{790-v5.13-0001-net-dsa-b53-Add-debug-prints-in-b53_vlan_enable.patch => 740-v5.13-0001-net-dsa-b53-Add-debug-prints-in-b53_vlan_enable.patch} (100%) rename target/linux/generic/backport-5.10/{790-v5.13-0002-net-dsa-b53-spi-allow-device-tree-probing.patch => 740-v5.13-0002-net-dsa-b53-spi-allow-device-tree-probing.patch} (100%) rename target/linux/generic/backport-5.10/{790-v5.13-0003-net-dsa-b53-relax-is63xx-condition.patch => 740-v5.13-0003-net-dsa-b53-relax-is63xx-condition.patch} (100%) rename target/linux/generic/backport-5.10/{790-v5.13-0004-net-dsa-tag_brcm-add-support-for-legacy-tags.patch => 740-v5.13-0004-net-dsa-tag_brcm-add-support-for-legacy-tags.patch} (100%) rename target/linux/generic/backport-5.10/{790-v5.13-0005-net-dsa-b53-support-legacy-tags.patch => 740-v5.13-0005-net-dsa-b53-support-legacy-tags.patch} (100%) rename target/linux/generic/backport-5.10/{790-v5.13-0006-net-dsa-b53-mmap-Add-device-tree-support.patch => 740-v5.13-0006-net-dsa-b53-mmap-Add-device-tree-support.patch} (100%) rename target/linux/generic/backport-5.10/{790-v5.13-0007-net-dsa-b53-spi-add-missing-MODULE_DEVICE_TABLE.patch => 740-v5.13-0007-net-dsa-b53-spi-add-missing-MODULE_DEVICE_TABLE.patch} (100%) rename target/linux/generic/backport-5.10/{791-v5.14-0001-net-dsa-b53-Do-not-force-CPU-to-be-always-tagged.patch => 741-v5.14-0001-net-dsa-b53-Do-not-force-CPU-to-be-always-tagged.patch} (100%) rename target/linux/generic/backport-5.10/{791-v5.14-0002-net-dsa-b53-remove-redundant-null-check-on-dev.patch => 741-v5.14-0002-net-dsa-b53-remove-redundant-null-check-on-dev.patch} (100%) rename target/linux/generic/backport-5.10/{791-v5.14-0003-net-dsa-b53-Create-default-VLAN-entry-explicitly.patch => 741-v5.14-0003-net-dsa-b53-Create-default-VLAN-entry-explicitly.patch} (100%) rename target/linux/generic/backport-5.10/{792-v5.16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch => 742-v5.16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch} (100%) rename target/linux/generic/backport-5.10/{793-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch => 743-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch} (100%) rename target/linux/generic/backport-5.10/{793-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch => 743-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch} (100%) rename target/linux/generic/backport-5.10/{793-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch => 743-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch} (100%) rename target/linux/generic/backport-5.10/{793-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch => 743-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch} (100%) rename target/linux/generic/backport-5.10/{794-v5.15-net-dsa-don-t-set-skb-offload_fwd_mark-when-not-offl.patch => 744-v5.15-net-dsa-don-t-set-skb-offload_fwd_mark-when-not-offl.patch} (100%) rename target/linux/generic/backport-5.10/{795-v5.16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch => 745-v5.16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch} (100%) rename target/linux/generic/backport-5.10/{795-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch => 745-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch} (100%) rename target/linux/generic/backport-5.10/{795-v5.16-03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch => 745-v5.16-03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch} (100%) rename target/linux/generic/backport-5.10/{796-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch => 746-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch} (100%) rename target/linux/generic/backport-5.10/{796-v5.16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch => 746-v5.16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch} (100%) rename target/linux/generic/backport-5.10/{796-v5.16-03-net-phy-at803x-enable-prefer-master-for-83xx-interna.patch => 746-v5.16-03-net-phy-at803x-enable-prefer-master-for-83xx-interna.patch} (100%) rename target/linux/generic/backport-5.10/{796-v5.16-04-net-phy-at803x-better-describe-debug-regs.patch => 746-v5.16-04-net-phy-at803x-better-describe-debug-regs.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-01-dsa-qca8k-add-mac-power-sel-support.patch => 747-v5.16-01-dsa-qca8k-add-mac-power-sel-support.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-02-dt-bindings-net-dsa-qca8k-Add-SGMII-clock-phase-prop.patch => 747-v5.16-02-dt-bindings-net-dsa-qca8k-Add-SGMII-clock-phase-prop.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-03-net-dsa-qca8k-add-support-for-sgmii-falling-edge.patch => 747-v5.16-03-net-dsa-qca8k-add-support-for-sgmii-falling-edge.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-04-dt-bindings-net-dsa-qca8k-Document-support-for-CPU-p.patch => 747-v5.16-04-dt-bindings-net-dsa-qca8k-Document-support-for-CPU-p.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-05-net-dsa-qca8k-add-support-for-cpu-port-6.patch => 747-v5.16-05-net-dsa-qca8k-add-support-for-cpu-port-6.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-06-net-dsa-qca8k-rework-rgmii-delay-logic-and-scan-for-.patch => 747-v5.16-06-net-dsa-qca8k-rework-rgmii-delay-logic-and-scan-for-.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-07-dt-bindings-net-dsa-qca8k-Document-qca-sgmii-enable-.patch => 747-v5.16-07-dt-bindings-net-dsa-qca8k-Document-qca-sgmii-enable-.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-08-net-dsa-qca8k-add-explicit-SGMII-PLL-enable.patch => 747-v5.16-08-net-dsa-qca8k-add-explicit-SGMII-PLL-enable.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-09-dt-bindings-net-dsa-qca8k-Document-qca-led-open-drai.patch => 747-v5.16-09-dt-bindings-net-dsa-qca8k-Document-qca-led-open-drai.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-10-net-dsa-qca8k-add-support-for-pws-config-reg.patch => 747-v5.16-10-net-dsa-qca8k-add-support-for-pws-config-reg.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-11-dt-bindings-net-dsa-qca8k-document-support-for-qca83.patch => 747-v5.16-11-dt-bindings-net-dsa-qca8k-document-support-for-qca83.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-12-net-dsa-qca8k-add-support-for-QCA8328.patch => 747-v5.16-12-net-dsa-qca8k-add-support-for-QCA8328.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-13-net-dsa-qca8k-set-internal-delay-also-for-sgmii.patch => 747-v5.16-13-net-dsa-qca8k-set-internal-delay-also-for-sgmii.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-14-net-dsa-qca8k-move-port-config-to-dedicated-struct.patch => 747-v5.16-14-net-dsa-qca8k-move-port-config-to-dedicated-struct.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-15-dt-bindings-net-ipq8064-mdio-fix-warning-with-new-qc.patch => 747-v5.16-15-dt-bindings-net-ipq8064-mdio-fix-warning-with-new-qc.patch} (100%) rename target/linux/generic/backport-5.10/{797-v5.16-16-dt-bindings-net-dsa-qca8k-convert-to-YAML-schema.patch => 747-v5.16-16-dt-bindings-net-dsa-qca8k-convert-to-YAML-schema.patch} (100%) rename target/linux/generic/backport-5.10/{798-v5.16-net-dsa-qca8k-fix-delay-applied-to-wrong-cpu-in-parse-p.patch => 748-v5.16-net-dsa-qca8k-fix-delay-applied-to-wrong-cpu-in-parse-p.patch} (100%) rename target/linux/generic/backport-5.10/{799-v5.16-net-dsa-qca8k-tidy-for-loop-in-setup-and-add-cpu-port-c.patch => 749-v5.16-net-dsa-qca8k-tidy-for-loop-in-setup-and-add-cpu-port-c.patch} (100%) diff --git a/target/linux/generic/backport-5.10/730-net-phy-at803x-select-correct-page-on-config-init.patch b/target/linux/generic/backport-5.10/705-net-phy-at803x-select-correct-page-on-config-init.patch similarity index 100% rename from target/linux/generic/backport-5.10/730-net-phy-at803x-select-correct-page-on-config-init.patch rename to target/linux/generic/backport-5.10/705-net-phy-at803x-select-correct-page-on-config-init.patch diff --git a/target/linux/generic/backport-5.10/731-net-phy-at803x-fix-probe-error-if-copper-page-is-sel.patch b/target/linux/generic/backport-5.10/706-net-phy-at803x-fix-probe-error-if-copper-page-is-sel.patch similarity index 100% rename from target/linux/generic/backport-5.10/731-net-phy-at803x-fix-probe-error-if-copper-page-is-sel.patch rename to target/linux/generic/backport-5.10/706-net-phy-at803x-fix-probe-error-if-copper-page-is-sel.patch diff --git a/target/linux/generic/backport-5.10/740-v5.12-net-phy-Add-100-base-x-mode.patch b/target/linux/generic/backport-5.10/710-v5.12-net-phy-Add-100-base-x-mode.patch similarity index 100% rename from target/linux/generic/backport-5.10/740-v5.12-net-phy-Add-100-base-x-mode.patch rename to target/linux/generic/backport-5.10/710-v5.12-net-phy-Add-100-base-x-mode.patch diff --git a/target/linux/generic/backport-5.10/741-v5.12-sfp-add-support-for-100-base-x-SFPs.patch b/target/linux/generic/backport-5.10/711-v5.12-sfp-add-support-for-100-base-x-SFPs.patch similarity index 100% rename from target/linux/generic/backport-5.10/741-v5.12-sfp-add-support-for-100-base-x-SFPs.patch rename to target/linux/generic/backport-5.10/711-v5.12-sfp-add-support-for-100-base-x-SFPs.patch diff --git a/target/linux/generic/backport-5.10/742-v5.13-net-phy-marvell-refactor-HWMON-OOP-style.patch b/target/linux/generic/backport-5.10/712-v5.13-net-phy-marvell-refactor-HWMON-OOP-style.patch similarity index 100% rename from target/linux/generic/backport-5.10/742-v5.13-net-phy-marvell-refactor-HWMON-OOP-style.patch rename to target/linux/generic/backport-5.10/712-v5.13-net-phy-marvell-refactor-HWMON-OOP-style.patch diff --git a/target/linux/generic/backport-5.10/743-v5.15-net-phy-marvell-add-SFP-support-for-88E1510.patch b/target/linux/generic/backport-5.10/713-v5.15-net-phy-marvell-add-SFP-support-for-88E1510.patch similarity index 100% rename from target/linux/generic/backport-5.10/743-v5.15-net-phy-marvell-add-SFP-support-for-88E1510.patch rename to target/linux/generic/backport-5.10/713-v5.15-net-phy-marvell-add-SFP-support-for-88E1510.patch diff --git a/target/linux/generic/backport-5.10/765-v5.12-net-dsa-automatically-bring-up-DSA-master-when-openi.patch b/target/linux/generic/backport-5.10/719-v5.12-net-dsa-automatically-bring-up-DSA-master-when-openi.patch similarity index 100% rename from target/linux/generic/backport-5.10/765-v5.12-net-dsa-automatically-bring-up-DSA-master-when-openi.patch rename to target/linux/generic/backport-5.10/719-v5.12-net-dsa-automatically-bring-up-DSA-master-when-openi.patch diff --git a/target/linux/generic/backport-5.10/770-v5.12-net-bridge-notify-switchdev-of-disappearance-of-old-.patch b/target/linux/generic/backport-5.10/720-v5.12-net-bridge-notify-switchdev-of-disappearance-of-old-.patch similarity index 100% rename from target/linux/generic/backport-5.10/770-v5.12-net-bridge-notify-switchdev-of-disappearance-of-old-.patch rename to target/linux/generic/backport-5.10/720-v5.12-net-bridge-notify-switchdev-of-disappearance-of-old-.patch diff --git a/target/linux/generic/backport-5.10/771-v5.12-net-dsa-be-louder-when-a-non-legacy-FDB-operation-fa.patch b/target/linux/generic/backport-5.10/721-v5.12-net-dsa-be-louder-when-a-non-legacy-FDB-operation-fa.patch similarity index 100% rename from target/linux/generic/backport-5.10/771-v5.12-net-dsa-be-louder-when-a-non-legacy-FDB-operation-fa.patch rename to target/linux/generic/backport-5.10/721-v5.12-net-dsa-be-louder-when-a-non-legacy-FDB-operation-fa.patch diff --git a/target/linux/generic/backport-5.10/772-v5.12-net-dsa-don-t-use-switchdev_notifier_fdb_info-in-dsa.patch b/target/linux/generic/backport-5.10/722-v5.12-net-dsa-don-t-use-switchdev_notifier_fdb_info-in-dsa.patch similarity index 100% rename from target/linux/generic/backport-5.10/772-v5.12-net-dsa-don-t-use-switchdev_notifier_fdb_info-in-dsa.patch rename to target/linux/generic/backport-5.10/722-v5.12-net-dsa-don-t-use-switchdev_notifier_fdb_info-in-dsa.patch diff --git a/target/linux/generic/backport-5.10/773-v5.12-net-dsa-move-switchdev-event-implementation-under-th.patch b/target/linux/generic/backport-5.10/723-v5.12-net-dsa-move-switchdev-event-implementation-under-th.patch similarity index 100% rename from target/linux/generic/backport-5.10/773-v5.12-net-dsa-move-switchdev-event-implementation-under-th.patch rename to target/linux/generic/backport-5.10/723-v5.12-net-dsa-move-switchdev-event-implementation-under-th.patch diff --git a/target/linux/generic/backport-5.10/774-v5.12-net-dsa-exit-early-in-dsa_slave_switchdev_event-if-w.patch b/target/linux/generic/backport-5.10/724-v5.12-net-dsa-exit-early-in-dsa_slave_switchdev_event-if-w.patch similarity index 100% rename from target/linux/generic/backport-5.10/774-v5.12-net-dsa-exit-early-in-dsa_slave_switchdev_event-if-w.patch rename to target/linux/generic/backport-5.10/724-v5.12-net-dsa-exit-early-in-dsa_slave_switchdev_event-if-w.patch diff --git a/target/linux/generic/backport-5.10/775-v5.12-net-dsa-listen-for-SWITCHDEV_-FDB-DEL-_ADD_TO_DEVICE.patch b/target/linux/generic/backport-5.10/725-v5.12-net-dsa-listen-for-SWITCHDEV_-FDB-DEL-_ADD_TO_DEVICE.patch similarity index 100% rename from target/linux/generic/backport-5.10/775-v5.12-net-dsa-listen-for-SWITCHDEV_-FDB-DEL-_ADD_TO_DEVICE.patch rename to target/linux/generic/backport-5.10/725-v5.12-net-dsa-listen-for-SWITCHDEV_-FDB-DEL-_ADD_TO_DEVICE.patch diff --git a/target/linux/generic/backport-5.10/780-net-dsa-mt7530-setup-core-clock-even-in-TRGMII-mode.patch b/target/linux/generic/backport-5.10/730-net-dsa-mt7530-setup-core-clock-even-in-TRGMII-mode.patch similarity index 100% rename from target/linux/generic/backport-5.10/780-net-dsa-mt7530-setup-core-clock-even-in-TRGMII-mode.patch rename to target/linux/generic/backport-5.10/730-net-dsa-mt7530-setup-core-clock-even-in-TRGMII-mode.patch diff --git a/target/linux/generic/backport-5.10/781-v5.12-net-dsa-mt7530-MT7530-optional-GPIO-support.patch b/target/linux/generic/backport-5.10/731-v5.12-net-dsa-mt7530-MT7530-optional-GPIO-support.patch similarity index 100% rename from target/linux/generic/backport-5.10/781-v5.12-net-dsa-mt7530-MT7530-optional-GPIO-support.patch rename to target/linux/generic/backport-5.10/731-v5.12-net-dsa-mt7530-MT7530-optional-GPIO-support.patch diff --git a/target/linux/generic/backport-5.10/781-v5.13-net-dsa-mt7530-Add-support-for-EEE-features.patch b/target/linux/generic/backport-5.10/731-v5.13-net-dsa-mt7530-Add-support-for-EEE-features.patch similarity index 100% rename from target/linux/generic/backport-5.10/781-v5.13-net-dsa-mt7530-Add-support-for-EEE-features.patch rename to target/linux/generic/backport-5.10/731-v5.13-net-dsa-mt7530-Add-support-for-EEE-features.patch diff --git a/target/linux/generic/backport-5.10/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch b/target/linux/generic/backport-5.10/732-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch similarity index 100% rename from target/linux/generic/backport-5.10/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch rename to target/linux/generic/backport-5.10/732-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch diff --git a/target/linux/generic/backport-5.10/782-net-next-2-of-net-fix-of_get_mac_addr_nvmem-for-non-platform-devices.patch b/target/linux/generic/backport-5.10/732-net-next-2-of-net-fix-of_get_mac_addr_nvmem-for-non-platform-devices.patch similarity index 100% rename from target/linux/generic/backport-5.10/782-net-next-2-of-net-fix-of_get_mac_addr_nvmem-for-non-platform-devices.patch rename to target/linux/generic/backport-5.10/732-net-next-2-of-net-fix-of_get_mac_addr_nvmem-for-non-platform-devices.patch diff --git a/target/linux/generic/backport-5.10/783-v5.15-0001-net-bgmac-bcma-handle-deferred-probe-error-due-to-ma.patch b/target/linux/generic/backport-5.10/733-v5.15-0001-net-bgmac-bcma-handle-deferred-probe-error-due-to-ma.patch similarity index 100% rename from target/linux/generic/backport-5.10/783-v5.15-0001-net-bgmac-bcma-handle-deferred-probe-error-due-to-ma.patch rename to target/linux/generic/backport-5.10/733-v5.15-0001-net-bgmac-bcma-handle-deferred-probe-error-due-to-ma.patch diff --git a/target/linux/generic/backport-5.10/783-v5.15-0002-net-bgmac-platform-handle-mac-address-deferral.patch b/target/linux/generic/backport-5.10/733-v5.15-0002-net-bgmac-platform-handle-mac-address-deferral.patch similarity index 100% rename from target/linux/generic/backport-5.10/783-v5.15-0002-net-bgmac-platform-handle-mac-address-deferral.patch rename to target/linux/generic/backport-5.10/733-v5.15-0002-net-bgmac-platform-handle-mac-address-deferral.patch diff --git a/target/linux/generic/backport-5.10/784-v5.16-0001-net-bgmac-improve-handling-PHY.patch b/target/linux/generic/backport-5.10/734-v5.16-0001-net-bgmac-improve-handling-PHY.patch similarity index 100% rename from target/linux/generic/backport-5.10/784-v5.16-0001-net-bgmac-improve-handling-PHY.patch rename to target/linux/generic/backport-5.10/734-v5.16-0001-net-bgmac-improve-handling-PHY.patch diff --git a/target/linux/generic/backport-5.10/784-v5.16-0002-net-bgmac-support-MDIO-described-in-DT.patch b/target/linux/generic/backport-5.10/734-v5.16-0002-net-bgmac-support-MDIO-described-in-DT.patch similarity index 100% rename from target/linux/generic/backport-5.10/784-v5.16-0002-net-bgmac-support-MDIO-described-in-DT.patch rename to target/linux/generic/backport-5.10/734-v5.16-0002-net-bgmac-support-MDIO-described-in-DT.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-01-net-dsa-qca8k-change-simple-print-to-dev-variant.patch b/target/linux/generic/backport-5.10/735-v5.14-01-net-dsa-qca8k-change-simple-print-to-dev-variant.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-01-net-dsa-qca8k-change-simple-print-to-dev-variant.patch rename to target/linux/generic/backport-5.10/735-v5.14-01-net-dsa-qca8k-change-simple-print-to-dev-variant.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-02-net-dsa-qca8k-use-iopoll-macro-for-qca8k_busy_wait.patch b/target/linux/generic/backport-5.10/735-v5.14-02-net-dsa-qca8k-use-iopoll-macro-for-qca8k_busy_wait.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-02-net-dsa-qca8k-use-iopoll-macro-for-qca8k_busy_wait.patch rename to target/linux/generic/backport-5.10/735-v5.14-02-net-dsa-qca8k-use-iopoll-macro-for-qca8k_busy_wait.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-03-net-dsa-qca8k-improve-qca8k-read-write-rmw-bus-acces.patch b/target/linux/generic/backport-5.10/735-v5.14-03-net-dsa-qca8k-improve-qca8k-read-write-rmw-bus-acces.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-03-net-dsa-qca8k-improve-qca8k-read-write-rmw-bus-acces.patch rename to target/linux/generic/backport-5.10/735-v5.14-03-net-dsa-qca8k-improve-qca8k-read-write-rmw-bus-acces.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-04-net-dsa-qca8k-handle-qca8k_set_page-errors.patch b/target/linux/generic/backport-5.10/735-v5.14-04-net-dsa-qca8k-handle-qca8k_set_page-errors.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-04-net-dsa-qca8k-handle-qca8k_set_page-errors.patch rename to target/linux/generic/backport-5.10/735-v5.14-04-net-dsa-qca8k-handle-qca8k_set_page-errors.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-05-net-dsa-qca8k-handle-error-with-qca8k_read-operation.patch b/target/linux/generic/backport-5.10/735-v5.14-05-net-dsa-qca8k-handle-error-with-qca8k_read-operation.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-05-net-dsa-qca8k-handle-error-with-qca8k_read-operation.patch rename to target/linux/generic/backport-5.10/735-v5.14-05-net-dsa-qca8k-handle-error-with-qca8k_read-operation.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-06-net-dsa-qca8k-handle-error-with-qca8k_write-operatio.patch b/target/linux/generic/backport-5.10/735-v5.14-06-net-dsa-qca8k-handle-error-with-qca8k_write-operatio.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-06-net-dsa-qca8k-handle-error-with-qca8k_write-operatio.patch rename to target/linux/generic/backport-5.10/735-v5.14-06-net-dsa-qca8k-handle-error-with-qca8k_write-operatio.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-07-net-dsa-qca8k-handle-error-with-qca8k_rmw-operation.patch b/target/linux/generic/backport-5.10/735-v5.14-07-net-dsa-qca8k-handle-error-with-qca8k_rmw-operation.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-07-net-dsa-qca8k-handle-error-with-qca8k_rmw-operation.patch rename to target/linux/generic/backport-5.10/735-v5.14-07-net-dsa-qca8k-handle-error-with-qca8k_rmw-operation.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-08-net-dsa-qca8k-handle-error-from-qca8k_busy_wait.patch b/target/linux/generic/backport-5.10/735-v5.14-08-net-dsa-qca8k-handle-error-from-qca8k_busy_wait.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-08-net-dsa-qca8k-handle-error-from-qca8k_busy_wait.patch rename to target/linux/generic/backport-5.10/735-v5.14-08-net-dsa-qca8k-handle-error-from-qca8k_busy_wait.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-09-net-dsa-qca8k-add-support-for-qca8327-switch.patch b/target/linux/generic/backport-5.10/735-v5.14-09-net-dsa-qca8k-add-support-for-qca8327-switch.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-09-net-dsa-qca8k-add-support-for-qca8327-switch.patch rename to target/linux/generic/backport-5.10/735-v5.14-09-net-dsa-qca8k-add-support-for-qca8327-switch.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-10-devicetree-net-dsa-qca8k-Document-new-compatible-qca.patch b/target/linux/generic/backport-5.10/735-v5.14-10-devicetree-net-dsa-qca8k-Document-new-compatible-qca.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-10-devicetree-net-dsa-qca8k-Document-new-compatible-qca.patch rename to target/linux/generic/backport-5.10/735-v5.14-10-devicetree-net-dsa-qca8k-Document-new-compatible-qca.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-11-net-dsa-qca8k-add-priority-tweak-to-qca8337-switch.patch b/target/linux/generic/backport-5.10/735-v5.14-11-net-dsa-qca8k-add-priority-tweak-to-qca8337-switch.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-11-net-dsa-qca8k-add-priority-tweak-to-qca8337-switch.patch rename to target/linux/generic/backport-5.10/735-v5.14-11-net-dsa-qca8k-add-priority-tweak-to-qca8337-switch.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-12-net-dsa-qca8k-limit-port5-delay-to-qca8337.patch b/target/linux/generic/backport-5.10/735-v5.14-12-net-dsa-qca8k-limit-port5-delay-to-qca8337.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-12-net-dsa-qca8k-limit-port5-delay-to-qca8337.patch rename to target/linux/generic/backport-5.10/735-v5.14-12-net-dsa-qca8k-limit-port5-delay-to-qca8337.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-13-net-dsa-qca8k-add-GLOBAL_FC-settings-needed-for-qca8.patch b/target/linux/generic/backport-5.10/735-v5.14-13-net-dsa-qca8k-add-GLOBAL_FC-settings-needed-for-qca8.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-13-net-dsa-qca8k-add-GLOBAL_FC-settings-needed-for-qca8.patch rename to target/linux/generic/backport-5.10/735-v5.14-13-net-dsa-qca8k-add-GLOBAL_FC-settings-needed-for-qca8.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-14-net-dsa-qca8k-add-support-for-switch-rev.patch b/target/linux/generic/backport-5.10/735-v5.14-14-net-dsa-qca8k-add-support-for-switch-rev.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-14-net-dsa-qca8k-add-support-for-switch-rev.patch rename to target/linux/generic/backport-5.10/735-v5.14-14-net-dsa-qca8k-add-support-for-switch-rev.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-15-net-dsa-qca8k-add-ethernet-ports-fallback-to-setup_m.patch b/target/linux/generic/backport-5.10/735-v5.14-15-net-dsa-qca8k-add-ethernet-ports-fallback-to-setup_m.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-15-net-dsa-qca8k-add-ethernet-ports-fallback-to-setup_m.patch rename to target/linux/generic/backport-5.10/735-v5.14-15-net-dsa-qca8k-add-ethernet-ports-fallback-to-setup_m.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-16-net-dsa-qca8k-make-rgmii-delay-configurable.patch b/target/linux/generic/backport-5.10/735-v5.14-16-net-dsa-qca8k-make-rgmii-delay-configurable.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-16-net-dsa-qca8k-make-rgmii-delay-configurable.patch rename to target/linux/generic/backport-5.10/735-v5.14-16-net-dsa-qca8k-make-rgmii-delay-configurable.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-17-net-dsa-qca8k-clear-MASTER_EN-after-phy-read-write.patch b/target/linux/generic/backport-5.10/735-v5.14-17-net-dsa-qca8k-clear-MASTER_EN-after-phy-read-write.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-17-net-dsa-qca8k-clear-MASTER_EN-after-phy-read-write.patch rename to target/linux/generic/backport-5.10/735-v5.14-17-net-dsa-qca8k-clear-MASTER_EN-after-phy-read-write.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-18-net-dsa-qca8k-dsa-qca8k-protect-MASTER-busy_wait-wit.patch b/target/linux/generic/backport-5.10/735-v5.14-18-net-dsa-qca8k-dsa-qca8k-protect-MASTER-busy_wait-wit.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-18-net-dsa-qca8k-dsa-qca8k-protect-MASTER-busy_wait-wit.patch rename to target/linux/generic/backport-5.10/735-v5.14-18-net-dsa-qca8k-dsa-qca8k-protect-MASTER-busy_wait-wit.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-19-net-dsa-qca8k-enlarge-mdio-delay-and-timeout.patch b/target/linux/generic/backport-5.10/735-v5.14-19-net-dsa-qca8k-enlarge-mdio-delay-and-timeout.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-19-net-dsa-qca8k-enlarge-mdio-delay-and-timeout.patch rename to target/linux/generic/backport-5.10/735-v5.14-19-net-dsa-qca8k-enlarge-mdio-delay-and-timeout.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-20-net-dsa-qca8k-add-support-for-internal-phy-and-inter.patch b/target/linux/generic/backport-5.10/735-v5.14-20-net-dsa-qca8k-add-support-for-internal-phy-and-inter.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-20-net-dsa-qca8k-add-support-for-internal-phy-and-inter.patch rename to target/linux/generic/backport-5.10/735-v5.14-20-net-dsa-qca8k-add-support-for-internal-phy-and-inter.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-21-devicetree-bindings-dsa-qca8k-Document-internal-mdio.patch b/target/linux/generic/backport-5.10/735-v5.14-21-devicetree-bindings-dsa-qca8k-Document-internal-mdio.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-21-devicetree-bindings-dsa-qca8k-Document-internal-mdio.patch rename to target/linux/generic/backport-5.10/735-v5.14-21-devicetree-bindings-dsa-qca8k-Document-internal-mdio.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-22-net-dsa-qca8k-improve-internal-mdio-read-write-bus-a.patch b/target/linux/generic/backport-5.10/735-v5.14-22-net-dsa-qca8k-improve-internal-mdio-read-write-bus-a.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-22-net-dsa-qca8k-improve-internal-mdio-read-write-bus-a.patch rename to target/linux/generic/backport-5.10/735-v5.14-22-net-dsa-qca8k-improve-internal-mdio-read-write-bus-a.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-23-net-dsa-qca8k-pass-switch_revision-info-to-phy-dev_f.patch b/target/linux/generic/backport-5.10/735-v5.14-23-net-dsa-qca8k-pass-switch_revision-info-to-phy-dev_f.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-23-net-dsa-qca8k-pass-switch_revision-info-to-phy-dev_f.patch rename to target/linux/generic/backport-5.10/735-v5.14-23-net-dsa-qca8k-pass-switch_revision-info-to-phy-dev_f.patch diff --git a/target/linux/generic/backport-5.10/785-v5.14-25-net-phy-add-support-for-qca8k-switch-internal-PHY-in.patch b/target/linux/generic/backport-5.10/735-v5.14-25-net-phy-add-support-for-qca8k-switch-internal-PHY-in.patch similarity index 100% rename from target/linux/generic/backport-5.10/785-v5.14-25-net-phy-add-support-for-qca8k-switch-internal-PHY-in.patch rename to target/linux/generic/backport-5.10/735-v5.14-25-net-phy-add-support-for-qca8k-switch-internal-PHY-in.patch diff --git a/target/linux/generic/backport-5.10/786-v5.14-net-dsa-qca8k-fix-missing-unlock-on-error-in-qca8k-vlan.patch b/target/linux/generic/backport-5.10/736-v5.14-net-dsa-qca8k-fix-missing-unlock-on-error-in-qca8k-vlan.patch similarity index 100% rename from target/linux/generic/backport-5.10/786-v5.14-net-dsa-qca8k-fix-missing-unlock-on-error-in-qca8k-vlan.patch rename to target/linux/generic/backport-5.10/736-v5.14-net-dsa-qca8k-fix-missing-unlock-on-error-in-qca8k-vlan.patch diff --git a/target/linux/generic/backport-5.10/787-v5.14-01-net-dsa-qca8k-check-return-value-of-read-functions-c.patch b/target/linux/generic/backport-5.10/737-v5.14-01-net-dsa-qca8k-check-return-value-of-read-functions-c.patch similarity index 100% rename from target/linux/generic/backport-5.10/787-v5.14-01-net-dsa-qca8k-check-return-value-of-read-functions-c.patch rename to target/linux/generic/backport-5.10/737-v5.14-01-net-dsa-qca8k-check-return-value-of-read-functions-c.patch diff --git a/target/linux/generic/backport-5.10/787-v5.14-02-net-dsa-qca8k-add-missing-check-return-value-in-qca8.patch b/target/linux/generic/backport-5.10/737-v5.14-02-net-dsa-qca8k-add-missing-check-return-value-in-qca8.patch similarity index 100% rename from target/linux/generic/backport-5.10/787-v5.14-02-net-dsa-qca8k-add-missing-check-return-value-in-qca8.patch rename to target/linux/generic/backport-5.10/737-v5.14-02-net-dsa-qca8k-add-missing-check-return-value-in-qca8.patch diff --git a/target/linux/generic/backport-5.10/788-v5.14-01-net-dsa-qca8k-fix-an-endian-bug-in-qca8k-get-ethtool.patch b/target/linux/generic/backport-5.10/738-v5.14-01-net-dsa-qca8k-fix-an-endian-bug-in-qca8k-get-ethtool.patch similarity index 100% rename from target/linux/generic/backport-5.10/788-v5.14-01-net-dsa-qca8k-fix-an-endian-bug-in-qca8k-get-ethtool.patch rename to target/linux/generic/backport-5.10/738-v5.14-01-net-dsa-qca8k-fix-an-endian-bug-in-qca8k-get-ethtool.patch diff --git a/target/linux/generic/backport-5.10/788-v5.14-02-net-dsa-qca8k-check-the-correct-variable-in-qca8k-se.patch b/target/linux/generic/backport-5.10/738-v5.14-02-net-dsa-qca8k-check-the-correct-variable-in-qca8k-se.patch similarity index 100% rename from target/linux/generic/backport-5.10/788-v5.14-02-net-dsa-qca8k-check-the-correct-variable-in-qca8k-se.patch rename to target/linux/generic/backport-5.10/738-v5.14-02-net-dsa-qca8k-check-the-correct-variable-in-qca8k-se.patch diff --git a/target/linux/generic/backport-5.10/789-v5.15-net-dsa-qca8k-fix-kernel-panic-with-legacy-mdio-mapping.patch b/target/linux/generic/backport-5.10/739-v5.15-net-dsa-qca8k-fix-kernel-panic-with-legacy-mdio-mapping.patch similarity index 100% rename from target/linux/generic/backport-5.10/789-v5.15-net-dsa-qca8k-fix-kernel-panic-with-legacy-mdio-mapping.patch rename to target/linux/generic/backport-5.10/739-v5.15-net-dsa-qca8k-fix-kernel-panic-with-legacy-mdio-mapping.patch diff --git a/target/linux/generic/backport-5.10/790-v5.13-0001-net-dsa-b53-Add-debug-prints-in-b53_vlan_enable.patch b/target/linux/generic/backport-5.10/740-v5.13-0001-net-dsa-b53-Add-debug-prints-in-b53_vlan_enable.patch similarity index 100% rename from target/linux/generic/backport-5.10/790-v5.13-0001-net-dsa-b53-Add-debug-prints-in-b53_vlan_enable.patch rename to target/linux/generic/backport-5.10/740-v5.13-0001-net-dsa-b53-Add-debug-prints-in-b53_vlan_enable.patch diff --git a/target/linux/generic/backport-5.10/790-v5.13-0002-net-dsa-b53-spi-allow-device-tree-probing.patch b/target/linux/generic/backport-5.10/740-v5.13-0002-net-dsa-b53-spi-allow-device-tree-probing.patch similarity index 100% rename from target/linux/generic/backport-5.10/790-v5.13-0002-net-dsa-b53-spi-allow-device-tree-probing.patch rename to target/linux/generic/backport-5.10/740-v5.13-0002-net-dsa-b53-spi-allow-device-tree-probing.patch diff --git a/target/linux/generic/backport-5.10/790-v5.13-0003-net-dsa-b53-relax-is63xx-condition.patch b/target/linux/generic/backport-5.10/740-v5.13-0003-net-dsa-b53-relax-is63xx-condition.patch similarity index 100% rename from target/linux/generic/backport-5.10/790-v5.13-0003-net-dsa-b53-relax-is63xx-condition.patch rename to target/linux/generic/backport-5.10/740-v5.13-0003-net-dsa-b53-relax-is63xx-condition.patch diff --git a/target/linux/generic/backport-5.10/790-v5.13-0004-net-dsa-tag_brcm-add-support-for-legacy-tags.patch b/target/linux/generic/backport-5.10/740-v5.13-0004-net-dsa-tag_brcm-add-support-for-legacy-tags.patch similarity index 100% rename from target/linux/generic/backport-5.10/790-v5.13-0004-net-dsa-tag_brcm-add-support-for-legacy-tags.patch rename to target/linux/generic/backport-5.10/740-v5.13-0004-net-dsa-tag_brcm-add-support-for-legacy-tags.patch diff --git a/target/linux/generic/backport-5.10/790-v5.13-0005-net-dsa-b53-support-legacy-tags.patch b/target/linux/generic/backport-5.10/740-v5.13-0005-net-dsa-b53-support-legacy-tags.patch similarity index 100% rename from target/linux/generic/backport-5.10/790-v5.13-0005-net-dsa-b53-support-legacy-tags.patch rename to target/linux/generic/backport-5.10/740-v5.13-0005-net-dsa-b53-support-legacy-tags.patch diff --git a/target/linux/generic/backport-5.10/790-v5.13-0006-net-dsa-b53-mmap-Add-device-tree-support.patch b/target/linux/generic/backport-5.10/740-v5.13-0006-net-dsa-b53-mmap-Add-device-tree-support.patch similarity index 100% rename from target/linux/generic/backport-5.10/790-v5.13-0006-net-dsa-b53-mmap-Add-device-tree-support.patch rename to target/linux/generic/backport-5.10/740-v5.13-0006-net-dsa-b53-mmap-Add-device-tree-support.patch diff --git a/target/linux/generic/backport-5.10/790-v5.13-0007-net-dsa-b53-spi-add-missing-MODULE_DEVICE_TABLE.patch b/target/linux/generic/backport-5.10/740-v5.13-0007-net-dsa-b53-spi-add-missing-MODULE_DEVICE_TABLE.patch similarity index 100% rename from target/linux/generic/backport-5.10/790-v5.13-0007-net-dsa-b53-spi-add-missing-MODULE_DEVICE_TABLE.patch rename to target/linux/generic/backport-5.10/740-v5.13-0007-net-dsa-b53-spi-add-missing-MODULE_DEVICE_TABLE.patch diff --git a/target/linux/generic/backport-5.10/791-v5.14-0001-net-dsa-b53-Do-not-force-CPU-to-be-always-tagged.patch b/target/linux/generic/backport-5.10/741-v5.14-0001-net-dsa-b53-Do-not-force-CPU-to-be-always-tagged.patch similarity index 100% rename from target/linux/generic/backport-5.10/791-v5.14-0001-net-dsa-b53-Do-not-force-CPU-to-be-always-tagged.patch rename to target/linux/generic/backport-5.10/741-v5.14-0001-net-dsa-b53-Do-not-force-CPU-to-be-always-tagged.patch diff --git a/target/linux/generic/backport-5.10/791-v5.14-0002-net-dsa-b53-remove-redundant-null-check-on-dev.patch b/target/linux/generic/backport-5.10/741-v5.14-0002-net-dsa-b53-remove-redundant-null-check-on-dev.patch similarity index 100% rename from target/linux/generic/backport-5.10/791-v5.14-0002-net-dsa-b53-remove-redundant-null-check-on-dev.patch rename to target/linux/generic/backport-5.10/741-v5.14-0002-net-dsa-b53-remove-redundant-null-check-on-dev.patch diff --git a/target/linux/generic/backport-5.10/791-v5.14-0003-net-dsa-b53-Create-default-VLAN-entry-explicitly.patch b/target/linux/generic/backport-5.10/741-v5.14-0003-net-dsa-b53-Create-default-VLAN-entry-explicitly.patch similarity index 100% rename from target/linux/generic/backport-5.10/791-v5.14-0003-net-dsa-b53-Create-default-VLAN-entry-explicitly.patch rename to target/linux/generic/backport-5.10/741-v5.14-0003-net-dsa-b53-Create-default-VLAN-entry-explicitly.patch diff --git a/target/linux/generic/backport-5.10/792-v5.16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch b/target/linux/generic/backport-5.10/742-v5.16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch similarity index 100% rename from target/linux/generic/backport-5.10/792-v5.16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch rename to target/linux/generic/backport-5.10/742-v5.16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch diff --git a/target/linux/generic/backport-5.10/793-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch b/target/linux/generic/backport-5.10/743-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch similarity index 100% rename from target/linux/generic/backport-5.10/793-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch rename to target/linux/generic/backport-5.10/743-v5.16-0001-net-dsa-b53-Include-all-ports-in-enabled_ports.patch diff --git a/target/linux/generic/backport-5.10/793-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch b/target/linux/generic/backport-5.10/743-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch similarity index 100% rename from target/linux/generic/backport-5.10/793-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch rename to target/linux/generic/backport-5.10/743-v5.16-0002-net-dsa-b53-Drop-BCM5301x-workaround-for-a-wrong-CPU.patch diff --git a/target/linux/generic/backport-5.10/793-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch b/target/linux/generic/backport-5.10/743-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch similarity index 100% rename from target/linux/generic/backport-5.10/793-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch rename to target/linux/generic/backport-5.10/743-v5.16-0003-net-dsa-b53-Improve-flow-control-setup-on-BCM5301x.patch diff --git a/target/linux/generic/backport-5.10/793-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch b/target/linux/generic/backport-5.10/743-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch similarity index 100% rename from target/linux/generic/backport-5.10/793-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch rename to target/linux/generic/backport-5.10/743-v5.16-0004-net-dsa-b53-Drop-unused-cpu_port-field.patch diff --git a/target/linux/generic/backport-5.10/794-v5.15-net-dsa-don-t-set-skb-offload_fwd_mark-when-not-offl.patch b/target/linux/generic/backport-5.10/744-v5.15-net-dsa-don-t-set-skb-offload_fwd_mark-when-not-offl.patch similarity index 100% rename from target/linux/generic/backport-5.10/794-v5.15-net-dsa-don-t-set-skb-offload_fwd_mark-when-not-offl.patch rename to target/linux/generic/backport-5.10/744-v5.15-net-dsa-don-t-set-skb-offload_fwd_mark-when-not-offl.patch diff --git a/target/linux/generic/backport-5.10/795-v5.16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch b/target/linux/generic/backport-5.10/745-v5.16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch similarity index 100% rename from target/linux/generic/backport-5.10/795-v5.16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch rename to target/linux/generic/backport-5.10/745-v5.16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch diff --git a/target/linux/generic/backport-5.10/795-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch b/target/linux/generic/backport-5.10/745-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch similarity index 100% rename from target/linux/generic/backport-5.10/795-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch rename to target/linux/generic/backport-5.10/745-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch diff --git a/target/linux/generic/backport-5.10/795-v5.16-03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch b/target/linux/generic/backport-5.10/745-v5.16-03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch similarity index 100% rename from target/linux/generic/backport-5.10/795-v5.16-03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch rename to target/linux/generic/backport-5.10/745-v5.16-03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch diff --git a/target/linux/generic/backport-5.10/796-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch b/target/linux/generic/backport-5.10/746-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch similarity index 100% rename from target/linux/generic/backport-5.10/796-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch rename to target/linux/generic/backport-5.10/746-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch diff --git a/target/linux/generic/backport-5.10/796-v5.16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch b/target/linux/generic/backport-5.10/746-v5.16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch similarity index 100% rename from target/linux/generic/backport-5.10/796-v5.16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch rename to target/linux/generic/backport-5.10/746-v5.16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch diff --git a/target/linux/generic/backport-5.10/796-v5.16-03-net-phy-at803x-enable-prefer-master-for-83xx-interna.patch b/target/linux/generic/backport-5.10/746-v5.16-03-net-phy-at803x-enable-prefer-master-for-83xx-interna.patch similarity index 100% rename from target/linux/generic/backport-5.10/796-v5.16-03-net-phy-at803x-enable-prefer-master-for-83xx-interna.patch rename to target/linux/generic/backport-5.10/746-v5.16-03-net-phy-at803x-enable-prefer-master-for-83xx-interna.patch diff --git a/target/linux/generic/backport-5.10/796-v5.16-04-net-phy-at803x-better-describe-debug-regs.patch b/target/linux/generic/backport-5.10/746-v5.16-04-net-phy-at803x-better-describe-debug-regs.patch similarity index 100% rename from target/linux/generic/backport-5.10/796-v5.16-04-net-phy-at803x-better-describe-debug-regs.patch rename to target/linux/generic/backport-5.10/746-v5.16-04-net-phy-at803x-better-describe-debug-regs.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-01-dsa-qca8k-add-mac-power-sel-support.patch b/target/linux/generic/backport-5.10/747-v5.16-01-dsa-qca8k-add-mac-power-sel-support.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-01-dsa-qca8k-add-mac-power-sel-support.patch rename to target/linux/generic/backport-5.10/747-v5.16-01-dsa-qca8k-add-mac-power-sel-support.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-02-dt-bindings-net-dsa-qca8k-Add-SGMII-clock-phase-prop.patch b/target/linux/generic/backport-5.10/747-v5.16-02-dt-bindings-net-dsa-qca8k-Add-SGMII-clock-phase-prop.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-02-dt-bindings-net-dsa-qca8k-Add-SGMII-clock-phase-prop.patch rename to target/linux/generic/backport-5.10/747-v5.16-02-dt-bindings-net-dsa-qca8k-Add-SGMII-clock-phase-prop.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-03-net-dsa-qca8k-add-support-for-sgmii-falling-edge.patch b/target/linux/generic/backport-5.10/747-v5.16-03-net-dsa-qca8k-add-support-for-sgmii-falling-edge.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-03-net-dsa-qca8k-add-support-for-sgmii-falling-edge.patch rename to target/linux/generic/backport-5.10/747-v5.16-03-net-dsa-qca8k-add-support-for-sgmii-falling-edge.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-04-dt-bindings-net-dsa-qca8k-Document-support-for-CPU-p.patch b/target/linux/generic/backport-5.10/747-v5.16-04-dt-bindings-net-dsa-qca8k-Document-support-for-CPU-p.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-04-dt-bindings-net-dsa-qca8k-Document-support-for-CPU-p.patch rename to target/linux/generic/backport-5.10/747-v5.16-04-dt-bindings-net-dsa-qca8k-Document-support-for-CPU-p.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-05-net-dsa-qca8k-add-support-for-cpu-port-6.patch b/target/linux/generic/backport-5.10/747-v5.16-05-net-dsa-qca8k-add-support-for-cpu-port-6.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-05-net-dsa-qca8k-add-support-for-cpu-port-6.patch rename to target/linux/generic/backport-5.10/747-v5.16-05-net-dsa-qca8k-add-support-for-cpu-port-6.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-06-net-dsa-qca8k-rework-rgmii-delay-logic-and-scan-for-.patch b/target/linux/generic/backport-5.10/747-v5.16-06-net-dsa-qca8k-rework-rgmii-delay-logic-and-scan-for-.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-06-net-dsa-qca8k-rework-rgmii-delay-logic-and-scan-for-.patch rename to target/linux/generic/backport-5.10/747-v5.16-06-net-dsa-qca8k-rework-rgmii-delay-logic-and-scan-for-.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-07-dt-bindings-net-dsa-qca8k-Document-qca-sgmii-enable-.patch b/target/linux/generic/backport-5.10/747-v5.16-07-dt-bindings-net-dsa-qca8k-Document-qca-sgmii-enable-.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-07-dt-bindings-net-dsa-qca8k-Document-qca-sgmii-enable-.patch rename to target/linux/generic/backport-5.10/747-v5.16-07-dt-bindings-net-dsa-qca8k-Document-qca-sgmii-enable-.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-08-net-dsa-qca8k-add-explicit-SGMII-PLL-enable.patch b/target/linux/generic/backport-5.10/747-v5.16-08-net-dsa-qca8k-add-explicit-SGMII-PLL-enable.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-08-net-dsa-qca8k-add-explicit-SGMII-PLL-enable.patch rename to target/linux/generic/backport-5.10/747-v5.16-08-net-dsa-qca8k-add-explicit-SGMII-PLL-enable.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-09-dt-bindings-net-dsa-qca8k-Document-qca-led-open-drai.patch b/target/linux/generic/backport-5.10/747-v5.16-09-dt-bindings-net-dsa-qca8k-Document-qca-led-open-drai.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-09-dt-bindings-net-dsa-qca8k-Document-qca-led-open-drai.patch rename to target/linux/generic/backport-5.10/747-v5.16-09-dt-bindings-net-dsa-qca8k-Document-qca-led-open-drai.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-10-net-dsa-qca8k-add-support-for-pws-config-reg.patch b/target/linux/generic/backport-5.10/747-v5.16-10-net-dsa-qca8k-add-support-for-pws-config-reg.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-10-net-dsa-qca8k-add-support-for-pws-config-reg.patch rename to target/linux/generic/backport-5.10/747-v5.16-10-net-dsa-qca8k-add-support-for-pws-config-reg.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-11-dt-bindings-net-dsa-qca8k-document-support-for-qca83.patch b/target/linux/generic/backport-5.10/747-v5.16-11-dt-bindings-net-dsa-qca8k-document-support-for-qca83.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-11-dt-bindings-net-dsa-qca8k-document-support-for-qca83.patch rename to target/linux/generic/backport-5.10/747-v5.16-11-dt-bindings-net-dsa-qca8k-document-support-for-qca83.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-12-net-dsa-qca8k-add-support-for-QCA8328.patch b/target/linux/generic/backport-5.10/747-v5.16-12-net-dsa-qca8k-add-support-for-QCA8328.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-12-net-dsa-qca8k-add-support-for-QCA8328.patch rename to target/linux/generic/backport-5.10/747-v5.16-12-net-dsa-qca8k-add-support-for-QCA8328.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-13-net-dsa-qca8k-set-internal-delay-also-for-sgmii.patch b/target/linux/generic/backport-5.10/747-v5.16-13-net-dsa-qca8k-set-internal-delay-also-for-sgmii.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-13-net-dsa-qca8k-set-internal-delay-also-for-sgmii.patch rename to target/linux/generic/backport-5.10/747-v5.16-13-net-dsa-qca8k-set-internal-delay-also-for-sgmii.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-14-net-dsa-qca8k-move-port-config-to-dedicated-struct.patch b/target/linux/generic/backport-5.10/747-v5.16-14-net-dsa-qca8k-move-port-config-to-dedicated-struct.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-14-net-dsa-qca8k-move-port-config-to-dedicated-struct.patch rename to target/linux/generic/backport-5.10/747-v5.16-14-net-dsa-qca8k-move-port-config-to-dedicated-struct.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-15-dt-bindings-net-ipq8064-mdio-fix-warning-with-new-qc.patch b/target/linux/generic/backport-5.10/747-v5.16-15-dt-bindings-net-ipq8064-mdio-fix-warning-with-new-qc.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-15-dt-bindings-net-ipq8064-mdio-fix-warning-with-new-qc.patch rename to target/linux/generic/backport-5.10/747-v5.16-15-dt-bindings-net-ipq8064-mdio-fix-warning-with-new-qc.patch diff --git a/target/linux/generic/backport-5.10/797-v5.16-16-dt-bindings-net-dsa-qca8k-convert-to-YAML-schema.patch b/target/linux/generic/backport-5.10/747-v5.16-16-dt-bindings-net-dsa-qca8k-convert-to-YAML-schema.patch similarity index 100% rename from target/linux/generic/backport-5.10/797-v5.16-16-dt-bindings-net-dsa-qca8k-convert-to-YAML-schema.patch rename to target/linux/generic/backport-5.10/747-v5.16-16-dt-bindings-net-dsa-qca8k-convert-to-YAML-schema.patch diff --git a/target/linux/generic/backport-5.10/798-v5.16-net-dsa-qca8k-fix-delay-applied-to-wrong-cpu-in-parse-p.patch b/target/linux/generic/backport-5.10/748-v5.16-net-dsa-qca8k-fix-delay-applied-to-wrong-cpu-in-parse-p.patch similarity index 100% rename from target/linux/generic/backport-5.10/798-v5.16-net-dsa-qca8k-fix-delay-applied-to-wrong-cpu-in-parse-p.patch rename to target/linux/generic/backport-5.10/748-v5.16-net-dsa-qca8k-fix-delay-applied-to-wrong-cpu-in-parse-p.patch diff --git a/target/linux/generic/backport-5.10/799-v5.16-net-dsa-qca8k-tidy-for-loop-in-setup-and-add-cpu-port-c.patch b/target/linux/generic/backport-5.10/749-v5.16-net-dsa-qca8k-tidy-for-loop-in-setup-and-add-cpu-port-c.patch similarity index 100% rename from target/linux/generic/backport-5.10/799-v5.16-net-dsa-qca8k-tidy-for-loop-in-setup-and-add-cpu-port-c.patch rename to target/linux/generic/backport-5.10/749-v5.16-net-dsa-qca8k-tidy-for-loop-in-setup-and-add-cpu-port-c.patch From ec68c75c629eed149ed4416d5300328deb53a417 Mon Sep 17 00:00:00 2001 From: Stijn Tintel Date: Wed, 3 Nov 2021 20:00:26 +0200 Subject: [PATCH 23/53] kernel: add missing KASAN config symbols Enabling KERNEL_KASAN exposes several missing symbols. As KASAN_SW_TAGS is only implemented for arm64 CPUs and requires clang, it doesn't make sense to make this a build option so just default to KASAN_GENERIC and disable KASAN_SW_TAGS. While at it, disable TEST_KASAN_MODULE in the generic 5.10 config. Fixes build failures with KERNEL_KASAN enabled. Signed-off-by: Stijn Tintel Acked-by: Hauke Mehrtens --- config/Config-kernel.in | 7 +++++++ target/linux/generic/config-5.10 | 1 + 2 files changed, 8 insertions(+) diff --git a/config/Config-kernel.in b/config/Config-kernel.in index dc249a6031..2243e3e5bc 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -147,6 +147,13 @@ config KERNEL_KASAN_EXTRA compile time. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 has more +if KERNEL_KASAN + config KERNEL_KASAN_GENERIC + def_bool y + + config KERNEL_KASAN_SW_TAGS + def_bool n +endif choice prompt "Instrumentation type" diff --git a/target/linux/generic/config-5.10 b/target/linux/generic/config-5.10 index 7b952e8ca8..403712d0e9 100644 --- a/target/linux/generic/config-5.10 +++ b/target/linux/generic/config-5.10 @@ -6064,6 +6064,7 @@ CONFIG_TCP_CONG_CUBIC=y # CONFIG_TEST_HASH is not set # CONFIG_TEST_HEXDUMP is not set # CONFIG_TEST_IDA is not set +# CONFIG_TEST_KASAN_MODULE is not set # CONFIG_TEST_KMOD is not set # CONFIG_TEST_KSTRTOX is not set # CONFIG_TEST_LIST_SORT is not set From c5fa7ec2a6d97597cfcac8d21657026802ff01a2 Mon Sep 17 00:00:00 2001 From: Stijn Tintel Date: Wed, 3 Nov 2021 19:38:50 +0200 Subject: [PATCH 24/53] kernel: add missing UBSAN config symbols Enabling KERNEL_UBSAN exposes several missing symbols. Add new kernel build options for UBSAN_BOUNDS and UBSAN_TRAP, disable CONFIG_TEST_UBSAN in the generic kernel configs and enable CONFIG_UBSAN_MISC in generic 5.10 config. The latter symbol was removed in later kernels, as it was causing some issues, so just disable it in 5.10 instead of adding a build option for it. Fixes build failures with KERNEL_UBSAN enabled. Signed-off-by: Stijn Tintel Acked-by: Hauke Mehrtens --- config/Config-kernel.in | 23 +++++++++++++++++++++++ target/linux/generic/config-5.10 | 2 ++ target/linux/generic/config-5.4 | 1 + 3 files changed, 26 insertions(+) diff --git a/config/Config-kernel.in b/config/Config-kernel.in index 2243e3e5bc..902e211ea1 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -114,6 +114,16 @@ config KERNEL_UBSAN_ALIGNMENT Enabling this option on architectures that support unaligned accesses may produce a lot of false positives. +config KERNEL_UBSAN_BOUNDS + bool "Perform array index bounds checking" + depends on KERNEL_UBSAN + help + This option enables detection of directly indexed out of bounds array + accesses, where the array size is known at compile time. Note that + this does not protect array overflows via bad calls to the + {str,mem}*cpy() family of functions (that is addressed by + FORTIFY_SOURCE). + config KERNEL_UBSAN_NULL bool "Enable checking of null pointers" depends on KERNEL_UBSAN @@ -121,6 +131,19 @@ config KERNEL_UBSAN_NULL This option enables detection of memory accesses via a null pointer. +config KERNEL_UBSAN_TRAP + bool "On Sanitizer warnings, abort the running kernel code" + depends on KERNEL_UBSAN + help + Building kernels with Sanitizer features enabled tends to grow the + kernel size by around 5%, due to adding all the debugging text on + failure paths. To avoid this, Sanitizer instrumentation can just + issue a trap. This reduces the kernel size overhead but turns all + warnings (including potentially harmless conditions) into full + exceptions that abort the running kernel code (regardless of context, + locks held, etc), which may destabilize the system. For some system + builders this is an acceptable trade-off. + config KERNEL_KASAN bool "Compile the kernel with KASan: runtime memory debugger" select KERNEL_SLUB_DEBUG diff --git a/target/linux/generic/config-5.10 b/target/linux/generic/config-5.10 index 403712d0e9..604d5e4e6c 100644 --- a/target/linux/generic/config-5.10 +++ b/target/linux/generic/config-5.10 @@ -6083,6 +6083,7 @@ CONFIG_TCP_CONG_CUBIC=y # CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_STRSCPY is not set # CONFIG_TEST_SYSCTL is not set +# CONFIG_TEST_UBSAN is not set # CONFIG_TEST_UDELAY is not set # CONFIG_TEST_USER_COPY is not set # CONFIG_TEST_UUID is not set @@ -6349,6 +6350,7 @@ CONFIG_UBIFS_FS_ZLIB=y CONFIG_UBIFS_FS_ZSTD=y # CONFIG_UBSAN is not set CONFIG_UBSAN_ALIGNMENT=y +# CONFIG_UBSAN_MISC is not set # CONFIG_UCB1400_CORE is not set # CONFIG_UCSI is not set # CONFIG_UDF_FS is not set diff --git a/target/linux/generic/config-5.4 b/target/linux/generic/config-5.4 index c44e9cf40b..bf2b462529 100644 --- a/target/linux/generic/config-5.4 +++ b/target/linux/generic/config-5.4 @@ -5631,6 +5631,7 @@ CONFIG_TCP_CONG_CUBIC=y # CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_STRSCPY is not set # CONFIG_TEST_SYSCTL is not set +# CONFIG_TEST_UBSAN is not set # CONFIG_TEST_UDELAY is not set # CONFIG_TEST_USER_COPY is not set # CONFIG_TEST_UUID is not set From 13bd0721d1add0e232991a79a21cfcb468e5c7f3 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sat, 6 Nov 2021 18:56:20 +0000 Subject: [PATCH 25/53] kernel: Add regmap-i2c dependency to sound-soc-imx-sgtl5000 This dependency is needed on the imx/cortexa7 subtarget. Signed-off-by: Hauke Mehrtens --- package/kernel/linux/modules/sound.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/kernel/linux/modules/sound.mk b/package/kernel/linux/modules/sound.mk index e1d7f72a0f..83b3355f3f 100644 --- a/package/kernel/linux/modules/sound.mk +++ b/package/kernel/linux/modules/sound.mk @@ -243,7 +243,7 @@ define KernelPackage/sound-soc-imx-sgtl5000 $(LINUX_DIR)/sound/soc/codecs/snd-soc-sgtl5000.ko \ $(LINUX_DIR)/sound/soc/fsl/snd-soc-imx-sgtl5000.ko AUTOLOAD:=$(call AutoLoad,57,snd-soc-sgtl5000 snd-soc-imx-sgtl5000) - DEPENDS:=@TARGET_imx +kmod-sound-soc-imx + DEPENDS:=@TARGET_imx +kmod-sound-soc-imx +kmod-regmap-i2c $(call AddDepends/sound) endef From da9a8fcbc3cf4319655da1b4d341134b5d4663c1 Mon Sep 17 00:00:00 2001 From: Evgeniy Didin Date: Tue, 2 Nov 2021 15:45:01 +0300 Subject: [PATCH 26/53] archs38: update kernel version to 5.10 Update config, Makefile and image/Makefile. Directly switch to kernel 5.10. This patch was tested in nSIM simulator, no errors appeared. Signed-off-by: Evgeniy Didin Cc: Alexey Brodkin Cc: Paul Spooren Cc: Hauke Mehrtens Cc: John Crispin --- target/linux/archs38/Makefile | 2 +- target/linux/archs38/config-5.10 | 286 ++++++++++++++++++++++++++++ target/linux/archs38/image/Makefile | 4 +- 3 files changed, 289 insertions(+), 3 deletions(-) create mode 100644 target/linux/archs38/config-5.10 diff --git a/target/linux/archs38/Makefile b/target/linux/archs38/Makefile index 2746dcecce..e08f779170 100644 --- a/target/linux/archs38/Makefile +++ b/target/linux/archs38/Makefile @@ -10,7 +10,7 @@ BOARD:=archs38 BOARDNAME:=Synopsys DesignWare ARC HS38 SUBTARGETS:=generic -KERNEL_PATCHVER:=5.4 +KERNEL_PATCHVER:=5.10 DEVICE_TYPE:=basic diff --git a/target/linux/archs38/config-5.10 b/target/linux/archs38/config-5.10 new file mode 100644 index 0000000000..af787f887e --- /dev/null +++ b/target/linux/archs38/config-5.10 @@ -0,0 +1,286 @@ +# CONFIG_16KSTACKS is not set +CONFIG_ARC=y +CONFIG_ARCH_32BIT_OFF_T=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_DMA_COHERENT_TO_PFN=y +CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y +CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_ARCH_HAS_SETUP_DMA_OPS=y +CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y +CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_ARC_BUILTIN_DTB_NAME="" +CONFIG_ARC_CACHE=y +CONFIG_ARC_CACHE_LINE_SHIFT=6 +CONFIG_ARC_CACHE_PAGES=y +CONFIG_ARC_CPU_HS=y +CONFIG_ARC_CURR_IN_REG=y +CONFIG_ARC_DBG=y +# CONFIG_ARC_DBG_TLB_PARANOIA is not set +CONFIG_ARC_DW2_UNWIND=y +CONFIG_ARC_HAS_ACCL_REGS=y +CONFIG_ARC_HAS_DCACHE=y +# CONFIG_ARC_HAS_DCCM is not set +CONFIG_ARC_HAS_DIV_REM=y +CONFIG_ARC_HAS_ICACHE=y +# CONFIG_ARC_HAS_ICCM is not set +CONFIG_ARC_HAS_LL64=y +CONFIG_ARC_HAS_LLSC=y +# CONFIG_ARC_HAS_PAE40 is not set +CONFIG_ARC_HAS_SWAPE=y +CONFIG_ARC_IRQ_NO_AUTOSAVE=y +CONFIG_ARC_KVADDR_SIZE=256 +CONFIG_ARC_MCIP=y +# CONFIG_ARC_METAWARE_HLINK is not set +CONFIG_ARC_MMU_V4=y +# CONFIG_ARC_PAGE_SIZE_16K is not set +# CONFIG_ARC_PAGE_SIZE_4K is not set +CONFIG_ARC_PAGE_SIZE_8K=y +CONFIG_ARC_PLAT_AXS10X=y +# CONFIG_ARC_PLAT_EZNPS is not set +# CONFIG_ARC_PLAT_TB10X is not set +# CONFIG_ARC_SMP_HALT_ON_RESET is not set +CONFIG_ARC_SOC_HSDK=y +CONFIG_ARC_TIMERS=y +CONFIG_ARC_TIMERS_64BIT=y +CONFIG_ARC_USE_UNALIGNED_MEM_ACCESS=y +CONFIG_AXS103=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_SCSI_REQUEST=y +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED=y +CONFIG_CC_HAS_KASAN_GENERIC=y +CONFIG_CLKDEV_LOOKUP=y +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3=y +CONFIG_CLK_HSDK=y +CONFIG_ARC_TUNE_MCPU="" +CONFIG_ARC_DSP_NONE=y +# CONFIG_ARC_FPU_SAVE_RESTORE is not set +# CONFIG_ARC_DSP_KERNEL is not set +# CONFIG_ARC_DSP_USERSPACE is not set +# CONFIG_ARC_DSP_AGU_USERSPACE is not set +# CONFIG_ARC_LPB_DISABLE is not set +# CONFIG_SPI_DW_DMA is not set +CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y +# CONFIG_HARDENED_USERCOPY is not set +CONFIG_CLONE_BACKWARDS=y +CONFIG_COMMON_CLK=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_CPU_RMAP=y +CONFIG_CRC16=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_DRBG=y +CONFIG_CRYPTO_DRBG_HMAC=y +CONFIG_CRYPTO_DRBG_MENU=y +CONFIG_CRYPTO_ECHAINIV=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_JITTERENTROPY=y +CONFIG_CRYPTO_LIB_SHA256=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_NULL2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG_DEFAULT=y +CONFIG_CRYPTO_SHA256=y +CONFIG_DEVTMPFS=y +CONFIG_DMADEVICES=y +CONFIG_DMA_DIRECT_REMAP=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_OF=y +CONFIG_DMA_REMAP=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DTC=y +CONFIG_DWMAC_ANARION=y +CONFIG_DWMAC_GENERIC=y +CONFIG_DW_APB_ICTL=y +CONFIG_DW_AXI_DMAC=y +CONFIG_EXT4_FS=y +# CONFIG_EZNPS_GIC is not set +CONFIG_FAT_FS=y +CONFIG_FB=y +CONFIG_FB_CMDLINE=y +CONFIG_FIXED_PHY=y +CONFIG_FS_IOMAP=y +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FW_LOADER_PAGED_BUF=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CSUM=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_DWAPB=y +CONFIG_GPIO_GENERIC=y +CONFIG_GPIO_SNPS_CREG=y +CONFIG_GRACE_PERIOD=y +CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_HAVE_DEBUG_STACKOVERFLOW=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_FUTEX_CMPXCHG=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_HAVE_NET_DSA=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_PCI=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HZ_PERIODIC=y +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_IIO=y +CONFIG_IIO_BUFFER=y +CONFIG_IIO_KFIFO_BUF=y +CONFIG_IIO_ST_PRESS=y +CONFIG_IIO_ST_PRESS_I2C=y +CONFIG_IIO_ST_PRESS_SPI=y +CONFIG_IIO_ST_SENSORS_CORE=y +CONFIG_IIO_ST_SENSORS_I2C=y +CONFIG_IIO_ST_SENSORS_SPI=y +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_TRIGGERED_BUFFER=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_IRQCHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_WORK=y +# CONFIG_ISA_ARCOMPACT is not set +CONFIG_ISA_ARCV2=y +CONFIG_JBD2=y +CONFIG_KALLSYMS=y +CONFIG_KERNEL_GZIP=y +CONFIG_LIBFDT=y +CONFIG_LINUX_LINK_BASE=0x90000000 +CONFIG_LINUX_RAM_BASE=0x80000000 +CONFIG_LOCKD=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_LOCK_DEBUGGING_SUPPORT=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_MDIO_BUS=y +CONFIG_MDIO_DEVICE=y +CONFIG_MEMFD_CREATE=y +CONFIG_MFD_SYSCON=y +CONFIG_MICREL_PHY=y +CONFIG_MIGRATION=y +CONFIG_MMC=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_DW=y +# CONFIG_MMC_DW_BLUEFIELD is not set +# CONFIG_MMC_DW_EXYNOS is not set +# CONFIG_MMC_DW_HI3798CV200 is not set +# CONFIG_MMC_DW_K3 is not set +CONFIG_MMC_DW_PLTFM=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_MTD_SPI_NOR=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NAMESPACES=y +CONFIG_NATIONAL_PHY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NET_FLOW_LIMIT=y +CONFIG_NET_NS=y +CONFIG_NET_PTP_CLASSIFY=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3_ACL=y +CONFIG_NLS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NO_IOPORT_MAP=y +CONFIG_NR_CPUS=4 +CONFIG_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_IRQ=y +CONFIG_OF_KOBJ=y +CONFIG_OF_MDIO=y +CONFIG_OF_NET=y +CONFIG_PADATA=y +CONFIG_PAGE_POOL=y +CONFIG_PGTABLE_LEVELS=2 +CONFIG_PHYLIB=y +CONFIG_PHYLINK=y +CONFIG_PPS=y +CONFIG_PREEMPT=y +CONFIG_PREEMPTION=y +CONFIG_PREEMPT_COUNT=y +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_RCU=y +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_PTP_1588_CLOCK=y +CONFIG_RATIONAL=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_SPI=y +CONFIG_RESET_AXS10X=y +CONFIG_RESET_CONTROLLER=y +CONFIG_RESET_HSDK=y +CONFIG_RESET_SIMPLE=y +CONFIG_RFS_ACCEL=y +CONFIG_RPS=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_SCSI=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_8250_DWLIB=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_ARC=y +CONFIG_SERIAL_ARC_CONSOLE=y +CONFIG_SERIAL_ARC_NR_PORTS=1 +CONFIG_SERIAL_MCTRL_GPIO=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SG_POOL=y +CONFIG_SMP=y +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_SPI=y +CONFIG_SPI_DESIGNWARE=y +CONFIG_SPI_DW_MMIO=y +CONFIG_SPI_MASTER=y +CONFIG_SPI_MEM=y +CONFIG_SRCU=y +CONFIG_STACKTRACE=y +# CONFIG_STANDALONE is not set +CONFIG_STMMAC_ETH=y +CONFIG_STMMAC_PLATFORM=y +# CONFIG_STMMAC_SELFTESTS is not set +CONFIG_SUNRPC=y +CONFIG_SWPHY=y +CONFIG_TASKS_RCU=y +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_TI_ADC108S102=y +CONFIG_TREE_SRCU=y +CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_USB_SUPPORT=y +# CONFIG_USER_NS is not set +CONFIG_VFAT_FS=y +CONFIG_WATCHDOG_CORE=y +CONFIG_XPS=y diff --git a/target/linux/archs38/image/Makefile b/target/linux/archs38/image/Makefile index 1d0beca27f..55e16c37fc 100644 --- a/target/linux/archs38/image/Makefile +++ b/target/linux/archs38/image/Makefile @@ -27,14 +27,14 @@ define Device/nsim_hs DEVICE_VENDOR := Synopsys DEVICE_MODEL := nSIM HS DEVICE_PROFILE := nsim_hs - DEVICE_DTS := nsim_hs_idu + DEVICE_DTS := haps_hs endef TARGET_DEVICES += nsim_hs endif # Root FS on SD-card KERNEL_LOADADDR := 0x90000000 -DEVICE_DTS_LIST:= axs103_idu nsim_hs_idu hsdk +DEVICE_DTS_LIST:= axs103_idu haps_hs hsdk FAT32_BLOCK_SIZE=1024 FAT32_BLOCKS=$(shell echo $$(($(CONFIG_AXS10X_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE)))) From cbeab2cd991929815f50ee995a593db1ab07bf6e Mon Sep 17 00:00:00 2001 From: Stijn Tintel Date: Sun, 7 Nov 2021 18:33:35 +0200 Subject: [PATCH 27/53] kernel: add another missing KASAN symbol Enabling KERNEL_KASAN exposes yet another missing symbol. This did not appear on bcm27xx but is appearing now on x86/64. Add a new kernel build option for KASAN_VMALLOC to fix build on x86/64 with KERNEL_KASAN enabled. Signed-off-by: Stijn Tintel Acked-by: Hauke Mehrtens --- config/Config-kernel.in | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/config/Config-kernel.in b/config/Config-kernel.in index 902e211ea1..f5b42b71ee 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -170,6 +170,22 @@ config KERNEL_KASAN_EXTRA compile time. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 has more +CONFIG KERNEL_KASAN_VMALLOC + bool "Back mappings in vmalloc space with real shadow memory" + depends on KERNEL_KASAN + By default, the shadow region for vmalloc space is the read-only + zero page. This means that KASAN cannot detect errors involving + vmalloc space. + + Enabling this option will hook in to vmap/vmalloc and back those + mappings with real shadow memory allocated on demand. This allows + for KASAN to detect more sorts of errors (and to support vmapped + stacks), but at the cost of higher memory usage. + + This option depends on HAVE_ARCH_KASAN_VMALLOC, but we can't + depend on that in here, so it is possible that enabling this + will have no effect. + if KERNEL_KASAN config KERNEL_KASAN_GENERIC def_bool y From 0ccbcb0223a312467cd151aa876ab5abf7e94b71 Mon Sep 17 00:00:00 2001 From: Stijn Tintel Date: Sun, 7 Nov 2021 18:54:28 +0200 Subject: [PATCH 28/53] kernel: add missing keyword to KERNEL_KASAN_VMALLOC The help keyword is missing, which breaks menuconfig etc. Fixes: cbeab2cd9919 ("kernel: add another missing KASAN symbol") Signed-off-by: Stijn Tintel --- config/Config-kernel.in | 1 + 1 file changed, 1 insertion(+) diff --git a/config/Config-kernel.in b/config/Config-kernel.in index f5b42b71ee..abb85c83be 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -173,6 +173,7 @@ config KERNEL_KASAN_EXTRA CONFIG KERNEL_KASAN_VMALLOC bool "Back mappings in vmalloc space with real shadow memory" depends on KERNEL_KASAN + help By default, the shadow region for vmalloc space is the read-only zero page. This means that KASAN cannot detect errors involving vmalloc space. From 786cbf0fa4212baaa88dad9602d6467061333dc7 Mon Sep 17 00:00:00 2001 From: Stijn Tintel Date: Sun, 7 Nov 2021 18:57:12 +0200 Subject: [PATCH 29/53] kernel: fix KERNEL_KASAN_VMALLOC build option It should be config, not CONFIG. Fixes: cbeab2cd9919 ("kernel: add another missing KASAN symbol") Signed-off-by: Stijn Tintel --- config/Config-kernel.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/Config-kernel.in b/config/Config-kernel.in index abb85c83be..e993dc0d8c 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -170,7 +170,7 @@ config KERNEL_KASAN_EXTRA compile time. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 has more -CONFIG KERNEL_KASAN_VMALLOC +config KERNEL_KASAN_VMALLOC bool "Back mappings in vmalloc space with real shadow memory" depends on KERNEL_KASAN help From 646c011ec76eca151b24ccde01df12f47e199d2d Mon Sep 17 00:00:00 2001 From: Paul Spooren Date: Tue, 2 Nov 2021 14:40:08 -1000 Subject: [PATCH 30/53] pistachio: switch to Kernel 5.10 This was successfully boot tested on a Creator Ci40. Signed-off-by: Paul Spooren Signed-off-by: Hauke Mehrtens --- target/linux/pistachio/Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/target/linux/pistachio/Makefile b/target/linux/pistachio/Makefile index 09bdf4d6b6..8bafaa0b21 100644 --- a/target/linux/pistachio/Makefile +++ b/target/linux/pistachio/Makefile @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-only # -# Copyright (C) 2017 OpenWrt.org +# Copyright (C) 2017-2021 OpenWrt.org include $(TOPDIR)/rules.mk @@ -11,8 +11,7 @@ FEATURES:=fpu usb usbgadget squashfs targz nand CPU_TYPE:=24kc CPU_SUBTYPE:=24kf -KERNEL_PATCHVER:=5.4 -KERNEL_TESTING_PATCHVER:=5.10 +KERNEL_PATCHVER:=5.10 include $(INCLUDE_DIR)/target.mk From 184d072fc0d4fd2721e66abf00c985f4477c6a09 Mon Sep 17 00:00:00 2001 From: Paul Spooren Date: Tue, 2 Nov 2021 14:41:23 -1000 Subject: [PATCH 31/53] pistachio: drop Kernel 5.4 support With the switch to Kernel 5.10 the 5.4 files are no longer needed. Signed-off-by: Paul Spooren --- target/linux/pistachio/config-5.4 | 372 ------------------ ...ine-img-mdc-Handle-early-status-read.patch | 68 ---- ...mg-spfi-Implement-dual-and-quad-mode.patch | 198 ---------- ...-device-0-configuration-for-all-devi.patch | 64 --- ...i-RX-maximum-burst-size-for-DMA-is-8.patch | 59 --- ...g-spfi-finish-every-transfer-cleanly.patch | 120 ------ ...istachio-Fix-wrong-SDHost-card-speed.patch | 49 --- ...-img-marduk-switch-mmc-to-1-bit-mode.patch | 47 --- ...or-support-mtd-name-from-device-tree.patch | 54 --- ...PS-DTS-img-marduk-Add-SPI-NAND-flash.patch | 30 -- ...mg-marduk-Add-Cascoda-CA8210-6LoWPAN.patch | 43 -- ...-DTS-img-marduk-Add-NXP-SC16IS752IPW.patch | 81 ---- ...PS-DTS-img-marduk-Add-partition-name.patch | 27 -- ...-MIPS-DTS-img-marduk-Add-led-aliases.patch | 27 -- 14 files changed, 1239 deletions(-) delete mode 100644 target/linux/pistachio/config-5.4 delete mode 100644 target/linux/pistachio/patches-5.4/101-dmaengine-img-mdc-Handle-early-status-read.patch delete mode 100644 target/linux/pistachio/patches-5.4/102-spi-img-spfi-Implement-dual-and-quad-mode.patch delete mode 100644 target/linux/pistachio/patches-5.4/104-spi-img-spfi-use-device-0-configuration-for-all-devi.patch delete mode 100644 target/linux/pistachio/patches-5.4/105-spi-img-spfi-RX-maximum-burst-size-for-DMA-is-8.patch delete mode 100644 target/linux/pistachio/patches-5.4/106-spi-img-spfi-finish-every-transfer-cleanly.patch delete mode 100644 target/linux/pistachio/patches-5.4/108-clk-pistachio-Fix-wrong-SDHost-card-speed.patch delete mode 100644 target/linux/pistachio/patches-5.4/109-MIPS-DTS-img-marduk-switch-mmc-to-1-bit-mode.patch delete mode 100644 target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch delete mode 100644 target/linux/pistachio/patches-5.4/901-MIPS-DTS-img-marduk-Add-SPI-NAND-flash.patch delete mode 100644 target/linux/pistachio/patches-5.4/902-MIPS-DTS-img-marduk-Add-Cascoda-CA8210-6LoWPAN.patch delete mode 100644 target/linux/pistachio/patches-5.4/903-MIPS-DTS-img-marduk-Add-NXP-SC16IS752IPW.patch delete mode 100644 target/linux/pistachio/patches-5.4/904-MIPS-DTS-img-marduk-Add-partition-name.patch delete mode 100644 target/linux/pistachio/patches-5.4/905-MIPS-DTS-img-marduk-Add-led-aliases.patch diff --git a/target/linux/pistachio/config-5.4 b/target/linux/pistachio/config-5.4 deleted file mode 100644 index a6625d8254..0000000000 --- a/target/linux/pistachio/config-5.4 +++ /dev/null @@ -1,372 +0,0 @@ -CONFIG_ARCH_32BIT_OFF_T=y -CONFIG_ARCH_CLOCKSOURCE_DATA=y -CONFIG_ARCH_HAS_DMA_COHERENT_TO_PFN=y -CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y -CONFIG_ARCH_HAS_DMA_WRITE_COMBINE=y -CONFIG_ARCH_HAS_ELF_RANDOMIZE=y -CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y -CONFIG_ARCH_HAS_UNCACHED_SEGMENT=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_MMAP_RND_BITS_MAX=15 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15 -CONFIG_ARCH_SUPPORTS_UPROBES=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARCH_USE_BUILTIN_BSWAP=y -CONFIG_ARCH_USE_MEMREMAP_PROT=y -CONFIG_ARCH_USE_QUEUED_RWLOCKS=y -CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y -CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y -CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_SCSI_REQUEST=y -CONFIG_BOARD_SCACHE=y -CONFIG_BOOT_ELF32=y -CONFIG_CEVT_R4K=y -CONFIG_CLKDEV_LOOKUP=y -CONFIG_CLKSRC_MIPS_GIC=y -CONFIG_CLKSRC_PISTACHIO=y -CONFIG_CLONE_BACKWARDS=y -CONFIG_COMMON_CLK=y -# CONFIG_COMMON_CLK_BOSTON is not set -CONFIG_COMPAT_32BIT_TIME=y -CONFIG_CONNECTOR=y -CONFIG_CPU_GENERIC_DUMP_TLB=y -CONFIG_CPU_HAS_LOAD_STORE_LR=y -CONFIG_CPU_HAS_PREFETCH=y -CONFIG_CPU_HAS_RIXI=y -CONFIG_CPU_HAS_SYNC=y -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y -CONFIG_CPU_LITTLE_ENDIAN=y -CONFIG_CPU_MIPS32=y -CONFIG_CPU_MIPS32_R2=y -CONFIG_CPU_MIPSR2=y -CONFIG_CPU_MIPSR2_IRQ_EI=y -CONFIG_CPU_MIPSR2_IRQ_VI=y -CONFIG_CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS=y -CONFIG_CPU_PM=y -CONFIG_CPU_R4K_CACHE_TLB=y -CONFIG_CPU_RMAP=y -CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y -CONFIG_CPU_SUPPORTS_HIGHMEM=y -CONFIG_CPU_SUPPORTS_MSA=y -CONFIG_CRC16=y -CONFIG_CRC_CCITT=y -CONFIG_CRYPTO_ACOMP2=y -CONFIG_CRYPTO_AEAD=y -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_HASH_INFO=y -CONFIG_CRYPTO_LIB_SHA256=y -CONFIG_CRYPTO_LZO=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_NULL2=y -CONFIG_CRYPTO_RNG=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_ZSTD=y -CONFIG_CSRC_R4K=y -CONFIG_DMADEVICES=y -CONFIG_DMA_ENGINE=y -CONFIG_DMA_NONCOHERENT=y -CONFIG_DMA_NONCOHERENT_CACHE_SYNC=y -CONFIG_DMA_OF=y -CONFIG_DMA_VIRTUAL_CHANNELS=y -CONFIG_DTC=y -CONFIG_DWMAC_GENERIC=y -CONFIG_EARLY_PRINTK=y -CONFIG_EARLY_PRINTK_8250=y -CONFIG_EFI_EARLYCON=y -CONFIG_EXT4_FS=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXT4_FS_SECURITY=y -CONFIG_FIXED_PHY=y -CONFIG_FONT_8x16=y -CONFIG_FONT_AUTOSELECT=y -CONFIG_FONT_SUPPORT=y -CONFIG_FS_IOMAP=y -CONFIG_FS_MBCACHE=y -CONFIG_FS_POSIX_ACL=y -CONFIG_FW_LOADER_PAGED_BUF=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_GENERIC_ATOMIC64=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_GETTIMEOFDAY=y -CONFIG_GENERIC_IOMAP=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y -CONFIG_GENERIC_IRQ_IPI=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_LIB_ASHLDI3=y -CONFIG_GENERIC_LIB_ASHRDI3=y -CONFIG_GENERIC_LIB_CMPDI2=y -CONFIG_GENERIC_LIB_LSHRDI3=y -CONFIG_GENERIC_LIB_UCMPDI2=y -CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_PHY=y -CONFIG_GENERIC_PINCONF=y -CONFIG_GENERIC_PINCTRL_GROUPS=y -CONFIG_GENERIC_PINMUX_FUNCTIONS=y -CONFIG_GENERIC_SCHED_CLOCK=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_GENERIC_TIME_VSYSCALL=y -CONFIG_GPIOLIB=y -CONFIG_GPIOLIB_IRQCHIP=y -CONFIG_HANDLE_DOMAIN_IRQ=y -CONFIG_HARDWARE_WATCHPOINTS=y -CONFIG_HAS_DMA=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HAVE_ARCH_COMPILER_H=y -CONFIG_HAVE_ARCH_JUMP_LABEL=y -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_ASM_MODVERSIONS=y -CONFIG_HAVE_CBPF_JIT=y -CONFIG_HAVE_CLK=y -CONFIG_HAVE_CLK_PREPARE=y -CONFIG_HAVE_CONTEXT_TRACKING=y -CONFIG_HAVE_COPY_THREAD_TLS=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_HAVE_DEBUG_KMEMLEAK=y -CONFIG_HAVE_DEBUG_STACKOVERFLOW=y -CONFIG_HAVE_DMA_CONTIGUOUS=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_FAST_GUP=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_GENERIC_VDSO=y -CONFIG_HAVE_IDE=y -CONFIG_HAVE_IOREMAP_PROT=y -CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y -CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y -CONFIG_HAVE_KVM=y -CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y -CONFIG_HAVE_MEMBLOCK_NODE_MAP=y -CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_HAVE_NET_DSA=y -CONFIG_HAVE_OPROFILE=y -CONFIG_HAVE_PERF_EVENTS=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_RSEQ=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HOTPLUG_CPU=y -CONFIG_I2C=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_IMG=y -CONFIG_IMGPDC_WDT=y -CONFIG_IMG_MDC_DMA=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_IRQCHIP=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_DOMAIN_HIERARCHY=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_IRQ_MIPS_CPU=y -CONFIG_IRQ_WORK=y -CONFIG_JBD2=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_PWM=y -CONFIG_LIBFDT=y -CONFIG_LKDTM=y -CONFIG_LOCK_DEBUGGING_SUPPORT=y -CONFIG_LOG_BUF_SHIFT=18 -CONFIG_LZO_COMPRESS=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_MACH_PISTACHIO=y -CONFIG_MAGIC_SYSRQ=y -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0 -CONFIG_MDIO_BUS=y -CONFIG_MDIO_DEVICE=y -CONFIG_MEMFD_CREATE=y -CONFIG_MFD_SYSCON=y -CONFIG_MICREL_PHY=y -CONFIG_MIGRATION=y -CONFIG_MIPS=y -CONFIG_MIPS_ASID_BITS=8 -CONFIG_MIPS_ASID_SHIFT=0 -CONFIG_MIPS_CBPF_JIT=y -CONFIG_MIPS_CLOCK_VSYSCALL=y -CONFIG_MIPS_CM=y -# CONFIG_MIPS_CMDLINE_DTB_EXTEND is not set -CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER=y -# CONFIG_MIPS_CMDLINE_FROM_DTB is not set -CONFIG_MIPS_CPC=y -CONFIG_MIPS_CPS=y -# CONFIG_MIPS_CPS_CPUIDLE is not set -# CONFIG_MIPS_CPS_NS16550_BOOL is not set -CONFIG_MIPS_CPS_PM=y -CONFIG_MIPS_CPU_SCACHE=y -# CONFIG_MIPS_ELF_APPENDED_DTB is not set -CONFIG_MIPS_EXTERNAL_TIMER=y -CONFIG_MIPS_GIC=y -CONFIG_MIPS_L1_CACHE_SHIFT=5 -CONFIG_MIPS_MT=y -CONFIG_MIPS_MT_FPAFF=y -CONFIG_MIPS_MT_SMP=y -CONFIG_MIPS_NO_APPENDED_DTB=y -CONFIG_MIPS_NR_CPU_NR_MAP=4 -CONFIG_MIPS_PERF_SHARED_TC_COUNTERS=y -# CONFIG_MIPS_RAW_APPENDED_DTB is not set -CONFIG_MIPS_SPRAM=y -CONFIG_MMC=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_DW=y -# CONFIG_MMC_DW_BLUEFIELD is not set -# CONFIG_MMC_DW_EXYNOS is not set -# CONFIG_MMC_DW_HI3798CV200 is not set -# CONFIG_MMC_DW_K3 is not set -CONFIG_MMC_DW_PLTFM=y -CONFIG_MODULES_USE_ELF_REL=y -CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_NAND_CORE=y -CONFIG_MTD_SPI_NAND=y -CONFIG_MTD_SPI_NOR=y -CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y -CONFIG_MTD_SPI_NOR_USE_4K_SECTORS_LIMIT=16384 -CONFIG_MTD_UBI=y -CONFIG_MTD_UBI_BEB_LIMIT=20 -CONFIG_MTD_UBI_BLOCK=y -CONFIG_MTD_UBI_FASTMAP=y -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_NAMESPACES=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_NET_FLOW_LIMIT=y -CONFIG_NET_NS=y -CONFIG_NET_PTP_CLASSIFY=y -CONFIG_NLS=y -CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y -CONFIG_NO_HZ=y -CONFIG_NO_HZ_COMMON=y -CONFIG_NO_HZ_IDLE=y -CONFIG_NR_CPUS=4 -CONFIG_OF=y -CONFIG_OF_ADDRESS=y -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_FLATTREE=y -CONFIG_OF_GPIO=y -CONFIG_OF_IRQ=y -CONFIG_OF_KOBJ=y -CONFIG_OF_MDIO=y -CONFIG_OF_NET=y -CONFIG_PADATA=y -CONFIG_PAGE_POOL=y -CONFIG_PCI_DRIVERS_LEGACY=y -CONFIG_PERF_USE_VMALLOC=y -CONFIG_PGTABLE_LEVELS=2 -# CONFIG_PGTABLE_MAPPING is not set -CONFIG_PHYLIB=y -CONFIG_PHYLINK=y -CONFIG_PHY_PISTACHIO_USB=y -CONFIG_PINCTRL=y -CONFIG_PINCTRL_PISTACHIO=y -CONFIG_PISTACHIO_GPTIMER_CLKSRC=y -CONFIG_POWER_SUPPLY=y -CONFIG_PPS=y -# CONFIG_PREEMPT_NONE is not set -CONFIG_PREEMPT_VOLUNTARY=y -CONFIG_PRINTK_TIME=y -CONFIG_PROC_EVENTS=y -CONFIG_PROFILING=y -CONFIG_PTP_1588_CLOCK=y -CONFIG_PWM=y -CONFIG_PWM_IMG=y -CONFIG_PWM_SYSFS=y -CONFIG_QUEUED_RWLOCKS=y -CONFIG_QUEUED_SPINLOCKS=y -CONFIG_RATIONAL=y -CONFIG_REGMAP=y -CONFIG_REGMAP_MMIO=y -CONFIG_REGMAP_SPI=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_REGULATOR_GPIO=y -CONFIG_RESET_CONTROLLER=y -CONFIG_RESET_PISTACHIO=y -CONFIG_RFS_ACCEL=y -CONFIG_RPS=y -CONFIG_SCHEDSTATS=y -CONFIG_SCHED_INFO=y -CONFIG_SCSI=y -CONFIG_SCSI_SPI_ATTRS=y -CONFIG_SERIAL_8250_DW=y -CONFIG_SERIAL_8250_DWLIB=y -CONFIG_SERIAL_MCTRL_GPIO=y -CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SERIAL_SC16IS7XX=y -CONFIG_SERIAL_SC16IS7XX_CORE=y -# CONFIG_SERIAL_SC16IS7XX_I2C is not set -CONFIG_SERIAL_SC16IS7XX_SPI=y -CONFIG_SGL_ALLOC=y -CONFIG_SG_POOL=y -CONFIG_SMP=y -CONFIG_SMP_UP=y -CONFIG_SPI=y -CONFIG_SPI_IMG_SPFI=y -CONFIG_SPI_MASTER=y -CONFIG_SPI_MEM=y -CONFIG_SRAM=y -CONFIG_SRCU=y -CONFIG_STMMAC_ETH=y -CONFIG_STMMAC_PLATFORM=y -# CONFIG_STMMAC_SELFTESTS is not set -CONFIG_SWPHY=y -CONFIG_SYNC_R4K=y -CONFIG_SYSCTL_EXCEPTION_TRACE=y -CONFIG_SYS_HAS_CPU_MIPS32_R2=y -CONFIG_SYS_HAS_EARLY_PRINTK=y -CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y -CONFIG_SYS_SUPPORTS_ARBIT_HZ=y -CONFIG_SYS_SUPPORTS_HOTPLUG_CPU=y -CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y -CONFIG_SYS_SUPPORTS_MIPS_CPS=y -CONFIG_SYS_SUPPORTS_MULTITHREADING=y -CONFIG_SYS_SUPPORTS_RELOCATABLE=y -CONFIG_SYS_SUPPORTS_SCHED_SMT=y -CONFIG_SYS_SUPPORTS_SMP=y -CONFIG_SYS_SUPPORTS_ZBOOT=y -CONFIG_TARGET_ISA_REV=2 -CONFIG_TICK_CPU_ACCOUNTING=y -CONFIG_TIMER_OF=y -CONFIG_TIMER_PROBE=y -CONFIG_TMPFS_POSIX_ACL=y -CONFIG_TREE_RCU=y -CONFIG_TREE_SRCU=y -CONFIG_UBIFS_FS=y -CONFIG_USB=y -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y -CONFIG_USB_COMMON=y -CONFIG_USB_DWC2=y -CONFIG_USB_DWC2_DUAL_ROLE=y -CONFIG_USB_EHCI_HCD=y -# CONFIG_USB_EHCI_HCD_PLATFORM is not set -CONFIG_USB_GADGET=y -CONFIG_USB_STORAGE=y -CONFIG_USB_SUPPORT=y -CONFIG_USER_NS=y -CONFIG_USE_GENERIC_EARLY_PRINTK_8250=y -CONFIG_USE_OF=y -CONFIG_WATCHDOG_CORE=y -CONFIG_WEAK_ORDERING=y -CONFIG_XPS=y -CONFIG_XXHASH=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_ZLIB_INFLATE=y -CONFIG_ZSMALLOC=y -# CONFIG_ZSMALLOC_STAT is not set -CONFIG_ZSTD_COMPRESS=y -CONFIG_ZSTD_DECOMPRESS=y diff --git a/target/linux/pistachio/patches-5.4/101-dmaengine-img-mdc-Handle-early-status-read.patch b/target/linux/pistachio/patches-5.4/101-dmaengine-img-mdc-Handle-early-status-read.patch deleted file mode 100644 index 031a4e3e5e..0000000000 --- a/target/linux/pistachio/patches-5.4/101-dmaengine-img-mdc-Handle-early-status-read.patch +++ /dev/null @@ -1,68 +0,0 @@ -From a2dd154377c9aa6ddda00d39b8c7c334e4fa16ff Mon Sep 17 00:00:00 2001 -From: Damien Horsley -Date: Tue, 22 Mar 2016 12:46:09 +0000 -Subject: dmaengine: img-mdc: Handle early status read - -It is possible that mdc_tx_status may be called before the first -node has been read from memory. - -In this case, the residue value stored in the register is undefined. -Return the transfer size instead. - -Signed-off-by: Damien Horsley ---- - drivers/dma/img-mdc-dma.c | 40 ++++++++++++++++++++++++---------------- - 1 file changed, 24 insertions(+), 16 deletions(-) - ---- a/drivers/dma/img-mdc-dma.c -+++ b/drivers/dma/img-mdc-dma.c -@@ -618,25 +618,33 @@ static enum dma_status mdc_tx_status(str - (MDC_CMDS_PROCESSED_CMDS_DONE_MASK + 1); - - /* -- * If the command loaded event hasn't been processed yet, then -- * the difference above includes an extra command. -+ * If the first node has not yet been read from memory, -+ * the residue register value is undefined - */ -- if (!mdesc->cmd_loaded) -- cmds--; -- else -- cmds += mdesc->list_cmds_done; -- -- bytes = mdesc->list_xfer_size; -- ldesc = mdesc->list; -- for (i = 0; i < cmds; i++) { -- bytes -= ldesc->xfer_size + 1; -- ldesc = ldesc->next_desc; -- } -- if (ldesc) { -- if (residue != MDC_TRANSFER_SIZE_MASK) -- bytes -= ldesc->xfer_size - residue; -+ if (!mdesc->cmd_loaded && !cmds) { -+ bytes = mdesc->list_xfer_size; -+ } else { -+ /* -+ * If the command loaded event hasn't been processed yet, then -+ * the difference above includes an extra command. -+ */ -+ if (!mdesc->cmd_loaded) -+ cmds--; - else -+ cmds += mdesc->list_cmds_done; -+ -+ bytes = mdesc->list_xfer_size; -+ ldesc = mdesc->list; -+ for (i = 0; i < cmds; i++) { - bytes -= ldesc->xfer_size + 1; -+ ldesc = ldesc->next_desc; -+ } -+ if (ldesc) { -+ if (residue != MDC_TRANSFER_SIZE_MASK) -+ bytes -= ldesc->xfer_size - residue; -+ else -+ bytes -= ldesc->xfer_size + 1; -+ } - } - } - spin_unlock_irqrestore(&mchan->vc.lock, flags); diff --git a/target/linux/pistachio/patches-5.4/102-spi-img-spfi-Implement-dual-and-quad-mode.patch b/target/linux/pistachio/patches-5.4/102-spi-img-spfi-Implement-dual-and-quad-mode.patch deleted file mode 100644 index 9966ae71a9..0000000000 --- a/target/linux/pistachio/patches-5.4/102-spi-img-spfi-Implement-dual-and-quad-mode.patch +++ /dev/null @@ -1,198 +0,0 @@ -From cd2a6af51553d38072cd31699b58d16ca6176ef5 Mon Sep 17 00:00:00 2001 -From: Ionela Voinescu -Date: Thu, 2 Feb 2017 16:46:14 +0000 -Subject: spi: img-spfi: Implement dual and quad mode - -For dual and quad modes to work the SPFI controller needs -to have information about command/address/dummy bytes in the -transaction register. This information is not relevant for -single mode, and therefore it can have any value in the -allowed range. Therefore, for any read or write transfers of less -than 8 bytes (cmd = 1 byte, addr up to 7 bytes), SPFI will be -configured, but not enabled (unless it is the last transfer in -the queue). The transfer will be enabled by the subsequent tranfer. -A pending transfer is determined by the content of the transaction -register: if command part is set and tsize is not. - -This way we ensure that for dual and quad transactions -the command request size will apear in the command/address part -of the transaction register, while the data size will be in -tsize, all data being sent/received in the same transaction (as -set up in the transaction register). - -Signed-off-by: Ionela Voinescu -Signed-off-by: Ezequiel Garcia ---- - drivers/spi/spi-img-spfi.c | 96 ++++++++++++++++++++++++++++++++++++++++------ - 1 file changed, 85 insertions(+), 11 deletions(-) - ---- a/drivers/spi/spi-img-spfi.c -+++ b/drivers/spi/spi-img-spfi.c -@@ -37,7 +37,8 @@ - #define SPFI_CONTROL_SOFT_RESET BIT(11) - #define SPFI_CONTROL_SEND_DMA BIT(10) - #define SPFI_CONTROL_GET_DMA BIT(9) --#define SPFI_CONTROL_SE BIT(8) -+#define SPFI_CONTROL_SE BIT(8) -+#define SPFI_CONTROL_TX_RX BIT(1) - #define SPFI_CONTROL_TMODE_SHIFT 5 - #define SPFI_CONTROL_TMODE_MASK 0x7 - #define SPFI_CONTROL_TMODE_SINGLE 0 -@@ -48,6 +49,10 @@ - #define SPFI_TRANSACTION 0x18 - #define SPFI_TRANSACTION_TSIZE_SHIFT 16 - #define SPFI_TRANSACTION_TSIZE_MASK 0xffff -+#define SPFI_TRANSACTION_CMD_SHIFT 13 -+#define SPFI_TRANSACTION_CMD_MASK 0x7 -+#define SPFI_TRANSACTION_ADDR_SHIFT 10 -+#define SPFI_TRANSACTION_ADDR_MASK 0x7 - - #define SPFI_PORT_STATE 0x1c - #define SPFI_PORT_STATE_DEV_SEL_SHIFT 20 -@@ -84,6 +89,7 @@ - */ - #define SPFI_32BIT_FIFO_SIZE 64 - #define SPFI_8BIT_FIFO_SIZE 16 -+#define SPFI_DATA_REQUEST_MAX_SIZE 8 - - struct img_spfi { - struct device *dev; -@@ -100,6 +106,8 @@ struct img_spfi { - struct dma_chan *tx_ch; - bool tx_dma_busy; - bool rx_dma_busy; -+ -+ bool complete; - }; - - struct img_spfi_device_data { -@@ -120,9 +128,11 @@ static inline void spfi_start(struct img - { - u32 val; - -- val = spfi_readl(spfi, SPFI_CONTROL); -- val |= SPFI_CONTROL_SPFI_EN; -- spfi_writel(spfi, val, SPFI_CONTROL); -+ if (spfi->complete) { -+ val = spfi_readl(spfi, SPFI_CONTROL); -+ val |= SPFI_CONTROL_SPFI_EN; -+ spfi_writel(spfi, val, SPFI_CONTROL); -+ } - } - - static inline void spfi_reset(struct img_spfi *spfi) -@@ -135,12 +145,21 @@ static int spfi_wait_all_done(struct img - { - unsigned long timeout = jiffies + msecs_to_jiffies(50); - -+ if (!(spfi->complete)) -+ return 0; -+ - while (time_before(jiffies, timeout)) { - u32 status = spfi_readl(spfi, SPFI_INTERRUPT_STATUS); - - if (status & SPFI_INTERRUPT_ALLDONETRIG) { - spfi_writel(spfi, SPFI_INTERRUPT_ALLDONETRIG, - SPFI_INTERRUPT_CLEAR); -+ /* -+ * Disable SPFI for it not to interfere with -+ * pending transactions -+ */ -+ spfi_writel(spfi, spfi_readl(spfi, SPFI_CONTROL) -+ & ~SPFI_CONTROL_SPFI_EN, SPFI_CONTROL); - return 0; - } - cpu_relax(); -@@ -494,9 +513,32 @@ static void img_spfi_config(struct spi_m - struct spi_transfer *xfer) - { - struct img_spfi *spfi = spi_master_get_devdata(spi->master); -- u32 val, div; -+ u32 val, div, transact; -+ bool is_pending; - - /* -+ * For read or write transfers of less than 8 bytes (cmd = 1 byte, -+ * addr up to 7 bytes), SPFI will be configured, but not enabled -+ * (unless it is the last transfer in the queue).The transfer will -+ * be enabled by the subsequent transfer. -+ * A pending transfer is determined by the content of the -+ * transaction register: if command part is set and tsize -+ * is not -+ */ -+ transact = spfi_readl(spfi, SPFI_TRANSACTION); -+ is_pending = ((transact >> SPFI_TRANSACTION_CMD_SHIFT) & -+ SPFI_TRANSACTION_CMD_MASK) && -+ (!((transact >> SPFI_TRANSACTION_TSIZE_SHIFT) & -+ SPFI_TRANSACTION_TSIZE_MASK)); -+ -+ /* If there are no pending transactions it's OK to soft reset */ -+ if (!is_pending) { -+ /* Start the transaction from a known (reset) state */ -+ spfi_reset(spfi); -+ } -+ -+ /* -+ * Before anything else, set up parameters. - * output = spfi_clk * (BITCLK / 512), where BITCLK must be a - * power of 2 up to 128 - */ -@@ -509,20 +551,52 @@ static void img_spfi_config(struct spi_m - val |= div << SPFI_DEVICE_PARAMETER_BITCLK_SHIFT; - spfi_writel(spfi, val, SPFI_DEVICE_PARAMETER(spi->chip_select)); - -- spfi_writel(spfi, xfer->len << SPFI_TRANSACTION_TSIZE_SHIFT, -- SPFI_TRANSACTION); -+ if (!list_is_last(&xfer->transfer_list, &master->cur_msg->transfers) && -+ /* -+ * For duplex mode (both the tx and rx buffers are !NULL) the -+ * CMD, ADDR, and DUMMY byte parts of the transaction register -+ * should always be 0 and therefore the pending transfer -+ * technique cannot be used. -+ */ -+ (xfer->tx_buf) && (!xfer->rx_buf) && -+ (xfer->len <= SPFI_DATA_REQUEST_MAX_SIZE) && !is_pending) { -+ transact = (1 & SPFI_TRANSACTION_CMD_MASK) << -+ SPFI_TRANSACTION_CMD_SHIFT; -+ transact |= ((xfer->len - 1) & SPFI_TRANSACTION_ADDR_MASK) << -+ SPFI_TRANSACTION_ADDR_SHIFT; -+ spfi->complete = false; -+ } else { -+ spfi->complete = true; -+ if (is_pending) { -+ /* Keep setup from pending transfer */ -+ transact |= ((xfer->len & SPFI_TRANSACTION_TSIZE_MASK) << -+ SPFI_TRANSACTION_TSIZE_SHIFT); -+ } else { -+ transact = ((xfer->len & SPFI_TRANSACTION_TSIZE_MASK) << -+ SPFI_TRANSACTION_TSIZE_SHIFT); -+ } -+ } -+ spfi_writel(spfi, transact, SPFI_TRANSACTION); - - val = spfi_readl(spfi, SPFI_CONTROL); - val &= ~(SPFI_CONTROL_SEND_DMA | SPFI_CONTROL_GET_DMA); -- if (xfer->tx_buf) -+ /* -+ * We set up send DMA for pending transfers also, as -+ * those are always send transfers -+ */ -+ if ((xfer->tx_buf) || is_pending) - val |= SPFI_CONTROL_SEND_DMA; -- if (xfer->rx_buf) -+ if (xfer->tx_buf) -+ val |= SPFI_CONTROL_TX_RX; -+ if (xfer->rx_buf) { - val |= SPFI_CONTROL_GET_DMA; -+ val &= ~SPFI_CONTROL_TX_RX; -+ } - val &= ~(SPFI_CONTROL_TMODE_MASK << SPFI_CONTROL_TMODE_SHIFT); -- if (xfer->tx_nbits == SPI_NBITS_DUAL && -+ if (xfer->tx_nbits == SPI_NBITS_DUAL || - xfer->rx_nbits == SPI_NBITS_DUAL) - val |= SPFI_CONTROL_TMODE_DUAL << SPFI_CONTROL_TMODE_SHIFT; -- else if (xfer->tx_nbits == SPI_NBITS_QUAD && -+ else if (xfer->tx_nbits == SPI_NBITS_QUAD || - xfer->rx_nbits == SPI_NBITS_QUAD) - val |= SPFI_CONTROL_TMODE_QUAD << SPFI_CONTROL_TMODE_SHIFT; - val |= SPFI_CONTROL_SE; diff --git a/target/linux/pistachio/patches-5.4/104-spi-img-spfi-use-device-0-configuration-for-all-devi.patch b/target/linux/pistachio/patches-5.4/104-spi-img-spfi-use-device-0-configuration-for-all-devi.patch deleted file mode 100644 index 9050dae187..0000000000 --- a/target/linux/pistachio/patches-5.4/104-spi-img-spfi-use-device-0-configuration-for-all-devi.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 905ee06a9966113fe51d6bad1819759cb30fd0bd Mon Sep 17 00:00:00 2001 -From: Ionela Voinescu -Date: Tue, 9 Feb 2016 10:18:31 +0000 -Subject: spi: img-spfi: use device 0 configuration for all devices - -Given that we control the chip select line externally -we can use only one parameter register (device 0 parameter -register) and one set of configuration bits (port configuration -bits for device 0) for all devices (all chip select lines). - -Signed-off-by: Ionela Voinescu ---- - drivers/spi/spi-img-spfi.c | 23 ++++++++++++++++------- - 1 file changed, 16 insertions(+), 7 deletions(-) - ---- a/drivers/spi/spi-img-spfi.c -+++ b/drivers/spi/spi-img-spfi.c -@@ -434,18 +434,23 @@ static int img_spfi_prepare(struct spi_m - struct img_spfi *spfi = spi_master_get_devdata(master); - u32 val; - -+ /* -+ * The chip select line is controlled externally so -+ * we can use the CS0 configuration for all devices -+ */ - val = spfi_readl(spfi, SPFI_PORT_STATE); -+ -+ /* 0 for device selection */ - val &= ~(SPFI_PORT_STATE_DEV_SEL_MASK << - SPFI_PORT_STATE_DEV_SEL_SHIFT); -- val |= msg->spi->chip_select << SPFI_PORT_STATE_DEV_SEL_SHIFT; - if (msg->spi->mode & SPI_CPHA) -- val |= SPFI_PORT_STATE_CK_PHASE(msg->spi->chip_select); -+ val |= SPFI_PORT_STATE_CK_PHASE(0); - else -- val &= ~SPFI_PORT_STATE_CK_PHASE(msg->spi->chip_select); -+ val &= ~SPFI_PORT_STATE_CK_PHASE(0); - if (msg->spi->mode & SPI_CPOL) -- val |= SPFI_PORT_STATE_CK_POL(msg->spi->chip_select); -+ val |= SPFI_PORT_STATE_CK_POL(0); - else -- val &= ~SPFI_PORT_STATE_CK_POL(msg->spi->chip_select); -+ val &= ~SPFI_PORT_STATE_CK_POL(0); - spfi_writel(spfi, val, SPFI_PORT_STATE); - - return 0; -@@ -545,11 +550,15 @@ static void img_spfi_config(struct spi_m - div = DIV_ROUND_UP(clk_get_rate(spfi->spfi_clk), xfer->speed_hz); - div = clamp(512 / (1 << get_count_order(div)), 1, 128); - -- val = spfi_readl(spfi, SPFI_DEVICE_PARAMETER(spi->chip_select)); -+ /* -+ * The chip select line is controlled externally so -+ * we can use the CS0 parameters for all devices -+ */ -+ val = spfi_readl(spfi, SPFI_DEVICE_PARAMETER(0)); - val &= ~(SPFI_DEVICE_PARAMETER_BITCLK_MASK << - SPFI_DEVICE_PARAMETER_BITCLK_SHIFT); - val |= div << SPFI_DEVICE_PARAMETER_BITCLK_SHIFT; -- spfi_writel(spfi, val, SPFI_DEVICE_PARAMETER(spi->chip_select)); -+ spfi_writel(spfi, val, SPFI_DEVICE_PARAMETER(0)); - - if (!list_is_last(&xfer->transfer_list, &master->cur_msg->transfers) && - /* diff --git a/target/linux/pistachio/patches-5.4/105-spi-img-spfi-RX-maximum-burst-size-for-DMA-is-8.patch b/target/linux/pistachio/patches-5.4/105-spi-img-spfi-RX-maximum-burst-size-for-DMA-is-8.patch deleted file mode 100644 index 182897cd5a..0000000000 --- a/target/linux/pistachio/patches-5.4/105-spi-img-spfi-RX-maximum-burst-size-for-DMA-is-8.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 56466f505f58f44b69feb7eaed3b506842800456 Mon Sep 17 00:00:00 2001 -From: Ionela Voinescu -Date: Tue, 1 Mar 2016 17:49:45 +0000 -Subject: spi: img-spfi: RX maximum burst size for DMA is 8 - -The depth of the FIFOs is 16 bytes. The DMA request line is tied -to the half full/empty (depending on the use of the TX or RX FIFO) -threshold. For the TX FIFO, if you set a burst size of 8 (equal to -half the depth) the first burst goes into FIFO without any issues, -but due the latency involved (the time the data leaves the DMA -engine to the time it arrives at the FIFO), the DMA might trigger -another burst of 8. But given that there is no space for 2 additonal -bursts of 8, this would result in a failure. Therefore, we have to -keep the burst size for TX to 4 to accomodate for an extra burst. - -For the read (RX) scenario, the DMA request line goes high when -there is at least 8 entries in the FIFO (half full), and we can -program the burst size to be 8 because the risk of accidental burst -does not exist. The DMA engine will not trigger another read until -the read data for all the burst it has sent out has been received. - -While here, move the burst size setting outside of the if/else branches -as they have the same value for both 8 and 32 bit data widths. - -Signed-off-by: Ionela Voinescu ---- - drivers/spi/spi-img-spfi.c | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - ---- a/drivers/spi/spi-img-spfi.c -+++ b/drivers/spi/spi-img-spfi.c -@@ -343,12 +343,11 @@ static int img_spfi_start_dma(struct spi - if (xfer->len % 4 == 0) { - rxconf.src_addr = spfi->phys + SPFI_RX_32BIT_VALID_DATA; - rxconf.src_addr_width = 4; -- rxconf.src_maxburst = 4; - } else { - rxconf.src_addr = spfi->phys + SPFI_RX_8BIT_VALID_DATA; - rxconf.src_addr_width = 1; -- rxconf.src_maxburst = 4; - } -+ rxconf.src_maxburst = 8; - dmaengine_slave_config(spfi->rx_ch, &rxconf); - - rxdesc = dmaengine_prep_slave_sg(spfi->rx_ch, xfer->rx_sg.sgl, -@@ -367,12 +366,11 @@ static int img_spfi_start_dma(struct spi - if (xfer->len % 4 == 0) { - txconf.dst_addr = spfi->phys + SPFI_TX_32BIT_VALID_DATA; - txconf.dst_addr_width = 4; -- txconf.dst_maxburst = 4; - } else { - txconf.dst_addr = spfi->phys + SPFI_TX_8BIT_VALID_DATA; - txconf.dst_addr_width = 1; -- txconf.dst_maxburst = 4; - } -+ txconf.dst_maxburst = 4; - dmaengine_slave_config(spfi->tx_ch, &txconf); - - txdesc = dmaengine_prep_slave_sg(spfi->tx_ch, xfer->tx_sg.sgl, diff --git a/target/linux/pistachio/patches-5.4/106-spi-img-spfi-finish-every-transfer-cleanly.patch b/target/linux/pistachio/patches-5.4/106-spi-img-spfi-finish-every-transfer-cleanly.patch deleted file mode 100644 index cffb72ee33..0000000000 --- a/target/linux/pistachio/patches-5.4/106-spi-img-spfi-finish-every-transfer-cleanly.patch +++ /dev/null @@ -1,120 +0,0 @@ -From 5fcca3fd4b621d7b5bdeca18d36dfc6ca6cfe383 Mon Sep 17 00:00:00 2001 -From: Ionela Voinescu -Date: Wed, 10 Aug 2016 11:42:26 +0100 -Subject: spi: img-spfi: finish every transfer cleanly - -Before this change, the interrupt status bit that signaled -the end of a tranfers was cleared in the wait_all_done -function. That functionality triggered issues for DMA -duplex transactions where the wait function was called -twice, in both the TX and RX callbacks. - -In order to fix the issue, clear all interrupt data bits -at the end of a PIO transfer or at the end of both TX and RX -duplex transfers, if the transfer is not a pending tranfer -(command waiting for data). After that, the status register -is checked for new incoming data or new data requests to be -signaled. If SPFI finished cleanly, no new interrupt data -bits should be set. - -Signed-off-by: Ionela Voinescu ---- - drivers/spi/spi-img-spfi.c | 49 +++++++++++++++++++++++++++++++++------------- - 1 file changed, 35 insertions(+), 14 deletions(-) - ---- a/drivers/spi/spi-img-spfi.c -+++ b/drivers/spi/spi-img-spfi.c -@@ -80,6 +80,14 @@ - #define SPFI_INTERRUPT_SDE BIT(1) - #define SPFI_INTERRUPT_SDTRIG BIT(0) - -+#define SPFI_INTERRUPT_DATA_BITS (SPFI_INTERRUPT_SDHF |\ -+ SPFI_INTERRUPT_SDFUL |\ -+ SPFI_INTERRUPT_GDEX32BIT |\ -+ SPFI_INTERRUPT_GDHF |\ -+ SPFI_INTERRUPT_GDFUL |\ -+ SPFI_INTERRUPT_ALLDONETRIG |\ -+ SPFI_INTERRUPT_GDEX8BIT) -+ - /* - * There are four parallel FIFOs of 16 bytes each. The word buffer - * (*_32BIT_VALID_DATA) accesses all four FIFOs at once, resulting in an -@@ -141,6 +149,23 @@ static inline void spfi_reset(struct img - spfi_writel(spfi, 0, SPFI_CONTROL); - } - -+static inline void spfi_finish(struct img_spfi *spfi) -+{ -+ if (!(spfi->complete)) -+ return; -+ -+ /* Clear data bits as all transfers(TX and RX) have finished */ -+ spfi_writel(spfi, SPFI_INTERRUPT_DATA_BITS, SPFI_INTERRUPT_CLEAR); -+ if (spfi_readl(spfi, SPFI_INTERRUPT_STATUS) & SPFI_INTERRUPT_DATA_BITS) { -+ dev_err(spfi->dev, "SPFI did not finish transfer cleanly.\n"); -+ spfi_reset(spfi); -+ } -+ /* Disable SPFI for it not to interfere with pending transactions */ -+ spfi_writel(spfi, -+ spfi_readl(spfi, SPFI_CONTROL) & ~SPFI_CONTROL_SPFI_EN, -+ SPFI_CONTROL); -+} -+ - static int spfi_wait_all_done(struct img_spfi *spfi) - { - unsigned long timeout = jiffies + msecs_to_jiffies(50); -@@ -149,19 +174,9 @@ static int spfi_wait_all_done(struct img - return 0; - - while (time_before(jiffies, timeout)) { -- u32 status = spfi_readl(spfi, SPFI_INTERRUPT_STATUS); -- -- if (status & SPFI_INTERRUPT_ALLDONETRIG) { -- spfi_writel(spfi, SPFI_INTERRUPT_ALLDONETRIG, -- SPFI_INTERRUPT_CLEAR); -- /* -- * Disable SPFI for it not to interfere with -- * pending transactions -- */ -- spfi_writel(spfi, spfi_readl(spfi, SPFI_CONTROL) -- & ~SPFI_CONTROL_SPFI_EN, SPFI_CONTROL); -+ if (spfi_readl(spfi, SPFI_INTERRUPT_STATUS) & -+ SPFI_INTERRUPT_ALLDONETRIG) - return 0; -- } - cpu_relax(); - } - -@@ -293,6 +308,8 @@ static int img_spfi_start_pio(struct spi - } - - ret = spfi_wait_all_done(spfi); -+ spfi_finish(spfi); -+ - if (ret < 0) - return ret; - -@@ -308,8 +325,10 @@ static void img_spfi_dma_rx_cb(void *dat - - spin_lock_irqsave(&spfi->lock, flags); - spfi->rx_dma_busy = false; -- if (!spfi->tx_dma_busy) -+ if (!spfi->tx_dma_busy) { -+ spfi_finish(spfi); - spi_finalize_current_transfer(spfi->master); -+ } - spin_unlock_irqrestore(&spfi->lock, flags); - } - -@@ -322,8 +341,10 @@ static void img_spfi_dma_tx_cb(void *dat - - spin_lock_irqsave(&spfi->lock, flags); - spfi->tx_dma_busy = false; -- if (!spfi->rx_dma_busy) -+ if (!spfi->rx_dma_busy) { -+ spfi_finish(spfi); - spi_finalize_current_transfer(spfi->master); -+ } - spin_unlock_irqrestore(&spfi->lock, flags); - } - diff --git a/target/linux/pistachio/patches-5.4/108-clk-pistachio-Fix-wrong-SDHost-card-speed.patch b/target/linux/pistachio/patches-5.4/108-clk-pistachio-Fix-wrong-SDHost-card-speed.patch deleted file mode 100644 index 6fddbe269a..0000000000 --- a/target/linux/pistachio/patches-5.4/108-clk-pistachio-Fix-wrong-SDHost-card-speed.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 3642843a06025ec333d7e92580cf52cb8db2a652 Mon Sep 17 00:00:00 2001 -From: Govindraj Raja -Date: Fri, 8 Jan 2016 16:36:07 +0000 -Subject: clk: pistachio: Fix wrong SDHost card speed - -The SDHost currently clocks the card 4x slower than it -should do, because there is fixed divide by 4 in the -sdhost wrapper that is not present in the clock tree. -To model this add a fixed divide by 4 clock node in -the SDHost clock path. - -This will ensure the right clock frequency is selected when -the mmc driver tries to configure frequency on card insert. - -Signed-off-by: Govindraj Raja ---- - drivers/clk/pistachio/clk-pistachio.c | 3 ++- - include/dt-bindings/clock/pistachio-clk.h | 1 + - 2 files changed, 3 insertions(+), 1 deletion(-) - ---- a/drivers/clk/pistachio/clk-pistachio.c -+++ b/drivers/clk/pistachio/clk-pistachio.c -@@ -41,7 +41,7 @@ static struct pistachio_gate pistachio_g - GATE(CLK_AUX_ADC_INTERNAL, "aux_adc_internal", "sys_internal_div", - 0x104, 22), - GATE(CLK_AUX_ADC, "aux_adc", "aux_adc_div", 0x104, 23), -- GATE(CLK_SD_HOST, "sd_host", "sd_host_div", 0x104, 24), -+ GATE(CLK_SD_HOST, "sd_host", "sd_host_div4", 0x104, 24), - GATE(CLK_BT, "bt", "bt_div", 0x104, 25), - GATE(CLK_BT_DIV4, "bt_div4", "bt_div4_div", 0x104, 26), - GATE(CLK_BT_DIV8, "bt_div8", "bt_div8_div", 0x104, 27), -@@ -51,6 +51,7 @@ static struct pistachio_gate pistachio_g - static struct pistachio_fixed_factor pistachio_ffs[] __initdata = { - FIXED_FACTOR(CLK_WIFI_DIV4, "wifi_div4", "wifi_pll", 4), - FIXED_FACTOR(CLK_WIFI_DIV8, "wifi_div8", "wifi_pll", 8), -+ FIXED_FACTOR(CLK_SDHOST_DIV4, "sd_host_div4", "sd_host_div", 4), - }; - - static struct pistachio_div pistachio_divs[] __initdata = { ---- a/include/dt-bindings/clock/pistachio-clk.h -+++ b/include/dt-bindings/clock/pistachio-clk.h -@@ -18,6 +18,7 @@ - /* Fixed-factor clocks */ - #define CLK_WIFI_DIV4 16 - #define CLK_WIFI_DIV8 17 -+#define CLK_SDHOST_DIV4 18 - - /* Gate clocks */ - #define CLK_MIPS 32 diff --git a/target/linux/pistachio/patches-5.4/109-MIPS-DTS-img-marduk-switch-mmc-to-1-bit-mode.patch b/target/linux/pistachio/patches-5.4/109-MIPS-DTS-img-marduk-switch-mmc-to-1-bit-mode.patch deleted file mode 100644 index cec424a0ce..0000000000 --- a/target/linux/pistachio/patches-5.4/109-MIPS-DTS-img-marduk-switch-mmc-to-1-bit-mode.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 981c1d416af45eff207227aec106381ac23aac99 Mon Sep 17 00:00:00 2001 -From: Ian Pozella -Date: Mon, 20 Feb 2017 10:00:52 +0000 -Subject: MIPS: DTS: img: marduk: switch mmc to 1 bit mode - -The mmc block in Pistachio allows 1 to 8 data bits to be used. -Marduk uses 4 bits allowing the upper 4 bits to be allocated -to the Mikrobus ports. However these bits are still connected -internally meaning the mmc block recieves signals on all data lines -and seems the internal HW CRC checks get corrupted by this erroneous -data. - -We cannot control what data is sent on these lines because they go -to external ports. 1 bit mode does not exhibit the issue hence the -safe default is to use this. If a user knows that in their use case -they will not use the upper bits then they can set to 4 bit mode in -order to improve performance. - -Also make sure that the upper 4 bits don't get allocated to the mmc -driver (the default is to assign all 8 pins) so they can be allocated -to other drivers. Allocating all 4 despite setting 1 bit mode as this -matches what is there in hardware. - -Signed-off-by: Ian Pozella ---- - arch/mips/boot/dts/img/pistachio_marduk.dts | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/arch/mips/boot/dts/img/pistachio_marduk.dts -+++ b/arch/mips/boot/dts/img/pistachio_marduk.dts -@@ -117,7 +117,7 @@ - - &sdhost { - status = "okay"; -- bus-width = <4>; -+ bus-width = <1>; - disable-wp; - }; - -@@ -127,6 +127,7 @@ - - &pin_sdhost_data { - drive-strength = <2>; -+ pins = "mfio17", "mfio18", "mfio19", "mfio20"; - }; - - &pwm { diff --git a/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch deleted file mode 100644 index cdf0e49b21..0000000000 --- a/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch +++ /dev/null @@ -1,54 +0,0 @@ -From f32bc2aa01edcba2f2ed5db151cf183eac9ef919 Mon Sep 17 00:00:00 2001 -From: Abhimanyu Vishwakarma -Date: Sat, 25 Feb 2017 16:42:50 +0000 -Subject: mtd: nor: support mtd name from device tree - -Signed-off-by: Abhimanyu Vishwakarma ---- - drivers/mtd/spi-nor/spi-nor.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - ---- a/drivers/mtd/spi-nor/spi-nor.c -+++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -4939,6 +4939,7 @@ int spi_nor_scan(struct spi_nor *nor, co - struct mtd_info *mtd = &nor->mtd; - struct device_node *np = spi_nor_get_flash_node(nor); - struct spi_nor_flash_parameter *params = &nor->params; -+ const char __maybe_unused *of_mtd_name = NULL; - int ret; - int i; - -@@ -5001,7 +5002,12 @@ int spi_nor_scan(struct spi_nor *nor, co - /* Init flash parameters based on flash_info struct and SFDP */ - spi_nor_init_params(nor); - -- if (!mtd->name) -+#ifdef CONFIG_MTD_OF_PARTS -+ of_property_read_string(np, "linux,mtd-name", &of_mtd_name); -+#endif -+ if (of_mtd_name) -+ mtd->name = of_mtd_name; -+ else if (!mtd->name) - mtd->name = dev_name(dev); - mtd->priv = nor; - mtd->type = MTD_NORFLASH; ---- a/drivers/mtd/mtdcore.c -+++ b/drivers/mtd/mtdcore.c -@@ -779,6 +779,17 @@ out_error: - */ - static void mtd_set_dev_defaults(struct mtd_info *mtd) - { -+#ifdef CONFIG_MTD_OF_PARTS -+ const char __maybe_unused *of_mtd_name = NULL; -+ struct device_node *np; -+ -+ np = mtd_get_of_node(mtd); -+ if (np && !mtd->name) { -+ of_property_read_string(np, "linux,mtd-name", &of_mtd_name); -+ if (of_mtd_name) -+ mtd->name = of_mtd_name; -+ } else -+#endif - if (mtd->dev.parent) { - if (!mtd->owner && mtd->dev.parent->driver) - mtd->owner = mtd->dev.parent->driver->owner; diff --git a/target/linux/pistachio/patches-5.4/901-MIPS-DTS-img-marduk-Add-SPI-NAND-flash.patch b/target/linux/pistachio/patches-5.4/901-MIPS-DTS-img-marduk-Add-SPI-NAND-flash.patch deleted file mode 100644 index cd97e38e00..0000000000 --- a/target/linux/pistachio/patches-5.4/901-MIPS-DTS-img-marduk-Add-SPI-NAND-flash.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 0023c706f7e0f0f02bd48a63a2f3c04c839532ae Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens -Date: Sat, 15 Aug 2020 16:04:53 +0200 -Subject: [PATCH 901/904] MIPS: DTS: img: marduk: Add SPI NAND flash - -Add Gigadevice GD5F4GQ4UCYIGT SPI NAND flash to the device tree. - -The NAND flash chip is connected with quad SPI, but reading currently -fails in quad SPI mode. - -Signed-off-by: Hauke Mehrtens ---- - arch/mips/boot/dts/img/pistachio_marduk.dts | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/arch/mips/boot/dts/img/pistachio_marduk.dts -+++ b/arch/mips/boot/dts/img/pistachio_marduk.dts -@@ -88,6 +88,12 @@ - reg = <0>; - spi-max-frequency = <50000000>; - }; -+ -+ flash@1 { -+ compatible = "spi-nand"; -+ reg = <1>; -+ spi-max-frequency = <50000000>; -+ }; - }; - - &uart0 { diff --git a/target/linux/pistachio/patches-5.4/902-MIPS-DTS-img-marduk-Add-Cascoda-CA8210-6LoWPAN.patch b/target/linux/pistachio/patches-5.4/902-MIPS-DTS-img-marduk-Add-Cascoda-CA8210-6LoWPAN.patch deleted file mode 100644 index af1882e287..0000000000 --- a/target/linux/pistachio/patches-5.4/902-MIPS-DTS-img-marduk-Add-Cascoda-CA8210-6LoWPAN.patch +++ /dev/null @@ -1,43 +0,0 @@ -From b7700154d75e8d7c9a2022f09c2d5430137606fa Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens -Date: Sat, 15 Aug 2020 16:05:25 +0200 -Subject: [PATCH 902/904] MIPS: DTS: img: marduk: Add Cascoda CA8210 6LoWPAN - -Add Cascoda CA8210 6LoWPAN controller to device tree. - -Signed-off-by: Hauke Mehrtens ---- - arch/mips/boot/dts/img/pistachio_marduk.dts | 22 +++++++++++++++++++++ - 1 file changed, 22 insertions(+) - ---- a/arch/mips/boot/dts/img/pistachio_marduk.dts -+++ b/arch/mips/boot/dts/img/pistachio_marduk.dts -@@ -75,6 +75,28 @@ - VDD-supply = <&internal_dac_supply>; - }; - -+&spfi0 { -+ status = "okay"; -+ pinctrl-0 = <&spim0_pins>, <&spim0_cs0_alt_pin>, <&spim0_cs2_alt_pin>, <&spim0_cs3_alt_pin>, <&spim0_cs4_alt_pin>; -+ pinctrl-names = "default"; -+ -+ cs-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>, <&gpio0 2 GPIO_ACTIVE_HIGH>, -+ <&gpio1 12 GPIO_ACTIVE_HIGH>, <&gpio1 13 GPIO_ACTIVE_HIGH>; -+ -+ ca8210: ca8210@0 { -+ status = "okay"; -+ compatible = "cascoda,ca8210"; -+ reg = <0>; -+ spi-max-frequency = <4000000>; -+ spi-cpol; -+ reset-gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; -+ irq-gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>; -+ extclock-enable; -+ extclock-freq = <16000000>; -+ extclock-gpio = <2>; -+ }; -+}; -+ - &spfi1 { - status = "okay"; - diff --git a/target/linux/pistachio/patches-5.4/903-MIPS-DTS-img-marduk-Add-NXP-SC16IS752IPW.patch b/target/linux/pistachio/patches-5.4/903-MIPS-DTS-img-marduk-Add-NXP-SC16IS752IPW.patch deleted file mode 100644 index 0814658998..0000000000 --- a/target/linux/pistachio/patches-5.4/903-MIPS-DTS-img-marduk-Add-NXP-SC16IS752IPW.patch +++ /dev/null @@ -1,81 +0,0 @@ -From ad4eba0c36ce8af6ab9ea1bc163e4c1ac7c271c3 Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens -Date: Sat, 15 Aug 2020 16:09:02 +0200 -Subject: [PATCH 903/904] MIPS: DTS: img: marduk: Add NXP SC16IS752IPW - -Add NXP SC16IS752IPW SPI-UART controller to device tree. - -This controller drives 2 UARTs and 7 LEDs on the board. - -Signed-off-by: Hauke Mehrtens ---- - arch/mips/boot/dts/img/pistachio_marduk.dts | 51 +++++++++++++++++++++ - 1 file changed, 51 insertions(+) - ---- a/arch/mips/boot/dts/img/pistachio_marduk.dts -+++ b/arch/mips/boot/dts/img/pistachio_marduk.dts -@@ -46,6 +46,46 @@ - regulator-max-microvolt = <1800000>; - }; - -+ /* EXT clock from ca8210 is fed to sc16is752 */ -+ ca8210_ext_clk: ca8210-ext-clk { -+ compatible = "fixed-clock"; -+ #clock-cells = <0>; -+ clock-frequency = <16000000>; -+ clock-output-names = "ca8210_ext_clock"; -+ }; -+ -+ gpioleds { -+ compatible = "gpio-leds"; -+ user1 { -+ label = "marduk:red:user1"; -+ gpios = <&sc16is752 0 GPIO_ACTIVE_LOW>; -+ }; -+ user2 { -+ label = "marduk:red:user2"; -+ gpios = <&sc16is752 1 GPIO_ACTIVE_LOW>; -+ }; -+ user3 { -+ label = "marduk:red:user3"; -+ gpios = <&sc16is752 2 GPIO_ACTIVE_LOW>; -+ }; -+ user4 { -+ label = "marduk:red:user4"; -+ gpios = <&sc16is752 3 GPIO_ACTIVE_LOW>; -+ }; -+ user5 { -+ label = "marduk:red:user5"; -+ gpios = <&sc16is752 4 GPIO_ACTIVE_LOW>; -+ }; -+ user6 { -+ label = "marduk:red:user6"; -+ gpios = <&sc16is752 5 GPIO_ACTIVE_LOW>; -+ }; -+ user7 { -+ label = "marduk:red:user7"; -+ gpios = <&sc16is752 6 GPIO_ACTIVE_LOW>; -+ }; -+ }; -+ - leds { - compatible = "pwm-leds"; - heartbeat { -@@ -95,6 +135,17 @@ - extclock-freq = <16000000>; - extclock-gpio = <2>; - }; -+ -+ sc16is752: sc16is752@1 { -+ compatible = "nxp,sc16is752"; -+ reg = <1>; -+ clocks = <&ca8210_ext_clk>; -+ spi-max-frequency = <4000000>; -+ interrupt-parent = <&gpio0>; -+ interrupts = <11 IRQ_TYPE_EDGE_FALLING>; -+ gpio-controller; -+ #gpio-cells = <2>; -+ }; - }; - - &spfi1 { diff --git a/target/linux/pistachio/patches-5.4/904-MIPS-DTS-img-marduk-Add-partition-name.patch b/target/linux/pistachio/patches-5.4/904-MIPS-DTS-img-marduk-Add-partition-name.patch deleted file mode 100644 index ce41c67461..0000000000 --- a/target/linux/pistachio/patches-5.4/904-MIPS-DTS-img-marduk-Add-partition-name.patch +++ /dev/null @@ -1,27 +0,0 @@ -From ff0e950b605047bf50d470023e0fb2fc2003a0f0 Mon Sep 17 00:00:00 2001 -From: Ian Pozella -Date: Mon, 20 Feb 2017 10:38:07 +0000 -Subject: [PATCH 904/904] MIPS: DTS: img: marduk: Add partition name - -Signed-off-by: Ian Pozella ---- - arch/mips/boot/dts/img/pistachio_marduk.dts | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/arch/mips/boot/dts/img/pistachio_marduk.dts -+++ b/arch/mips/boot/dts/img/pistachio_marduk.dts -@@ -160,12 +160,14 @@ - compatible = "spansion,s25fl016k", "jedec,spi-nor"; - reg = <0>; - spi-max-frequency = <50000000>; -+ linux,mtd-name = "spi-nor"; - }; - - flash@1 { - compatible = "spi-nand"; - reg = <1>; - spi-max-frequency = <50000000>; -+ linux,mtd-name = "spi-nand"; - }; - }; - diff --git a/target/linux/pistachio/patches-5.4/905-MIPS-DTS-img-marduk-Add-led-aliases.patch b/target/linux/pistachio/patches-5.4/905-MIPS-DTS-img-marduk-Add-led-aliases.patch deleted file mode 100644 index c6cf5acbb8..0000000000 --- a/target/linux/pistachio/patches-5.4/905-MIPS-DTS-img-marduk-Add-led-aliases.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- a/arch/mips/boot/dts/img/pistachio_marduk.dts -+++ b/arch/mips/boot/dts/img/pistachio_marduk.dts -@@ -19,6 +19,11 @@ - ethernet0 = &enet; - spi0 = &spfi0; - spi1 = &spfi1; -+ -+ led-boot = &led_heartbeat; -+ led-failsafe = &led_heartbeat; -+ led-running = &led_heartbeat; -+ led-upgrade = &led_heartbeat; - }; - - chosen { -@@ -88,11 +93,10 @@ - - leds { - compatible = "pwm-leds"; -- heartbeat { -+ led_heartbeat: heartbeat { - label = "marduk:red:heartbeat"; - pwms = <&pwm 3 300000>; - max-brightness = <255>; -- linux,default-trigger = "heartbeat"; - }; - }; - From 84616a1725ad274852a7bb016c25653627505714 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 7 Nov 2021 17:14:16 +0100 Subject: [PATCH 32/53] gdb: Add explicit patch to libgmp Without giving the patch gdb does not compile on Arch Linux. Signed-off-by: Hauke Mehrtens --- package/devel/gdb/Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package/devel/gdb/Makefile b/package/devel/gdb/Makefile index 9e20644b04..f474502869 100644 --- a/package/devel/gdb/Makefile +++ b/package/devel/gdb/Makefile @@ -62,7 +62,11 @@ CONFIGURE_ARGS+= \ --disable-ubsan \ --disable-sim \ --disable-werror \ - --disable-source-highlight + --disable-source-highlight \ + --without-mpc \ + --without-mpfr \ + --without-isl \ + --with-libgmp-prefix=$(STAGING_DIR)/usr CONFIGURE_VARS+= \ ac_cv_search_tgetent="$(TARGET_LDFLAGS) -lncurses -lreadline" From 71af55ae2a9f5de71041936502c6a631349f33a7 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 7 Nov 2021 17:15:06 +0100 Subject: [PATCH 33/53] gdb: Make only full gdb depend on libgmp libgmp is only needed for the full gdb and not for the gdbserver application. Signed-off-by: Hauke Mehrtens --- package/devel/gdb/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/devel/gdb/Makefile b/package/devel/gdb/Makefile index f474502869..24569634a9 100644 --- a/package/devel/gdb/Makefile +++ b/package/devel/gdb/Makefile @@ -26,14 +26,14 @@ include $(INCLUDE_DIR)/nls.mk define Package/gdb/Default SECTION:=devel CATEGORY:=Development - DEPENDS:=+!USE_MUSL:libthread-db $(ICONV_DEPENDS) $(INTL_DEPENDS) +libgmp + DEPENDS:=+!USE_MUSL:libthread-db $(ICONV_DEPENDS) $(INTL_DEPENDS) URL:=https://www.gnu.org/software/gdb/ endef define Package/gdb $(call Package/gdb/Default) TITLE:=GNU Debugger - DEPENDS+=+libreadline +libncurses +zlib + DEPENDS+=+libreadline +libncurses +zlib +libgmp endef define Package/gdb/description From a50565157e61bb3e570b5b23dd6ff4c2e88ffee4 Mon Sep 17 00:00:00 2001 From: John Audia Date: Sat, 6 Nov 2021 12:34:16 -0400 Subject: [PATCH 34/53] kernel: bump 5.4 to 5.4.158 All patches automatically rebased. Signed-off-by: John Audia --- include/kernel-version.mk | 4 +-- ...ast-GRO-for-skbs-with-Ethernet-heade.patch | 2 +- ...-net-phy-add-core-phylib-sfp-support.patch | 4 +-- ...the-dst-buffer-to-of_get_mac_address.patch | 2 +- ...sfs-attributes-for-VPD-pages-0h-and-.patch | 10 +++---- .../generic/hack-5.4/721-phy_packets.patch | 2 +- ...ng-with-source-address-failed-policy.patch | 26 +++++++++---------- ...T-skip-GRO-for-foreign-MAC-addresses.patch | 10 +++---- ...dd-support-for-threaded-NAPI-polling.patch | 14 +++++----- .../811-pci_disable_usb_common_quirks.patch | 2 +- ...d-spi-nor-Add-support-for-mx25r3235f.patch | 2 +- .../105-ipq40xx-fix-sleep-clock.patch | 2 +- ...nor-Use-1-bit-mode-of-spansion-s25fs.patch | 2 +- ...move-EH-SINGLE_STEP_SET_FEATURE-impl.patch | 4 +-- ...host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch | 2 +- ...-host-xhci-add-.bus_suspend-override.patch | 2 +- .../302-spi-nor-add-gd25q512.patch | 2 +- .../990-NET-no-auto-carrier-off-support.patch | 4 +-- 18 files changed, 48 insertions(+), 48 deletions(-) diff --git a/include/kernel-version.mk b/include/kernel-version.mk index cb4d195588..246fa46542 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -6,10 +6,10 @@ ifdef CONFIG_TESTING_KERNEL KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) endif -LINUX_VERSION-5.4 = .156 +LINUX_VERSION-5.4 = .158 LINUX_VERSION-5.10 = .77 -LINUX_KERNEL_HASH-5.4.156 = 06fe73e4623fcf1b3c0d0e1983d8286a2ff5b8fffbcb2163f4c01696a1c377fe +LINUX_KERNEL_HASH-5.4.158 = 6e018fecdc8fc24553756e582d83b82d65b10a6b03ef36262a24911f839b8d59 LINUX_KERNEL_HASH-5.10.77 = d3b64edfc1dd7212e62ed733aeeb73d64ffd6d9658d322d44cddf1b41d5b8fc3 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) diff --git a/target/linux/generic/backport-5.4/700-v5.5-net-core-allow-fast-GRO-for-skbs-with-Ethernet-heade.patch b/target/linux/generic/backport-5.4/700-v5.5-net-core-allow-fast-GRO-for-skbs-with-Ethernet-heade.patch index eeea18bb9c..13f0d9d000 100644 --- a/target/linux/generic/backport-5.4/700-v5.5-net-core-allow-fast-GRO-for-skbs-with-Ethernet-heade.patch +++ b/target/linux/generic/backport-5.4/700-v5.5-net-core-allow-fast-GRO-for-skbs-with-Ethernet-heade.patch @@ -66,7 +66,7 @@ Signed-off-by: David S. Miller --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -5423,8 +5423,7 @@ static inline void skb_gro_reset_offset( +@@ -5429,8 +5429,7 @@ static inline void skb_gro_reset_offset( NAPI_GRO_CB(skb)->frag0 = NULL; NAPI_GRO_CB(skb)->frag0_len = 0; diff --git a/target/linux/generic/backport-5.4/737-v5.5-net-phy-add-core-phylib-sfp-support.patch b/target/linux/generic/backport-5.4/737-v5.5-net-phy-add-core-phylib-sfp-support.patch index 11da9540e9..edfe151725 100644 --- a/target/linux/generic/backport-5.4/737-v5.5-net-phy-add-core-phylib-sfp-support.patch +++ b/target/linux/generic/backport-5.4/737-v5.5-net-phy-add-core-phylib-sfp-support.patch @@ -24,7 +24,7 @@ Signed-off-by: Russell King #include #include #include -@@ -843,6 +844,9 @@ void phy_stop(struct phy_device *phydev) +@@ -863,6 +864,9 @@ void phy_stop(struct phy_device *phydev) mutex_lock(&phydev->lock); @@ -34,7 +34,7 @@ Signed-off-by: Russell King phydev->state = PHY_HALTED; mutex_unlock(&phydev->lock); -@@ -905,6 +909,9 @@ void phy_state_machine(struct work_struc +@@ -925,6 +929,9 @@ void phy_state_machine(struct work_struc old_state = phydev->state; diff --git a/target/linux/generic/backport-5.4/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch b/target/linux/generic/backport-5.4/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch index bf0ff9eddf..55149150c9 100644 --- a/target/linux/generic/backport-5.4/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch +++ b/target/linux/generic/backport-5.4/782-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch @@ -918,7 +918,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/nxp/lpc_eth.c +++ b/drivers/net/ethernet/nxp/lpc_eth.c -@@ -1350,9 +1350,7 @@ static int lpc_eth_drv_probe(struct plat +@@ -1349,9 +1349,7 @@ static int lpc_eth_drv_probe(struct plat __lpc_get_mac(pldat, ndev->dev_addr); if (!is_valid_ether_addr(ndev->dev_addr)) { diff --git a/target/linux/generic/backport-5.4/800-v5.5-scsi-core-Add-sysfs-attributes-for-VPD-pages-0h-and-.patch b/target/linux/generic/backport-5.4/800-v5.5-scsi-core-Add-sysfs-attributes-for-VPD-pages-0h-and-.patch index 438588f9f4..8c18d5df6d 100644 --- a/target/linux/generic/backport-5.4/800-v5.5-scsi-core-Add-sysfs-attributes-for-VPD-pages-0h-and-.patch +++ b/target/linux/generic/backport-5.4/800-v5.5-scsi-core-Add-sysfs-attributes-for-VPD-pages-0h-and-.patch @@ -41,9 +41,9 @@ Signed-off-by: Martin K. Petersen struct scsi_vpd *vpd_pg80 = NULL, *vpd_pg83 = NULL; + struct scsi_vpd *vpd_pg0 = NULL, *vpd_pg89 = NULL; unsigned long flags; + struct module *mod; - sdev = container_of(work, struct scsi_device, ew.work); -@@ -466,16 +467,24 @@ static void scsi_device_dev_release_user +@@ -469,16 +470,24 @@ static void scsi_device_dev_release_user sdev->request_queue = NULL; mutex_lock(&sdev->inquiry_mutex); @@ -68,7 +68,7 @@ Signed-off-by: Martin K. Petersen kfree(sdev->inquiry); kfree(sdev); -@@ -874,6 +883,8 @@ static struct bin_attribute dev_attr_vpd +@@ -883,6 +892,8 @@ static struct bin_attribute dev_attr_vpd sdev_vpd_pg_attr(pg83); sdev_vpd_pg_attr(pg80); @@ -77,7 +77,7 @@ Signed-off-by: Martin K. Petersen static ssize_t show_inquiry(struct file *filep, struct kobject *kobj, struct bin_attribute *bin_attr, -@@ -1206,12 +1217,18 @@ static umode_t scsi_sdev_bin_attr_is_vis +@@ -1215,12 +1226,18 @@ static umode_t scsi_sdev_bin_attr_is_vis struct scsi_device *sdev = to_scsi_device(dev); @@ -96,7 +96,7 @@ Signed-off-by: Martin K. Petersen return S_IRUGO; } -@@ -1254,8 +1271,10 @@ static struct attribute *scsi_sdev_attrs +@@ -1263,8 +1280,10 @@ static struct attribute *scsi_sdev_attrs }; static struct bin_attribute *scsi_sdev_bin_attrs[] = { diff --git a/target/linux/generic/hack-5.4/721-phy_packets.patch b/target/linux/generic/hack-5.4/721-phy_packets.patch index 836fc54ba2..bc9b3a4783 100644 --- a/target/linux/generic/hack-5.4/721-phy_packets.patch +++ b/target/linux/generic/hack-5.4/721-phy_packets.patch @@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau help --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3192,10 +3192,20 @@ static int xmit_one(struct sk_buff *skb, +@@ -3198,10 +3198,20 @@ static int xmit_one(struct sk_buff *skb, if (dev_nit_active(dev)) dev_queue_xmit_nit(skb, dev); diff --git a/target/linux/generic/pending-5.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-5.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 0b95eee494..06227cfafe 100644 --- a/target/linux/generic/pending-5.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/pending-5.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -110,7 +110,7 @@ Signed-off-by: Jonas Gorski return -EINVAL; --- a/net/ipv6/route.c +++ b/net/ipv6/route.c -@@ -93,6 +93,8 @@ static int ip6_pkt_discard(struct sk_bu +@@ -94,6 +94,8 @@ static int ip6_pkt_discard(struct sk_bu static int ip6_pkt_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb); static int ip6_pkt_prohibit(struct sk_buff *skb); static int ip6_pkt_prohibit_out(struct net *net, struct sock *sk, struct sk_buff *skb); @@ -119,7 +119,7 @@ Signed-off-by: Jonas Gorski static void ip6_link_failure(struct sk_buff *skb); static void ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk, struct sk_buff *skb, u32 mtu, -@@ -326,6 +328,18 @@ static const struct rt6_info ip6_prohibi +@@ -327,6 +329,18 @@ static const struct rt6_info ip6_prohibi .rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP), }; @@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski static const struct rt6_info ip6_blk_hole_entry_template = { .dst = { .__refcnt = ATOMIC_INIT(1), -@@ -1047,6 +1061,7 @@ static const int fib6_prop[RTN_MAX + 1] +@@ -1048,6 +1062,7 @@ static const int fib6_prop[RTN_MAX + 1] [RTN_BLACKHOLE] = -EINVAL, [RTN_UNREACHABLE] = -EHOSTUNREACH, [RTN_PROHIBIT] = -EACCES, @@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski [RTN_THROW] = -EAGAIN, [RTN_NAT] = -EINVAL, [RTN_XRESOLVE] = -EINVAL, -@@ -1084,6 +1099,10 @@ static void ip6_rt_init_dst_reject(struc +@@ -1085,6 +1100,10 @@ static void ip6_rt_init_dst_reject(struc rt->dst.output = ip6_pkt_prohibit_out; rt->dst.input = ip6_pkt_prohibit; break; @@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski case RTN_THROW: case RTN_UNREACHABLE: default: -@@ -4426,6 +4445,17 @@ static int ip6_pkt_prohibit_out(struct n +@@ -4434,6 +4453,17 @@ static int ip6_pkt_prohibit_out(struct n return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); } @@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -4906,7 +4936,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -4914,7 +4944,8 @@ static int rtm_to_fib6_config(struct sk_ if (rtm->rtm_type == RTN_UNREACHABLE || rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_PROHIBIT || @@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -6029,6 +6060,8 @@ static int ip6_route_dev_notify(struct n +@@ -6037,6 +6068,8 @@ static int ip6_route_dev_notify(struct n #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); @@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -6040,6 +6073,7 @@ static int ip6_route_dev_notify(struct n +@@ -6048,6 +6081,7 @@ static int ip6_route_dev_notify(struct n in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); #ifdef CONFIG_IPV6_MULTIPLE_TABLES in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); #endif } -@@ -6232,6 +6266,8 @@ static int __net_init ip6_route_net_init +@@ -6240,6 +6274,8 @@ static int __net_init ip6_route_net_init #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.fib6_has_custom_rules = false; @@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, sizeof(*net->ipv6.ip6_prohibit_entry), GFP_KERNEL); -@@ -6242,11 +6278,21 @@ static int __net_init ip6_route_net_init +@@ -6250,11 +6286,21 @@ static int __net_init ip6_route_net_init ip6_template_metrics, true); INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached); @@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, ip6_template_metrics, true); -@@ -6270,6 +6316,8 @@ out: +@@ -6278,6 +6324,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -6289,6 +6337,7 @@ static void __net_exit ip6_route_net_exi +@@ -6297,6 +6345,7 @@ static void __net_exit ip6_route_net_exi kfree(net->ipv6.ip6_null_entry); #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); @@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski kfree(net->ipv6.ip6_blk_hole_entry); #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); -@@ -6366,6 +6415,9 @@ void __init ip6_route_init_special_entri +@@ -6374,6 +6423,9 @@ void __init ip6_route_init_special_entri init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); diff --git a/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 4839ac5e70..e0540866c6 100644 --- a/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau __u16 tc_index; /* traffic control index */ --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -5489,6 +5489,9 @@ static enum gro_result dev_gro_receive(s +@@ -5495,6 +5495,9 @@ static enum gro_result dev_gro_receive(s int same_flow; int grow; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau if (netif_elide_gro(skb->dev)) goto normal; -@@ -7291,6 +7294,48 @@ static void __netdev_adjacent_dev_unlink +@@ -7297,6 +7300,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info, -@@ -7341,6 +7386,7 @@ static int __netdev_upper_dev_link(struc +@@ -7347,6 +7392,7 @@ static int __netdev_upper_dev_link(struc if (ret) return ret; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); ret = notifier_to_errno(ret); -@@ -7434,6 +7480,7 @@ void netdev_upper_dev_unlink(struct net_ +@@ -7440,6 +7486,7 @@ void netdev_upper_dev_unlink(struct net_ __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); -@@ -8164,6 +8211,7 @@ int dev_set_mac_address(struct net_devic +@@ -8170,6 +8217,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch b/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch index 7c9726b825..bdddd062eb 100644 --- a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch +++ b/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau static int netif_rx_internal(struct sk_buff *skb); static int call_netdevice_notifiers_info(unsigned long val, -@@ -5931,6 +5932,11 @@ void __napi_schedule(struct napi_struct +@@ -5937,6 +5938,11 @@ void __napi_schedule(struct napi_struct { unsigned long flags; @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau local_irq_save(flags); ____napi_schedule(this_cpu_ptr(&softnet_data), n); local_irq_restore(flags); -@@ -5982,6 +5988,10 @@ EXPORT_SYMBOL(napi_schedule_prep); +@@ -5988,6 +5994,10 @@ EXPORT_SYMBOL(napi_schedule_prep); */ void __napi_schedule_irqoff(struct napi_struct *n) { @@ -118,7 +118,7 @@ Signed-off-by: Felix Fietkau if (!IS_ENABLED(CONFIG_PREEMPT_RT)) ____napi_schedule(this_cpu_ptr(&softnet_data), n); else -@@ -6246,9 +6256,89 @@ static void init_gro_hash(struct napi_st +@@ -6252,9 +6262,89 @@ static void init_gro_hash(struct napi_st napi->gro_bitmask = 0; } @@ -208,7 +208,7 @@ Signed-off-by: Felix Fietkau INIT_LIST_HEAD(&napi->poll_list); hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED); napi->timer.function = napi_watchdog; -@@ -6265,6 +6355,7 @@ void netif_napi_add(struct net_device *d +@@ -6271,6 +6361,7 @@ void netif_napi_add(struct net_device *d #ifdef CONFIG_NETPOLL napi->poll_owner = -1; #endif @@ -216,7 +216,7 @@ Signed-off-by: Felix Fietkau set_bit(NAPI_STATE_SCHED, &napi->state); set_bit(NAPI_STATE_NPSVC, &napi->state); list_add_rcu(&napi->dev_list, &dev->napi_list); -@@ -6305,6 +6396,7 @@ static void flush_gro_hash(struct napi_s +@@ -6311,6 +6402,7 @@ static void flush_gro_hash(struct napi_s void netif_napi_del(struct napi_struct *napi) { might_sleep(); @@ -224,7 +224,7 @@ Signed-off-by: Felix Fietkau if (napi_hash_del(napi)) synchronize_net(); list_del_init(&napi->dev_list); -@@ -6317,50 +6409,18 @@ EXPORT_SYMBOL(netif_napi_del); +@@ -6323,50 +6415,18 @@ EXPORT_SYMBOL(netif_napi_del); static int napi_poll(struct napi_struct *n, struct list_head *repoll) { @@ -279,7 +279,7 @@ Signed-off-by: Felix Fietkau /* Some drivers may have called napi_schedule * prior to exhausting their budget. -@@ -10340,6 +10400,10 @@ static int __init net_dev_init(void) +@@ -10346,6 +10406,10 @@ static int __init net_dev_init(void) sd->backlog.weight = weight_p; } diff --git a/target/linux/generic/pending-5.4/811-pci_disable_usb_common_quirks.patch b/target/linux/generic/pending-5.4/811-pci_disable_usb_common_quirks.patch index 86f8a416e9..6e4584c8a1 100644 --- a/target/linux/generic/pending-5.4/811-pci_disable_usb_common_quirks.patch +++ b/target/linux/generic/pending-5.4/811-pci_disable_usb_common_quirks.patch @@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau #endif /* __LINUX_USB_PCI_QUIRKS_H */ --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h -@@ -485,7 +485,14 @@ extern int usb_hcd_pci_probe(struct pci_ +@@ -483,7 +483,14 @@ extern int usb_hcd_pci_probe(struct pci_ extern void usb_hcd_pci_remove(struct pci_dev *dev); extern void usb_hcd_pci_shutdown(struct pci_dev *dev); diff --git a/target/linux/ipq40xx/patches-5.4/0019-v5.6-mtd-spi-nor-Add-support-for-mx25r3235f.patch b/target/linux/ipq40xx/patches-5.4/0019-v5.6-mtd-spi-nor-Add-support-for-mx25r3235f.patch index f1be01c8e1..7202478610 100644 --- a/target/linux/ipq40xx/patches-5.4/0019-v5.6-mtd-spi-nor-Add-support-for-mx25r3235f.patch +++ b/target/linux/ipq40xx/patches-5.4/0019-v5.6-mtd-spi-nor-Add-support-for-mx25r3235f.patch @@ -18,7 +18,7 @@ Signed-off-by: Tudor Ambarus --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -2353,6 +2353,8 @@ static const struct flash_info spi_nor_i +@@ -2354,6 +2354,8 @@ static const struct flash_info spi_nor_i { "mx25u6435f", INFO(0xc22537, 0, 64 * 1024, 128, SECT_4K) }, { "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) }, { "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) }, diff --git a/target/linux/ipq40xx/patches-5.4/105-ipq40xx-fix-sleep-clock.patch b/target/linux/ipq40xx/patches-5.4/105-ipq40xx-fix-sleep-clock.patch index 97a36872e9..8afcbdcf98 100644 --- a/target/linux/ipq40xx/patches-5.4/105-ipq40xx-fix-sleep-clock.patch +++ b/target/linux/ipq40xx/patches-5.4/105-ipq40xx-fix-sleep-clock.patch @@ -15,7 +15,7 @@ Signed-off-by: Pavel Kubelun --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi +++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi -@@ -141,9 +141,9 @@ +@@ -140,9 +140,9 @@ }; clocks { diff --git a/target/linux/layerscape/patches-5.4/817-spi-0006-LF-20-2-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch b/target/linux/layerscape/patches-5.4/817-spi-0006-LF-20-2-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch index 9c83b4c7f7..8488bbaf50 100644 --- a/target/linux/layerscape/patches-5.4/817-spi-0006-LF-20-2-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch +++ b/target/linux/layerscape/patches-5.4/817-spi-0006-LF-20-2-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch @@ -11,7 +11,7 @@ Signed-off-by: Kuldeep Singh --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -2419,7 +2419,7 @@ static const struct flash_info spi_nor_i +@@ -2420,7 +2420,7 @@ static const struct flash_info spi_nor_i { "s25fl512s", INFO6(0x010220, 0x4d0080, 256 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_HAS_LOCK | USE_CLSR) }, diff --git a/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch b/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch index 3c05330b1a..d43626577b 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch @@ -335,7 +335,7 @@ Signed-off-by: Peter Chen int is_setup --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h -@@ -411,7 +411,10 @@ struct hc_driver { +@@ -409,7 +409,10 @@ struct hc_driver { int (*find_raw_port_number)(struct usb_hcd *, int); /* Call for power on/off the port if necessary */ int (*port_power)(struct usb_hcd *hcd, int portnum, bool enable); @@ -347,7 +347,7 @@ Signed-off-by: Peter Chen }; static inline int hcd_giveback_urb_in_bh(struct usb_hcd *hcd) -@@ -476,6 +479,14 @@ int usb_hcd_setup_local_mem(struct usb_h +@@ -474,6 +477,14 @@ int usb_hcd_setup_local_mem(struct usb_h struct platform_device; extern void usb_hcd_platform_shutdown(struct platform_device *dev); diff --git a/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch b/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch index 6af2f4b95e..361328cf05 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch @@ -174,7 +174,7 @@ Signed-off-by: Peter Chen * bursts that are required to move all packets in this TD. Only SuperSpeed --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -5390,6 +5390,7 @@ static const struct hc_driver xhci_hc_dr +@@ -5389,6 +5389,7 @@ static const struct hc_driver xhci_hc_dr .disable_usb3_lpm_timeout = xhci_disable_usb3_lpm_timeout, .find_raw_port_number = xhci_find_raw_port_number, .clear_tt_buffer_complete = xhci_clear_tt_buffer_complete, diff --git a/target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch b/target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch index 671397700f..f808b5b556 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch @@ -24,7 +24,7 @@ Signed-off-by: Peter Chen --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -5411,6 +5411,8 @@ void xhci_init_driver(struct hc_driver * +@@ -5410,6 +5410,8 @@ void xhci_init_driver(struct hc_driver * drv->check_bandwidth = over->check_bandwidth; if (over->reset_bandwidth) drv->reset_bandwidth = over->reset_bandwidth; diff --git a/target/linux/ramips/patches-5.4/302-spi-nor-add-gd25q512.patch b/target/linux/ramips/patches-5.4/302-spi-nor-add-gd25q512.patch index 3fbb0bf323..d5de4e45bc 100644 --- a/target/linux/ramips/patches-5.4/302-spi-nor-add-gd25q512.patch +++ b/target/linux/ramips/patches-5.4/302-spi-nor-add-gd25q512.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -2305,6 +2305,11 @@ static const struct flash_info spi_nor_i +@@ -2306,6 +2306,11 @@ static const struct flash_info spi_nor_i SPI_NOR_4B_OPCODES | SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) .fixups = &gd25q256_fixups, }, diff --git a/target/linux/ramips/patches-5.4/990-NET-no-auto-carrier-off-support.patch b/target/linux/ramips/patches-5.4/990-NET-no-auto-carrier-off-support.patch index ae1293c951..8b95eacab1 100644 --- a/target/linux/ramips/patches-5.4/990-NET-no-auto-carrier-off-support.patch +++ b/target/linux/ramips/patches-5.4/990-NET-no-auto-carrier-off-support.patch @@ -11,7 +11,7 @@ Signed-off-by: John Crispin --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -547,7 +547,10 @@ static int phy_check_link_status(struct +@@ -549,7 +549,10 @@ static int phy_check_link_status(struct phy_link_up(phydev); } else if (!phydev->link && phydev->state != PHY_NOLINK) { phydev->state = PHY_NOLINK; @@ -23,7 +23,7 @@ Signed-off-by: John Crispin } return 0; -@@ -927,7 +930,10 @@ void phy_state_machine(struct work_struc +@@ -947,7 +950,10 @@ void phy_state_machine(struct work_struc case PHY_HALTED: if (phydev->link) { phydev->link = 0; From 83f1d72dea093836d8c4f6a8a1ace7c56ac05059 Mon Sep 17 00:00:00 2001 From: John Audia Date: Sat, 6 Nov 2021 12:31:50 -0400 Subject: [PATCH 35/53] kernel: bump 5.10 to 5.10.78 All patches automatically rebased. Build system: x86_64 Build-tested: bcm2711/RPi4B Run-tested: bcm2711/RPi4B Signed-off-by: John Audia --- include/kernel-version.mk | 4 ++-- ...usb-add-plumbing-for-updating-interrupt-endpoint-int.patch | 4 ++-- ...xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch | 4 ++-- ...5-v5.13-0005-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch | 2 +- .../700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch | 2 +- ...701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch | 2 +- ...t-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch | 4 ++-- .../pending-5.10/811-pci_disable_usb_common_quirks.patch | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 246fa46542..8cf7c9f289 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -7,10 +7,10 @@ ifdef CONFIG_TESTING_KERNEL endif LINUX_VERSION-5.4 = .158 -LINUX_VERSION-5.10 = .77 +LINUX_VERSION-5.10 = .78 LINUX_KERNEL_HASH-5.4.158 = 6e018fecdc8fc24553756e582d83b82d65b10a6b03ef36262a24911f839b8d59 -LINUX_KERNEL_HASH-5.10.77 = d3b64edfc1dd7212e62ed733aeeb73d64ffd6d9658d322d44cddf1b41d5b8fc3 +LINUX_KERNEL_HASH-5.10.78 = be806c98e222ea581530727a8e83b0b96fcd678afd12944eb530e58776a6050f remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) diff --git a/target/linux/bcm27xx/patches-5.10/950-0138-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch b/target/linux/bcm27xx/patches-5.10/950-0138-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch index 43da930871..a168528edf 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0138-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0138-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch @@ -81,7 +81,7 @@ Signed-off-by: Jonathan Bell extern int usb_driver_set_configuration(struct usb_device *udev, int config); --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h -@@ -384,6 +384,11 @@ struct hc_driver { +@@ -382,6 +382,11 @@ struct hc_driver { * or bandwidth constraints. */ void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); @@ -93,7 +93,7 @@ Signed-off-by: Jonathan Bell /* Returns the hardware-chosen device address */ int (*address_device)(struct usb_hcd *, struct usb_device *udev); /* prepares the hardware to send commands to the device */ -@@ -445,6 +450,8 @@ extern void usb_hcd_unmap_urb_setup_for_ +@@ -443,6 +448,8 @@ extern void usb_hcd_unmap_urb_setup_for_ extern void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *); extern void usb_hcd_flush_endpoint(struct usb_device *udev, struct usb_host_endpoint *ep); diff --git a/target/linux/bcm27xx/patches-5.10/950-0139-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/target/linux/bcm27xx/patches-5.10/950-0139-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch index e328860374..dfd6e89b3d 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0139-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0139-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch @@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1468,6 +1468,103 @@ command_cleanup: +@@ -1467,6 +1467,103 @@ command_cleanup: } /* @@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it */ -@@ -5367,6 +5464,7 @@ static const struct hc_driver xhci_hc_dr +@@ -5366,6 +5463,7 @@ static const struct hc_driver xhci_hc_dr .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, diff --git a/target/linux/bcm4908/patches-5.10/075-v5.13-0005-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch b/target/linux/bcm4908/patches-5.10/075-v5.13-0005-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch index ea4234761d..1766f5f432 100644 --- a/target/linux/bcm4908/patches-5.10/075-v5.13-0005-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch +++ b/target/linux/bcm4908/patches-5.10/075-v5.13-0005-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch @@ -33,7 +33,7 @@ Signed-off-by: David S. Miller break; default: switch (port) { -@@ -1223,9 +1228,7 @@ static const u16 bcm_sf2_4908_reg_offset +@@ -1227,9 +1232,7 @@ static const u16 bcm_sf2_4908_reg_offset [REG_PHY_REVISION] = 0x14, [REG_SPHY_CNTRL] = 0x24, [REG_CROSSBAR] = 0xc8, diff --git a/target/linux/bcm4908/patches-5.10/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch b/target/linux/bcm4908/patches-5.10/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch index c8d362df4a..a47ae2f738 100644 --- a/target/linux/bcm4908/patches-5.10/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch +++ b/target/linux/bcm4908/patches-5.10/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch @@ -29,7 +29,7 @@ Signed-off-by: Rafał Miłecki --- a/drivers/net/dsa/bcm_sf2.c +++ b/drivers/net/dsa/bcm_sf2.c -@@ -1484,10 +1484,14 @@ static int bcm_sf2_sw_probe(struct platf +@@ -1488,10 +1488,14 @@ static int bcm_sf2_sw_probe(struct platf rev = reg_readl(priv, REG_PHY_REVISION); priv->hw_params.gphy_rev = rev & PHY_REVISION_MASK; diff --git a/target/linux/bcm4908/patches-5.10/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch b/target/linux/bcm4908/patches-5.10/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch index 9449cf9e5c..be21421cf1 100644 --- a/target/linux/bcm4908/patches-5.10/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch +++ b/target/linux/bcm4908/patches-5.10/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch @@ -15,7 +15,7 @@ Signed-off-by: Rafał Miłecki --- a/drivers/net/dsa/bcm_sf2.c +++ b/drivers/net/dsa/bcm_sf2.c -@@ -1498,6 +1498,12 @@ static int bcm_sf2_sw_probe(struct platf +@@ -1502,6 +1502,12 @@ static int bcm_sf2_sw_probe(struct platf priv->hw_params.core_rev >> 8, priv->hw_params.core_rev & 0xff, priv->irq0, priv->irq1); diff --git a/target/linux/generic/backport-5.10/732-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch b/target/linux/generic/backport-5.10/732-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch index 8e242bfffc..340efbd7bc 100644 --- a/target/linux/generic/backport-5.10/732-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch +++ b/target/linux/generic/backport-5.10/732-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch @@ -933,7 +933,7 @@ Signed-off-by: David S. Miller } --- a/drivers/net/ethernet/microchip/lan743x_main.c +++ b/drivers/net/ethernet/microchip/lan743x_main.c -@@ -2835,7 +2835,6 @@ static int lan743x_pcidev_probe(struct p +@@ -2837,7 +2837,6 @@ static int lan743x_pcidev_probe(struct p { struct lan743x_adapter *adapter = NULL; struct net_device *netdev = NULL; @@ -941,7 +941,7 @@ Signed-off-by: David S. Miller int ret = -ENODEV; netdev = devm_alloc_etherdev(&pdev->dev, -@@ -2852,9 +2851,7 @@ static int lan743x_pcidev_probe(struct p +@@ -2854,9 +2853,7 @@ static int lan743x_pcidev_probe(struct p NETIF_MSG_IFDOWN | NETIF_MSG_TX_QUEUED; netdev->max_mtu = LAN743X_MAX_FRAME_SIZE; diff --git a/target/linux/generic/pending-5.10/811-pci_disable_usb_common_quirks.patch b/target/linux/generic/pending-5.10/811-pci_disable_usb_common_quirks.patch index cf52fa36ca..42a8397839 100644 --- a/target/linux/generic/pending-5.10/811-pci_disable_usb_common_quirks.patch +++ b/target/linux/generic/pending-5.10/811-pci_disable_usb_common_quirks.patch @@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau #endif /* __LINUX_USB_PCI_QUIRKS_H */ --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h -@@ -486,7 +486,14 @@ extern int usb_hcd_pci_probe(struct pci_ +@@ -484,7 +484,14 @@ extern int usb_hcd_pci_probe(struct pci_ extern void usb_hcd_pci_remove(struct pci_dev *dev); extern void usb_hcd_pci_shutdown(struct pci_dev *dev); From d8b33dad0bb761a2d8651a4d10cff114879eb358 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 8 Nov 2021 14:48:36 +0100 Subject: [PATCH 36/53] dnsmasq: add support for monitoring and modifying dns lookup results via ubus The monitoring functionality will be used for dns rule support in qosify Signed-off-by: Felix Fietkau --- .../dnsmasq/patches/200-ubus_dns.patch | 270 ++++++++++++++++++ 1 file changed, 270 insertions(+) create mode 100644 package/network/services/dnsmasq/patches/200-ubus_dns.patch diff --git a/package/network/services/dnsmasq/patches/200-ubus_dns.patch b/package/network/services/dnsmasq/patches/200-ubus_dns.patch new file mode 100644 index 0000000000..506a413ae2 --- /dev/null +++ b/package/network/services/dnsmasq/patches/200-ubus_dns.patch @@ -0,0 +1,270 @@ +--- a/src/dnsmasq.h ++++ b/src/dnsmasq.h +@@ -1564,14 +1564,26 @@ void emit_dbus_signal(int action, struct + + /* ubus.c */ + #ifdef HAVE_UBUS ++struct blob_attr; ++typedef void (*ubus_dns_notify_cb)(struct blob_attr *msg, void *priv); ++ + char *ubus_init(void); + void set_ubus_listeners(void); + void check_ubus_listeners(void); ++void drop_ubus_listeners(void); ++struct blob_buf *ubus_dns_notify_prepare(void); ++int ubus_dns_notify(const char *type, ubus_dns_notify_cb cb, void *priv); + void ubus_event_bcast(const char *type, const char *mac, const char *ip, const char *name, const char *interface); + # ifdef HAVE_CONNTRACK + void ubus_event_bcast_connmark_allowlist_refused(u32 mark, const char *name); + void ubus_event_bcast_connmark_allowlist_resolved(u32 mark, const char *pattern, const char *ip, u32 ttl); + # endif ++#else ++struct blob_buf; ++static inline struct blob_buf *ubus_dns_notify_prepare(void) ++{ ++ return NULL; ++} + #endif + + /* ipset.c */ +--- a/src/rfc1035.c ++++ b/src/rfc1035.c +@@ -13,8 +13,10 @@ + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ +- + #include "dnsmasq.h" ++#ifdef HAVE_UBUS ++#include ++#endif + + int extract_name(struct dns_header *header, size_t plen, unsigned char **pp, + char *name, int isExtract, int extrabytes) +@@ -394,9 +396,64 @@ static int private_net6(struct in6_addr + ((u32 *)a)[0] == htonl(0x20010db8); /* RFC 6303 4.6 */ + } + ++#ifdef HAVE_UBUS ++static void ubus_dns_doctor_cb(struct blob_attr *msg, void *priv) ++{ ++ static const struct blobmsg_policy policy = { ++ .name = "address", ++ .type = BLOBMSG_TYPE_STRING, ++ }; ++ struct blob_attr *val; ++ char **dest = priv; ++ ++ blobmsg_parse(&policy, 1, &val, blobmsg_data(msg), blobmsg_data_len(msg)); ++ if (val) ++ *dest = blobmsg_get_string(val); ++} ++ ++static bool ubus_dns_doctor(const char *name, int ttl, void *p, int af) ++{ ++ struct blob_buf *b; ++ char *addr; ++ ++ if (!name) ++ return false; ++ ++ b = ubus_dns_notify_prepare(); ++ if (!b) ++ return false; ++ ++ blobmsg_add_string(b, "name", name); ++ ++ blobmsg_add_u32(b, "ttl", ttl); ++ ++ blobmsg_add_string(b, "type", af == AF_INET6 ? "AAAA" : "A"); ++ ++ addr = blobmsg_alloc_string_buffer(b, "address", INET6_ADDRSTRLEN); ++ if (!addr) ++ return false; ++ ++ inet_ntop(af, p, addr, INET6_ADDRSTRLEN); ++ blobmsg_add_string_buffer(b); ++ ++ addr = NULL; ++ ubus_dns_notify("dns_result", ubus_dns_doctor_cb, &addr); ++ ++ if (!addr) ++ return false; ++ ++ return inet_pton(af, addr, p) == 1; ++} ++#else ++static bool ubus_dns_doctor(const char *name, int ttl, void *p, int af) ++{ ++ return false; ++} ++#endif ++ + static unsigned char *do_doctor(unsigned char *p, int count, struct dns_header *header, size_t qlen, int *doctored) + { +- int i, qtype, qclass, rdlen; ++ int i, qtype, qclass, rdlen, ttl; + + for (i = count; i != 0; i--) + { +@@ -405,7 +462,7 @@ static unsigned char *do_doctor(unsigned + + GETSHORT(qtype, p); + GETSHORT(qclass, p); +- p += 4; /* ttl */ ++ GETLONG(ttl, p); /* ttl */ + GETSHORT(rdlen, p); + + if (qclass == C_IN && qtype == T_A) +@@ -416,6 +473,9 @@ static unsigned char *do_doctor(unsigned + if (!CHECK_LEN(header, p, qlen, INADDRSZ)) + return 0; + ++ if (ubus_dns_doctor(daemon->namebuff, ttl, p, AF_INET)) ++ *doctored = 1; ++ + /* alignment */ + memcpy(&addr, p, INADDRSZ); + +@@ -433,13 +493,22 @@ static unsigned char *do_doctor(unsigned + addr.s_addr &= ~doctor->mask.s_addr; + addr.s_addr |= (doctor->out.s_addr & doctor->mask.s_addr); + /* Since we munged the data, the server it came from is no longer authoritative */ +- header->hb3 &= ~HB3_AA; + *doctored = 1; + memcpy(p, &addr, INADDRSZ); + break; + } + } +- ++ else if (qclass == C_IN && qtype == T_AAAA) ++ { ++ if (!CHECK_LEN(header, p, qlen, IN6ADDRSZ)) ++ return 0; ++ ++ if (ubus_dns_doctor(daemon->namebuff, ttl, p, AF_INET6)) ++ *doctored = 1; ++ } ++ ++ if (*doctored) ++ header->hb3 &= ~HB3_AA; + if (!ADD_RDLEN(header, p, qlen, rdlen)) + return 0; /* bad packet */ + } +@@ -563,7 +632,7 @@ int extract_addresses(struct dns_header + cache_start_insert(); + + /* find_soa is needed for dns_doctor side effects, so don't call it lazily if there are any. */ +- if (daemon->doctors || option_bool(OPT_DNSSEC_VALID)) ++ if (daemon->doctors || option_bool(OPT_DNSSEC_VALID) || ubus_dns_notify_prepare()) + { + searched_soa = 1; + ttl = find_soa(header, qlen, doctored); +--- a/src/ubus.c ++++ b/src/ubus.c +@@ -72,6 +72,14 @@ static struct ubus_object ubus_object = + .subscribe_cb = ubus_subscribe_cb, + }; + ++static struct ubus_object_type ubus_dns_object_type = ++ { .name = "dnsmasq.dns" }; ++ ++static struct ubus_object ubus_dns_object = { ++ .name = "dnsmasq.dns", ++ .type = &ubus_dns_object_type, ++}; ++ + static void ubus_subscribe_cb(struct ubus_context *ctx, struct ubus_object *obj) + { + (void)ctx; +@@ -112,6 +120,8 @@ char *ubus_init() + + ubus_object.name = daemon->ubus_name; + ret = ubus_add_object(ubus, &ubus_object); ++ if (!ret) ++ ret = ubus_add_object(ubus, &ubus_dns_object); + if (ret) + { + ubus_destroy(ubus); +@@ -181,6 +191,17 @@ void check_ubus_listeners() + } \ + } while (0) + ++void drop_ubus_listeners() ++{ ++ struct ubus_context *ubus = (struct ubus_context *)daemon->ubus; ++ ++ if (!ubus) ++ return; ++ ++ ubus_free(ubus); ++ ubus = NULL; ++} ++ + static int ubus_handle_metrics(struct ubus_context *ctx, struct ubus_object *obj, + struct ubus_request_data *req, const char *method, + struct blob_attr *msg) +@@ -328,6 +349,50 @@ fail: + } \ + } while (0) + ++struct blob_buf *ubus_dns_notify_prepare(void) ++{ ++ struct ubus_context *ubus = (struct ubus_context *)daemon->ubus; ++ ++ if (!ubus || !ubus_dns_object.has_subscribers) ++ return NULL; ++ ++ blob_buf_init(&b, 0); ++ return &b; ++} ++ ++struct ubus_dns_notify_req { ++ struct ubus_notify_request req; ++ ubus_dns_notify_cb cb; ++ void *priv; ++}; ++ ++static void dns_notify_cb(struct ubus_notify_request *req, int type, struct blob_attr *msg) ++{ ++ struct ubus_dns_notify_req *dreq = container_of(req, struct ubus_dns_notify_req, req); ++ ++ dreq->cb(msg, dreq->priv); ++} ++ ++int ubus_dns_notify(const char *type, ubus_dns_notify_cb cb, void *priv) ++{ ++ struct ubus_context *ubus = (struct ubus_context *)daemon->ubus; ++ struct ubus_dns_notify_req dreq; ++ int ret; ++ ++ if (!ubus || !ubus_dns_object.has_subscribers) ++ return 0; ++ ++ ret = ubus_notify_async(ubus, &ubus_dns_object, type, b.head, &dreq.req); ++ if (ret) ++ return ret; ++ ++ dreq.req.data_cb = dns_notify_cb; ++ dreq.cb = cb; ++ dreq.priv = priv; ++ ++ return ubus_complete_request(ubus, &dreq.req.req, 100); ++} ++ + void ubus_event_bcast(const char *type, const char *mac, const char *ip, const char *name, const char *interface) + { + struct ubus_context *ubus = (struct ubus_context *)daemon->ubus; +--- a/src/dnsmasq.c ++++ b/src/dnsmasq.c +@@ -1972,6 +1972,10 @@ static void check_dns_listeners(time_t n + daemon->pipe_to_parent = pipefd[1]; + } + ++#ifdef HAVE_UBUS ++ drop_ubus_listeners(); ++#endif ++ + /* start with no upstream connections. */ + for (s = daemon->servers; s; s = s->next) + s->tcpfd = -1; From afb9c24d906f300808964bad238cbd3dd94e739d Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 8 Nov 2021 15:04:57 +0100 Subject: [PATCH 37/53] qosify: update to the latest version 2ca7352543da map: make a helper function for freeing entries 411432ec853b map: add support for adding dns regex patterns 14803cb559d8 ubus: remove unused enum a0740172eda6 ubus: add api for providing dns lookup results for dns regex rules 406fbf478e87 ubus: add support for dynamically adding dns based rules 5fc91183d60a README: mention dns regex entries 3ed8c3eb1a3b README: document mapping file syntax 91ce2e77d302 map: introduce low effort codepoint from RFC8622 5ff14acca0e7 interface: enable NAT on interfaces by default e70f70e496d7 README: fix typo f25ded617478 README: fix another typo 675238bc2ce5 loader: always reinitialize programs 010eea0d98c3 map: improve timeout handling of IP entries 7ef54a7f04a0 map: add DF codepoint 6f7fbe698555 map: increase active timeout to 300 60e06a579a13 qosify-bpf: inline check_flow() to ensure that it is jited f5ae89e8d869 ubus: subscribe to dnsmasq.dns for dns lookup results Signed-off-by: Felix Fietkau --- package/network/config/qosify/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/network/config/qosify/Makefile b/package/network/config/qosify/Makefile index 198772ce36..a302b7b264 100644 --- a/package/network/config/qosify/Makefile +++ b/package/network/config/qosify/Makefile @@ -11,9 +11,9 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=qosify PKG_SOURCE_URL=$(PROJECT_GIT)/project/qosify.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2021-11-01 -PKG_SOURCE_VERSION:=52a57bf0e4eb2c6419be304981c5c94adb32d037 -PKG_MIRROR_HASH:=11a5f2650cf9c4979455ca230eb9ceddb035e6914bda78cf75b8dd7ebaff65d3 +PKG_SOURCE_DATE:=2021-11-08 +PKG_SOURCE_VERSION:=f5ae89e8d8699a144bbdf16da859185f31d272f6 +PKG_MIRROR_HASH:=91831ec8c03c091431b7207b8b5582d396455a027c05c26a9b563fdd26f58186 PKG_LICENSE:=GPL-2.0 PKG_MAINTAINER:=Felix Fietkau From 32ba52e2174d0c12fa476c3295daca12a864e547 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Fri, 29 Oct 2021 12:14:16 +0100 Subject: [PATCH 38/53] rpcd: reload rpcd on installation of rpcd-mod-* When installing additional rpcd modules, a restart of rpcd is required. This often confuses users as even after installing rpcd-mod-rpcsys the relevant ubus objects are still missing until rpcd has been reloaded (or the system has been rebooted, obviously). Let rpcd-mod-* reload rpcd as post-install action. Signed-off-by: Daniel Golle --- package/system/rpcd/Makefile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/package/system/rpcd/Makefile b/package/system/rpcd/Makefile index 2827e955db..9b1f239623 100644 --- a/package/system/rpcd/Makefile +++ b/package/system/rpcd/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=rpcd -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/rpcd.git @@ -84,6 +84,11 @@ define BuildPlugin $(3) endef + define Package/rpcd-mod-$(1)/postinst +#!/bin/sh +[ -n "$$$${IPKG_INSTROOT}" ] || /etc/init.d/rpcd reload + endef + define Package/rpcd-mod-$(1)/install $(INSTALL_DIR) $$(1)/usr/lib/rpcd $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(1).so $$(1)/usr/lib/rpcd/ From 4cd97e4760899172a1d6339ea5644992775e504e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Sun, 7 Nov 2021 14:45:14 +0100 Subject: [PATCH 39/53] bcm47xx: relocate LZMA loader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kernel 5.10 grew bigger than 5.4 so we need to bump BZ_TEXT_START to allow lzma loader hanel its size. At the same time BZ_STACK_START needs to be increased to avoid overwriting the stack. For a reference see: d5cf4a5aa4a3 ("brcm47xx: relocate loader to higher address") 2909a4b78e2b ("brcm47xx: relocate the stack in loader") Cc: Hauke Mehrtens Signed-off-by: Rafał Miłecki Acked-by: Hauke Mehrtens --- target/linux/bcm47xx/image/lzma-loader/src/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/linux/bcm47xx/image/lzma-loader/src/Makefile b/target/linux/bcm47xx/image/lzma-loader/src/Makefile index a08fc05b9f..a3e7ae1c92 100644 --- a/target/linux/bcm47xx/image/lzma-loader/src/Makefile +++ b/target/linux/bcm47xx/image/lzma-loader/src/Makefile @@ -18,8 +18,8 @@ # TEXT_START := 0x80001000 -BZ_TEXT_START := 0x80600000 -BZ_STACK_START := 0x80700000 +BZ_TEXT_START := 0x80700000 +BZ_STACK_START := 0x80800000 OBJCOPY := $(CROSS_COMPILE)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S From 6cdac994012003065a7040ceba3186f80db3cdbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Mon, 8 Nov 2021 15:55:40 +0100 Subject: [PATCH 40/53] bcm47xx: fix bgmac regression present in 5.10 kernel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes: [ 2.548098] bgmac_bcma bcma0:1: Failed to register fixed PHY device [ 2.554584] bgmac_bcma bcma0:1: Cannot connect to phy and downstream (swconfig-based) b53 driver failing to load. Signed-off-by: Rafał Miłecki --- ...t-to-PHY-even-if-it-is-BGMAC_PHY_NOR.patch | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 target/linux/bcm47xx/patches-5.10/700-net-bgmac-connect-to-PHY-even-if-it-is-BGMAC_PHY_NOR.patch diff --git a/target/linux/bcm47xx/patches-5.10/700-net-bgmac-connect-to-PHY-even-if-it-is-BGMAC_PHY_NOR.patch b/target/linux/bcm47xx/patches-5.10/700-net-bgmac-connect-to-PHY-even-if-it-is-BGMAC_PHY_NOR.patch new file mode 100644 index 0000000000..2fcfbb7438 --- /dev/null +++ b/target/linux/bcm47xx/patches-5.10/700-net-bgmac-connect-to-PHY-even-if-it-is-BGMAC_PHY_NOR.patch @@ -0,0 +1,42 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Sun, 7 Nov 2021 14:20:40 +0100 +Subject: [PATCH] net: bgmac: connect to PHY even if it is BGMAC_PHY_NOREGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Recent bgmac change was meant to just fix a race between "Generic PHY" +and "bcm53xx" drivers after -EPROBE_DEFER. It modified bgmac to use +phy_connect() only if there is a real PHY device connected. + +That change broke bgmac on bcm47xx. bcma_phy_connect() now registers a +fixed PHY with the bgmac_phy_connect_direct(). That fails as another +fixed PHY (also using address 0) is already registered - by bcm47xx arch +code bcm47xx_register_bus_complete(). + +This change brings origial behaviour. It connects Ethernet interface +with pseudo-PHY (switch device) and adjusts Ethernet interface link to +match connected switch. + +This fixes: +[ 2.548098] bgmac_bcma bcma0:1: Failed to register fixed PHY device +[ 2.554584] bgmac_bcma bcma0:1: Cannot connect to phy + +Fixes: b5375509184d ("net: bgmac: improve handling PHY") +Link: https://lore.kernel.org/netdev/3639116e-9292-03ca-b9d9-d741118a4541@gmail.com/T/#u +Signed-off-by: Rafał Miłecki +--- + drivers/net/ethernet/broadcom/bgmac-bcma.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/net/ethernet/broadcom/bgmac-bcma.c ++++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c +@@ -94,7 +94,7 @@ static int bcma_phy_connect(struct bgmac + return 0; + + /* Connect to the PHY */ +- if (bgmac->mii_bus && bgmac->phyaddr != BGMAC_PHY_NOREGS) { ++ if (bgmac->mii_bus) { + snprintf(bus_id, sizeof(bus_id), PHY_ID_FMT, bgmac->mii_bus->id, + bgmac->phyaddr); + phy_dev = phy_connect(bgmac->net_dev, bus_id, bgmac_adjust_link, From 29f12fefc01039e9a14fade54b24e5ba8be35f9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Mon, 8 Nov 2021 15:56:39 +0100 Subject: [PATCH 41/53] bcm47xx: switch to kernel 5.10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rafał Miłecki --- target/linux/bcm47xx/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target/linux/bcm47xx/Makefile b/target/linux/bcm47xx/Makefile index 729ca1b573..3a48201851 100644 --- a/target/linux/bcm47xx/Makefile +++ b/target/linux/bcm47xx/Makefile @@ -10,8 +10,7 @@ BOARDNAME:=Broadcom BCM47xx/53xx (MIPS) FEATURES:=squashfs usb SUBTARGETS:=generic mips74k legacy -KERNEL_PATCHVER:=5.4 -KERNEL_TESTING_PATCHVER:=5.10 +KERNEL_PATCHVER:=5.10 define Target/Description Build firmware images for Broadcom based BCM47xx/53xx routers with MIPS CPU, *not* ARM. From a02c971dff934a11ddadf7ffd850dabcab5a3cdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Wed, 3 Nov 2021 18:12:05 +0100 Subject: [PATCH 42/53] bcm4908: start work on images for devices using U-Boot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New BCM4908 family based routers will use U-Boot bootloader. That will require using a totally different firmware format. Kernel has to be put in a FIT image. OpenWrt has some helpers for generating .its files but they don't fit BCM4908 requirements and there is no simple way of extending any of them. The best solution seems to be storing an .its template. BCM4908 bootfs may: 1. contain extra binaries (other than kernel & DTB) 2. include multiple DTB files 3. store device specific U-Boot configurations with custom properties Such setups are too complex to generate using shell script. Raw .its file on the other hand seems quire clean & reasonable. Signed-off-by: Rafał Miłecki --- target/linux/bcm4908/image/Makefile | 11 ++++++++ target/linux/bcm4908/image/bootfs-generic.its | 25 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 target/linux/bcm4908/image/bootfs-generic.its diff --git a/target/linux/bcm4908/image/Makefile b/target/linux/bcm4908/image/Makefile index 426db4c5a6..929e626e0e 100644 --- a/target/linux/bcm4908/image/Makefile +++ b/target/linux/bcm4908/image/Makefile @@ -6,6 +6,17 @@ include $(INCLUDE_DIR)/image.mk DEVICE_VARS += ASUS_PRODUCTID ASUS_BUILD_NO ASUS_FW_REV ASUS_EXT_NO DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_REGION +define Image/Prepare + cp bootfs-generic.its $(KDIR)/ +endef + +define Build/bootfs + cat $@ | $(STAGING_DIR_HOST)/bin/lzma e -eos -si -so > $@.tmp + mv $@.tmp $@ + sed -i "s=\$${kernel}=$@=" $(KDIR)/bootfs-generic.its + PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/bootfs-generic.its $(KDIR)/bootfs-generic.itb +endef + define Build/bcm4908asus $(STAGING_DIR_HOST)/bin/bcm4908asus create -i $@ \ -p $(ASUS_PRODUCTID) -b $(ASUS_BUILD_NO) -f $(ASUS_FW_REV) \ diff --git a/target/linux/bcm4908/image/bootfs-generic.its b/target/linux/bcm4908/image/bootfs-generic.its new file mode 100644 index 0000000000..d2f19ed752 --- /dev/null +++ b/target/linux/bcm4908/image/bootfs-generic.its @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/dts-v1/; + +/ { + description = "OpenWrt bootfs image"; + #address-cells = <1>; + + images { + kernel { + description = "Linux kernel"; + data = /incbin/("${kernel}"); + type = "kernel"; + os = "linux"; + arch = "arm64"; + compression = "lzma"; + load = <0x80000>; + entry = <0x80000>; + + hash-1 { + algo = "sha256"; + }; + }; + }; +}; From b8bbac951c42c6639a66696ade4477aa2be6aa54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Mon, 25 Oct 2021 10:17:15 +0200 Subject: [PATCH 43/53] layerscape: mkits-multiple-config: fail on invalid arguments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fail if arguments couldn't be parsed and print unrecognized part. It's important when running it from script with dynamic values. Missing value could result in skipping argument and silent failures (unexpected its). Signed-off-by: Rafał Miłecki --- target/linux/layerscape/image/mkits-multiple-config.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/linux/layerscape/image/mkits-multiple-config.sh b/target/linux/layerscape/image/mkits-multiple-config.sh index 68870686c5..b2d8f4ef7f 100755 --- a/target/linux/layerscape/image/mkits-multiple-config.sh +++ b/target/linux/layerscape/image/mkits-multiple-config.sh @@ -198,6 +198,11 @@ parse_args() { usage;; esac done + shift $(($OPTIND - 1)) + [ $# -gt 0 ] && { + echo "Failed to parse all passed arguments (unrecognized: \"$@\")" + exit 1 + } [ -n "${OUTPUT}" ] || OUTPUT=fitimage.its [ -n "${VERSION}" ] || VERSION="Unknown" [ -n "${ARCH}" ] || ARCH=arm From 406c5002b842e293a9deb053a1479eefcae0f431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Thu, 16 Sep 2021 08:39:50 +0200 Subject: [PATCH 44/53] bcm53xx: drop downstream patch for Buffalo WZR-1750DHP button MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch never received a proper description and was never sent upstream as supposed. It was meant to be handled in 2015-2018 so it should be safe to assume noone really understands it or care. Cc: Felix Fietkau Signed-off-by: Rafał Miłecki --- ...power-button-for-Buffalo-WZR-1750DHP.patch | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 target/linux/bcm53xx/patches-5.10/311-ARM-BCM5301X-Add-power-button-for-Buffalo-WZR-1750DHP.patch diff --git a/target/linux/bcm53xx/patches-5.10/311-ARM-BCM5301X-Add-power-button-for-Buffalo-WZR-1750DHP.patch b/target/linux/bcm53xx/patches-5.10/311-ARM-BCM5301X-Add-power-button-for-Buffalo-WZR-1750DHP.patch deleted file mode 100644 index b3cb5de048..0000000000 --- a/target/linux/bcm53xx/patches-5.10/311-ARM-BCM5301X-Add-power-button-for-Buffalo-WZR-1750DHP.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Felix Fietkau -Subject: [PATCH] ARM: BCM5301X: Add power button for Buffalo WZR-1750DHP - -Signed-off-by: Felix Fietkau ---- ---- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts -+++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts -@@ -100,6 +100,12 @@ - gpio-keys { - compatible = "gpio-keys"; - -+ power { -+ label = "Power"; -+ linux,code = ; -+ gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>; -+ }; -+ - restart { - label = "Reset"; - linux,code = ; From 4e9be470876aa25f3eb697997527da01443d1ae1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Mon, 8 Nov 2021 15:58:42 +0100 Subject: [PATCH 45/53] bcm53xx: drop patch for downstream swconfig-based b53 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It isn't used anymore so there is no need to hack CPU port. Upstream (DSA-based) b53 also supports all switch ports just fine. Signed-off-by: Rafał Miłecki --- ...U-port-fixes-for-devices-not-using-p.patch | 53 ------------------- 1 file changed, 53 deletions(-) delete mode 100644 target/linux/bcm53xx/patches-5.10/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch diff --git a/target/linux/bcm53xx/patches-5.10/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch b/target/linux/bcm53xx/patches-5.10/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch deleted file mode 100644 index a6d0f119ec..0000000000 --- a/target/linux/bcm53xx/patches-5.10/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 4abdde3ad6bc0b3b157c4bf6ec0bf139d11d07e8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Wed, 13 May 2015 14:13:28 +0200 -Subject: [PATCH] b53: add hacky CPU port fixes for devices not using port 5 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Rafał Miłecki ---- - drivers/net/phy/b53/b53_common.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/drivers/net/phy/b53/b53_common.c -+++ b/drivers/net/phy/b53/b53_common.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - #include "b53_regs.h" - #include "b53_priv.h" -@@ -1587,6 +1588,29 @@ static int b53_switch_init(struct b53_de - return ret; - } - -+ /* Set correct CPU port */ -+ if (of_machine_is_compatible("asus,rt-ac87u")) -+ sw_dev->cpu_port = 7; -+ else if (of_machine_is_compatible("netgear,r7900")) -+ sw_dev->cpu_port = 8; -+ else if (of_machine_is_compatible("netgear,r8000")) -+ sw_dev->cpu_port = 8; -+ else if (of_machine_is_compatible("netgear,r8500")) -+ sw_dev->cpu_port = 8; -+ -+ /* Enable extra ports */ -+ if (of_machine_is_compatible("tenda,ac9")) -+ dev->enabled_ports |= BIT(5); -+ -+ /* -+ * Workaround for devices using port 8 (connected to the 3rd iface). -+ * For some reason it doesn't work (no packets on eth2). -+ */ -+ if (of_machine_is_compatible("netgear,r7900") || -+ of_machine_is_compatible("netgear,r8000") || -+ (of_machine_is_compatible("linksys,panamera") && dev->chip_id == BCM53012_DEVICE_ID)) -+ sw_dev->cpu_port = 5; -+ - dev->enabled_ports |= BIT(sw_dev->cpu_port); - sw_dev->ports = fls(dev->enabled_ports); - From c4ff53b971380dca094e94631bbb4044458c9ded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Mon, 8 Nov 2021 17:23:09 +0100 Subject: [PATCH 46/53] bcm4908: fix b53 regression regarding RGMII reg(s) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes: [ 35.308550] WARNING: CPU: 0 PID: 230 at bcm_sf2_reg_rgmii_cntrl.isra.0+0x84/0x90 Signed-off-by: Rafał Miłecki --- ...Fix-bcm_sf2_reg_rgmii_cntrl-call-for.patch | 46 +++++++++++++++++++ ...m_sf2-enable-GPHY-for-switch-probing.patch | 2 +- ...sf2-keep-GPHY-enabled-on-the-BCM4908.patch | 2 +- 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 target/linux/bcm4908/patches-5.10/075-v5.13-0006-net-dsa-bcm_sf2-Fix-bcm_sf2_reg_rgmii_cntrl-call-for.patch diff --git a/target/linux/bcm4908/patches-5.10/075-v5.13-0006-net-dsa-bcm_sf2-Fix-bcm_sf2_reg_rgmii_cntrl-call-for.patch b/target/linux/bcm4908/patches-5.10/075-v5.13-0006-net-dsa-bcm_sf2-Fix-bcm_sf2_reg_rgmii_cntrl-call-for.patch new file mode 100644 index 0000000000..7a670d7011 --- /dev/null +++ b/target/linux/bcm4908/patches-5.10/075-v5.13-0006-net-dsa-bcm_sf2-Fix-bcm_sf2_reg_rgmii_cntrl-call-for.patch @@ -0,0 +1,46 @@ +From fc516d3a6aa2c6ffe27d0da8818d13839e023e7e Mon Sep 17 00:00:00 2001 +From: Florian Fainelli +Date: Fri, 21 May 2021 10:46:14 -0700 +Subject: [PATCH] net: dsa: bcm_sf2: Fix bcm_sf2_reg_rgmii_cntrl() call for + non-RGMII port +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We cannot call bcm_sf2_reg_rgmii_cntrl() for a port that is not RGMII, +yet we do that in bcm_sf2_sw_mac_link_up() irrespective of the port's +interface. Move that read until we have properly qualified the PHY +interface mode. This avoids triggering a warning on 7278 platforms that +have GMII ports. + +Fixes: 55cfeb396965 ("net: dsa: bcm_sf2: add function finding RGMII register") +Signed-off-by: Florian Fainelli +Acked-by: Rafał Miłecki +Signed-off-by: David S. Miller +--- + drivers/net/dsa/bcm_sf2.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +--- a/drivers/net/dsa/bcm_sf2.c ++++ b/drivers/net/dsa/bcm_sf2.c +@@ -821,11 +821,9 @@ static void bcm_sf2_sw_mac_link_up(struc + bcm_sf2_sw_mac_link_set(ds, port, interface, true); + + if (port != core_readl(priv, CORE_IMP0_PRT_ID)) { +- u32 reg_rgmii_ctrl; ++ u32 reg_rgmii_ctrl = 0; + u32 reg, offset; + +- reg_rgmii_ctrl = bcm_sf2_reg_rgmii_cntrl(priv, port); +- + if (priv->type == BCM4908_DEVICE_ID || + priv->type == BCM7445_DEVICE_ID) + offset = CORE_STS_OVERRIDE_GMIIP_PORT(port); +@@ -836,6 +834,7 @@ static void bcm_sf2_sw_mac_link_up(struc + interface == PHY_INTERFACE_MODE_RGMII_TXID || + interface == PHY_INTERFACE_MODE_MII || + interface == PHY_INTERFACE_MODE_REVMII) { ++ reg_rgmii_ctrl = bcm_sf2_reg_rgmii_cntrl(priv, port); + reg = reg_readl(priv, reg_rgmii_ctrl); + reg &= ~(RX_PAUSE_EN | TX_PAUSE_EN); + diff --git a/target/linux/bcm4908/patches-5.10/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch b/target/linux/bcm4908/patches-5.10/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch index a47ae2f738..d3714dfa7a 100644 --- a/target/linux/bcm4908/patches-5.10/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch +++ b/target/linux/bcm4908/patches-5.10/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch @@ -29,7 +29,7 @@ Signed-off-by: Rafał Miłecki --- a/drivers/net/dsa/bcm_sf2.c +++ b/drivers/net/dsa/bcm_sf2.c -@@ -1488,10 +1488,14 @@ static int bcm_sf2_sw_probe(struct platf +@@ -1487,10 +1487,14 @@ static int bcm_sf2_sw_probe(struct platf rev = reg_readl(priv, REG_PHY_REVISION); priv->hw_params.gphy_rev = rev & PHY_REVISION_MASK; diff --git a/target/linux/bcm4908/patches-5.10/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch b/target/linux/bcm4908/patches-5.10/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch index be21421cf1..b027fe3672 100644 --- a/target/linux/bcm4908/patches-5.10/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch +++ b/target/linux/bcm4908/patches-5.10/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch @@ -15,7 +15,7 @@ Signed-off-by: Rafał Miłecki --- a/drivers/net/dsa/bcm_sf2.c +++ b/drivers/net/dsa/bcm_sf2.c -@@ -1502,6 +1502,12 @@ static int bcm_sf2_sw_probe(struct platf +@@ -1501,6 +1501,12 @@ static int bcm_sf2_sw_probe(struct platf priv->hw_params.core_rev >> 8, priv->hw_params.core_rev & 0xff, priv->irq0, priv->irq1); From 48c754d653f042cfc8af6ae6fa179ce76d4c6528 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 8 Nov 2021 21:28:27 +0100 Subject: [PATCH 47/53] qosify: add missing dependency Signed-off-by: Felix Fietkau --- package/network/config/qosify/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/network/config/qosify/Makefile b/package/network/config/qosify/Makefile index a302b7b264..31771dbd54 100644 --- a/package/network/config/qosify/Makefile +++ b/package/network/config/qosify/Makefile @@ -29,7 +29,7 @@ define Package/qosify SECTION:=net CATEGORY:=Network TITLE:=A simple QoS solution based eBPF + CAKE - DEPENDS:=+libbpf +libubox +libubus +kmod-sched-cake +kmod-sched-bpf +tc-full $(BPF_DEPENDS) + DEPENDS:=+libbpf +libubox +libubus +kmod-sched-cake +kmod-sched-bpf +kmod-ifb +tc-full $(BPF_DEPENDS) endef define Build/Compile From 0e4ef0e5a43d6875e0044cf9d1276bb888c147a8 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 8 Nov 2021 22:26:16 +0100 Subject: [PATCH 48/53] qosify: update to the latest version 737970946bc0 map: default to fnmatch matching for dns patterns. support regex via leading / b56b112e62e2 ubus: fix crash caused by missing static keyword 3a420e272c18 qosify: support wildcards in classifier filenames Signed-off-by: Felix Fietkau --- package/network/config/qosify/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/network/config/qosify/Makefile b/package/network/config/qosify/Makefile index 31771dbd54..de7615dc12 100644 --- a/package/network/config/qosify/Makefile +++ b/package/network/config/qosify/Makefile @@ -11,9 +11,9 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=qosify PKG_SOURCE_URL=$(PROJECT_GIT)/project/qosify.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2021-11-08 -PKG_SOURCE_VERSION:=f5ae89e8d8699a144bbdf16da859185f31d272f6 -PKG_MIRROR_HASH:=91831ec8c03c091431b7207b8b5582d396455a027c05c26a9b563fdd26f58186 +PKG_SOURCE_DATE:=2021-11-08.1 +PKG_SOURCE_VERSION:=3a420e272c187885120b964059abdf3e06f10199 +PKG_MIRROR_HASH:=49a6bbb0801b790ce603aa8e3dfa73e681dc3f58fb9cbd524956bffe4c36eb7e PKG_LICENSE:=GPL-2.0 PKG_MAINTAINER:=Felix Fietkau From 85cc0046060b83bf616ea9476f3d6d9530c72771 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 8 Nov 2021 22:26:45 +0100 Subject: [PATCH 49/53] qosify: move files to /etc/qosify Now that wildcard matching is supported, this makes it easier for packages to supply their own qosify rules Signed-off-by: Felix Fietkau --- package/network/config/qosify/Makefile | 6 +++--- package/network/config/qosify/files/qosify.conf | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package/network/config/qosify/Makefile b/package/network/config/qosify/Makefile index de7615dc12..e5e1865422 100644 --- a/package/network/config/qosify/Makefile +++ b/package/network/config/qosify/Makefile @@ -39,15 +39,15 @@ endef define Package/qosify/conffiles /etc/config/qosify -/etc/qosify-defaults.conf +/etc/qosify/00-defaults.conf endef define Package/qosify/install - $(INSTALL_DIR) $(1)/lib/bpf $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config $(1)/etc/hotplug.d/net + $(INSTALL_DIR) $(1)/lib/bpf $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config $(1)/etc/hotplug.d/net $(1)/etc/qosify $(INSTALL_DATA) $(PKG_BUILD_DIR)/qosify-bpf.o $(1)/lib/bpf $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/qosify $(1)/usr/sbin/ $(INSTALL_BIN) ./files/qosify.init $(1)/etc/init.d/qosify - $(INSTALL_DATA) ./files/qosify-defaults.conf $(1)/etc/qosify-defaults.conf + $(INSTALL_DATA) ./files/qosify-defaults.conf $(1)/etc/qosify/00-defaults.conf $(INSTALL_DATA) ./files/qosify.conf $(1)/etc/config/qosify $(INSTALL_DATA) ./files/qosify.hotplug $(1)/etc/hotplug.d/net/10-qosify endef diff --git a/package/network/config/qosify/files/qosify.conf b/package/network/config/qosify/files/qosify.conf index d607abe462..dba1d1a46d 100644 --- a/package/network/config/qosify/files/qosify.conf +++ b/package/network/config/qosify/files/qosify.conf @@ -1,5 +1,5 @@ config defaults - list defaults /etc/qosify-defaults.conf + list defaults /etc/qosify/*.conf option dscp_prio CS5 option dscp_icmp CS6 option dscp_bulk CS0 From 9a18bbec1f63468182e4d6216b595ff73f08b919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Tue, 9 Nov 2021 11:57:07 +0100 Subject: [PATCH 50/53] bcm4908: refresh kernel configs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rafał Miłecki --- target/linux/bcm4908/config-5.10 | 21 +++++++-------------- target/linux/bcm4908/config-5.4 | 3 +-- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/target/linux/bcm4908/config-5.10 b/target/linux/bcm4908/config-5.10 index 71f7d60d72..7efb81f508 100644 --- a/target/linux/bcm4908/config-5.10 +++ b/target/linux/bcm4908/config-5.10 @@ -1,6 +1,5 @@ CONFIG_64BIT=y CONFIG_ARCH_BCM4908=y -CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_ARCH_KEEP_MEMBLOCK=y CONFIG_ARCH_MMAP_RND_BITS=18 @@ -11,20 +10,18 @@ CONFIG_ARCH_PROC_KCORE_TEXT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_STACKWALK=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARM64=y CONFIG_ARM64_4K_PAGES=y -CONFIG_ARM64_CONT_SHIFT=4 CONFIG_ARM64_PAGE_SHIFT=12 CONFIG_ARM64_PA_BITS=48 CONFIG_ARM64_PA_BITS_48=y CONFIG_ARM64_PTR_AUTH=y -CONFIG_ARM64_SSBD=y CONFIG_ARM64_SVE=y CONFIG_ARM64_TAGGED_ADDR_ABI=y CONFIG_ARM64_VA_BITS=39 CONFIG_ARM64_VA_BITS_39=y -CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y CONFIG_ARM_AMBA=y CONFIG_ARM_ARCH_TIMER=y CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y @@ -37,7 +34,6 @@ CONFIG_B53=y # CONFIG_B53_MDIO_DRIVER is not set # CONFIG_B53_MMAP_DRIVER is not set # CONFIG_B53_SERDES is not set -# CONFIG_B53_SPI_DRIVER is not set # CONFIG_B53_SRAB_DRIVER is not set CONFIG_BCM4908_ENET=y CONFIG_BCM7XXX_PHY=y @@ -45,6 +41,7 @@ CONFIG_BCM_NET_PHYLIB=y CONFIG_BCM_PMB=y # CONFIG_BLK_DEV_INITRD is not set CONFIG_BLK_PM=y +CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y CONFIG_CLKDEV_LOOKUP=y CONFIG_CLONE_BACKWARDS=y CONFIG_CMDLINE="earlycon=bcm63xx_uart,0xff800640 console=ttyS0,115200" @@ -53,22 +50,16 @@ CONFIG_COMMON_CLK=y # CONFIG_COMPAT_32BIT_TIME is not set CONFIG_CPU_RMAP=y CONFIG_CRC16=y -CONFIG_CRYPTO_ACOMP2=y -CONFIG_CRYPTO_AEAD=y -CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_HASH_INFO=y CONFIG_CRYPTO_LZO=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_ZSTD=y CONFIG_DCACHE_WORD_ACCESS=y CONFIG_DMA_DIRECT_REMAP=y CONFIG_DMA_REMAP=y -CONFIG_DRM_RCAR_WRITEBACK=y CONFIG_DTC=y CONFIG_EDAC_SUPPORT=y CONFIG_FIXED_PHY=y @@ -105,7 +96,6 @@ CONFIG_GPIO_GENERIC=y CONFIG_GPIO_GENERIC_PLATFORM=y CONFIG_GRO_CELLS=y CONFIG_HANDLE_DOMAIN_IRQ=y -CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y @@ -119,6 +109,7 @@ CONFIG_IRQ_FORCED_THREADING=y CONFIG_IRQ_WORK=y CONFIG_LEDS_GPIO=y CONFIG_LIBFDT=y +CONFIG_LLD_VERSION=0 CONFIG_LOCK_DEBUGGING_SUPPORT=y CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_LZO_COMPRESS=y @@ -126,12 +117,14 @@ CONFIG_LZO_DECOMPRESS=y CONFIG_MDIO_BCM_UNIMAC=y CONFIG_MDIO_BUS=y CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_DEVRES=y CONFIG_MEMFD_CREATE=y CONFIG_MFD_SYSCON=y CONFIG_MIGRATION=y CONFIG_MODULES_USE_ELF_RELA=y CONFIG_MTD_NAND_BRCMNAND=y CONFIG_MTD_NAND_CORE=y +CONFIG_MTD_NAND_ECC=y CONFIG_MTD_NAND_ECC_SW_HAMMING=y CONFIG_MTD_OF_PARTS_BCM4908=y # CONFIG_MTD_OF_PARTS_LINKSYS_NS is not set @@ -150,6 +143,7 @@ CONFIG_NET_DSA=y CONFIG_NET_DSA_BCM_SF2=y CONFIG_NET_DSA_TAG_BRCM=y CONFIG_NET_DSA_TAG_BRCM_COMMON=y +CONFIG_NET_DSA_TAG_BRCM_LEGACY=y CONFIG_NET_DSA_TAG_BRCM_PREPEND=y CONFIG_NET_FLOW_LIMIT=y CONFIG_NET_SWITCHDEV=y @@ -181,7 +175,6 @@ CONFIG_POWER_SUPPLY=y CONFIG_QUEUED_RWLOCKS=y CONFIG_QUEUED_SPINLOCKS=y CONFIG_RATIONAL=y -CONFIG_REFCOUNT_FULL=y CONFIG_REGMAP=y CONFIG_REGMAP_MMIO=y CONFIG_RELOCATABLE=y diff --git a/target/linux/bcm4908/config-5.4 b/target/linux/bcm4908/config-5.4 index 5dc035ed69..8a37c61127 100644 --- a/target/linux/bcm4908/config-5.4 +++ b/target/linux/bcm4908/config-5.4 @@ -24,7 +24,6 @@ CONFIG_ARM64_SVE=y CONFIG_ARM64_TAGGED_ADDR_ABI=y CONFIG_ARM64_VA_BITS=39 CONFIG_ARM64_VA_BITS_39=y -CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y CONFIG_ARM_AMBA=y CONFIG_ARM_ARCH_TIMER=y CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y @@ -37,7 +36,6 @@ CONFIG_B53=y # CONFIG_B53_MDIO_DRIVER is not set # CONFIG_B53_MMAP_DRIVER is not set # CONFIG_B53_SERDES is not set -# CONFIG_B53_SPI_DRIVER is not set # CONFIG_B53_SRAB_DRIVER is not set CONFIG_BCM4908_ENET=y CONFIG_BCM7XXX_PHY=y @@ -45,6 +43,7 @@ CONFIG_BCM_NET_PHYLIB=y CONFIG_BCM_PMB=y # CONFIG_BLK_DEV_INITRD is not set CONFIG_BLK_PM=y +CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y CONFIG_CLKDEV_LOOKUP=y CONFIG_CLONE_BACKWARDS=y CONFIG_CMDLINE="earlycon=bcm63xx_uart,0xff800640 console=ttyS0,115200" From 9565bd9bd61f026effce7ebfe17d413d1adb032f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Tue, 9 Nov 2021 12:07:59 +0100 Subject: [PATCH 51/53] bcm4908: add watchdog support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rafał Miłecki --- target/linux/bcm4908/config-5.10 | 2 + target/linux/bcm4908/config-5.4 | 2 + ...4-dts-broadcom-bcm4908-add-TWD-block.patch | 50 +++++++++++++++++++ ...8_wdt-allow-building-on-ARCH_BCM4908.patch | 25 ++++++++++ ...4-dts-broadcom-bcm4908-add-TWD-block.patch | 50 +++++++++++++++++++ ...8_wdt-allow-building-on-ARCH_BCM4908.patch | 25 ++++++++++ 6 files changed, 154 insertions(+) create mode 100644 target/linux/bcm4908/patches-5.10/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch create mode 100644 target/linux/bcm4908/patches-5.10/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch create mode 100644 target/linux/bcm4908/patches-5.4/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch create mode 100644 target/linux/bcm4908/patches-5.4/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch diff --git a/target/linux/bcm4908/config-5.10 b/target/linux/bcm4908/config-5.10 index 7efb81f508..a6cb52b18c 100644 --- a/target/linux/bcm4908/config-5.10 +++ b/target/linux/bcm4908/config-5.10 @@ -36,6 +36,7 @@ CONFIG_B53=y # CONFIG_B53_SERDES is not set # CONFIG_B53_SRAB_DRIVER is not set CONFIG_BCM4908_ENET=y +CONFIG_BCM7038_WDT=y CONFIG_BCM7XXX_PHY=y CONFIG_BCM_NET_PHYLIB=y CONFIG_BCM_PMB=y @@ -204,6 +205,7 @@ CONFIG_UBIFS_FS=y CONFIG_UNMAP_KERNEL_AT_EL0=y CONFIG_USB_SUPPORT=y CONFIG_VMAP_STACK=y +CONFIG_WATCHDOG_CORE=y CONFIG_XPS=y CONFIG_XXHASH=y CONFIG_ZLIB_DEFLATE=y diff --git a/target/linux/bcm4908/config-5.4 b/target/linux/bcm4908/config-5.4 index 8a37c61127..55b20f86d2 100644 --- a/target/linux/bcm4908/config-5.4 +++ b/target/linux/bcm4908/config-5.4 @@ -38,6 +38,7 @@ CONFIG_B53=y # CONFIG_B53_SERDES is not set # CONFIG_B53_SRAB_DRIVER is not set CONFIG_BCM4908_ENET=y +CONFIG_BCM7038_WDT=y CONFIG_BCM7XXX_PHY=y CONFIG_BCM_NET_PHYLIB=y CONFIG_BCM_PMB=y @@ -208,6 +209,7 @@ CONFIG_UBIFS_FS=y CONFIG_UNMAP_KERNEL_AT_EL0=y CONFIG_USB_SUPPORT=y CONFIG_VMAP_STACK=y +CONFIG_WATCHDOG_CORE=y CONFIG_XPS=y CONFIG_XXHASH=y CONFIG_ZLIB_DEFLATE=y diff --git a/target/linux/bcm4908/patches-5.10/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch b/target/linux/bcm4908/patches-5.10/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch new file mode 100644 index 0000000000..026ce3b9fc --- /dev/null +++ b/target/linux/bcm4908/patches-5.10/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch @@ -0,0 +1,50 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Tue, 9 Nov 2021 11:39:42 +0100 +Subject: [PATCH] arm64: dts: broadcom: bcm4908: add TWD block +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +BCM4908 contains TWD block that provides few functions: +1. Timers +2. Wathchdog +3. Software reset + +Signed-off-by: Rafał Miłecki +--- + .../boot/dts/broadcom/bcm4908/bcm4908.dtsi | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi ++++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi +@@ -273,9 +273,18 @@ + #size-cells = <1>; + ranges = <0x00 0x00 0xff800000 0x3000>; + +- timer: timer@400 { +- compatible = "brcm,bcm6328-timer", "syscon"; +- reg = <0x400 0x3c>; ++ twd: timer-mfd@400 { ++ compatible = "brcm,bcm4908-twd", "brcm,twd", "simple-mfd", "syscon"; ++ reg = <0x400 0x4c>; ++ ranges = <0x0 0x400 0x4c>; ++ ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ watchdog@28 { ++ compatible = "brcm,bcm7038-wdt"; ++ reg = <0x28 0x8>; ++ }; + }; + + gpio0: gpio-controller@500 { +@@ -329,7 +338,7 @@ + + reboot { + compatible = "syscon-reboot"; +- regmap = <&timer>; ++ regmap = <&twd>; + offset = <0x34>; + mask = <1>; + }; diff --git a/target/linux/bcm4908/patches-5.10/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch b/target/linux/bcm4908/patches-5.10/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch new file mode 100644 index 0000000000..f4cf75037e --- /dev/null +++ b/target/linux/bcm4908/patches-5.10/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch @@ -0,0 +1,25 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Tue, 9 Nov 2021 11:34:28 +0100 +Subject: [PATCH] watchdog: bcm7038_wdt: allow building on ARCH_BCM4908 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The same hardware block is present on BCM4908 SoCs family. + +Signed-off-by: Rafał Miłecki +--- + drivers/watchdog/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/watchdog/Kconfig ++++ b/drivers/watchdog/Kconfig +@@ -1800,7 +1800,7 @@ config BCM7038_WDT + tristate "BCM7038 Watchdog" + select WATCHDOG_CORE + depends on HAS_IOMEM +- depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST ++ depends on ARCH_BCM4908 || ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST + help + Watchdog driver for the built-in hardware in Broadcom 7038 and + later SoCs used in set-top boxes. BCM7038 was made public diff --git a/target/linux/bcm4908/patches-5.4/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch b/target/linux/bcm4908/patches-5.4/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch new file mode 100644 index 0000000000..026ce3b9fc --- /dev/null +++ b/target/linux/bcm4908/patches-5.4/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch @@ -0,0 +1,50 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Tue, 9 Nov 2021 11:39:42 +0100 +Subject: [PATCH] arm64: dts: broadcom: bcm4908: add TWD block +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +BCM4908 contains TWD block that provides few functions: +1. Timers +2. Wathchdog +3. Software reset + +Signed-off-by: Rafał Miłecki +--- + .../boot/dts/broadcom/bcm4908/bcm4908.dtsi | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi ++++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi +@@ -273,9 +273,18 @@ + #size-cells = <1>; + ranges = <0x00 0x00 0xff800000 0x3000>; + +- timer: timer@400 { +- compatible = "brcm,bcm6328-timer", "syscon"; +- reg = <0x400 0x3c>; ++ twd: timer-mfd@400 { ++ compatible = "brcm,bcm4908-twd", "brcm,twd", "simple-mfd", "syscon"; ++ reg = <0x400 0x4c>; ++ ranges = <0x0 0x400 0x4c>; ++ ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ watchdog@28 { ++ compatible = "brcm,bcm7038-wdt"; ++ reg = <0x28 0x8>; ++ }; + }; + + gpio0: gpio-controller@500 { +@@ -329,7 +338,7 @@ + + reboot { + compatible = "syscon-reboot"; +- regmap = <&timer>; ++ regmap = <&twd>; + offset = <0x34>; + mask = <1>; + }; diff --git a/target/linux/bcm4908/patches-5.4/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch b/target/linux/bcm4908/patches-5.4/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch new file mode 100644 index 0000000000..16ed3f5072 --- /dev/null +++ b/target/linux/bcm4908/patches-5.4/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch @@ -0,0 +1,25 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Tue, 9 Nov 2021 11:34:28 +0100 +Subject: [PATCH] watchdog: bcm7038_wdt: allow building on ARCH_BCM4908 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The same hardware block is present on BCM4908 SoCs family. + +Signed-off-by: Rafał Miłecki +--- + drivers/watchdog/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/watchdog/Kconfig ++++ b/drivers/watchdog/Kconfig +@@ -1759,7 +1759,7 @@ config BCM7038_WDT + tristate "BCM7038 Watchdog" + select WATCHDOG_CORE + depends on HAS_IOMEM +- depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST ++ depends on ARCH_BCM4908 || ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST + help + Watchdog driver for the built-in hardware in Broadcom 7038 and + later SoCs used in set-top boxes. BCM7038 was made public From f1a074d0ce625d2b78ea729eb9311a52ea17887f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Tue, 9 Nov 2021 11:57:22 +0100 Subject: [PATCH 52/53] bcm4908: switch to kernel 5.10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tested on: 1. Asus GT-AC5300 2. Netgear R8000P Signed-off-by: Rafał Miłecki --- target/linux/bcm4908/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target/linux/bcm4908/Makefile b/target/linux/bcm4908/Makefile index 4aae7acfcd..30186e27e7 100644 --- a/target/linux/bcm4908/Makefile +++ b/target/linux/bcm4908/Makefile @@ -9,8 +9,7 @@ FEATURES:=squashfs nand usb pci pcie gpio CPU_TYPE:=cortex-a53 SUBTARGETS:=generic -KERNEL_PATCHVER:=5.4 -KERNEL_TESTING_PATCHVER:=5.10 +KERNEL_PATCHVER:=5.10 define Target/Description Build firmware images for Broadcom BCM4908 SoC family routers. From a667f6b8dd4b0f47d9c0aacb900f1fd3045ec945 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 9 Nov 2021 11:03:10 +0100 Subject: [PATCH 53/53] qosify: mark as nonshared The SDK does not have the LLVM toolchain yet Signed-off-by: Felix Fietkau --- package/network/config/qosify/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/package/network/config/qosify/Makefile b/package/network/config/qosify/Makefile index e5e1865422..7a6ee17688 100644 --- a/package/network/config/qosify/Makefile +++ b/package/network/config/qosify/Makefile @@ -19,6 +19,7 @@ PKG_LICENSE:=GPL-2.0 PKG_MAINTAINER:=Felix Fietkau PKG_BUILD_DEPENDS:=bpf-headers +PKG_FLAGS:=nonshared include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/cmake.mk