diff --git a/root/include/netfilter.mk b/root/include/netfilter.mk old mode 100755 new mode 100644 diff --git a/root/package/Makefile b/root/package/Makefile new file mode 100644 index 00000000..209be346 --- /dev/null +++ b/root/package/Makefile @@ -0,0 +1,114 @@ +# +# Copyright (C) 2006-2010 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +curdir:=package + +include $(INCLUDE_DIR)/feeds.mk +include $(INCLUDE_DIR)/rootfs.mk + +-include $(TMP_DIR)/.packagedeps +package-y += kernel/linux +$(curdir)/autoremove:=1 +$(curdir)/builddirs:=$(sort $(package-) $(package-y) $(package-m)) +$(curdir)/builddirs-default:=. $(sort $(package-y) $(package-m)) +$(curdir)/builddirs-prereq:=. $(sort $(prereq-y) $(prereq-m)) +ifdef CHECK_ALL +$(curdir)/builddirs-check:=$($(curdir)/builddirs) +$(curdir)/builddirs-download:=$($(curdir)/builddirs) +endif +ifneq ($(IGNORE_ERRORS),) + package-y-filter := $(package-y) + package-m-filter := $(filter-out $(package-y),$(package-m)) + package-n-filter := $(filter-out $(package-y) $(package-m),$(package-)) + package-ignore-errors := $(filter n m y,$(IGNORE_ERRORS)) + package-ignore-errors := $(if $(package-ignore-errors),$(package-ignore-errors),n m) + package-ignore-subdirs := $(sort $(foreach m,$(package-ignore-errors),$(package-$(m)-filter))) + $(curdir)/builddirs-ignore-download := $(package-ignore-subdirs) + $(curdir)/builddirs-ignore-compile := $(package-ignore-subdirs) + $(curdir)/builddirs-ignore-host-download := $(package-ignore-subdirs) + $(curdir)/builddirs-ignore-host-compile := $(package-ignore-subdirs) +endif + +PACKAGE_INSTALL_FILES:= \ + $(foreach pkg,$(sort $(package-y)), \ + $(foreach variant, \ + $(if $(strip $(package/$(pkg)/variants)), \ + $(package/$(pkg)/variants), \ + $(if $(package/$(pkg)/default-variant), \ + $(package/$(pkg)/default-variant), \ + default \ + ) \ + ), \ + $(PKG_INFO_DIR)/$(lastword $(subst /,$(space),$(pkg))).$(variant).install \ + ) \ + ) + +$(curdir)/cleanup: $(TMP_DIR)/.build + rm -rf $(STAGING_DIR_ROOT) + +$(curdir)/merge: + rm -rf $(PACKAGE_DIR_ALL) + mkdir -p $(PACKAGE_DIR_ALL) + -$(foreach pdir,$(PACKAGE_SUBDIRS),$(if $(wildcard $(pdir)/*.ipk),ln -s $(pdir)/*.ipk $(PACKAGE_DIR_ALL);)) + +$(curdir)/merge-index: $(curdir)/merge + (cd $(PACKAGE_DIR_ALL) && $(SCRIPT_DIR)/ipkg-make-index.sh . 2>&1 > Packages; ) + +ifndef SDK + $(curdir)/compile: $(curdir)/system/opkg/host/compile +endif + +$(curdir)/install: $(TMP_DIR)/.build $(curdir)/merge $(if $(CONFIG_TARGET_PER_DEVICE_ROOTFS),$(curdir)/merge-index) + - find $(STAGING_DIR_ROOT) -type d | $(XARGS) chmod 0755 + rm -rf $(TARGET_DIR) $(TARGET_DIR_ORIG) + mkdir -p $(TARGET_DIR)/tmp + $(file >$(TMP_DIR)/opkg_install_list,\ + $(call opkg_package_files,\ + $(foreach pkg,$(shell cat $(PACKAGE_INSTALL_FILES) 2>/dev/null),$(pkg)$(call GetABISuffix,$(pkg))))) + $(call opkg,$(TARGET_DIR)) install $$(cat $(TMP_DIR)/opkg_install_list) + @for file in $(PACKAGE_INSTALL_FILES); do \ + [ -s $$file.flags ] || continue; \ + for flag in `cat $$file.flags`; do \ + $(call opkg,$(TARGET_DIR)) flag $$flag `cat $$file`; \ + done; \ + done || true + + $(CP) $(TARGET_DIR) $(TARGET_DIR_ORIG) + + $(call prepare_rootfs,$(TARGET_DIR),$(TOPDIR)/files) + +$(curdir)/index: FORCE + @echo Generating package index... + @for d in $(PACKAGE_SUBDIRS); do ( \ + mkdir -p $$d; \ + cd $$d || continue; \ + $(SCRIPT_DIR)/ipkg-make-index.sh . 2>&1 > Packages.manifest; \ + grep -vE '^(Maintainer|LicenseFiles|Source|SourceName|Require|SourceDateEpoch)' Packages.manifest > Packages; \ + case "$$(((64 + $$(stat -L -c%s Packages)) % 128))" in 110|111) \ + $(call ERROR_MESSAGE,WARNING: Applying padding in $$d/Packages to workaround usign SHA-512 bug!); \ + { echo ""; echo ""; } >> Packages;; \ + esac; \ + gzip -9nc Packages > Packages.gz; \ + ); done +ifdef CONFIG_SIGNED_PACKAGES + @echo Signing package index... + @for d in $(PACKAGE_SUBDIRS); do ( \ + [ -d $$d ] && \ + cd $$d || continue; \ + $(STAGING_DIR_HOST)/bin/usign -S -m Packages -s $(BUILD_KEY); \ + ); done +endif + +$(curdir)/flags-install:= -j1 + +$(eval $(call stampfile,$(curdir),package,prereq,.config)) +$(eval $(call stampfile,$(curdir),package,cleanup,$(TMP_DIR)/.build)) +$(eval $(call stampfile,$(curdir),package,compile,$(TMP_DIR)/.build)) +$(eval $(call stampfile,$(curdir),package,install,$(TMP_DIR)/.build)) +$(eval $(call stampfile,$(curdir),package,check,$(TMP_DIR)/.build)) + +$(eval $(call subdir,$(curdir))) diff --git a/root/package/base-files/files/etc/board.d/99-default_network b/root/package/base-files/files/etc/board.d/99-default_network new file mode 100755 index 00000000..55d5d79a --- /dev/null +++ b/root/package/base-files/files/etc/board.d/99-default_network @@ -0,0 +1,16 @@ +#!/bin/sh +# +# Copyright (C) 2013-2015 OpenWrt.org +# + +. /lib/functions/uci-defaults.sh + +board_config_update + +json_is_a network object && exit 0 + +ucidef_set_interface_lan 'eth0' + +board_config_flush + +exit 0 diff --git a/root/package/boot/uboot-envtools/Makefile b/root/package/boot/uboot-envtools/Makefile index a9eccec0..5ea32d88 100644 --- a/root/package/boot/uboot-envtools/Makefile +++ b/root/package/boot/uboot-envtools/Makefile @@ -9,17 +9,16 @@ include $(TOPDIR)/rules.mk PKG_NAME:=uboot-envtools PKG_DISTNAME:=u-boot -PKG_VERSION:=2021.01 -PKG_RELEASE:=$(AUTORELEASE) +PKG_VERSION:=2020.04 +PKG_RELEASE:=1 +PKG_SOURCE_PROTO:=git PKG_SOURCE:=$(PKG_DISTNAME)-$(PKG_VERSION).tar.bz2 -PKG_SOURCE_URL:= \ - https://ftp.denx.de/pub/u-boot \ - https://mirror.cyberbits.eu/u-boot \ - ftp://ftp.denx.de/pub/u-boot -PKG_HASH:=b407e1510a74e863b8b5cb42a24625344f0e0c2fc7582d8c866bd899367d0454 PKG_SOURCE_SUBDIR:=$(PKG_DISTNAME)-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_DISTNAME)-$(PKG_VERSION) +PKG_SOURCE_URL:=https://git.denx.de/u-boot.git +PKG_SOURCE_VERSION:=36fec02b1f90b92cf51ec531564f9284eae27ab4 +PKG_MIRROR_HASH:=fe732aaf037d9cc3c0909bad8362af366ae964bbdac6913a34081ff4ad565372 PKG_BUILD_DEPENDS:=fstools diff --git a/root/package/boot/uboot-rockchip/Makefile b/root/package/boot/uboot-rockchip/Makefile index 393e8c3a..75825ce6 100644 --- a/root/package/boot/uboot-rockchip/Makefile +++ b/root/package/boot/uboot-rockchip/Makefile @@ -5,10 +5,10 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk -PKG_VERSION:=2021.01 +PKG_VERSION:=2021.04 PKG_RELEASE:=1 -PKG_HASH:=b407e1510a74e863b8b5cb42a24625344f0e0c2fc7582d8c866bd899367d0454 +PKG_HASH:=0d438b1bb5cceb57a18ea2de4a0d51f7be5b05b98717df05938636e0aadfe11a PKG_MAINTAINER:=Tobias Maedel @@ -38,6 +38,16 @@ endef # RK3399 boards +define U-Boot/nanopi-r4s-rk3399 + BUILD_SUBTARGET:=armv8 + NAME:=NanoPi R4S + BUILD_DEVICES:= \ + friendlyarm_nanopi-r4s + DEPENDS:=+PACKAGE_u-boot-nanopi-r4s-rk3399:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3399_bl31.elf +endef + define U-Boot/rock-pi-4-rk3399 BUILD_SUBTARGET:=armv8 NAME:=Rock Pi 4 @@ -59,6 +69,7 @@ define U-Boot/rockpro64-rk3399 endef UBOOT_TARGETS := \ + nanopi-r4s-rk3399 \ rock-pi-4-rk3399 \ rockpro64-rk3399 \ nanopi-r2s-rk3328 @@ -75,7 +86,7 @@ ifneq ($(OF_PLATDATA),) mkdir -p $(PKG_BUILD_DIR)/tpl/dts mkdir -p $(PKG_BUILD_DIR)/include/generated - $(CP) $(PKG_BUILD_DIR)/of-platdata/$(OF_PLATDATA)/dt-platdata.c $(PKG_BUILD_DIR)/tpl/dts/dt-platdata.c + $(CP) $(PKG_BUILD_DIR)/of-platdata/$(OF_PLATDATA)/dt-plat.c $(PKG_BUILD_DIR)/tpl/dts/dt-plat.c $(CP) $(PKG_BUILD_DIR)/of-platdata/$(OF_PLATDATA)/dt-structs-gen.h $(PKG_BUILD_DIR)/include/generated/dt-structs-gen.h endif diff --git a/root/package/boot/uboot-rockchip/patches/002-spl-remove-dtoc-of-pdata-generation.patch b/root/package/boot/uboot-rockchip/patches/002-spl-remove-dtoc-of-pdata-generation.patch index bd401103..61a56c2a 100644 --- a/root/package/boot/uboot-rockchip/patches/002-spl-remove-dtoc-of-pdata-generation.patch +++ b/root/package/boot/uboot-rockchip/patches/002-spl-remove-dtoc-of-pdata-generation.patch @@ -17,15 +17,13 @@ Signed-off-by: David Bauer --- a/scripts/Makefile.spl +++ b/scripts/Makefile.spl -@@ -321,12 +321,6 @@ PHONY += dts_dir +@@ -329,10 +329,6 @@ PHONY += dts_dir dts_dir: $(shell [ -d $(obj)/dts ] || mkdir -p $(obj)/dts) --include/generated/dt-structs-gen.h: $(obj)/$(SPL_BIN).dtb dts_dir FORCE -- $(call if_changed,dtoch) -- --$(obj)/dts/dt-platdata.c: $(obj)/$(SPL_BIN).dtb dts_dir FORCE -- $(call if_changed,dtocc) +-include/generated/dt-structs-gen.h $(u-boot-spl-platdata_c) &: \ +- $(obj)/$(SPL_BIN).dtb dts_dir FORCE +- $(call if_changed,dtoc) - ifdef CONFIG_SAMSUNG ifdef CONFIG_VAR_SIZE_SPL diff --git a/root/package/boot/uboot-rockchip/patches/102-arm64-rk3399-Add-support-NanoPi-R4s.patch b/root/package/boot/uboot-rockchip/patches/102-arm64-rk3399-Add-support-NanoPi-R4s.patch old mode 100755 new mode 100644 diff --git a/root/package/boot/uboot-rockchip/src/of-platdata/nanopi-r2s-rk3328/dt-plat.c b/root/package/boot/uboot-rockchip/src/of-platdata/nanopi-r2s-rk3328/dt-plat.c old mode 100755 new mode 100644 diff --git a/root/package/boot/uboot-rockchip/src/of-platdata/nanopi-r2s-rk3328/dt-structs-gen.h b/root/package/boot/uboot-rockchip/src/of-platdata/nanopi-r2s-rk3328/dt-structs-gen.h index 847b121a..b1ff08a9 100644 --- a/root/package/boot/uboot-rockchip/src/of-platdata/nanopi-r2s-rk3328/dt-structs-gen.h +++ b/root/package/boot/uboot-rockchip/src/of-platdata/nanopi-r2s-rk3328/dt-structs-gen.h @@ -1,7 +1,8 @@ /* * DO NOT MODIFY * - * This file was generated by dtoc from a .dtb (device tree binary) file. + * Defines the structs used to hold devicetree data. + * This was generated by dtoc from a .dtb (device tree binary) file. */ #include @@ -18,23 +19,6 @@ struct dtd_ns16550_serial { fdt32_t reg_io_width; fdt32_t reg_shift; }; -struct dtd_regulator_fixed { - fdt32_t gpio[3]; - fdt32_t pinctrl_0; - const char * pinctrl_names; - bool regulator_boot_on; - fdt32_t regulator_max_microvolt; - fdt32_t regulator_min_microvolt; - const char * regulator_name; - fdt32_t vin_supply; -}; -struct dtd_rockchip_gpio_bank { - struct phandle_1_arg clocks[1]; - bool gpio_controller; - bool interrupt_controller; - fdt32_t interrupts[3]; - fdt64_t reg[2]; -}; struct dtd_rockchip_rk3288_dw_mshc { fdt32_t bus_width; bool cap_sd_highspeed; @@ -65,7 +49,3 @@ struct dtd_rockchip_rk3328_dmc { struct dtd_rockchip_rk3328_grf { fdt64_t reg[2]; }; -struct dtd_rockchip_rk3328_pinctrl { - bool ranges; - fdt32_t rockchip_grf; -}; diff --git a/root/package/kernel/linux/modules/crypto.mk b/root/package/kernel/linux/modules/crypto.mk old mode 100755 new mode 100644 diff --git a/root/package/kernel/linux/modules/fs.mk b/root/package/kernel/linux/modules/fs.mk old mode 100755 new mode 100644 diff --git a/root/package/kernel/linux/modules/input.mk b/root/package/kernel/linux/modules/input.mk old mode 100755 new mode 100644 diff --git a/root/package/kernel/linux/modules/netfilter.mk b/root/package/kernel/linux/modules/netfilter.mk old mode 100755 new mode 100644 diff --git a/root/package/kernel/linux/modules/other.mk b/root/package/kernel/linux/modules/other.mk old mode 100755 new mode 100644 diff --git a/root/package/kernel/linux/modules/sound.mk b/root/package/kernel/linux/modules/sound.mk old mode 100755 new mode 100644 diff --git a/root/package/kernel/mwlwifi/patches/002-remove-fallthrough.patch b/root/package/kernel/mwlwifi/patches/002-remove-fallthrough.patch old mode 100755 new mode 100644 diff --git a/root/package/kernel/mwlwifi/patches/003-remove-pcie_dev_name.patch b/root/package/kernel/mwlwifi/patches/003-remove-pcie_dev_name.patch old mode 100755 new mode 100644 diff --git a/root/package/kernel/mwlwifi/patches/004-remove-get_fs.patch b/root/package/kernel/mwlwifi/patches/004-remove-get_fs.patch old mode 100755 new mode 100644 diff --git a/root/package/network/config/firewall/patches/fullconenat.patch b/root/package/network/config/firewall/patches/fullconenat.patch old mode 100755 new mode 100644 diff --git a/root/package/network/ipv6/6in4/Makefile b/root/package/network/ipv6/6in4/Makefile new file mode 100644 index 00000000..d0f2ad30 --- /dev/null +++ b/root/package/network/ipv6/6in4/Makefile @@ -0,0 +1,45 @@ +# +# Copyright (C) 2010-2015 OpenWrt.org +# Copyright (C) 2018-2019 Ycarus (Yannick Chabanois) +# - Added gateway setting +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=6in4 +PKG_VERSION:=270 +PKG_RELEASE:=2 +PKG_LICENSE:=GPL-2.0 + +include $(INCLUDE_DIR)/package.mk + +define Package/6in4 + SECTION:=net + CATEGORY:=Network + DEPENDS:=@IPV6 +kmod-sit +uclient-fetch + TITLE:=IPv6-in-IPv4 configuration support + MAINTAINER:=Jo-Philipp Wich + PKGARCH:=all +endef + +define Package/6in4/description +Provides support for 6in4 tunnels in /etc/config/network. +Refer to http://wiki.openwrt.org/doc/uci/network for +configuration details. +endef + +define Build/Compile +endef + +define Build/Configure +endef + +define Package/6in4/install + $(INSTALL_DIR) $(1)/lib/netifd/proto + $(INSTALL_BIN) ./files/6in4.sh $(1)/lib/netifd/proto/6in4.sh +endef + +$(eval $(call BuildPackage,6in4)) diff --git a/root/package/network/ipv6/6in4/files/6in4.sh b/root/package/network/ipv6/6in4/files/6in4.sh new file mode 100755 index 00000000..cf17c86d --- /dev/null +++ b/root/package/network/ipv6/6in4/files/6in4.sh @@ -0,0 +1,149 @@ +#!/bin/sh +# 6in4.sh - IPv6-in-IPv4 tunnel backend +# Copyright (c) 2010-2015 OpenWrt.org + +[ -n "$INCLUDE_ONLY" ] || { + . /lib/functions.sh + . /lib/functions/network.sh + . ../netifd-proto.sh + init_proto "$@" +} + +proto_6in4_update() { + sh -c ' + timeout=5 + + (while [ $((timeout--)) -gt 0 ]; do + sleep 1 + kill -0 $$ || exit 0 + done; kill -9 $$) 2>/dev/null & + + exec "$@" + ' "$1" "$@" +} + +proto_6in4_add_prefix() { + append "$3" "$1" +} + +proto_6in4_setup() { + local cfg="$1" + local iface="$2" + local link="6in4-$cfg" + + local mtu ttl tos ipaddr peeraddr ip6addr ip6prefix ip6prefixes tunlink tunnelid username password updatekey gateway + json_get_vars mtu ttl tos ipaddr peeraddr ip6addr tunlink tunnelid username password updatekey gateway + json_for_each_item proto_6in4_add_prefix ip6prefix ip6prefixes + + [ -z "$peeraddr" ] && { + proto_notify_error "$cfg" "MISSING_ADDRESS" + proto_block_restart "$cfg" + return + } + + [ -n "$tunlink" ] && ( proto_add_host_dependency "$cfg" "$peeraddr" "$tunlink" ) + + [ -z "$ipaddr" ] && { + local wanif="$tunlink" + if [ -z "$wanif" ] && ! network_find_wan wanif; then + proto_notify_error "$cfg" "NO_WAN_LINK" + return + fi + + if ! network_get_ipaddr ipaddr "$wanif"; then + proto_notify_error "$cfg" "NO_WAN_LINK" + return + fi + } + + proto_init_update "$link" 1 + + [ -n "$ip6addr" ] && { + local local6="${ip6addr%%/*}" + local mask6="${ip6addr##*/}" + [[ "$local6" = "$mask6" ]] && mask6= + proto_add_ipv6_address "$local6" "$mask6" + proto_add_ipv6_route "::" 0 "" "" "" "$local6/$mask6" + } + + [ -n "$gateway" ] && { + proto_add_ipv6_route "::" 0 "$gateway" + } + + for ip6prefix in $ip6prefixes; do + proto_add_ipv6_prefix "$ip6prefix" + proto_add_ipv6_route "::" 0 "" "" "" "$ip6prefix" + done + + proto_add_tunnel + json_add_string mode sit + json_add_int mtu "${mtu:-1280}" + json_add_int ttl "${ttl:-64}" + [ -n "$tos" ] && json_add_string tos "$tos" + json_add_string local "$ipaddr" + json_add_string remote "$peeraddr" + [ -n "$tunlink" ] && json_add_string link "$tunlink" + proto_close_tunnel + + proto_send_update "$cfg" + + [ -n "$tunnelid" -a -n "$username" -a \( -n "$password" -o -n "$updatekey" \) ] && { + [ -n "$updatekey" ] && password="$updatekey" + + local http="http" + local urlget="uclient-fetch" + local urlget_opts="-qO-" + local ca_path="${SSL_CERT_DIR:-/etc/ssl/certs}" + + [ -f /lib/libustream-ssl.so ] && http=https + [ "$http" = "https" -a -z "$(find $ca_path -name "*.0" 2>/dev/null)" ] && { + urlget_opts="$urlget_opts --no-check-certificate" + } + + local url="$http://ipv4.tunnelbroker.net/nic/update?hostname=$tunnelid" + local try=0 + local max=3 + + ( + set -o pipefail + while [ $((++try)) -le $max ]; do + if proto_6in4_update $urlget $urlget_opts --user="$username" --password="$password" "$url" 2>&1 | \ + sed -e 's,^Killed$,timeout,' -e "s,^,update $try/$max: ," | \ + logger -t "$link"; + then + logger -t "$link" "updated" + return 0 + fi + sleep 5 + done + logger -t "$link" "update failed" + ) + } +} + +proto_6in4_teardown() { + local cfg="$1" +} + +proto_6in4_init_config() { + no_device=1 + available=1 + + proto_config_add_string "ipaddr" + proto_config_add_string "ip6addr" + proto_config_add_array "ip6prefix" + proto_config_add_string "peeraddr" + proto_config_add_string "tunlink" + proto_config_add_string "tunnelid" + proto_config_add_string "username" + proto_config_add_string "password" + proto_config_add_string "updatekey" + proto_config_add_string "gateway" + proto_config_add_int "mtu" + proto_config_add_int "ttl" + proto_config_add_string "tos" +} + +[ -n "$INCLUDE_ONLY" ] || { + add_protocol 6in4 +} diff --git a/root/package/network/services/dnsmasq/files/dnsmasq.init b/root/package/network/services/dnsmasq/files/dnsmasq.init new file mode 100644 index 00000000..ddd19a54 --- /dev/null +++ b/root/package/network/services/dnsmasq/files/dnsmasq.init @@ -0,0 +1,1134 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2007-2012 OpenWrt.org + +START=19 + +USE_PROCD=1 +PROG=/usr/sbin/dnsmasq + +ADD_LOCAL_DOMAIN=1 +ADD_LOCAL_HOSTNAME=1 +ADD_WAN_FQDN=0 +ADD_LOCAL_FQDN="" + +BASECONFIGFILE="/var/etc/dnsmasq.conf" +BASEHOSTFILE="/tmp/hosts/dhcp" +TRUSTANCHORSFILE="/usr/share/dnsmasq/trust-anchors.conf" +TIMEVALIDFILE="/var/state/dnsmasqsec" +BASEDHCPSTAMPFILE="/var/run/dnsmasq" +RFC6761FILE="/usr/share/dnsmasq/rfc6761.conf" +DHCPSCRIPT="/usr/lib/dnsmasq/dhcp-script.sh" + +DNSMASQ_DHCP_VER=4 + +xappend() { + local value="$1" + + echo "${value#--}" >> $CONFIGFILE_TMP +} + +hex_to_hostid() { + local var="$1" + local hex="${2#0x}" # strip optional "0x" prefix + + if [ -n "${hex//[0-9a-fA-F]/}" ]; then + # is invalid hex literal + return 1 + fi + + # convert into host id + export "$var=$( + printf "%0x:%0x" \ + $(((0x$hex >> 16) % 65536)) \ + $(( 0x$hex % 65536)) + )" + + return 0 +} + +dhcp_calc() { + local ip="$1" + local res=0 + + while [ -n "$ip" ]; do + part="${ip%%.*}" + res="$(($res * 256))" + res="$(($res + $part))" + [ "${ip%.*}" != "$ip" ] && ip="${ip#*.}" || ip= + done + echo "$res" +} + +dhcp_check() { + local ifname="$1" + local stamp="${BASEDHCPSTAMPFILE_CFG}.${ifname}.dhcp" + local rv=0 + + [ -s "$stamp" ] && return $(cat "$stamp") + + # If there's no carrier yet, skip this interface. + # The init script will be called again once the link is up + case "$(devstatus "$ifname" | jsonfilter -e @.carrier)" in + false) return 1;; + esac + + udhcpc -n -q -s /bin/true -t 1 -i "$ifname" >&- && rv=1 || rv=0 + + [ $rv -eq 1 ] && \ + logger -t dnsmasq \ + "found already running DHCP-server on interface '$ifname'" \ + "refusing to start, use 'option force 1' to override" + + echo $rv > "$stamp" + return $rv +} + +log_once() { + pidof dnsmasq >/dev/null || \ + logger -t dnsmasq "$@" +} + +has_handler() { + local file + + for file in /etc/hotplug.d/dhcp/* /etc/hotplug.d/tftp/* /etc/hotplug.d/neigh/*; do + [ -f "$file" ] && return 0 + done + + return 1 +} + +append_bool() { + local section="$1" + local option="$2" + local value="$3" + local default="$4" + local _loctmp + [ -z "$default" ] && default="0" + config_get_bool _loctmp "$section" "$option" "$default" + [ $_loctmp -gt 0 ] && xappend "$value" +} + +append_parm() { + local section="$1" + local option="$2" + local switch="$3" + local default="$4" + local _loctmp + config_get _loctmp "$section" "$option" "$default" + [ -z "$_loctmp" ] && return 0 + xappend "$switch=$_loctmp" +} + +append_server() { + xappend "--server=$1" +} + +append_rev_server() { + xappend "--rev-server=$1" +} + +append_address() { + xappend "--address=$1" +} + +append_ipset() { + xappend "--ipset=$1" +} + +append_interface() { + network_get_device ifname "$1" || ifname="$1" + xappend "--interface=$ifname" +} + +append_listenaddress() { + xappend "--listen-address=$1" +} + +append_notinterface() { + network_get_device ifname "$1" || ifname="$1" + xappend "--except-interface=$ifname" +} + +append_addnhosts() { + xappend "--addn-hosts=$1" +} + +append_bogusnxdomain() { + xappend "--bogus-nxdomain=$1" +} + +append_pxe_service() { + xappend "--pxe-service=$1" +} + +append_interface_name() { + xappend "--interface-name=$1,$2" +} + +filter_dnsmasq() { + local cfg="$1" func="$2" match_cfg="$3" found_cfg + + # use entry when no instance entry set, or if it matches + config_get found_cfg "$cfg" "instance" + if [ -z "$found_cfg" -o "$found_cfg" = "$match_cfg" ]; then + $func $cfg + fi +} + +dhcp_subscrid_add() { + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get subscriberid "$cfg" subscriberid + [ -n "$subscriberid" ] || return 0 + + xappend "--dhcp-subscrid=$networkid,$subscriberid" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + +dhcp_remoteid_add() { + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get remoteid "$cfg" remoteid + [ -n "$remoteid" ] || return 0 + + xappend "--dhcp-remoteid=$networkid,$remoteid" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + +dhcp_circuitid_add() { + # TODO: DHCPV6 does not have circuitid; catch "option6:" + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get circuitid "$cfg" circuitid + [ -n "$circuitid" ] || return 0 + + xappend "--dhcp-circuitid=$networkid,$circuitid" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + +dhcp_userclass_add() { + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get userclass "$cfg" userclass + [ -n "$userclass" ] || return 0 + + xappend "--dhcp-userclass=$networkid,$userclass" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + +dhcp_vendorclass_add() { + # TODO: DHCPV6 vendor class has stricter definitions; catch? fixup? + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get vendorclass "$cfg" vendorclass + [ -n "$vendorclass" ] || return 0 + + xappend "--dhcp-vendorclass=$networkid,$vendorclass" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + +dhcp_match_add() { + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get match "$cfg" match + [ -n "$match" ] || return 0 + + xappend "--dhcp-match=$networkid,$match" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + +dhcp_host_add() { + local cfg="$1" + local hosttag nametime addrs duids macs tags + + config_get_bool force "$cfg" force 0 + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] && dhcp_option_add "$cfg" "$networkid" "$force" + + config_get_bool enable "$cfg" enable 1 + [ "$enable" = "0" ] && return 0 + + config_get name "$cfg" name + config_get ip "$cfg" ip + config_get hostid "$cfg" hostid + + [ -n "$ip" -o -n "$name" -o -n "$hostid" ] || return 0 + + config_get_bool dns "$cfg" dns 0 + [ "$dns" = "1" -a -n "$ip" -a -n "$name" ] && { + echo "$ip $name${DOMAIN:+.$DOMAIN}" >> $HOSTFILE_TMP + } + + config_get mac "$cfg" mac + config_get duid "$cfg" duid + config_get tag "$cfg" tag + config_get gw "$cfg" gw + + if [ -n "$mac" ]; then + # --dhcp-host=00:20:e0:3b:13:af,192.168.0.199,lap + # many MAC are possible to track a laptop ON/OFF dock + for m in $mac; do append macs "$m" ","; done + fi + + if [ $DNSMASQ_DHCP_VER -eq 6 -a -n "$duid" ]; then + # --dhcp-host=id:00:03:00:01:12:00:00:01:02:03,[::beef],lap + # one (virtual) machine gets one DUID per RFC3315 + duids="id:${duid// */}" + fi + + if [ -z "$macs" -a -z "$duids" ]; then + # --dhcp-host=lap,192.168.0.199,[::beef] + [ -n "$name" ] || return 0 + macs="$name" + name="" + fi + + if [ -n "$hostid" ]; then + hex_to_hostid hostid "$hostid" + fi + + if [ -n "$tag" ]; then + for t in $tag; do append tags "$t" ",set:"; done + fi + + if [ -n "$gw" ]; then + append tags "$cfg" ",set:" + fi + + config_get_bool broadcast "$cfg" broadcast 0 + config_get leasetime "$cfg" leasetime + + [ "$broadcast" = "0" ] && broadcast= || broadcast=",set:needs-broadcast" + + hosttag="${networkid:+,set:${networkid}}${tags:+,set:${tags}}$broadcast" + nametime="${name:+,$name}${leasetime:+,$leasetime}" + + if [ $DNSMASQ_DHCP_VER -eq 6 ]; then + addrs="${ip:+,$ip}${hostid:+,[::$hostid]}" + xappend "--dhcp-host=$macs${duids:+,$duids}$hosttag$addrs$nametime" + else + xappend "--dhcp-host=$macs$hosttag${ip:+,$ip}$nametime" + fi + if [ -n "$gw" ]; then + xappend "--dhcp-option=tag:$cfg,option:router,$gw" + fi +} + +dhcp_this_host_add() { + local net="$1" + local ifname="$2" + local mode="$3" + local routerstub routername ifdashname + local lanaddr lanaddr6 lanaddrs6 ulaprefix + + if [ "$mode" -gt 0 ] ; then + ifdashname="${ifname//./-}" + routerstub="$( md5sum /etc/os-release )" + routerstub="router-${routerstub// */}" + routername="$( uci_get system @system[0] hostname $routerstub )" + + if [ "$mode" -gt 1 ] ; then + if [ "$mode" -gt 2 ] ; then + if [ "$mode" -gt 3 ] ; then + append_interface_name "$ifdashname.$routername.$DOMAIN" "$ifname" + fi + + append_interface_name "$routername.$DOMAIN" "$ifname" + fi + + # All IP addresses discovered by dnsmasq will be labeled (except fe80::) + append_interface_name "$routername" "$ifname" + + else + # This uses a static host file entry for only limited addresses. + # Use dnsmasq option "--expandhosts" to enable FQDN on host files. + ulaprefix="$(uci_get network @globals[0] ula_prefix)" + network_get_ipaddr lanaddr "$net" + network_get_ipaddrs6 lanaddrs6 "$net" + + if [ -n "$lanaddr" ] ; then + dhcp_domain_add "" "$routername" "$lanaddr" + fi + + if [ -n "$ulaprefix" -a -n "$lanaddrs6" ] ; then + for lanaddr6 in $lanaddrs6 ; do + case "$lanaddr6" in + "${ulaprefix%%:/*}"*) + dhcp_domain_add "" "$routername" "$lanaddr6" + ;; + esac + done + fi + fi + fi +} + +dhcp_tag_add() { + # NOTE: dnsmasq has explicit "option6:" prefix for DHCPv6 so no collisions + local cfg="$1" + + tag="$cfg" + + [ -n "$tag" ] || return 0 + + config_get_bool force "$cfg" force 0 + [ "$force" = "0" ] && force= + + config_get option "$cfg" dhcp_option + for o in $option; do + xappend "--dhcp-option${force:+-force}=tag:$tag,$o" + done +} + +dhcp_mac_add() { + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get mac "$cfg" mac + [ -n "$mac" ] || return 0 + + xappend "--dhcp-mac=$networkid,$mac" + + dhcp_option_add "$cfg" "$networkid" +} + +dhcp_boot_add() { + # TODO: BOOTURL is different between DHCPv4 and DHCPv6 + local cfg="$1" + + config_get networkid "$cfg" networkid + + config_get filename "$cfg" filename + [ -n "$filename" ] || return 0 + + config_get servername "$cfg" servername + config_get serveraddress "$cfg" serveraddress + + [ -n "$serveraddress" -a ! -n "$servername" ] && return 0 + + xappend "--dhcp-boot=${networkid:+net:$networkid,}${filename}${servername:+,$servername}${serveraddress:+,$serveraddress}" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + + +dhcp_add() { + local cfg="$1" + local dhcp6range="::" + local nettag + local tags + + config_get net "$cfg" interface + [ -n "$net" ] || return 0 + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || networkid="$net" + + network_get_device ifname "$net" || return 0 + + [ "$cachelocal" = "0" ] && network_get_dnsserver dnsserver "$net" && { + DNS_SERVERS="$DNS_SERVERS $dnsserver" + } + + append_bool "$cfg" ignore "--no-dhcp-interface=$ifname" && { + # Many ISP do not have useful names for DHCP customers (your WAN). + dhcp_this_host_add "$net" "$ifname" "$ADD_WAN_FQDN" + return 0 + } + + network_get_subnet subnet "$net" || return 0 + network_get_protocol proto "$net" || return 0 + + # Do not support non-static interfaces for now + [ static = "$proto" ] || return 0 + + # Override interface netmask with dhcp config if applicable + config_get netmask "$cfg" netmask "${subnet##*/}" + + #check for an already active dhcp server on the interface, unless 'force' is set + config_get_bool force "$cfg" force 0 + [ $force -gt 0 ] || dhcp_check "$ifname" || return 0 + + config_get start "$cfg" start 100 + config_get limit "$cfg" limit 150 + config_get leasetime "$cfg" leasetime 12h + config_get options "$cfg" options + config_get_bool dynamicdhcp "$cfg" dynamicdhcp 1 + + config_get dhcpv4 "$cfg" dhcpv4 + config_get dhcpv6 "$cfg" dhcpv6 + + config_get ra "$cfg" ra + config_get ra_management "$cfg" ra_management + config_get ra_preference "$cfg" ra_preference + config_get dns "$cfg" dns + + config_list_foreach "$cfg" "interface_name" append_interface_name "$ifname" + + # Put the router host name on this DHCP served interface address(es) + dhcp_this_host_add "$net" "$ifname" "$ADD_LOCAL_FQDN" + + start="$( dhcp_calc "$start" )" + + add_tag() { + tags="${tags}tag:$1," + } + config_list_foreach "$cfg" tag add_tag + + nettag="${networkid:+set:${networkid},}" + + if [ "$limit" -gt 0 ] ; then + limit=$((limit-1)) + fi + + eval "$(ipcalc.sh "${subnet%%/*}" $netmask $start $limit)" + + if [ "$dynamicdhcp" = "0" ] ; then + END="static" + dhcp6range="::,static" + else + dhcp6range="::1000,::ffff" + fi + + + if [ "$dhcpv4" != "disabled" ] ; then + xappend "--dhcp-range=$tags$nettag$START,$END,$NETMASK,$leasetime${options:+ $options}" + fi + + + if [ $DNSMASQ_DHCP_VER -eq 6 -a "$ra" = "server" ] ; then + # Note: dnsmasq cannot just be a DHCPv6 server (all-in-1) + # and let some other machine(s) send RA pointing to it. + + case $ra_preference in + *high*) + xappend "--ra-param=$ifname,high,0,7200" + ;; + *low*) + xappend "--ra-param=$ifname,low,0,7200" + ;; + *) + # Send UNSOLICITED RA at default interval and live for 2 hours. + # TODO: convert flexible lease time into route life time (only seconds). + xappend "--ra-param=$ifname,0,7200" + ;; + esac + + if [ "$dhcpv6" = "disabled" ] ; then + ra_management="3" + fi + + + case $ra_management in + 0) + # SLACC with DCHP for extended options + xappend "--dhcp-range=$nettag::,constructor:$ifname,ra-stateless,ra-names" + ;; + 2) + # DHCP address and RA only for management redirection + xappend "--dhcp-range=$nettag$dhcp6range,constructor:$ifname,$leasetime" + ;; + 3) + # SLAAC only but dnsmasq attempts to link HOSTNAME, DHCPv4 MAC, and SLAAC + xappend "--dhcp-range=$nettag::,constructor:$ifname,ra-only,ra-names" + ;; + *) + # SLAAC and full DHCP + xappend "--dhcp-range=$nettag$dhcp6range,constructor:$ifname,slaac,ra-names,$leasetime" + ;; + esac + + if [ -n "$dns" ]; then + dnss="" + for d in $dns; do append dnss "[$d]" ","; done + else + dnss="[::]" + fi + + dhcp_option_append "option6:dns-server,$dnss" "$networkid" + fi + + dhcp_option_add "$cfg" "$networkid" 0 + dhcp_option_add "$cfg" "$networkid" 2 +} + +dhcp_option_append() { + local option="$1" + local networkid="$2" + local force="$3" + + xappend "--dhcp-option${force:+-force}=${networkid:+$networkid,}$option" +} + +dhcp_option_add() { + # NOTE: dnsmasq has explicit "option6:" prefix for DHCPv6 so no collisions + local cfg="$1" + local networkid="$2" + local force="$3" + local opt="dhcp_option" + + [ "$force" = "0" ] && force= + [ "$force" = "2" ] && opt="dhcp_option_force" + + local list_len + config_get list_len "$cfg" "${opt}_LENGTH" + + if [ -n "$list_len" ]; then + config_list_foreach "$cfg" "$opt" dhcp_option_append "$networkid" "$force" + else + config_get dhcp_option "$cfg" "$opt" + + [ -n "$dhcp_option" ] && echo "Warning: the 'option $opt' syntax is deprecated, use 'list $opt'" >&2 + + local option + for option in $dhcp_option; do + dhcp_option_append "$option" "$networkid" "$force" + done + fi +} + +dhcp_domain_add() { + local cfg="$1" + local ip name names record + + config_get names "$cfg" name "$2" + [ -n "$names" ] || return 0 + + config_get ip "$cfg" ip "$3" + [ -n "$ip" ] || return 0 + + for name in $names; do + record="${record:+$record }$name" + done + + echo "$ip $record" >> $HOSTFILE_TMP +} + +dhcp_srv_add() { + local cfg="$1" + + config_get srv "$cfg" srv + [ -n "$srv" ] || return 0 + + config_get target "$cfg" target + [ -n "$target" ] || return 0 + + config_get port "$cfg" port + [ -n "$port" ] || return 0 + + config_get class "$cfg" class + config_get weight "$cfg" weight + + local service="$srv,$target,$port${class:+,$class${weight:+,$weight}}" + + xappend "--srv-host=$service" +} + +dhcp_mx_add() { + local cfg="$1" + local domain relay pref + + config_get domain "$cfg" domain + [ -n "$domain" ] || return 0 + + config_get relay "$cfg" relay + [ -n "$relay" ] || return 0 + + config_get pref "$cfg" pref 0 + + local service="$domain,$relay,$pref" + + xappend "--mx-host=$service" +} + +dhcp_cname_add() { + local cfg="$1" + local cname target + + config_get cname "$cfg" cname + [ -n "$cname" ] || return 0 + + config_get target "$cfg" target + [ -n "$target" ] || return 0 + + xappend "--cname=${cname},${target}" +} + +dhcp_hostrecord_add() { + local cfg="$1" + local names addresses record val + + config_get names "$cfg" name "$2" + if [ -z "$names" ]; then + return 0 + fi + + config_get addresses "$cfg" ip "$3" + if [ -z "$addresses" ]; then + return 0 + fi + + for val in $names $addresses; do + record="${record:+$record,}$val" + done + + xappend "--host-record=$record" +} + +dhcp_relay_add() { + local cfg="$1" + local local_addr server_addr interface + + config_get local_addr "$cfg" local_addr + [ -n "$local_addr" ] || return 0 + + config_get server_addr "$cfg" server_addr + [ -n "$server_addr" ] || return 0 + + config_get interface "$cfg" interface + if [ -z "$interface" ]; then + xappend "--dhcp-relay=$local_addr,$server_addr" + else + network_get_device ifname "$interface" || return + xappend "--dhcp-relay=$local_addr,$server_addr,$ifname" + fi +} + +dnsmasq_start() +{ + local cfg="$1" disabled resolvfile user_dhcpscript + + config_get_bool disabled "$cfg" disabled 0 + [ "$disabled" -gt 0 ] && return 0 + + # reset list of DOMAINS and DNS servers (for each dnsmasq instance) + DNS_SERVERS="" + DOMAIN="" + CONFIGFILE="${BASECONFIGFILE}.${cfg}" + CONFIGFILE_TMP="${CONFIGFILE}.$$" + HOSTFILE="${BASEHOSTFILE}.${cfg}" + HOSTFILE_TMP="${HOSTFILE}.$$" + BASEDHCPSTAMPFILE_CFG="${BASEDHCPSTAMPFILE}.${cfg}" + + # before we can call xappend + mkdir -p /var/run/dnsmasq/ + mkdir -p $(dirname $CONFIGFILE) + mkdir -p $(dirname $HOSTFILE) + mkdir -p /var/lib/misc + chown dnsmasq:dnsmasq /var/run/dnsmasq + + echo "# auto-generated config file from /etc/config/dhcp" > $CONFIGFILE_TMP + echo "# auto-generated config file from /etc/config/dhcp" > $HOSTFILE_TMP + + local dnsmasqconffile="/etc/dnsmasq.${cfg}.conf" + if [ ! -r "$dnsmasqconffile" ]; then + dnsmasqconffile=/etc/dnsmasq.conf + fi + + # if we did this last, we could override auto-generated config + [ -f "${dnsmasqconffile}" ] && { + xappend "--conf-file=${dnsmasqconffile}" + } + + $PROG --version | grep -osqE "^Compile time options:.* DHCPv6( |$)" && DHCPv6CAPABLE=1 || DHCPv6CAPABLE=0 + + + if [ -x /usr/sbin/odhcpd -a -x /etc/init.d/odhcpd ] ; then + local odhcpd_is_main odhcpd_is_enabled + config_get odhcpd_is_main odhcpd maindhcp 0 + /etc/init.d/odhcpd enabled && odhcpd_is_enabled=1 || odhcpd_is_enabled=0 + + + if [ "$odhcpd_is_enabled" -eq 0 -a "$DHCPv6CAPABLE" -eq 1 ] ; then + # DHCP V4 and V6 in DNSMASQ + DNSMASQ_DHCP_VER=6 + elif [ "$odhcpd_is_main" -gt 0 ] ; then + # ODHCPD is doing it all + DNSMASQ_DHCP_VER=0 + else + # You have ODHCPD but use DNSMASQ for DHCPV4 + DNSMASQ_DHCP_VER=4 + fi + + elif [ "$DHCPv6CAPABLE" -eq 1 ] ; then + # DHCP V4 and V6 in DNSMASQ + DNSMASQ_DHCP_VER=6 + else + DNSMASQ_DHCP_VER=4 + fi + + # Allow DHCP/DHCPv6 to be handled by ISC DHCPD + if [ -x /usr/sbin/dhcpd ] ; then + if [ -x /etc/init.d/dhcpd ] ; then + /etc/init.d/dhcpd enabled && DNSMASQ_DHCP_VER=0 + fi + if [ -x /etc/init.d/dhcpd6 -a "$DNSMASQ_DHCP_VER" -gt 0 ] ; then + /etc/init.d/dhcpd6 enabled && DNSMASQ_DHCP_VER=4 + fi + fi + + append_bool "$cfg" authoritative "--dhcp-authoritative" + append_bool "$cfg" nodaemon "--no-daemon" + append_bool "$cfg" domainneeded "--domain-needed" + append_bool "$cfg" filterwin2k "--filterwin2k" + append_bool "$cfg" nohosts "--no-hosts" + append_bool "$cfg" nonegcache "--no-negcache" + append_bool "$cfg" strictorder "--strict-order" + append_bool "$cfg" logqueries "--log-queries=extra" + append_bool "$cfg" noresolv "--no-resolv" + append_bool "$cfg" localise_queries "--localise-queries" + append_bool "$cfg" readethers "--read-ethers" + append_bool "$cfg" dbus "--enable-dbus" + append_bool "$cfg" expandhosts "--expand-hosts" + config_get tftp_root "$cfg" "tftp_root" + [ -n "$tftp_root" ] && mkdir -p "$tftp_root" && append_bool "$cfg" enable_tftp "--enable-tftp" + append_bool "$cfg" tftp_no_fail "--tftp-no-fail" + append_bool "$cfg" nonwildcard "--bind-dynamic" 1 + append_bool "$cfg" fqdn "--dhcp-fqdn" + append_bool "$cfg" proxydnssec "--proxy-dnssec" + append_bool "$cfg" localservice "--local-service" + append_bool "$cfg" logdhcp "--log-dhcp" + append_bool "$cfg" quietdhcp "--quiet-dhcp" + append_bool "$cfg" sequential_ip "--dhcp-sequential-ip" + append_bool "$cfg" allservers "--all-servers" + append_bool "$cfg" noping "--no-ping" + + append_parm "$cfg" logfacility "--log-facility" + + append_parm "$cfg" cachesize "--cache-size" + append_parm "$cfg" dnsforwardmax "--dns-forward-max" + append_parm "$cfg" port "--port" + append_parm "$cfg" ednspacket_max "--edns-packet-max" + append_parm "$cfg" dhcpleasemax "--dhcp-lease-max" + append_parm "$cfg" "queryport" "--query-port" + append_parm "$cfg" "minport" "--min-port" + append_parm "$cfg" "maxport" "--max-port" + append_parm "$cfg" "domain" "--domain" + append_parm "$cfg" "local" "--server" + config_list_foreach "$cfg" "listen_address" append_listenaddress + config_list_foreach "$cfg" "server" append_server + config_list_foreach "$cfg" "rev_server" append_rev_server + config_list_foreach "$cfg" "address" append_address + config_list_foreach "$cfg" "ipset" append_ipset + [ -n "$BOOT" ] || { + config_list_foreach "$cfg" "interface" append_interface + config_list_foreach "$cfg" "notinterface" append_notinterface + } + config_list_foreach "$cfg" "addnhosts" append_addnhosts + config_list_foreach "$cfg" "bogusnxdomain" append_bogusnxdomain + append_parm "$cfg" "leasefile" "--dhcp-leasefile" "/tmp/dhcp.leases" + append_parm "$cfg" "serversfile" "--servers-file" + append_parm "$cfg" "tftp_root" "--tftp-root" + append_parm "$cfg" "dhcp_boot" "--dhcp-boot" + append_parm "$cfg" "local_ttl" "--local-ttl" + append_parm "$cfg" "pxe_prompt" "--pxe-prompt" + config_list_foreach "$cfg" "pxe_service" append_pxe_service + config_get DOMAIN "$cfg" domain + + config_get_bool ADD_LOCAL_DOMAIN "$cfg" add_local_domain 1 + config_get_bool ADD_LOCAL_HOSTNAME "$cfg" add_local_hostname 1 + config_get ADD_LOCAL_FQDN "$cfg" add_local_fqdn "" + config_get ADD_WAN_FQDN "$cfg" add_wan_fqdn 0 + + if [ -z "$ADD_LOCAL_FQDN" ] ; then + # maintain support for previous UCI + ADD_LOCAL_FQDN="$ADD_LOCAL_HOSTNAME" + fi + + config_get_bool readethers "$cfg" readethers + [ "$readethers" = "1" -a \! -e "/etc/ethers" ] && touch /etc/ethers + + config_get user_dhcpscript $cfg dhcpscript + if has_handler || [ -n "$user_dhcpscript" ]; then + xappend "--dhcp-script=$DHCPSCRIPT" + fi + + config_get leasefile $cfg leasefile "/tmp/dhcp.leases" + [ -n "$leasefile" -a \! -e "$leasefile" ] && touch "$leasefile" + config_get_bool cachelocal "$cfg" cachelocal 1 + + config_get_bool noresolv "$cfg" noresolv 0 + if [ "$noresolv" != "1" ]; then + config_get resolvfile "$cfg" resolvfile "/tmp/resolv.conf.auto" + # So jail doesn't complain if file missing + [ -n "$resolvfile" -a \! -e "$resolvfile" ] && touch "$resolvfile" + fi + + [ -n "$resolvfile" ] && xappend "--resolv-file=$resolvfile" + + config_get hostsfile "$cfg" dhcphostsfile + [ -e "$hostsfile" ] && xappend "--dhcp-hostsfile=$hostsfile" + + local rebind + config_get_bool rebind "$cfg" rebind_protection 1 + [ $rebind -gt 0 ] && { + log_once \ + "DNS rebinding protection is active," \ + "will discard upstream RFC1918 responses!" + xappend "--stop-dns-rebind" + + local rebind_localhost + config_get_bool rebind_localhost "$cfg" rebind_localhost 0 + [ $rebind_localhost -gt 0 ] && { + log_once "Allowing 127.0.0.0/8 responses" + xappend "--rebind-localhost-ok" + } + + append_rebind_domain() { + log_once "Allowing RFC1918 responses for domain $1" + xappend "--rebind-domain-ok=$1" + } + + config_list_foreach "$cfg" rebind_domain append_rebind_domain + } + + config_get_bool dnssec "$cfg" dnssec 0 + [ "$dnssec" -gt 0 ] && { + xappend "--conf-file=$TRUSTANCHORSFILE" + xappend "--dnssec" + [ -x /etc/init.d/sysntpd ] && { + /etc/init.d/sysntpd enabled + [ "$?" -ne 0 -o "$(uci_get system.ntp.enabled)" = "1" ] && { + [ -f "$TIMEVALIDFILE" ] || xappend "--dnssec-no-timecheck" + } + } + append_bool "$cfg" dnsseccheckunsigned "--dnssec-check-unsigned" + } + + config_get addmac "$cfg" addmac 0 + [ "$addmac" != "0" ] && { + [ "$addmac" = "1" ] && addmac= + xappend "--add-mac${addmac:+="$addmac"}" + } + + dhcp_option_add "$cfg" "" 0 + dhcp_option_add "$cfg" "" 2 + + xappend "--dhcp-broadcast=tag:needs-broadcast" + + xappend "--addn-hosts=$(dirname $HOSTFILE)" + + config_get dnsmasqconfdir "$cfg" confdir "/tmp/dnsmasq.d" + xappend "--conf-dir=$dnsmasqconfdir" + dnsmasqconfdir="${dnsmasqconfdir%%,*}" + [ ! -d "$dnsmasqconfdir" ] && mkdir -p $dnsmasqconfdir + xappend "--user=dnsmasq" + xappend "--group=dnsmasq" + echo >> $CONFIGFILE_TMP + + config_get_bool enable_tftp "$cfg" enable_tftp 0 + [ "$enable_tftp" -gt 0 ] && { + config_get tftp_root "$cfg" tftp_root + append EXTRA_MOUNT $tftp_root + } + + config_foreach filter_dnsmasq host dhcp_host_add "$cfg" + echo >> $CONFIGFILE_TMP + config_foreach filter_dnsmasq boot dhcp_boot_add "$cfg" + config_foreach filter_dnsmasq mac dhcp_mac_add "$cfg" + config_foreach filter_dnsmasq tag dhcp_tag_add "$cfg" + config_foreach filter_dnsmasq vendorclass dhcp_vendorclass_add "$cfg" + config_foreach filter_dnsmasq userclass dhcp_userclass_add "$cfg" + config_foreach filter_dnsmasq circuitid dhcp_circuitid_add "$cfg" + config_foreach filter_dnsmasq remoteid dhcp_remoteid_add "$cfg" + config_foreach filter_dnsmasq subscrid dhcp_subscrid_add "$cfg" + config_foreach filter_dnsmasq match dhcp_match_add "$cfg" + config_foreach filter_dnsmasq domain dhcp_domain_add "$cfg" + config_foreach filter_dnsmasq hostrecord dhcp_hostrecord_add "$cfg" + [ -n "$BOOT" ] || config_foreach filter_dnsmasq relay dhcp_relay_add "$cfg" + + echo >> $CONFIGFILE_TMP + config_foreach filter_dnsmasq srvhost dhcp_srv_add "$cfg" + config_foreach filter_dnsmasq mxhost dhcp_mx_add "$cfg" + echo >> $CONFIGFILE_TMP + + config_get_bool boguspriv "$cfg" boguspriv 1 + [ "$boguspriv" -gt 0 ] && { + xappend "--bogus-priv" + [ -r "$RFC6761FILE" ] && xappend "--conf-file=$RFC6761FILE" + } + + if [ "$DNSMASQ_DHCP_VER" -gt 4 ] ; then + # Enable RA feature for when/if it is constructed, + # and RA is selected per interface pool (RA, DHCP, or both), + # but no one (should) want RA broadcast in syslog + [ -n "$BOOT" ] || config_foreach filter_dnsmasq dhcp dhcp_add "$cfg" + xappend "--enable-ra" + xappend "--quiet-ra" + append_bool "$cfg" quietdhcp "--quiet-dhcp6" + + elif [ "$DNSMASQ_DHCP_VER" -gt 0 ] ; then + [ -n "$BOOT" ] || config_foreach filter_dnsmasq dhcp dhcp_add "$cfg" + fi + + + echo >> $CONFIGFILE_TMP + config_foreach filter_dnsmasq cname dhcp_cname_add "$cfg" + echo >> $CONFIGFILE_TMP + + echo >> $CONFIGFILE_TMP + mv -f $CONFIGFILE_TMP $CONFIGFILE + mv -f $HOSTFILE_TMP $HOSTFILE + + [ "$resolvfile" = "/tmp/resolv.conf.auto" ] && { + rm -f /tmp/resolv.conf + [ $ADD_LOCAL_DOMAIN -eq 1 ] && [ -n "$DOMAIN" ] && { + echo "search $DOMAIN" >> /tmp/resolv.conf + } + DNS_SERVERS="$DNS_SERVERS 127.0.0.1" + for DNS_SERVER in $DNS_SERVERS ; do + echo "nameserver $DNS_SERVER" >> /tmp/resolv.conf + done + } + + procd_open_instance $cfg + procd_set_param command $PROG -C $CONFIGFILE -k -x /var/run/dnsmasq/dnsmasq."${cfg}".pid + procd_set_param file $CONFIGFILE + [ -n "$user_dhcpscript" ] && procd_set_param env USER_DHCPSCRIPT="$user_dhcpscript" + procd_set_param respawn + + procd_add_jail dnsmasq ubus log + procd_add_jail_mount $CONFIGFILE $TRUSTANCHORSFILE $HOSTFILE $RFC6761FILE /etc/passwd /etc/group /etc/TZ /dev/null /dev/urandom $dnsmasqconffile $dnsmasqconfdir $resolvfile $user_dhcpscript /etc/hosts /etc/ethers /sbin/hotplug-call $EXTRA_MOUNT $DHCPSCRIPT + procd_add_jail_mount_rw /var/run/dnsmasq/ $leasefile + + procd_close_instance +} + +dnsmasq_stop() +{ + local cfg="$1" resolvfile + + config_get resolvfile "$cfg" "resolvfile" + + #relink /tmp/resolve.conf only for main instance + [ "$resolvfile" = "/tmp/resolv.conf.auto" ] && { + [ -f /tmp/resolv.conf ] && { + rm -f /tmp/resolv.conf + ln -s "$resolvfile" /tmp/resolv.conf + } + } + + rm -f ${BASEDHCPSTAMPFILE}.${cfg}.*.dhcp +} + +add_interface_trigger() +{ + local interface ignore + + config_get interface "$1" interface + config_get_bool ignore "$1" ignore 0 + + [ -n "$interface" -a $ignore -eq 0 ] && procd_add_interface_trigger "interface.*" "$interface" /etc/init.d/dnsmasq reload +} + +service_triggers() +{ + procd_add_reload_trigger "dhcp" "system" + + config_load dhcp + config_foreach add_interface_trigger dhcp + config_foreach add_interface_trigger relay +} + +boot() +{ + BOOT=1 + start "$@" +} + +start_service() { + local instance="$1" + local instance_found=0 + + . /lib/functions/network.sh + + config_cb() { + local type="$1" + local name="$2" + if [ "$type" = "dnsmasq" ]; then + if [ -n "$instance" -a "$instance" = "$name" ]; then + instance_found=1 + fi + fi + } + + config_load dhcp + + if [ -n "$instance" ]; then + [ "$instance_found" -gt 0 ] || return + dnsmasq_start "$instance" + else + config_foreach dnsmasq_start dnsmasq + fi +} + +reload_service() { + rc_procd start_service "$@" + procd_send_signal dnsmasq "$@" +} + +stop_service() { + local instance="$1" + local instance_found=0 + + config_cb() { + local type="$1" + local name="$2" + if [ "$type" = "dnsmasq" ]; then + if [ -n "$instance" -a "$instance" = "$name" ]; then + instance_found=1 + fi + fi + } + + config_load dhcp + + if [ -n "$instance" ]; then + [ "$instance_found" -gt 0 ] || return + dnsmasq_stop "$instance" + else + config_foreach dnsmasq_stop dnsmasq + fi +} diff --git a/root/package/utils/wmt/Makefile b/root/package/utils/wmt/Makefile new file mode 100644 index 00000000..dffd032e --- /dev/null +++ b/root/package/utils/wmt/Makefile @@ -0,0 +1,51 @@ +# +# Copyright (C) 2009 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=wmt +PKG_VERSION:=1.0.0 +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/abbradar/wmt +PKG_SOURCE_VERSION:=2127e23dd94df960b12f3ffff806bcf41ebbf4b8 +PKG_MAINTAINER:=Nikolay Amiantov + +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME) + SECTION:=utils + CATEGORY:=Utilities + TITLE:=wmt utility for MT6625L + DEPENDS:=kmod-mt6625l-wlan-gen2 + MAINTAINER:=Jinkai li +endef + +define Package/$(PKG_NAME)/description + Utility for loading MT6625L firmware. +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/stp_uart_launcher $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/wmt_loader $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/wmt_loopback $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/system/etc/firmware + $(INSTALL_DATA) $(PKG_BUILD_DIR)/config/WMT_SOC.cfg $(1)/system/etc/firmware + $(INSTALL_DATA) $(PKG_BUILD_DIR)/config/WMT_SOC.cfg $(1)/system/etc/firmware/WMT.cfg + $(INSTALL_DIR) $(1)/etc/firmware + $(CP) -r $(PKG_BUILD_DIR)/firmware/* $(1)/etc/firmware/ + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/wmt.init $(1)/etc/init.d/wmt + $(INSTALL_DIR) $(1)/etc/uci-defaults + $(INSTALL_BIN) ./files/wmt.defaults $(1)/etc/uci-defaults/8803-wmt +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/root/package/utils/wmt/files/wmt.defaults b/root/package/utils/wmt/files/wmt.defaults new file mode 100644 index 00000000..ff619a29 --- /dev/null +++ b/root/package/utils/wmt/files/wmt.defaults @@ -0,0 +1,11 @@ +#!/bin/sh + +if [ -z "$(uci -q get ucitrack.@wmt[0])" ]; then + uci -q batch <<-EOF + set ucitrack.@wmt[-1]=wmt + set ucitrack.@wmt[-1].init=wmt + add_list ucitrack.@wireless[0].affects=wmt + commit ucitrack + EOF +fi +exit 0 diff --git a/root/package/utils/wmt/files/wmt.init b/root/package/utils/wmt/files/wmt.init new file mode 100644 index 00000000..bf4580e3 --- /dev/null +++ b/root/package/utils/wmt/files/wmt.init @@ -0,0 +1,119 @@ +#!/bin/sh /etc/rc.common + +START=69 + +check_mtk_device() { + config_get phy "$1" phy + [ "$phy" = "mtkp2p0" ] && { + [ "$(uci -q get wireless.$1.disabled)" = "1" ] || apmode="$1" + [ -z "$(uci -q get wireless.default_$1.ifname)" ] && { + uci -q batch <<-EOF + set wireless.default_$1.ifname=mtkap0 + set wireless.default_$1.bss_load_update_period=0 + rename wireless.$1=ap + rename wireless.default_$1=default_ap + set wireless.default_$1.device=ap + EOF + } + } + [ "$phy" = "mtkphy0" ] && { + [ "$(uci -q get wireless.$1.disabled)" = "1" ] || wlanmode="$1" + [ "$(uci -q get wireless.default_$1.mode)" = "ap" ] && { + uci -q batch <<-EOF + set wireless.default_$1.mode=sta + EOF + } + [ -z "$(uci -q get wireless.default_$1.ifname)" ] && { + uci -q batch <<-EOF + set wireless.default_$1.ifname=mtkwlan0 + set wireless.default_$1.bss_load_update_period=0 + rename wireless.$1=client + rename wireless.default_$1=default_client + set wireless.default_$1.device=client + EOF + } + } +} + +find_radio() { + config_load wireless + apmode="" + wlanmode="" + config_foreach check_mtk_device wifi-device + uci -q commit wireless +} + +start_ap() { + echo A > /dev/wmtWifi + # Those are recommended by vendor to avoid chip lockup. + tc qdisc add dev mtkap0 root handle 1: htb default 11 + tc class add dev mtkap0 parent 1:1 classid 1:2 htb rate 8Mbit ceil 4Mbit prio 2 + + find_radio + if [ -n "$apmode" ]; then + config_get_bool disabled "$apmode" disabled + [ "$disabled" = "1" ] || wifi up "$apmode" 2>/dev/null + fi +} + +start_wlan() { + echo 1 > /dev/wmtWifi + # Those are recommended by vendor to avoid chip lockup. + tc qdisc add dev mtkap0 root handle 1: htb default 11 + tc class add dev mtkap0 parent 1:1 classid 1:2 htb rate 8Mbit ceil 4Mbit prio 2 + + find_radio + if [ -n "$wlanmode" ]; then + config_get_bool disabled "$wlanmode" disabled + [ "$disabled" = "1" ] || wifi up "$wlanmode" 2>/dev/null + fi +} + +stop_apwlan() { + find_radio + [ -n "$apmode" ] && wifi down "$apmode" 2>/dev/null + [ -n "$wlanmode" ] && wifi down "$wlanmode" 2>/dev/null + echo 0 > /dev/wmtWifi + +} + +start() { + find_radio + + [ -c /dev/stpwmt ] || /usr/bin/wmt_loader 2>&1 + /usr/bin/stp_uart_launcher -p /etc/firmware 2>&1 | logger -t stp_uart_launcher & + echo "$!" > /var/run/stp_uart_launcher.pid + sleep 3 + if [ -c /dev/wmtWifi ]; then + [ -n "$apmode" ] && start_ap + [ -n "$wlanmode" ] && start_wlan + [ -z "$apmode" ] && [ -z "$wlanmode" ] && start_ap + return 0 + else + return 1 + fi +} + +stop() { + find_radio + + if [ -c /dev/wmtWifi ]; then + stop_apwlan + stp_pid="$(cat /var/run/stp_uart_launcher.pid 2>/dev/null)" + if [ -n "$stp_pid" ]; then + kill "$stp_pid" + rm /var/run/stp_uart_launcher.pid + fi + fi +} + +reload() { + find_radio + + if [ -c /dev/wmtWifi ]; then + stop_apwlan + [ -n "$apmode" ] && start_ap + [ -n "$wlanmode" ] && start_wlan + [ -z "$apmode" ] && [ -z "$wlanmode" ] && start_ap + fi +} diff --git a/root/target/linux/bcm27xx/Makefile b/root/target/linux/bcm27xx/Makefile old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/bcm2708/config-4.14 b/root/target/linux/bcm27xx/bcm2708/config-4.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/bcm2708/config-5.14 b/root/target/linux/bcm27xx/bcm2708/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/bcm2708/config-5.15 b/root/target/linux/bcm27xx/bcm2708/config-5.15 old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/bcm2709/config-4.14 b/root/target/linux/bcm27xx/bcm2709/config-4.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/bcm2709/config-4.19 b/root/target/linux/bcm27xx/bcm2709/config-4.19 old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/bcm2709/config-5.14 b/root/target/linux/bcm27xx/bcm2709/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/bcm2709/config-5.15 b/root/target/linux/bcm27xx/bcm2709/config-5.15 old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/bcm2710/config-4.14 b/root/target/linux/bcm27xx/bcm2710/config-4.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/bcm2710/config-4.19 b/root/target/linux/bcm27xx/bcm2710/config-4.19 old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/bcm2710/config-5.14 b/root/target/linux/bcm27xx/bcm2710/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/bcm2710/config-5.15 b/root/target/linux/bcm27xx/bcm2710/config-5.15 old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/bcm2711/config-4.19 b/root/target/linux/bcm27xx/bcm2711/config-4.19 old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/bcm2711/config-5.14 b/root/target/linux/bcm27xx/bcm2711/config-5.14 old mode 100755 new mode 100644 index 6b0205ec..c82ae449 --- a/root/target/linux/bcm27xx/bcm2711/config-5.14 +++ b/root/target/linux/bcm27xx/bcm2711/config-5.14 @@ -444,8 +444,6 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_COMMON=y CONFIG_USB_DWCOTG=y CONFIG_USB_GADGET=y -CONFIG_USB_LAN78XX=y -CONFIG_USB_NET_DRIVERS=y CONFIG_USB_PCI=y CONFIG_USB_PHY=y CONFIG_USB_STORAGE=y diff --git a/root/target/linux/bcm27xx/bcm2711/config-5.15 b/root/target/linux/bcm27xx/bcm2711/config-5.15 old mode 100755 new mode 100644 index 6b0205ec..c82ae449 --- a/root/target/linux/bcm27xx/bcm2711/config-5.15 +++ b/root/target/linux/bcm27xx/bcm2711/config-5.15 @@ -444,8 +444,6 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_COMMON=y CONFIG_USB_DWCOTG=y CONFIG_USB_GADGET=y -CONFIG_USB_LAN78XX=y -CONFIG_USB_NET_DRIVERS=y CONFIG_USB_PCI=y CONFIG_USB_PHY=y CONFIG_USB_STORAGE=y diff --git a/root/target/linux/bcm27xx/image/cmdline.txt b/root/target/linux/bcm27xx/image/cmdline.txt old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0001-arm-partially-revert-702b94bff3c50542a6e4ab9a4f4cef0.patch b/root/target/linux/bcm27xx/patches-5.14/0001-arm-partially-revert-702b94bff3c50542a6e4ab9a4f4cef0.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0002-Revert-rtc-pcf8523-properly-handle-oscillator-stop-b.patch b/root/target/linux/bcm27xx/patches-5.14/0002-Revert-rtc-pcf8523-properly-handle-oscillator-stop-b.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0003-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch b/root/target/linux/bcm27xx/patches-5.14/0003-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0004-Revert-spi-spidev-Fix-CS-polarity-if-GPIO-descriptor.patch b/root/target/linux/bcm27xx/patches-5.14/0004-Revert-spi-spidev-Fix-CS-polarity-if-GPIO-descriptor.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0005-Revert-mailbox-avoid-timer-start-from-callback.patch b/root/target/linux/bcm27xx/patches-5.14/0005-Revert-mailbox-avoid-timer-start-from-callback.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0006-Revert-Bluetooth-Always-request-for-user-confirmatio.patch b/root/target/linux/bcm27xx/patches-5.14/0006-Revert-Bluetooth-Always-request-for-user-confirmatio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0007-Revert-Bluetooth-Always-request-for-user-confirmatio.patch b/root/target/linux/bcm27xx/patches-5.14/0007-Revert-Bluetooth-Always-request-for-user-confirmatio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0008-smsx95xx-fix-crimes-against-truesize.patch b/root/target/linux/bcm27xx/patches-5.14/0008-smsx95xx-fix-crimes-against-truesize.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0009-smsc95xx-Experimental-Enable-turbo_mode-and-packetsi.patch b/root/target/linux/bcm27xx/patches-5.14/0009-smsc95xx-Experimental-Enable-turbo_mode-and-packetsi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0010-Allow-mac-address-to-be-set-in-smsc95xx.patch b/root/target/linux/bcm27xx/patches-5.14/0010-Allow-mac-address-to-be-set-in-smsc95xx.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0011-cgroup-Disable-cgroup-memory-by-default.patch b/root/target/linux/bcm27xx/patches-5.14/0011-cgroup-Disable-cgroup-memory-by-default.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0012-Protect-__release_resource-against-resources-without.patch b/root/target/linux/bcm27xx/patches-5.14/0012-Protect-__release_resource-against-resources-without.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0013-irq-bcm2836-Avoid-Invalid-trigger-warning.patch b/root/target/linux/bcm27xx/patches-5.14/0013-irq-bcm2836-Avoid-Invalid-trigger-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0014-irqchip-bcm2835-Add-FIQ-support.patch b/root/target/linux/bcm27xx/patches-5.14/0014-irqchip-bcm2835-Add-FIQ-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0015-irqchip-irq-bcm2835-Add-2836-FIQ-support.patch b/root/target/linux/bcm27xx/patches-5.14/0015-irqchip-irq-bcm2835-Add-2836-FIQ-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0016-spi-spidev-Completely-disable-the-spidev-warning.patch b/root/target/linux/bcm27xx/patches-5.14/0016-spi-spidev-Completely-disable-the-spidev-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0017-dmaengine-bcm2835-Load-driver-early-and-support-lega.patch b/root/target/linux/bcm27xx/patches-5.14/0017-dmaengine-bcm2835-Load-driver-early-and-support-lega.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0018-rtc-Add-SPI-alias-for-pcf2123-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0018-rtc-Add-SPI-alias-for-pcf2123-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0019-watchdog-bcm2835-Support-setting-reboot-partition.patch b/root/target/linux/bcm27xx/patches-5.14/0019-watchdog-bcm2835-Support-setting-reboot-partition.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0020-reboot-Use-power-off-rather-than-busy-spinning-when-.patch b/root/target/linux/bcm27xx/patches-5.14/0020-reboot-Use-power-off-rather-than-busy-spinning-when-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0021-bcm-Make-RASPBERRYPI_POWER-depend-on-PM.patch b/root/target/linux/bcm27xx/patches-5.14/0021-bcm-Make-RASPBERRYPI_POWER-depend-on-PM.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0022-Register-the-clocks-early-during-the-boot-process-so.patch b/root/target/linux/bcm27xx/patches-5.14/0022-Register-the-clocks-early-during-the-boot-process-so.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0023-bcm2835-rng-Avoid-initialising-if-already-enabled.patch b/root/target/linux/bcm27xx/patches-5.14/0023-bcm2835-rng-Avoid-initialising-if-already-enabled.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0024-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch b/root/target/linux/bcm27xx/patches-5.14/0024-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0025-clk-bcm2835-Add-claim-clocks-property.patch b/root/target/linux/bcm27xx/patches-5.14/0025-clk-bcm2835-Add-claim-clocks-property.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0026-clk-bcm2835-Read-max-core-clock-from-firmware.patch b/root/target/linux/bcm27xx/patches-5.14/0026-clk-bcm2835-Read-max-core-clock-from-firmware.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0027-sound-Demote-deferral-errors-to-INFO-level.patch b/root/target/linux/bcm27xx/patches-5.14/0027-sound-Demote-deferral-errors-to-INFO-level.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0028-Update-vfpmodule.c.patch b/root/target/linux/bcm27xx/patches-5.14/0028-Update-vfpmodule.c.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0029-i2c-bcm2835-Add-debug-support.patch b/root/target/linux/bcm27xx/patches-5.14/0029-i2c-bcm2835-Add-debug-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0030-irqchip-irq-bcm2836-Remove-regmap-and-syscon-use.patch b/root/target/linux/bcm27xx/patches-5.14/0030-irqchip-irq-bcm2836-Remove-regmap-and-syscon-use.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0031-lan78xx-Enable-LEDs-and-auto-negotiation.patch b/root/target/linux/bcm27xx/patches-5.14/0031-lan78xx-Enable-LEDs-and-auto-negotiation.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0032-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch b/root/target/linux/bcm27xx/patches-5.14/0032-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0033-amba_pl011-Round-input-clock-up.patch b/root/target/linux/bcm27xx/patches-5.14/0033-amba_pl011-Round-input-clock-up.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0034-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch b/root/target/linux/bcm27xx/patches-5.14/0034-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0035-amba_pl011-Add-cts-event-workaround-DT-property.patch b/root/target/linux/bcm27xx/patches-5.14/0035-amba_pl011-Add-cts-event-workaround-DT-property.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0036-tty-amba-pl011-Add-un-throttle-support.patch b/root/target/linux/bcm27xx/patches-5.14/0036-tty-amba-pl011-Add-un-throttle-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0037-tty-amba-pl011-Avoid-rare-write-when-full-error.patch b/root/target/linux/bcm27xx/patches-5.14/0037-tty-amba-pl011-Avoid-rare-write-when-full-error.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0038-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch b/root/target/linux/bcm27xx/patches-5.14/0038-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0039-Main-bcm2708-bcm2709-linux-port.patch b/root/target/linux/bcm27xx/patches-5.14/0039-Main-bcm2708-bcm2709-linux-port.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0040-Add-dwc_otg-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0040-Add-dwc_otg-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0041-bcm2708-framebuffer-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0041-bcm2708-framebuffer-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0042-Pulled-in-the-multi-frame-buffer-support-from-the-Pi.patch b/root/target/linux/bcm27xx/patches-5.14/0042-Pulled-in-the-multi-frame-buffer-support-from-the-Pi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0043-fbdev-add-FBIOCOPYAREA-ioctl.patch b/root/target/linux/bcm27xx/patches-5.14/0043-fbdev-add-FBIOCOPYAREA-ioctl.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0044-Speed-up-console-framebuffer-imageblit-function.patch b/root/target/linux/bcm27xx/patches-5.14/0044-Speed-up-console-framebuffer-imageblit-function.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0045-dmaengine-Add-support-for-BCM2708.patch b/root/target/linux/bcm27xx/patches-5.14/0045-dmaengine-Add-support-for-BCM2708.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0046-MMC-added-alternative-MMC-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0046-MMC-added-alternative-MMC-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0047-Adding-bcm2835-sdhost-driver-and-an-overlay-to-enabl.patch b/root/target/linux/bcm27xx/patches-5.14/0047-Adding-bcm2835-sdhost-driver-and-an-overlay-to-enabl.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0048-vc_mem-Add-vc_mem-driver-for-querying-firmware-memor.patch b/root/target/linux/bcm27xx/patches-5.14/0048-vc_mem-Add-vc_mem-driver-for-querying-firmware-memor.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0049-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch b/root/target/linux/bcm27xx/patches-5.14/0049-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0050-Add-SMI-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0050-Add-SMI-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0051-Add-Chris-Boot-s-i2c-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0051-Add-Chris-Boot-s-i2c-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0052-char-broadcom-Add-vcio-module.patch b/root/target/linux/bcm27xx/patches-5.14/0052-char-broadcom-Add-vcio-module.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0053-firmware-bcm2835-Support-ARCH_BCM270x.patch b/root/target/linux/bcm27xx/patches-5.14/0053-firmware-bcm2835-Support-ARCH_BCM270x.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0054-BCM2708-Add-core-Device-Tree-support.patch b/root/target/linux/bcm27xx/patches-5.14/0054-BCM2708-Add-core-Device-Tree-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0055-leds-Add-the-input-trigger-for-pwr_led.patch b/root/target/linux/bcm27xx/patches-5.14/0055-leds-Add-the-input-trigger-for-pwr_led.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0056-Added-Device-IDs-for-August-DVB-T-205.patch b/root/target/linux/bcm27xx/patches-5.14/0056-Added-Device-IDs-for-August-DVB-T-205.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0057-Improve-__copy_to_user-and-__copy_from_user-performa.patch b/root/target/linux/bcm27xx/patches-5.14/0057-Improve-__copy_to_user-and-__copy_from_user-performa.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0058-gpio-poweroff-Allow-it-to-work-on-Raspberry-Pi.patch b/root/target/linux/bcm27xx/patches-5.14/0058-gpio-poweroff-Allow-it-to-work-on-Raspberry-Pi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0059-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0059-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0060-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch b/root/target/linux/bcm27xx/patches-5.14/0060-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0061-rpi_display-add-backlight-driver-and-overlay.patch b/root/target/linux/bcm27xx/patches-5.14/0061-rpi_display-add-backlight-driver-and-overlay.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0062-bcm2835-virtgpio-Virtual-GPIO-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0062-bcm2835-virtgpio-Virtual-GPIO-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0063-OF-DT-Overlay-configfs-interface.patch b/root/target/linux/bcm27xx/patches-5.14/0063-OF-DT-Overlay-configfs-interface.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0064-brcm-adds-support-for-BCM43341-wifi.patch b/root/target/linux/bcm27xx/patches-5.14/0064-brcm-adds-support-for-BCM43341-wifi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0065-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch b/root/target/linux/bcm27xx/patches-5.14/0065-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0066-config-Add-default-configs.patch b/root/target/linux/bcm27xx/patches-5.14/0066-config-Add-default-configs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0067-ARM64-Round-Robin-dispatch-IRQs-between-CPUs.patch b/root/target/linux/bcm27xx/patches-5.14/0067-ARM64-Round-Robin-dispatch-IRQs-between-CPUs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0068-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch b/root/target/linux/bcm27xx/patches-5.14/0068-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0069-cache-export-clean-and-invalidate.patch b/root/target/linux/bcm27xx/patches-5.14/0069-cache-export-clean-and-invalidate.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0070-AXI-performance-monitor-driver-2222.patch b/root/target/linux/bcm27xx/patches-5.14/0070-AXI-performance-monitor-driver-2222.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0071-ARM-bcm2835-Set-Serial-number-and-Revision.patch b/root/target/linux/bcm27xx/patches-5.14/0071-ARM-bcm2835-Set-Serial-number-and-Revision.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0072-dwc-otg-FIQ-Fix-bad-mode-in-data-abort-handler.patch b/root/target/linux/bcm27xx/patches-5.14/0072-dwc-otg-FIQ-Fix-bad-mode-in-data-abort-handler.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0073-ARM-Activate-FIQs-to-avoid-__irq_startup-warnings.patch b/root/target/linux/bcm27xx/patches-5.14/0073-ARM-Activate-FIQs-to-avoid-__irq_startup-warnings.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0074-i2c-gpio-Also-set-bus-numbers-from-reg-property.patch b/root/target/linux/bcm27xx/patches-5.14/0074-i2c-gpio-Also-set-bus-numbers-from-reg-property.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0075-added-capture_clear-option-to-pps-gpio-via-dtoverlay.patch b/root/target/linux/bcm27xx/patches-5.14/0075-added-capture_clear-option-to-pps-gpio-via-dtoverlay.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0076-lan78xx-Read-initial-EEE-status-from-DT.patch b/root/target/linux/bcm27xx/patches-5.14/0076-lan78xx-Read-initial-EEE-status-from-DT.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0077-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch b/root/target/linux/bcm27xx/patches-5.14/0077-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0078-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch b/root/target/linux/bcm27xx/patches-5.14/0078-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0079-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch b/root/target/linux/bcm27xx/patches-5.14/0079-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0080-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch b/root/target/linux/bcm27xx/patches-5.14/0080-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0081-of-configfs-Use-of_overlay_fdt_apply-API-call.patch b/root/target/linux/bcm27xx/patches-5.14/0081-of-configfs-Use-of_overlay_fdt_apply-API-call.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0082-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch b/root/target/linux/bcm27xx/patches-5.14/0082-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0083-brcmfmac-Re-enable-firmware-roaming-support.patch b/root/target/linux/bcm27xx/patches-5.14/0083-brcmfmac-Re-enable-firmware-roaming-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0084-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch b/root/target/linux/bcm27xx/patches-5.14/0084-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0085-Add-rpi-poe-fan-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0085-Add-rpi-poe-fan-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0086-cxd2880-CXD2880_SPI_DRV-should-select-DVB_CXD2880-wi.patch b/root/target/linux/bcm27xx/patches-5.14/0086-cxd2880-CXD2880_SPI_DRV-should-select-DVB_CXD2880-wi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0087-hwmon-raspberrypi-Prevent-voltage-low-warnings-from-.patch b/root/target/linux/bcm27xx/patches-5.14/0087-hwmon-raspberrypi-Prevent-voltage-low-warnings-from-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0088-firmware-raspberrypi-Add-backward-compatible-get_thr.patch b/root/target/linux/bcm27xx/patches-5.14/0088-firmware-raspberrypi-Add-backward-compatible-get_thr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0089-sc16is7xx-Don-t-spin-if-no-data-received.patch b/root/target/linux/bcm27xx/patches-5.14/0089-sc16is7xx-Don-t-spin-if-no-data-received.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0090-drivers-thermal-step_wise-add-support-for-hysteresis.patch b/root/target/linux/bcm27xx/patches-5.14/0090-drivers-thermal-step_wise-add-support-for-hysteresis.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0091-drivers-thermal-step_wise-avoid-throttling-at-hyster.patch b/root/target/linux/bcm27xx/patches-5.14/0091-drivers-thermal-step_wise-avoid-throttling-at-hyster.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0092-Update-issue-templates-2736.patch b/root/target/linux/bcm27xx/patches-5.14/0092-Update-issue-templates-2736.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0093-net-lan78xx-Support-auto-downshift-to-100Mb-s.patch b/root/target/linux/bcm27xx/patches-5.14/0093-net-lan78xx-Support-auto-downshift-to-100Mb-s.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0094-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch b/root/target/linux/bcm27xx/patches-5.14/0094-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0095-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch b/root/target/linux/bcm27xx/patches-5.14/0095-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0096-lan78xx-EEE-support-is-now-a-PHY-property.patch b/root/target/linux/bcm27xx/patches-5.14/0096-lan78xx-EEE-support-is-now-a-PHY-property.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0097-bcm2835-dma-Add-support-for-per-channel-flags.patch b/root/target/linux/bcm27xx/patches-5.14/0097-bcm2835-dma-Add-support-for-per-channel-flags.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0098-rtc-rv3028-Add-backup-switchover-mode-support.patch b/root/target/linux/bcm27xx/patches-5.14/0098-rtc-rv3028-Add-backup-switchover-mode-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0099-lan78xx-use-default-alignment-for-rx-buffers.patch b/root/target/linux/bcm27xx/patches-5.14/0099-lan78xx-use-default-alignment-for-rx-buffers.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0100-media-tc358743-Increase-FIFO-level-to-374.patch b/root/target/linux/bcm27xx/patches-5.14/0100-media-tc358743-Increase-FIFO-level-to-374.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0101-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch b/root/target/linux/bcm27xx/patches-5.14/0101-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0102-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch b/root/target/linux/bcm27xx/patches-5.14/0102-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0103-media-tc358743-Check-I2C-succeeded-during-probe.patch b/root/target/linux/bcm27xx/patches-5.14/0103-media-tc358743-Check-I2C-succeeded-during-probe.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0104-media-adv7180-Default-to-the-first-valid-input.patch b/root/target/linux/bcm27xx/patches-5.14/0104-media-adv7180-Default-to-the-first-valid-input.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0105-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch b/root/target/linux/bcm27xx/patches-5.14/0105-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0106-media-videodev2-Add-helper-defines-for-printing-FOUR.patch b/root/target/linux/bcm27xx/patches-5.14/0106-media-videodev2-Add-helper-defines-for-printing-FOUR.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0107-dt-bindings-Document-BCM283x-CSI2-CCP2-receiver.patch b/root/target/linux/bcm27xx/patches-5.14/0107-dt-bindings-Document-BCM283x-CSI2-CCP2-receiver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0108-MAINTAINERS-Add-entry-for-BCM2835-Unicam-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0108-MAINTAINERS-Add-entry-for-BCM2835-Unicam-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0109-media-tc358743-Return-an-appropriate-colorspace-from.patch b/root/target/linux/bcm27xx/patches-5.14/0109-media-tc358743-Return-an-appropriate-colorspace-from.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0110-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch b/root/target/linux/bcm27xx/patches-5.14/0110-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0111-staging-mmal-vchiq-Add-support-for-event-callbacks.patch b/root/target/linux/bcm27xx/patches-5.14/0111-staging-mmal-vchiq-Add-support-for-event-callbacks.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0112-staging-vc04_services-Support-sending-data-to-MMAL-p.patch b/root/target/linux/bcm27xx/patches-5.14/0112-staging-vc04_services-Support-sending-data-to-MMAL-p.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0113-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch b/root/target/linux/bcm27xx/patches-5.14/0113-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0114-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch b/root/target/linux/bcm27xx/patches-5.14/0114-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0115-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch b/root/target/linux/bcm27xx/patches-5.14/0115-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0116-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch b/root/target/linux/bcm27xx/patches-5.14/0116-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0117-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch b/root/target/linux/bcm27xx/patches-5.14/0117-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0118-staging-mmal-vchiq-Free-the-event-context-for-contro.patch b/root/target/linux/bcm27xx/patches-5.14/0118-staging-mmal-vchiq-Free-the-event-context-for-contro.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0119-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch b/root/target/linux/bcm27xx/patches-5.14/0119-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0120-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch b/root/target/linux/bcm27xx/patches-5.14/0120-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0121-arm-bcm2835-Fix-FIQ-early-ioremap.patch b/root/target/linux/bcm27xx/patches-5.14/0121-arm-bcm2835-Fix-FIQ-early-ioremap.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0122-arm-bcm2835-DMA-can-only-address-1GB.patch b/root/target/linux/bcm27xx/patches-5.14/0122-arm-bcm2835-DMA-can-only-address-1GB.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0123-hwrng-iproc-rng200-Add-BCM2838-support.patch b/root/target/linux/bcm27xx/patches-5.14/0123-hwrng-iproc-rng200-Add-BCM2838-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0124-mmc-sdhci-iproc-Fix-vmmc-regulators-on-iProc.patch b/root/target/linux/bcm27xx/patches-5.14/0124-mmc-sdhci-iproc-Fix-vmmc-regulators-on-iProc.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0125-vchiq-Add-36-bit-address-support.patch b/root/target/linux/bcm27xx/patches-5.14/0125-vchiq-Add-36-bit-address-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0126-bcmgenet-constrain-max-DMA-burst-length.patch b/root/target/linux/bcm27xx/patches-5.14/0126-bcmgenet-constrain-max-DMA-burst-length.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0127-bcmgenet-Better-coalescing-parameter-defaults.patch b/root/target/linux/bcm27xx/patches-5.14/0127-bcmgenet-Better-coalescing-parameter-defaults.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0128-net-genet-enable-link-energy-detect-powerdown-for-ex.patch b/root/target/linux/bcm27xx/patches-5.14/0128-net-genet-enable-link-energy-detect-powerdown-for-ex.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0129-spi-bcm2835-enable-shared-interrupt-support.patch b/root/target/linux/bcm27xx/patches-5.14/0129-spi-bcm2835-enable-shared-interrupt-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0130-clk-bcm2835-Don-t-wait-for-pllh-lock.patch b/root/target/linux/bcm27xx/patches-5.14/0130-clk-bcm2835-Don-t-wait-for-pllh-lock.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0131-soc-bcm-bcm2835-pm-Add-support-for-2711.patch b/root/target/linux/bcm27xx/patches-5.14/0131-soc-bcm-bcm2835-pm-Add-support-for-2711.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0132-clk-bcm2835-Add-support-for-setting-leaf-clock-rates.patch b/root/target/linux/bcm27xx/patches-5.14/0132-clk-bcm2835-Add-support-for-setting-leaf-clock-rates.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0133-clk-bcm2835-Allow-reparenting-leaf-clocks-while-they.patch b/root/target/linux/bcm27xx/patches-5.14/0133-clk-bcm2835-Allow-reparenting-leaf-clocks-while-they.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0134-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch b/root/target/linux/bcm27xx/patches-5.14/0134-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0135-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/root/target/linux/bcm27xx/patches-5.14/0135-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0136-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch b/root/target/linux/bcm27xx/patches-5.14/0136-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0137-arm-bcm2835-Add-bcm2838-compatible-string.patch b/root/target/linux/bcm27xx/patches-5.14/0137-arm-bcm2835-Add-bcm2838-compatible-string.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0138-drm-v3d-Add-support-for-2711.patch b/root/target/linux/bcm27xx/patches-5.14/0138-drm-v3d-Add-support-for-2711.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0139-drm-v3d-Skip-MMU-flush-if-the-device-is-currently-of.patch b/root/target/linux/bcm27xx/patches-5.14/0139-drm-v3d-Skip-MMU-flush-if-the-device-is-currently-of.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0140-drm-v3d-Hook-up-the-runtime-PM-ops.patch b/root/target/linux/bcm27xx/patches-5.14/0140-drm-v3d-Hook-up-the-runtime-PM-ops.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0141-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch b/root/target/linux/bcm27xx/patches-5.14/0141-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0142-clk-bcm2835-Avoid-null-pointer-exception.patch b/root/target/linux/bcm27xx/patches-5.14/0142-clk-bcm2835-Avoid-null-pointer-exception.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0143-drm-v3d-HACK-gut-runtime-pm-for-now.patch b/root/target/linux/bcm27xx/patches-5.14/0143-drm-v3d-HACK-gut-runtime-pm-for-now.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0144-drm-v3d-Clock-V3D-down-when-not-in-use.patch b/root/target/linux/bcm27xx/patches-5.14/0144-drm-v3d-Clock-V3D-down-when-not-in-use.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0145-drivers-char-add-chardev-for-mmap-ing-the-RPiVid-con.patch b/root/target/linux/bcm27xx/patches-5.14/0145-drivers-char-add-chardev-for-mmap-ing-the-RPiVid-con.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0146-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/root/target/linux/bcm27xx/patches-5.14/0146-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0147-Add-HDMI1-facility-to-the-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0147-Add-HDMI1-facility-to-the-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0148-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch b/root/target/linux/bcm27xx/patches-5.14/0148-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0149-xhci-Use-more-event-ring-segment-table-entries.patch b/root/target/linux/bcm27xx/patches-5.14/0149-xhci-Use-more-event-ring-segment-table-entries.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0150-configs-arm64-bcm2711-Enable-V3D.patch b/root/target/linux/bcm27xx/patches-5.14/0150-configs-arm64-bcm2711-Enable-V3D.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0151-arch-arm-Add-model-string-to-cpuinfo.patch b/root/target/linux/bcm27xx/patches-5.14/0151-arch-arm-Add-model-string-to-cpuinfo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0152-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch b/root/target/linux/bcm27xx/patches-5.14/0152-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0153-media-dt-bindings-Add-binding-for-the-Sony-IMX219-se.patch b/root/target/linux/bcm27xx/patches-5.14/0153-media-dt-bindings-Add-binding-for-the-Sony-IMX219-se.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0154-v4l2-Add-a-Greyworld-AWB-mode.patch b/root/target/linux/bcm27xx/patches-5.14/0154-v4l2-Add-a-Greyworld-AWB-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0155-staging-bcm2835-camera-Add-greyworld-AWB-mode.patch b/root/target/linux/bcm27xx/patches-5.14/0155-staging-bcm2835-camera-Add-greyworld-AWB-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0156-drm-v3d-Delete-pm_runtime-support.patch b/root/target/linux/bcm27xx/patches-5.14/0156-drm-v3d-Delete-pm_runtime-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0157-ARM-bcm-Switch-board-clk-and-pinctrl-to-bcm2711-comp.patch b/root/target/linux/bcm27xx/patches-5.14/0157-ARM-bcm-Switch-board-clk-and-pinctrl-to-bcm2711-comp.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0158-Rename-HDMI-ALSA-device-names-check-for-enable-state.patch b/root/target/linux/bcm27xx/patches-5.14/0158-Rename-HDMI-ALSA-device-names-check-for-enable-state.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0159-dt-bindings-Add-binding-for-the-Infineon-IRS1125-sen.patch b/root/target/linux/bcm27xx/patches-5.14/0159-dt-bindings-Add-binding-for-the-Infineon-IRS1125-sen.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0160-media-i2c-Add-a-driver-for-the-Infineon-IRS1125-dept.patch b/root/target/linux/bcm27xx/patches-5.14/0160-media-i2c-Add-a-driver-for-the-Infineon-IRS1125-dept.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0161-drm-v3d-Suppress-all-but-the-first-MMU-error.patch b/root/target/linux/bcm27xx/patches-5.14/0161-drm-v3d-Suppress-all-but-the-first-MMU-error.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0162-drm-v3d-Plug-dma_fence-leak.patch b/root/target/linux/bcm27xx/patches-5.14/0162-drm-v3d-Plug-dma_fence-leak.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0163-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch b/root/target/linux/bcm27xx/patches-5.14/0163-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0164-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch b/root/target/linux/bcm27xx/patches-5.14/0164-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0165-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch b/root/target/linux/bcm27xx/patches-5.14/0165-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0166-v3d_drv-Handle-missing-clock-more-gracefully.patch b/root/target/linux/bcm27xx/patches-5.14/0166-v3d_drv-Handle-missing-clock-more-gracefully.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0167-v3d_gem-Kick-the-clock-so-firmware-knows-we-are-usin.patch b/root/target/linux/bcm27xx/patches-5.14/0167-v3d_gem-Kick-the-clock-so-firmware-knows-we-are-usin.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0168-clk-raspberrypi-Allow-cpufreq-driver-to-also-adjust-.patch b/root/target/linux/bcm27xx/patches-5.14/0168-clk-raspberrypi-Allow-cpufreq-driver-to-also-adjust-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0169-clk-bcm2835-Disable-v3d-clock.patch b/root/target/linux/bcm27xx/patches-5.14/0169-clk-bcm2835-Disable-v3d-clock.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0170-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch b/root/target/linux/bcm27xx/patches-5.14/0170-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0171-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch b/root/target/linux/bcm27xx/patches-5.14/0171-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0172-ARM-bcm-Backport-BCM2711-support-from-upstream.patch b/root/target/linux/bcm27xx/patches-5.14/0172-ARM-bcm-Backport-BCM2711-support-from-upstream.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0173-Initialise-rpi-firmware-before-clk-bcm2835.patch b/root/target/linux/bcm27xx/patches-5.14/0173-Initialise-rpi-firmware-before-clk-bcm2835.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0174-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch b/root/target/linux/bcm27xx/patches-5.14/0174-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0175-pinctrl-bcm2835-Remove-gpiochip-on-error.patch b/root/target/linux/bcm27xx/patches-5.14/0175-pinctrl-bcm2835-Remove-gpiochip-on-error.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0176-pinctrl-bcm2835-Change-init-order-for-gpio-hogs.patch b/root/target/linux/bcm27xx/patches-5.14/0176-pinctrl-bcm2835-Change-init-order-for-gpio-hogs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0177-drivers-char-vcio-Use-common-compat-header.patch b/root/target/linux/bcm27xx/patches-5.14/0177-drivers-char-vcio-Use-common-compat-header.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0178-video-fbdev-bcm2708_fb-Use-common-compat-header.patch b/root/target/linux/bcm27xx/patches-5.14/0178-video-fbdev-bcm2708_fb-Use-common-compat-header.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0179-of-overlay-Correct-symbol-path-fixups.patch b/root/target/linux/bcm27xx/patches-5.14/0179-of-overlay-Correct-symbol-path-fixups.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0180-dt-bindings-pci-Add-DT-docs-for-Brcmstb-PCIe-device.patch b/root/target/linux/bcm27xx/patches-5.14/0180-dt-bindings-pci-Add-DT-docs-for-Brcmstb-PCIe-device.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0181-bcmgenet-Disable-skip_umac_reset-by-default.patch b/root/target/linux/bcm27xx/patches-5.14/0181-bcmgenet-Disable-skip_umac_reset-by-default.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0182-drm-fourcc-Add-packed-10bit-YUV-4-2-0-format.patch b/root/target/linux/bcm27xx/patches-5.14/0182-drm-fourcc-Add-packed-10bit-YUV-4-2-0-format.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0183-media-uapi-hevc-Add-scaling-matrix-control.patch b/root/target/linux/bcm27xx/patches-5.14/0183-media-uapi-hevc-Add-scaling-matrix-control.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0184-media-uapi-hevc-Add-segment-address-field.patch b/root/target/linux/bcm27xx/patches-5.14/0184-media-uapi-hevc-Add-segment-address-field.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0185-media-uapi-Add-hevc-ctrls-for-WPP-decoding.patch b/root/target/linux/bcm27xx/patches-5.14/0185-media-uapi-Add-hevc-ctrls-for-WPP-decoding.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0186-media-videodev2.h-Add-a-format-for-column-YUV4-2-0-m.patch b/root/target/linux/bcm27xx/patches-5.14/0186-media-videodev2.h-Add-a-format-for-column-YUV4-2-0-m.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0187-media-dt-bindings-media-Add-binding-for-the-Raspberr.patch b/root/target/linux/bcm27xx/patches-5.14/0187-media-dt-bindings-media-Add-binding-for-the-Raspberr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0188-staging-media-Add-Raspberry-Pi-V4L2-H265-decoder.patch b/root/target/linux/bcm27xx/patches-5.14/0188-staging-media-Add-Raspberry-Pi-V4L2-H265-decoder.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0189-mmc-sdhci-Silence-MMC-warnings.patch b/root/target/linux/bcm27xx/patches-5.14/0189-mmc-sdhci-Silence-MMC-warnings.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0190-dt-bindings-clock-Add-a-binding-for-the-RPi-Firmware.patch b/root/target/linux/bcm27xx/patches-5.14/0190-dt-bindings-clock-Add-a-binding-for-the-RPi-Firmware.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0191-dt-bindings-display-vc4-hdmi-Add-BCM2711-HDMI-contro.patch b/root/target/linux/bcm27xx/patches-5.14/0191-dt-bindings-display-vc4-hdmi-Add-BCM2711-HDMI-contro.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0192-drm-Checking-of-the-pitch-is-only-valid-for-linear-f.patch b/root/target/linux/bcm27xx/patches-5.14/0192-drm-Checking-of-the-pitch-is-only-valid-for-linear-f.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0193-driver-char-rpivid-Remove-legacy-name-support.patch b/root/target/linux/bcm27xx/patches-5.14/0193-driver-char-rpivid-Remove-legacy-name-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0194-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch b/root/target/linux/bcm27xx/patches-5.14/0194-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0195-driver-char-rpivid-Don-t-map-more-than-wanted.patch b/root/target/linux/bcm27xx/patches-5.14/0195-driver-char-rpivid-Don-t-map-more-than-wanted.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0196-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch b/root/target/linux/bcm27xx/patches-5.14/0196-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0197-media-uapi-v4l2-core-Add-sensor-ancillary-data-V4L2-.patch b/root/target/linux/bcm27xx/patches-5.14/0197-media-uapi-v4l2-core-Add-sensor-ancillary-data-V4L2-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0198-media-uapi-Add-MEDIA_BUS_FMT_SENSOR_DATA-media-bus-f.patch b/root/target/linux/bcm27xx/patches-5.14/0198-media-uapi-Add-MEDIA_BUS_FMT_SENSOR_DATA-media-bus-f.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0199-media-bcm2835-unicam-Add-support-for-mulitple-device.patch b/root/target/linux/bcm27xx/patches-5.14/0199-media-bcm2835-unicam-Add-support-for-mulitple-device.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0200-media-bcm2835-unicam-Add-embedded-data-node.patch b/root/target/linux/bcm27xx/patches-5.14/0200-media-bcm2835-unicam-Add-embedded-data-node.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0201-media-bcm2835-unicam-Use-dummy-buffer-if-none-have-b.patch b/root/target/linux/bcm27xx/patches-5.14/0201-media-bcm2835-unicam-Use-dummy-buffer-if-none-have-b.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0202-media-bcm2835-unicam-Disable-event-related-ioctls-on.patch b/root/target/linux/bcm27xx/patches-5.14/0202-media-bcm2835-unicam-Disable-event-related-ioctls-on.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0203-media-bcm2835-unicam-Add-support-for-the-FRAME_SYNC-.patch b/root/target/linux/bcm27xx/patches-5.14/0203-media-bcm2835-unicam-Add-support-for-the-FRAME_SYNC-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0204-media-bcm2835-unicam-Re-fetch-mbus-code-from-subdev-.patch b/root/target/linux/bcm27xx/patches-5.14/0204-media-bcm2835-unicam-Re-fetch-mbus-code-from-subdev-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0205-media-uapi-v4l2-core-Add-ISP-statistics-output-V4L2-.patch b/root/target/linux/bcm27xx/patches-5.14/0205-media-uapi-v4l2-core-Add-ISP-statistics-output-V4L2-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0206-media-uapi-v4l-ctrls-Add-CID-base-for-the-bcm2835-is.patch b/root/target/linux/bcm27xx/patches-5.14/0206-media-uapi-v4l-ctrls-Add-CID-base-for-the-bcm2835-is.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0207-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch b/root/target/linux/bcm27xx/patches-5.14/0207-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0208-bcm2835-dma-Add-proper-40-bit-DMA-support.patch b/root/target/linux/bcm27xx/patches-5.14/0208-bcm2835-dma-Add-proper-40-bit-DMA-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0209-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch b/root/target/linux/bcm27xx/patches-5.14/0209-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0210-media-bcm2835-unicam-Do-not-stop-streaming-in-unicam.patch b/root/target/linux/bcm27xx/patches-5.14/0210-media-bcm2835-unicam-Do-not-stop-streaming-in-unicam.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0211-media-bcm2835-unicam-Fix-reference-counting-in-unica.patch b/root/target/linux/bcm27xx/patches-5.14/0211-media-bcm2835-unicam-Fix-reference-counting-in-unica.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0212-media-i2c-tc358743-Fix-fallthrough-warning.patch b/root/target/linux/bcm27xx/patches-5.14/0212-media-i2c-tc358743-Fix-fallthrough-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0213-media-bcm2835-unicam-Fix-uninitialized-warning.patch b/root/target/linux/bcm27xx/patches-5.14/0213-media-bcm2835-unicam-Fix-uninitialized-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0214-video-bcm2708_fb-Disable-FB-if-no-displays-found.patch b/root/target/linux/bcm27xx/patches-5.14/0214-video-bcm2708_fb-Disable-FB-if-no-displays-found.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0215-dt-bindings-media-i2c-Add-IMX477-CMOS-sensor-binding.patch b/root/target/linux/bcm27xx/patches-5.14/0215-dt-bindings-media-i2c-Add-IMX477-CMOS-sensor-binding.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0216-media-bcm2835-unicam-Always-service-interrupts.patch b/root/target/linux/bcm27xx/patches-5.14/0216-media-bcm2835-unicam-Always-service-interrupts.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0217-sc16is7xx-Fix-for-hardware-flow-control.patch b/root/target/linux/bcm27xx/patches-5.14/0217-sc16is7xx-Fix-for-hardware-flow-control.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0218-staging-vc04_services-mmal-vchiq-Update-parameters-l.patch b/root/target/linux/bcm27xx/patches-5.14/0218-staging-vc04_services-mmal-vchiq-Update-parameters-l.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0219-staging-vc04_services-bcm2835-camera-Request-headers.patch b/root/target/linux/bcm27xx/patches-5.14/0219-staging-vc04_services-bcm2835-camera-Request-headers.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0220-media-bcm2835-unicam-Retain-packing-information-on-G.patch b/root/target/linux/bcm27xx/patches-5.14/0220-media-bcm2835-unicam-Retain-packing-information-on-G.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0221-zswap-Defer-zswap-initialisation.patch b/root/target/linux/bcm27xx/patches-5.14/0221-zswap-Defer-zswap-initialisation.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0222-staging-vchiq_arm-Clean-up-40-bit-DMA-support.patch b/root/target/linux/bcm27xx/patches-5.14/0222-staging-vchiq_arm-Clean-up-40-bit-DMA-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0223-media-bcm2835-unicam-change-minimum-number-of-vb2_qu.patch b/root/target/linux/bcm27xx/patches-5.14/0223-media-bcm2835-unicam-change-minimum-number-of-vb2_qu.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0224-brcmfmac-BCM43436-needs-dedicated-firmware.patch b/root/target/linux/bcm27xx/patches-5.14/0224-brcmfmac-BCM43436-needs-dedicated-firmware.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0225-snd_bcm2835-disable-HDMI-audio-when-vc4-is-used-3640.patch b/root/target/linux/bcm27xx/patches-5.14/0225-snd_bcm2835-disable-HDMI-audio-when-vc4-is-used-3640.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0226-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch b/root/target/linux/bcm27xx/patches-5.14/0226-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0227-PCI-brcmstb-Add-DT-property-to-control-L1SS.patch b/root/target/linux/bcm27xx/patches-5.14/0227-PCI-brcmstb-Add-DT-property-to-control-L1SS.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0228-media-irs1125-Using-i2c_transfer-for-ic2-reads.patch b/root/target/linux/bcm27xx/patches-5.14/0228-media-irs1125-Using-i2c_transfer-for-ic2-reads.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0229-media-irs1125-Refactoring-and-debug-messages.patch b/root/target/linux/bcm27xx/patches-5.14/0229-media-irs1125-Refactoring-and-debug-messages.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0230-media-irs1125-Atomic-access-to-imager-reconfiguratio.patch b/root/target/linux/bcm27xx/patches-5.14/0230-media-irs1125-Atomic-access-to-imager-reconfiguratio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0231-media-irs1125-Keep-HW-in-sync-after-imager-reset.patch b/root/target/linux/bcm27xx/patches-5.14/0231-media-irs1125-Keep-HW-in-sync-after-imager-reset.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0232-staging-bcm2835-audio-Add-missing-MODULE_ALIAS.patch b/root/target/linux/bcm27xx/patches-5.14/0232-staging-bcm2835-audio-Add-missing-MODULE_ALIAS.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0233-brcmfmac-Prefer-a-ccode-from-OTP-over-nvram-file.patch b/root/target/linux/bcm27xx/patches-5.14/0233-brcmfmac-Prefer-a-ccode-from-OTP-over-nvram-file.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0234-drivers-media-Remove-the-downstream-version-of-bcm28.patch b/root/target/linux/bcm27xx/patches-5.14/0234-drivers-media-Remove-the-downstream-version-of-bcm28.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0235-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch b/root/target/linux/bcm27xx/patches-5.14/0235-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0236-media-bcm2835-unicam-Add-support-for-get_mbus_config.patch b/root/target/linux/bcm27xx/patches-5.14/0236-media-bcm2835-unicam-Add-support-for-get_mbus_config.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0237-media-bcm2835-unicam-Avoid-gcc-warning-over-0-on-end.patch b/root/target/linux/bcm27xx/patches-5.14/0237-media-bcm2835-unicam-Avoid-gcc-warning-over-0-on-end.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0238-media-i2c-imx290-set-the-format-before-VIDIOC_SUBDEV.patch b/root/target/linux/bcm27xx/patches-5.14/0238-media-i2c-imx290-set-the-format-before-VIDIOC_SUBDEV.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0239-media-i2c-imx290-Add-support-for-74.25MHz-clock.patch b/root/target/linux/bcm27xx/patches-5.14/0239-media-i2c-imx290-Add-support-for-74.25MHz-clock.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0240-media-i2c-imx290-Correct-range-for-V4L2_CID_GAIN-to-.patch b/root/target/linux/bcm27xx/patches-5.14/0240-media-i2c-imx290-Correct-range-for-V4L2_CID_GAIN-to-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0241-media-i2c-imx290-Convert-HMAX-setting-into-V4L2_CID_.patch b/root/target/linux/bcm27xx/patches-5.14/0241-media-i2c-imx290-Convert-HMAX-setting-into-V4L2_CID_.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0242-media-i2c-imx290-Add-support-for-V4L2_CID_VBLANK.patch b/root/target/linux/bcm27xx/patches-5.14/0242-media-i2c-imx290-Add-support-for-V4L2_CID_VBLANK.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0243-media-i2c-imx290-Add-exposure-control-to-the-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0243-media-i2c-imx290-Add-exposure-control-to-the-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0244-media-i2c-imx290-Add-H-and-V-flip-controls.patch b/root/target/linux/bcm27xx/patches-5.14/0244-media-i2c-imx290-Add-H-and-V-flip-controls.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0245-media-dt-bindings-media-i2c-Add-mono-version-to-IMX2.patch b/root/target/linux/bcm27xx/patches-5.14/0245-media-dt-bindings-media-i2c-Add-mono-version-to-IMX2.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0246-media-i2c-imx290-Add-support-for-the-mono-sensor-var.patch b/root/target/linux/bcm27xx/patches-5.14/0246-media-i2c-imx290-Add-support-for-the-mono-sensor-var.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0247-media-i2c-imx290-Switch-set_hmax-to-use-imx290_write.patch b/root/target/linux/bcm27xx/patches-5.14/0247-media-i2c-imx290-Switch-set_hmax-to-use-imx290_write.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0248-serial-8250-bcm2835aux-defer-if-clock-is-zero.patch b/root/target/linux/bcm27xx/patches-5.14/0248-serial-8250-bcm2835aux-defer-if-clock-is-zero.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0249-media-Add-a-pixel-format-for-MIPI-packed-12bit-luma-.patch b/root/target/linux/bcm27xx/patches-5.14/0249-media-Add-a-pixel-format-for-MIPI-packed-12bit-luma-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0250-media-Add-a-pixel-format-for-MIPI-packed-14bit-luma-.patch b/root/target/linux/bcm27xx/patches-5.14/0250-media-Add-a-pixel-format-for-MIPI-packed-14bit-luma-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0251-media-bcm2835-unicam-Add-support-for-12bit-mono-pack.patch b/root/target/linux/bcm27xx/patches-5.14/0251-media-bcm2835-unicam-Add-support-for-12bit-mono-pack.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0252-media-bcm2835-unicam-Add-support-for-14bit-mono-sour.patch b/root/target/linux/bcm27xx/patches-5.14/0252-media-bcm2835-unicam-Add-support-for-14bit-mono-sour.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0253-media-bcm2835-unicam-Add-support-for-unpacked-14bit-.patch b/root/target/linux/bcm27xx/patches-5.14/0253-media-bcm2835-unicam-Add-support-for-unpacked-14bit-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0254-bcm2835-dma-Add-NO_WAIT_RESP-flag.patch b/root/target/linux/bcm27xx/patches-5.14/0254-bcm2835-dma-Add-NO_WAIT_RESP-flag.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0255-media-i2c-imx290-Explicitly-set-v-h-blank-on-mode-ch.patch b/root/target/linux/bcm27xx/patches-5.14/0255-media-i2c-imx290-Explicitly-set-v-h-blank-on-mode-ch.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0256-media-i2c-imx290-Add-support-for-g_selection-to-repo.patch b/root/target/linux/bcm27xx/patches-5.14/0256-media-i2c-imx290-Add-support-for-g_selection-to-repo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0257-media-i2c-imx290-Set-the-colorspace-fields-in-the-fo.patch b/root/target/linux/bcm27xx/patches-5.14/0257-media-i2c-imx290-Set-the-colorspace-fields-in-the-fo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0258-media-bcm2835-unicam-Reinstate-V4L2_CAP_READWRITE-in.patch b/root/target/linux/bcm27xx/patches-5.14/0258-media-bcm2835-unicam-Reinstate-V4L2_CAP_READWRITE-in.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0259-media-bcm2835-unicam-Ensure-type-is-VIDEO_CAPTURE-in.patch b/root/target/linux/bcm27xx/patches-5.14/0259-media-bcm2835-unicam-Ensure-type-is-VIDEO_CAPTURE-in.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0260-media-bcm2835-unicam-Set-VPU-min-clock-freq-to-250Mh.patch b/root/target/linux/bcm27xx/patches-5.14/0260-media-bcm2835-unicam-Set-VPU-min-clock-freq-to-250Mh.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0261-dt-bindings-bcm2835-unicam-Update-documentation-with.patch b/root/target/linux/bcm27xx/patches-5.14/0261-dt-bindings-bcm2835-unicam-Update-documentation-with.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0262-leds-Add-the-actpwr-trigger.patch b/root/target/linux/bcm27xx/patches-5.14/0262-leds-Add-the-actpwr-trigger.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0263-staging-vchiq_arm-children-inherit-DMA-config.patch b/root/target/linux/bcm27xx/patches-5.14/0263-staging-vchiq_arm-children-inherit-DMA-config.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0264-bcm2835-dma-Advertise-the-full-DMA-range.patch b/root/target/linux/bcm27xx/patches-5.14/0264-bcm2835-dma-Advertise-the-full-DMA-range.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0265-media-bcm2835-unicam-Select-MEDIA_CONTROLLER-and-VID.patch b/root/target/linux/bcm27xx/patches-5.14/0265-media-bcm2835-unicam-Select-MEDIA_CONTROLLER-and-VID.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0266-staging-media-rpivid-Select-MEDIA_CONTROLLER-and-MED.patch b/root/target/linux/bcm27xx/patches-5.14/0266-staging-media-rpivid-Select-MEDIA_CONTROLLER-and-MED.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0267-media-bcm2835-unicam-Drop-WARN-on-uing-direct-cache-.patch b/root/target/linux/bcm27xx/patches-5.14/0267-media-bcm2835-unicam-Drop-WARN-on-uing-direct-cache-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0268-media-i2c-tc358743-Only-allow-supported-pixel-fmts-i.patch b/root/target/linux/bcm27xx/patches-5.14/0268-media-i2c-tc358743-Only-allow-supported-pixel-fmts-i.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0269-bcm2835-mmc-uninitialized_var-is-no-more.patch b/root/target/linux/bcm27xx/patches-5.14/0269-bcm2835-mmc-uninitialized_var-is-no-more.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0270-dwc_otg-whitelist_table-is-now-productlist_table.patch b/root/target/linux/bcm27xx/patches-5.14/0270-dwc_otg-whitelist_table-is-now-productlist_table.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0271-vchiq_2835_arm-Implement-a-DMA-pool-for-small-bulk-t.patch b/root/target/linux/bcm27xx/patches-5.14/0271-vchiq_2835_arm-Implement-a-DMA-pool-for-small-bulk-t.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0272-include-firmware-Add-enum-for-RPI_FIRMWARE_FRAMEBUFF.patch b/root/target/linux/bcm27xx/patches-5.14/0272-include-firmware-Add-enum-for-RPI_FIRMWARE_FRAMEBUFF.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0273-media-i2c-Add-driver-for-Sony-IMX477-sensor.patch b/root/target/linux/bcm27xx/patches-5.14/0273-media-i2c-Add-driver-for-Sony-IMX477-sensor.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0274-media-i2c-imx477-Add-support-for-adaptive-frame-cont.patch b/root/target/linux/bcm27xx/patches-5.14/0274-media-i2c-imx477-Add-support-for-adaptive-frame-cont.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0275-media-i2c-imx477-Return-correct-result-on-sensor-id-.patch b/root/target/linux/bcm27xx/patches-5.14/0275-media-i2c-imx477-Return-correct-result-on-sensor-id-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0276-media-i2c-imx477-Parse-and-register-properties.patch b/root/target/linux/bcm27xx/patches-5.14/0276-media-i2c-imx477-Parse-and-register-properties.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0277-media-bcm2835-unicam-Always-service-interrupts.patch b/root/target/linux/bcm27xx/patches-5.14/0277-media-bcm2835-unicam-Always-service-interrupts.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0278-media-bcm2835-unicam-Fix-uninitialized-warning.patch b/root/target/linux/bcm27xx/patches-5.14/0278-media-bcm2835-unicam-Fix-uninitialized-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0279-media-bcm2835-unicam-Fixup-review-comments-from-Hans.patch b/root/target/linux/bcm27xx/patches-5.14/0279-media-bcm2835-unicam-Fixup-review-comments-from-Hans.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0280-media-bcm2835-unicam-Retain-packing-information-on-G.patch b/root/target/linux/bcm27xx/patches-5.14/0280-media-bcm2835-unicam-Retain-packing-information-on-G.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0281-media-bcm2835-unicam-change-minimum-number-of-vb2_qu.patch b/root/target/linux/bcm27xx/patches-5.14/0281-media-bcm2835-unicam-change-minimum-number-of-vb2_qu.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0282-staging-fbtft-Add-support-for-display-variants.patch b/root/target/linux/bcm27xx/patches-5.14/0282-staging-fbtft-Add-support-for-display-variants.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0283-brcmfmac-Increase-power-saving-delay-to-2s.patch b/root/target/linux/bcm27xx/patches-5.14/0283-brcmfmac-Increase-power-saving-delay-to-2s.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0284-rpivid_h265-Fix-width-height-typo.patch b/root/target/linux/bcm27xx/patches-5.14/0284-rpivid_h265-Fix-width-height-typo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0285-net-bcmgenet-Reset-RBUF-on-first-open.patch b/root/target/linux/bcm27xx/patches-5.14/0285-net-bcmgenet-Reset-RBUF-on-first-open.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0286-char-Add-broadcom-char-drivers-back-to-build-files.patch b/root/target/linux/bcm27xx/patches-5.14/0286-char-Add-broadcom-char-drivers-back-to-build-files.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0287-dwc_otg-initialise-sched_frame-for-periodic-QHs-that.patch b/root/target/linux/bcm27xx/patches-5.14/0287-dwc_otg-initialise-sched_frame-for-periodic-QHs-that.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0288-staging-bcm2835-camera-Replace-deprecated-V4L2_PIX_F.patch b/root/target/linux/bcm27xx/patches-5.14/0288-staging-bcm2835-camera-Replace-deprecated-V4L2_PIX_F.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0289-staging-vc04_services-Add-new-vc-sm-cma-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0289-staging-vc04_services-Add-new-vc-sm-cma-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0290-staging-vchiq-mmal-Add-support-for-14bit-Bayer.patch b/root/target/linux/bcm27xx/patches-5.14/0290-staging-vchiq-mmal-Add-support-for-14bit-Bayer.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0291-staging-mmal-vchiq-Add-monochrome-image-formats.patch b/root/target/linux/bcm27xx/patches-5.14/0291-staging-mmal-vchiq-Add-monochrome-image-formats.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0292-staging-mmal-vchiq-Use-vc-sm-cma-to-support-zero-cop.patch b/root/target/linux/bcm27xx/patches-5.14/0292-staging-mmal-vchiq-Use-vc-sm-cma-to-support-zero-cop.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0293-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0293-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0294-bcm2835-dma-only-reserve-channel-0-if-legacy-dma-dri.patch b/root/target/linux/bcm27xx/patches-5.14/0294-bcm2835-dma-only-reserve-channel-0-if-legacy-dma-dri.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0295-uapi-bcm2835-isp-Add-bcm2835-isp-uapi-header-file.patch b/root/target/linux/bcm27xx/patches-5.14/0295-uapi-bcm2835-isp-Add-bcm2835-isp-uapi-header-file.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0296-staging-vc04_services-ISP-Add-a-more-complex-ISP-pro.patch b/root/target/linux/bcm27xx/patches-5.14/0296-staging-vc04_services-ISP-Add-a-more-complex-ISP-pro.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0297-gpio-Add-gpio-fsm-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0297-gpio-Add-gpio-fsm-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0298-staging-bcm2835-audio-Add-disable-headphones-flag.patch b/root/target/linux/bcm27xx/patches-5.14/0298-staging-bcm2835-audio-Add-disable-headphones-flag.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0299-rpisense-fb-Set-pseudo_pallete-to-prevent-crash-on-f.patch b/root/target/linux/bcm27xx/patches-5.14/0299-rpisense-fb-Set-pseudo_pallete-to-prevent-crash-on-f.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0300-dwc_otg-Minimise-header-and-fix-build-warnings.patch b/root/target/linux/bcm27xx/patches-5.14/0300-dwc_otg-Minimise-header-and-fix-build-warnings.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0301-gpio-fsm-Fix-a-build-warning.patch b/root/target/linux/bcm27xx/patches-5.14/0301-gpio-fsm-Fix-a-build-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0302-rpivid_h625-Fix-build-warnings.patch b/root/target/linux/bcm27xx/patches-5.14/0302-rpivid_h625-Fix-build-warnings.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0303-bcm2708_fb-Fix-a-build-warning.patch b/root/target/linux/bcm27xx/patches-5.14/0303-bcm2708_fb-Fix-a-build-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0304-watchdog-bcm2835-Ignore-params-after-the-partition-n.patch b/root/target/linux/bcm27xx/patches-5.14/0304-watchdog-bcm2835-Ignore-params-after-the-partition-n.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0305-firmware-raspberrypi-Add-support-for-tryonce-reboot-.patch b/root/target/linux/bcm27xx/patches-5.14/0305-firmware-raspberrypi-Add-support-for-tryonce-reboot-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0306-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch b/root/target/linux/bcm27xx/patches-5.14/0306-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0307-phy-broadcom-Add-bcm54213pe-configuration.patch b/root/target/linux/bcm27xx/patches-5.14/0307-phy-broadcom-Add-bcm54213pe-configuration.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0308-PCI-brcmstb-Restore-initial-fundamental-reset.patch b/root/target/linux/bcm27xx/patches-5.14/0308-PCI-brcmstb-Restore-initial-fundamental-reset.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0309-Input-edt-ft5x06-Poll-the-device-if-no-interrupt-is-.patch b/root/target/linux/bcm27xx/patches-5.14/0309-Input-edt-ft5x06-Poll-the-device-if-no-interrupt-is-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0310-drm-panel-raspberrypi-touchscreen-Use-independent-I2.patch b/root/target/linux/bcm27xx/patches-5.14/0310-drm-panel-raspberrypi-touchscreen-Use-independent-I2.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0311-drm-panel-raspberrypi-ts-Insert-delay-before-polling.patch b/root/target/linux/bcm27xx/patches-5.14/0311-drm-panel-raspberrypi-ts-Insert-delay-before-polling.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0312-dt-bindings-Add-compatible-for-BCM2711-DSI1.patch b/root/target/linux/bcm27xx/patches-5.14/0312-dt-bindings-Add-compatible-for-BCM2711-DSI1.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0313-media-bcm2835-unicam-Correctly-handle-error-propagat.patch b/root/target/linux/bcm27xx/patches-5.14/0313-media-bcm2835-unicam-Correctly-handle-error-propagat.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0314-media-bcm2835-unicam-Return-early-from-stop_streamin.patch b/root/target/linux/bcm27xx/patches-5.14/0314-media-bcm2835-unicam-Return-early-from-stop_streamin.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0315-media-bcm2835-unicam-Clear-clock-state-when-stopping.patch b/root/target/linux/bcm27xx/patches-5.14/0315-media-bcm2835-unicam-Clear-clock-state-when-stopping.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0316-PCI-brcmstb-Advertise-MSI-X-support.patch b/root/target/linux/bcm27xx/patches-5.14/0316-PCI-brcmstb-Advertise-MSI-X-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0317-net-lan78xx-Ack-pending-PHY-ints-when-resetting.patch b/root/target/linux/bcm27xx/patches-5.14/0317-net-lan78xx-Ack-pending-PHY-ints-when-resetting.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0318-media-i2c-imx477-Selection-compliance-fixes.patch b/root/target/linux/bcm27xx/patches-5.14/0318-media-i2c-imx477-Selection-compliance-fixes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0319-drm-atomic-Pass-the-full-state-to-CRTC-atomic-enable.patch b/root/target/linux/bcm27xx/patches-5.14/0319-drm-atomic-Pass-the-full-state-to-CRTC-atomic-enable.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0320-vc-sm-cma-fixed-kbuild-problem.patch b/root/target/linux/bcm27xx/patches-5.14/0320-vc-sm-cma-fixed-kbuild-problem.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0321-staging-vc04_services-Add-additional-unpacked-raw-fo.patch b/root/target/linux/bcm27xx/patches-5.14/0321-staging-vc04_services-Add-additional-unpacked-raw-fo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0322-staging-bcm2835-codec-Add-the-unpacked-16bpp-raw-for.patch b/root/target/linux/bcm27xx/patches-5.14/0322-staging-bcm2835-codec-Add-the-unpacked-16bpp-raw-for.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0323-staging-bcm2835-codec-Log-the-number-of-excess-suppo.patch b/root/target/linux/bcm27xx/patches-5.14/0323-staging-bcm2835-codec-Log-the-number-of-excess-suppo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0324-staging-bcm2835-isp-Add-the-unpacked-16bpp-raw-forma.patch b/root/target/linux/bcm27xx/patches-5.14/0324-staging-bcm2835-isp-Add-the-unpacked-16bpp-raw-forma.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0325-staging-bcm2835-isp-Log-the-number-of-excess-support.patch b/root/target/linux/bcm27xx/patches-5.14/0325-staging-bcm2835-isp-Log-the-number-of-excess-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0326-bcm2835-dma-Avoid-losing-CS-flags-after-interrupt.patch b/root/target/linux/bcm27xx/patches-5.14/0326-bcm2835-dma-Avoid-losing-CS-flags-after-interrupt.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0327-arch-arm-Add-__memset-alias-to-memset_rpi.S.patch b/root/target/linux/bcm27xx/patches-5.14/0327-arch-arm-Add-__memset-alias-to-memset_rpi.S.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0328-bcm2835-dma-Add-bcm2835-dma-Add-DMA_WIDE_SOURCE-and-.patch b/root/target/linux/bcm27xx/patches-5.14/0328-bcm2835-dma-Add-bcm2835-dma-Add-DMA_WIDE_SOURCE-and-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0329-uapi-bcm2835-isp-Add-colour-denoise-configuration.patch b/root/target/linux/bcm27xx/patches-5.14/0329-uapi-bcm2835-isp-Add-colour-denoise-configuration.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0330-staging-vc04_services-ISP-Add-colour-denoise-control.patch b/root/target/linux/bcm27xx/patches-5.14/0330-staging-vc04_services-ISP-Add-colour-denoise-control.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0331-spi-bcm2835-Workaround-fix-for-zero-length-transfers.patch b/root/target/linux/bcm27xx/patches-5.14/0331-spi-bcm2835-Workaround-fix-for-zero-length-transfers.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0332-kbuild-Silence-unavoidable-dtc-overlay-warnings.patch b/root/target/linux/bcm27xx/patches-5.14/0332-kbuild-Silence-unavoidable-dtc-overlay-warnings.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0333-media-i2c-imx290-Replace-V4L2_CID_GAIN-with-V4L2_CID.patch b/root/target/linux/bcm27xx/patches-5.14/0333-media-i2c-imx290-Replace-V4L2_CID_GAIN-with-V4L2_CID.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0334-media-i2c-imx290-Fix-number-of-controls-in-v4l2_ctrl.patch b/root/target/linux/bcm27xx/patches-5.14/0334-media-i2c-imx290-Fix-number-of-controls-in-v4l2_ctrl.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0335-dt-binding-display-bcm2711-hdmi-Add-CEC-and-hotplug-.patch b/root/target/linux/bcm27xx/patches-5.14/0335-dt-binding-display-bcm2711-hdmi-Add-CEC-and-hotplug-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0336-staging-bcm2835-camera-Fix-the-cherry-pick-of-AWB-Gr.patch b/root/target/linux/bcm27xx/patches-5.14/0336-staging-bcm2835-camera-Fix-the-cherry-pick-of-AWB-Gr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0337-bcm2835-isp-Allow-formats-with-different-colour-spac.patch b/root/target/linux/bcm27xx/patches-5.14/0337-bcm2835-isp-Allow-formats-with-different-colour-spac.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0338-gpio-fsm-Rename-num-soft-gpios-to-avoid-warning.patch b/root/target/linux/bcm27xx/patches-5.14/0338-gpio-fsm-Rename-num-soft-gpios-to-avoid-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0339-staging-rpivid-Fix-crash-when-CMA-alloc-fails.patch b/root/target/linux/bcm27xx/patches-5.14/0339-staging-rpivid-Fix-crash-when-CMA-alloc-fails.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0340-gpio-fsm-Show-state-info-in-sys-class-gpio-fsm.patch b/root/target/linux/bcm27xx/patches-5.14/0340-gpio-fsm-Show-state-info-in-sys-class-gpio-fsm.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0341-gpio-fsm-Fix-shutdown-timeout-handling.patch b/root/target/linux/bcm27xx/patches-5.14/0341-gpio-fsm-Fix-shutdown-timeout-handling.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0342-media-i2c-imx477-Remove-auto-frame-length-adjusting.patch b/root/target/linux/bcm27xx/patches-5.14/0342-media-i2c-imx477-Remove-auto-frame-length-adjusting.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0343-media-i2c-imx477-Add-very-long-exposure-control-to-t.patch b/root/target/linux/bcm27xx/patches-5.14/0343-media-i2c-imx477-Add-very-long-exposure-control-to-t.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0344-media-i2c-imx290-Fix-up-exposure-calcuations-and-ran.patch b/root/target/linux/bcm27xx/patches-5.14/0344-media-i2c-imx290-Fix-up-exposure-calcuations-and-ran.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0345-media-i2c-imx290-Handle-exposure-correctly-when-vbla.patch b/root/target/linux/bcm27xx/patches-5.14/0345-media-i2c-imx290-Handle-exposure-correctly-when-vbla.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0346-media-i2c-imx477-Fix-crop-height-for-2028x1080-mode.patch b/root/target/linux/bcm27xx/patches-5.14/0346-media-i2c-imx477-Fix-crop-height-for-2028x1080-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0347-media-i2c-imx477-Replace-existing-1012x760-mode.patch b/root/target/linux/bcm27xx/patches-5.14/0347-media-i2c-imx477-Replace-existing-1012x760-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0348-media-i2c-imx477-Remove-internal-v4l2_mbus_framefmt-.patch b/root/target/linux/bcm27xx/patches-5.14/0348-media-i2c-imx477-Remove-internal-v4l2_mbus_framefmt-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0349-media-i2c-imx477-Remove-unused-function-parameter.patch b/root/target/linux/bcm27xx/patches-5.14/0349-media-i2c-imx477-Remove-unused-function-parameter.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0350-media-bcm2835-unicam-Fix-bug-in-buffer-swapping-logi.patch b/root/target/linux/bcm27xx/patches-5.14/0350-media-bcm2835-unicam-Fix-bug-in-buffer-swapping-logi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0351-Assign-crypto-aliases-to-different-AES-implementatio.patch b/root/target/linux/bcm27xx/patches-5.14/0351-Assign-crypto-aliases-to-different-AES-implementatio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0352-media-v4l2_m2m-In-buffered-mode-run-jobs-if-either-p.patch b/root/target/linux/bcm27xx/patches-5.14/0352-media-v4l2_m2m-In-buffered-mode-run-jobs-if-either-p.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0353-staging-bcm2835-codec-Correct-logging-of-size_t-to-z.patch b/root/target/linux/bcm27xx/patches-5.14/0353-staging-bcm2835-codec-Correct-logging-of-size_t-to-z.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0354-staging-bcm2835-codec-Add-support-for-pixel-aspect-r.patch b/root/target/linux/bcm27xx/patches-5.14/0354-staging-bcm2835-codec-Add-support-for-pixel-aspect-r.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0355-staging-bcm2835-codec-Implement-additional-g_selecti.patch b/root/target/linux/bcm27xx/patches-5.14/0355-staging-bcm2835-codec-Implement-additional-g_selecti.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0356-staging-bcm2835-codec-Add-VC-1-support.patch b/root/target/linux/bcm27xx/patches-5.14/0356-staging-bcm2835-codec-Add-VC-1-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0357-hack-fixup-bcm2835-unicam.patch b/root/target/linux/bcm27xx/patches-5.14/0357-hack-fixup-bcm2835-unicam.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0358-hack-Fixup-rpi-poe-fan.patch b/root/target/linux/bcm27xx/patches-5.14/0358-hack-Fixup-rpi-poe-fan.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0359-media-i2c-add-ov9281-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0359-media-i2c-add-ov9281-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0360-media-i2c-ov9281-fix-mclk-issue-when-probe-multiple-.patch b/root/target/linux/bcm27xx/patches-5.14/0360-media-i2c-ov9281-fix-mclk-issue-when-probe-multiple-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0361-media-i2c-ov9281-add-enum_frame_interval-function-fo.patch b/root/target/linux/bcm27xx/patches-5.14/0361-media-i2c-ov9281-add-enum_frame_interval-function-fo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0362-media-i2c-ov9281-Fixup-for-recent-kernel-releases-an.patch b/root/target/linux/bcm27xx/patches-5.14/0362-media-i2c-ov9281-Fixup-for-recent-kernel-releases-an.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0363-media-i2c-ov9281-Read-chip-ID-via-2-reads.patch b/root/target/linux/bcm27xx/patches-5.14/0363-media-i2c-ov9281-Read-chip-ID-via-2-reads.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0364-media-i2c-ov9281-Add-support-for-8-bit-readout.patch b/root/target/linux/bcm27xx/patches-5.14/0364-media-i2c-ov9281-Add-support-for-8-bit-readout.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0365-media-ov9281-Add-1280x720-and-640x480-modes.patch b/root/target/linux/bcm27xx/patches-5.14/0365-media-ov9281-Add-1280x720-and-640x480-modes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0366-Fixed-picture-line-bug-in-all-ov9281-modes.patch b/root/target/linux/bcm27xx/patches-5.14/0366-Fixed-picture-line-bug-in-all-ov9281-modes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0367-Added-hflip-and-vflip-controls-to-ov9281.patch b/root/target/linux/bcm27xx/patches-5.14/0367-Added-hflip-and-vflip-controls-to-ov9281.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0368-media-ov5647-Fix-return-codes-from-ov5647_write-ov56.patch b/root/target/linux/bcm27xx/patches-5.14/0368-media-ov5647-Fix-return-codes-from-ov5647_write-ov56.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0369-media-i2c-ov5647-Parse-and-register-properties.patch b/root/target/linux/bcm27xx/patches-5.14/0369-media-i2c-ov5647-Parse-and-register-properties.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0370-clk-raspberrypi-Also-support-HEVC-clock.patch b/root/target/linux/bcm27xx/patches-5.14/0370-clk-raspberrypi-Also-support-HEVC-clock.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0371-rpivid-Request-maximum-hevc-clock.patch b/root/target/linux/bcm27xx/patches-5.14/0371-rpivid-Request-maximum-hevc-clock.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0372-staging-bcm2835-camera-Add-support-for-DMABUFs.patch b/root/target/linux/bcm27xx/patches-5.14/0372-staging-bcm2835-camera-Add-support-for-DMABUFs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0373-staging-fbtft-Add-minipitft13-variant.patch b/root/target/linux/bcm27xx/patches-5.14/0373-staging-fbtft-Add-minipitft13-variant.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0374-dwc-otg-fix-clang-Wignored-attributes-warning.patch b/root/target/linux/bcm27xx/patches-5.14/0374-dwc-otg-fix-clang-Wignored-attributes-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0375-dwc-otg-fix-clang-Wsometimes-uninitialized-warning.patch b/root/target/linux/bcm27xx/patches-5.14/0375-dwc-otg-fix-clang-Wsometimes-uninitialized-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0376-dwc-otg-fix-clang-Wpointer-bool-conversion-warning.patch b/root/target/linux/bcm27xx/patches-5.14/0376-dwc-otg-fix-clang-Wpointer-bool-conversion-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0377-staging-vcsm-cma-Fix-memory-leak-from-not-detaching-.patch b/root/target/linux/bcm27xx/patches-5.14/0377-staging-vcsm-cma-Fix-memory-leak-from-not-detaching-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0378-sound-usb-add-device-quirks-for-A4Tech-FHD-1080p-web.patch b/root/target/linux/bcm27xx/patches-5.14/0378-sound-usb-add-device-quirks-for-A4Tech-FHD-1080p-web.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0379-sound-usb-call-usb_autopm_get_interface-for-devices-.patch b/root/target/linux/bcm27xx/patches-5.14/0379-sound-usb-call-usb_autopm_get_interface-for-devices-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0380-clk-Introduce-a-clock-request-API.patch b/root/target/linux/bcm27xx/patches-5.14/0380-clk-Introduce-a-clock-request-API.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0381-bcm2835-unicam-Switch-to-new-clock-api.patch b/root/target/linux/bcm27xx/patches-5.14/0381-bcm2835-unicam-Switch-to-new-clock-api.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0382-rpivid-Switch-to-new-clock-api.patch b/root/target/linux/bcm27xx/patches-5.14/0382-rpivid-Switch-to-new-clock-api.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0383-rpivid-Only-clk_request_done-once.patch b/root/target/linux/bcm27xx/patches-5.14/0383-rpivid-Only-clk_request_done-once.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0384-dwc_otg-fix-an-undeclared-variable.patch b/root/target/linux/bcm27xx/patches-5.14/0384-dwc_otg-fix-an-undeclared-variable.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0385-drm-panel-jdi-lt070me05000-Use-gpiod_set_value_cansl.patch b/root/target/linux/bcm27xx/patches-5.14/0385-drm-panel-jdi-lt070me05000-Use-gpiod_set_value_cansl.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0386-clk-requests-Ignore-if-the-pointer-is-null.patch b/root/target/linux/bcm27xx/patches-5.14/0386-clk-requests-Ignore-if-the-pointer-is-null.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0387-clk-requests-Dereference-the-request-pointer-after-t.patch b/root/target/linux/bcm27xx/patches-5.14/0387-clk-requests-Dereference-the-request-pointer-after-t.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0388-staging-bcm2835-codec-Fix-support-for-levels-4.1-and.patch b/root/target/linux/bcm27xx/patches-5.14/0388-staging-bcm2835-codec-Fix-support-for-levels-4.1-and.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0389-staging-bcm2835-codec-Set-the-colourspace-appropriat.patch b/root/target/linux/bcm27xx/patches-5.14/0389-staging-bcm2835-codec-Set-the-colourspace-appropriat.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0390-staging-bcm2835-codec-Pass-corrupt-frame-flag.patch b/root/target/linux/bcm27xx/patches-5.14/0390-staging-bcm2835-codec-Pass-corrupt-frame-flag.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0391-staging-bcm2835-camera-Add-support-for-H264-levels-4.patch b/root/target/linux/bcm27xx/patches-5.14/0391-staging-bcm2835-camera-Add-support-for-H264-levels-4.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0392-staging-bcm2835-codec-Do-not-update-crop-from-S_FMT-.patch b/root/target/linux/bcm27xx/patches-5.14/0392-staging-bcm2835-codec-Do-not-update-crop-from-S_FMT-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0393-staging-bcm2835-isp-Fix-compiler-warning.patch b/root/target/linux/bcm27xx/patches-5.14/0393-staging-bcm2835-isp-Fix-compiler-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0394-gpio-poweroff-Remember-the-old-poweroff-handler.patch b/root/target/linux/bcm27xx/patches-5.14/0394-gpio-poweroff-Remember-the-old-poweroff-handler.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0395-media-i2c-ov5647-Correct-pixel-array-offset.patch b/root/target/linux/bcm27xx/patches-5.14/0395-media-i2c-ov5647-Correct-pixel-array-offset.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0396-media-i2c-ov5647-Correct-minimum-VBLANK-value.patch b/root/target/linux/bcm27xx/patches-5.14/0396-media-i2c-ov5647-Correct-minimum-VBLANK-value.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0397-media-i2c-ov5647-Fix-v4l2-compliance-failure-subscri.patch b/root/target/linux/bcm27xx/patches-5.14/0397-media-i2c-ov5647-Fix-v4l2-compliance-failure-subscri.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0398-media-rpivid-Remove-the-need-to-have-num_entry_point.patch b/root/target/linux/bcm27xx/patches-5.14/0398-media-rpivid-Remove-the-need-to-have-num_entry_point.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0399-media-rpivid-Convert-to-MPLANE.patch b/root/target/linux/bcm27xx/patches-5.14/0399-media-rpivid-Convert-to-MPLANE.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0400-media-rpivid-Add-an-enable-count-to-irq-claim-Qs.patch b/root/target/linux/bcm27xx/patches-5.14/0400-media-rpivid-Add-an-enable-count-to-irq-claim-Qs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0401-RFC-media-Add-media_request_-pin-unpin-API.patch b/root/target/linux/bcm27xx/patches-5.14/0401-RFC-media-Add-media_request_-pin-unpin-API.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0402-media-rpivid-Add-a-Pass0-to-accumulate-slices-and-re.patch b/root/target/linux/bcm27xx/patches-5.14/0402-media-rpivid-Add-a-Pass0-to-accumulate-slices-and-re.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0403-media-rpivid-Map-cmd-buffer-directly.patch b/root/target/linux/bcm27xx/patches-5.14/0403-media-rpivid-Map-cmd-buffer-directly.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0404-media-rpivid-Improve-values-returned-when-setting-ou.patch b/root/target/linux/bcm27xx/patches-5.14/0404-media-rpivid-Improve-values-returned-when-setting-ou.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0405-media-rpivid-Improve-stream_on-off-conformance-clock.patch b/root/target/linux/bcm27xx/patches-5.14/0405-media-rpivid-Improve-stream_on-off-conformance-clock.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0406-media-rpivid-Improve-SPS-PPS-error-handling-validati.patch b/root/target/linux/bcm27xx/patches-5.14/0406-media-rpivid-Improve-SPS-PPS-error-handling-validati.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0407-Add-Raspberry-Pi-PoE-HAT-support.patch b/root/target/linux/bcm27xx/patches-5.14/0407-Add-Raspberry-Pi-PoE-HAT-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0408-bcm2835-Allow-compressed-frames-to-set-sizeimage-438.patch b/root/target/linux/bcm27xx/patches-5.14/0408-bcm2835-Allow-compressed-frames-to-set-sizeimage-438.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0409-media-i2c-imx477-Fix-for-long-exposure-limit-calcula.patch b/root/target/linux/bcm27xx/patches-5.14/0409-media-i2c-imx477-Fix-for-long-exposure-limit-calcula.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0410-clk-bcm2835-Pass-DT-node-to-rpi_firmware_get.patch b/root/target/linux/bcm27xx/patches-5.14/0410-clk-bcm2835-Pass-DT-node-to-rpi_firmware_get.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0411-mmc-sdhost-Pass-DT-pointer-to-rpi_firmware_get.patch b/root/target/linux/bcm27xx/patches-5.14/0411-mmc-sdhost-Pass-DT-pointer-to-rpi_firmware_get.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0412-bcm2835-pcm.c-Support-multichannel-audio.patch b/root/target/linux/bcm27xx/patches-5.14/0412-bcm2835-pcm.c-Support-multichannel-audio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0413-bcm2835-pcm-Fix-up-multichannel-pcm-audio.patch b/root/target/linux/bcm27xx/patches-5.14/0413-bcm2835-pcm-Fix-up-multichannel-pcm-audio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0414-media-i2c-imx290-Support-60fps-in-2-lane-operation.patch b/root/target/linux/bcm27xx/patches-5.14/0414-media-i2c-imx290-Support-60fps-in-2-lane-operation.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0415-media-i2c-imx290-Fix-the-pixel-rate-at-148.5Mpix-s.patch b/root/target/linux/bcm27xx/patches-5.14/0415-media-i2c-imx290-Fix-the-pixel-rate-at-148.5Mpix-s.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0416-media-i2c-imx290-Fix-clock-setup-register-assignment.patch b/root/target/linux/bcm27xx/patches-5.14/0416-media-i2c-imx290-Fix-clock-setup-register-assignment.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0417-media-rpivid-Fix-H265-aux-ent-reuse-of-the-same-slot.patch b/root/target/linux/bcm27xx/patches-5.14/0417-media-rpivid-Fix-H265-aux-ent-reuse-of-the-same-slot.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0418-media-i2c-ov9281-Remove-override-of-subdev-name.patch b/root/target/linux/bcm27xx/patches-5.14/0418-media-i2c-ov9281-Remove-override-of-subdev-name.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0419-configs-Add-CONFIG_MACVTAP-m-arm64-only.patch b/root/target/linux/bcm27xx/patches-5.14/0419-configs-Add-CONFIG_MACVTAP-m-arm64-only.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0420-staging-vc04_services-isp-Set-the-YUV420-YVU420-form.patch b/root/target/linux/bcm27xx/patches-5.14/0420-staging-vc04_services-isp-Set-the-YUV420-YVU420-form.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0421-Documentation-devicetree-Add-documentation-for-imx37.patch b/root/target/linux/bcm27xx/patches-5.14/0421-Documentation-devicetree-Add-documentation-for-imx37.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0422-media-i2c-imx477-Extend-driver-to-support-imx378-sen.patch b/root/target/linux/bcm27xx/patches-5.14/0422-media-i2c-imx477-Extend-driver-to-support-imx378-sen.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0423-dt-bindings-clk-raspberrypi-Remove-unused-property.patch b/root/target/linux/bcm27xx/patches-5.14/0423-dt-bindings-clk-raspberrypi-Remove-unused-property.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0424-dt-bindings-display-vc4-Add-phandle-to-the-firmware.patch b/root/target/linux/bcm27xx/patches-5.14/0424-dt-bindings-display-vc4-Add-phandle-to-the-firmware.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0425-firmware-raspberrypi-Add-RPI_FIRMWARE_NOTIFY_DISPLAY.patch b/root/target/linux/bcm27xx/patches-5.14/0425-firmware-raspberrypi-Add-RPI_FIRMWARE_NOTIFY_DISPLAY.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0426-bcm2711_thermal-Don-t-clamp-temperature-at-zero.patch b/root/target/linux/bcm27xx/patches-5.14/0426-bcm2711_thermal-Don-t-clamp-temperature-at-zero.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0427-media-bcm2835-unicam-Forward-input-status-from-subde.patch b/root/target/linux/bcm27xx/patches-5.14/0427-media-bcm2835-unicam-Forward-input-status-from-subde.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0428-configs-Add-KEYBOARD_CAP11XX-m.patch b/root/target/linux/bcm27xx/patches-5.14/0428-configs-Add-KEYBOARD_CAP11XX-m.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0429-media-v4l2-subdev-add-subdev-wide-state-struct.patch b/root/target/linux/bcm27xx/patches-5.14/0429-media-v4l2-subdev-add-subdev-wide-state-struct.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0430-configs-Remove-non-building-CONFIG_VIDEO_RPIVID.patch b/root/target/linux/bcm27xx/patches-5.14/0430-configs-Remove-non-building-CONFIG_VIDEO_RPIVID.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0431-configs-Remove-RAW_DRIVER-y-driver-deleted.patch b/root/target/linux/bcm27xx/patches-5.14/0431-configs-Remove-RAW_DRIVER-y-driver-deleted.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0432-configs-SPS30-m-SPS30_I2C-m.patch b/root/target/linux/bcm27xx/patches-5.14/0432-configs-SPS30-m-SPS30_I2C-m.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0433-configs-Restore-arm64-bcm2711-TASKSTATS-y.patch b/root/target/linux/bcm27xx/patches-5.14/0433-configs-Restore-arm64-bcm2711-TASKSTATS-y.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0434-drm-vc4-Adopt-the-dma-configuration-from-the-HVS-or-.patch b/root/target/linux/bcm27xx/patches-5.14/0434-drm-vc4-Adopt-the-dma-configuration-from-the-HVS-or-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0435-Support-RPi-DPI-interface-in-mode6-for-18-bit-color.patch b/root/target/linux/bcm27xx/patches-5.14/0435-Support-RPi-DPI-interface-in-mode6-for-18-bit-color.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0437-vc4_hdmi-Set-HDMI_MAI_FMT.patch b/root/target/linux/bcm27xx/patches-5.14/0437-vc4_hdmi-Set-HDMI_MAI_FMT.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0438-drm-vc4-add-iec958-controls-to-vc4_hdmi.patch b/root/target/linux/bcm27xx/patches-5.14/0438-drm-vc4-add-iec958-controls-to-vc4_hdmi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0439-drm-vc4-move-setup-from-hw_params-to-prepare.patch b/root/target/linux/bcm27xx/patches-5.14/0439-drm-vc4-move-setup-from-hw_params-to-prepare.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0440-drm-vc4-enable-HBR-MAI-format-on-HBR-streams.patch b/root/target/linux/bcm27xx/patches-5.14/0440-drm-vc4-enable-HBR-MAI-format-on-HBR-streams.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0441-vc4_hdmi-Remove-firmware-logic-for-MAI-threshold-set.patch b/root/target/linux/bcm27xx/patches-5.14/0441-vc4_hdmi-Remove-firmware-logic-for-MAI-threshold-set.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0442-vc_hdmi-Set-VC4_HDMI_MAI_CONFIG_FORMAT_REVERSE.patch b/root/target/linux/bcm27xx/patches-5.14/0442-vc_hdmi-Set-VC4_HDMI_MAI_CONFIG_FORMAT_REVERSE.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0443-vc4-Report-channel-mapping-back-to-userspace.patch b/root/target/linux/bcm27xx/patches-5.14/0443-vc4-Report-channel-mapping-back-to-userspace.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0444-drm-vc4-Add-support-for-DRM_FORMAT_P030-to-vc4-plane.patch b/root/target/linux/bcm27xx/patches-5.14/0444-drm-vc4-Add-support-for-DRM_FORMAT_P030-to-vc4-plane.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0445-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch b/root/target/linux/bcm27xx/patches-5.14/0445-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0446-drm-vc4-Add-FKMS-as-an-acceptable-node-for-dma-range.patch b/root/target/linux/bcm27xx/patches-5.14/0446-drm-vc4-Add-FKMS-as-an-acceptable-node-for-dma-range.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0447-drm-vc4-A-present-but-empty-dmas-disables-audio.patch b/root/target/linux/bcm27xx/patches-5.14/0447-drm-vc4-A-present-but-empty-dmas-disables-audio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0448-drm-vc4-Add-debugfs-node-that-dumps-the-current-disp.patch b/root/target/linux/bcm27xx/patches-5.14/0448-drm-vc4-Add-debugfs-node-that-dumps-the-current-disp.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0449-drm-vc4-Add-all-the-HDMI-registers-into-the-debugfs-.patch b/root/target/linux/bcm27xx/patches-5.14/0449-drm-vc4-Add-all-the-HDMI-registers-into-the-debugfs-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0450-drm-vc4-Add-the-2711-HVS-as-a-suitable-DMA-node.patch b/root/target/linux/bcm27xx/patches-5.14/0450-drm-vc4-Add-the-2711-HVS-as-a-suitable-DMA-node.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0451-vc4_hdmi-Report-that-3d-stereo-is-allowed.patch b/root/target/linux/bcm27xx/patches-5.14/0451-vc4_hdmi-Report-that-3d-stereo-is-allowed.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0452-vc4-Clear-unused-infoframe-packet-RAM-registers.patch b/root/target/linux/bcm27xx/patches-5.14/0452-vc4-Clear-unused-infoframe-packet-RAM-registers.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0453-drm-vc4-Change-the-default-DPI-format-to-being-18bpp.patch b/root/target/linux/bcm27xx/patches-5.14/0453-drm-vc4-Change-the-default-DPI-format-to-being-18bpp.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0454-vc4-drm-Avoid-full-hdmi-audio-fifo-writes.patch b/root/target/linux/bcm27xx/patches-5.14/0454-vc4-drm-Avoid-full-hdmi-audio-fifo-writes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0455-vc4-drm-Fix-source-offsets-with-DRM_FORMAT_P030.patch b/root/target/linux/bcm27xx/patches-5.14/0455-vc4-drm-Fix-source-offsets-with-DRM_FORMAT_P030.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0456-vc4-drm-vc4_plane-Remove-subpixel-positioning-check.patch b/root/target/linux/bcm27xx/patches-5.14/0456-vc4-drm-vc4_plane-Remove-subpixel-positioning-check.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0457-vc4-kms-vc4_plane-Support-2020-colourspace-for-yuv-p.patch b/root/target/linux/bcm27xx/patches-5.14/0457-vc4-kms-vc4_plane-Support-2020-colourspace-for-yuv-p.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0458-drm-vc4-hdmi-Convert-to-the-new-clock-request-API.patch b/root/target/linux/bcm27xx/patches-5.14/0458-drm-vc4-hdmi-Convert-to-the-new-clock-request-API.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0459-drm-vc4-Correct-pixel-order-for-DSI0.patch b/root/target/linux/bcm27xx/patches-5.14/0459-drm-vc4-Correct-pixel-order-for-DSI0.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0460-drm-vc4-Register-dsi0-as-the-correct-vc4-encoder-typ.patch b/root/target/linux/bcm27xx/patches-5.14/0460-drm-vc4-Register-dsi0-as-the-correct-vc4-encoder-typ.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0461-drm-vc4-Fix-dsi0-interrupt-support.patch b/root/target/linux/bcm27xx/patches-5.14/0461-drm-vc4-Fix-dsi0-interrupt-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0462-drm-vc4-Add-correct-stop-condition-to-vc4_dsi_encode.patch b/root/target/linux/bcm27xx/patches-5.14/0462-drm-vc4-Add-correct-stop-condition-to-vc4_dsi_encode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0463-drm-atomic-Don-t-fixup-modes-that-haven-t-been-reset.patch b/root/target/linux/bcm27xx/patches-5.14/0463-drm-atomic-Don-t-fixup-modes-that-haven-t-been-reset.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0464-drm-vc4-hdmi-Raise-the-maximum-clock-rate.patch b/root/target/linux/bcm27xx/patches-5.14/0464-drm-vc4-hdmi-Raise-the-maximum-clock-rate.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0465-drm-vc4-Allow-DBLCLK-modes-even-if-horz-timing-is-od.patch b/root/target/linux/bcm27xx/patches-5.14/0465-drm-vc4-Allow-DBLCLK-modes-even-if-horz-timing-is-od.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0466-clk-Always-clamp-the-rounded-rate.patch b/root/target/linux/bcm27xx/patches-5.14/0466-clk-Always-clamp-the-rounded-rate.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0467-drm-vc4-hdmi-Rely-on-interrupts-to-handle-hotplug.patch b/root/target/linux/bcm27xx/patches-5.14/0467-drm-vc4-hdmi-Rely-on-interrupts-to-handle-hotplug.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0468-drm-vc4-crtc-Add-encoder-to-vc4_crtc_config_pv-proto.patch b/root/target/linux/bcm27xx/patches-5.14/0468-drm-vc4-crtc-Add-encoder-to-vc4_crtc_config_pv-proto.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0469-drm-vc4-crtc-Rework-the-encoder-retrieval-code-again.patch b/root/target/linux/bcm27xx/patches-5.14/0469-drm-vc4-crtc-Rework-the-encoder-retrieval-code-again.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0470-drm-vc4-crtc-Add-some-logging.patch b/root/target/linux/bcm27xx/patches-5.14/0470-drm-vc4-crtc-Add-some-logging.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0471-drm-vc4-Leverage-the-load-tracker-on-the-BCM2711.patch b/root/target/linux/bcm27xx/patches-5.14/0471-drm-vc4-Leverage-the-load-tracker-on-the-BCM2711.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0472-drm-vc4-Increase-the-core-clock-based-on-HVS-load.patch b/root/target/linux/bcm27xx/patches-5.14/0472-drm-vc4-Increase-the-core-clock-based-on-HVS-load.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0473-drm-vc4-hdmi-Simplify-the-connector-state-retrieval.patch b/root/target/linux/bcm27xx/patches-5.14/0473-drm-vc4-hdmi-Simplify-the-connector-state-retrieval.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0474-drm-vc4-Fix-timings-for-interlaced-modes.patch b/root/target/linux/bcm27xx/patches-5.14/0474-drm-vc4-Fix-timings-for-interlaced-modes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0476-drm-vc4-Increase-the-core-clock-to-a-minimum-of-500M.patch b/root/target/linux/bcm27xx/patches-5.14/0476-drm-vc4-Increase-the-core-clock-to-a-minimum-of-500M.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0477-drm-vc4-hdmi-Enable-the-scrambler-on-reconnection.patch b/root/target/linux/bcm27xx/patches-5.14/0477-drm-vc4-hdmi-Enable-the-scrambler-on-reconnection.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0478-drm-vc4-hdmi-Make-sure-the-controller-is-powered-up-.patch b/root/target/linux/bcm27xx/patches-5.14/0478-drm-vc4-hdmi-Make-sure-the-controller-is-powered-up-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0479-drm-vc4-hdmi-Split-the-CEC-disable-enable-functions-.patch b/root/target/linux/bcm27xx/patches-5.14/0479-drm-vc4-hdmi-Split-the-CEC-disable-enable-functions-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0480-drm-vc4-hdmi-Make-sure-the-device-is-powered-with-CE.patch b/root/target/linux/bcm27xx/patches-5.14/0480-drm-vc4-hdmi-Make-sure-the-device-is-powered-with-CE.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0481-drm-vc4-hdmi-Warn-if-we-access-the-controller-while-.patch b/root/target/linux/bcm27xx/patches-5.14/0481-drm-vc4-hdmi-Warn-if-we-access-the-controller-while-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0482-drm-vc4-hdmi-Move-initial-register-read-after-pm_run.patch b/root/target/linux/bcm27xx/patches-5.14/0482-drm-vc4-hdmi-Move-initial-register-read-after-pm_run.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0483-dwc_otg-Update-NetBSD-usb.h-header-licence.patch b/root/target/linux/bcm27xx/patches-5.14/0483-dwc_otg-Update-NetBSD-usb.h-header-licence.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0484-drm-vc4-hdmi-Drop-devm-interrupt-handler-for-hotplug.patch b/root/target/linux/bcm27xx/patches-5.14/0484-drm-vc4-hdmi-Drop-devm-interrupt-handler-for-hotplug.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0485-drm-vc4-hdmi-Only-call-into-DRM-framework-if-registe.patch b/root/target/linux/bcm27xx/patches-5.14/0485-drm-vc4-hdmi-Only-call-into-DRM-framework-if-registe.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0486-drm-vc4-Fix-margin-calculations-for-the-right-bottom.patch b/root/target/linux/bcm27xx/patches-5.14/0486-drm-vc4-Fix-margin-calculations-for-the-right-bottom.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0487-drm-vc4-Fix-timings-for-VEC-modes.patch b/root/target/linux/bcm27xx/patches-5.14/0487-drm-vc4-Fix-timings-for-VEC-modes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0488-drm-vc4-Refactor-VEC-TV-mode-setting.patch b/root/target/linux/bcm27xx/patches-5.14/0488-drm-vc4-Refactor-VEC-TV-mode-setting.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0489-drm-vc4-Fix-definition-of-PAL-M-mode.patch b/root/target/linux/bcm27xx/patches-5.14/0489-drm-vc4-Fix-definition-of-PAL-M-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0490-drm-vc4-Add-support-for-more-analog-TV-standards.patch b/root/target/linux/bcm27xx/patches-5.14/0490-drm-vc4-Add-support-for-more-analog-TV-standards.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0491-drm-vc4-Allow-setting-the-TV-norm-via-module-paramet.patch b/root/target/linux/bcm27xx/patches-5.14/0491-drm-vc4-Allow-setting-the-TV-norm-via-module-paramet.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0492-drm-vc4-Refactor-mode-checking-logic.patch b/root/target/linux/bcm27xx/patches-5.14/0492-drm-vc4-Refactor-mode-checking-logic.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0493-drm-vc4-hdmi-Convert-to-the-new-clock-request-API.patch b/root/target/linux/bcm27xx/patches-5.14/0493-drm-vc4-hdmi-Convert-to-the-new-clock-request-API.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0494-vc4-drm-hdmi-Handle-case-when-bvb-clock-is-null.patch b/root/target/linux/bcm27xx/patches-5.14/0494-vc4-drm-hdmi-Handle-case-when-bvb-clock-is-null.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0495-drm-vc4-Register-HDMI-codec.patch b/root/target/linux/bcm27xx/patches-5.14/0495-drm-vc4-Register-HDMI-codec.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0496-drm-vc4-hdmi-Remove-redundant-variables.patch b/root/target/linux/bcm27xx/patches-5.14/0496-drm-vc4-hdmi-Remove-redundant-variables.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0497-drm-vc4-hdmi-Use-a-fixed-rate-for-the-HSM-clock-on-B.patch b/root/target/linux/bcm27xx/patches-5.14/0497-drm-vc4-hdmi-Use-a-fixed-rate-for-the-HSM-clock-on-B.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0498-drm-vc4-Remove-conflicting-framebuffers-before-calli.patch b/root/target/linux/bcm27xx/patches-5.14/0498-drm-vc4-Remove-conflicting-framebuffers-before-calli.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0499-drm-vc4-Notify-the-firmware-when-DRM-is-in-charge.patch b/root/target/linux/bcm27xx/patches-5.14/0499-drm-vc4-Notify-the-firmware-when-DRM-is-in-charge.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0500-drm-vc4-hdmi-Put-the-device-on-error-in-pre_crtc_con.patch b/root/target/linux/bcm27xx/patches-5.14/0500-drm-vc4-hdmi-Put-the-device-on-error-in-pre_crtc_con.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0501-drm-vc4-hdmi-Add-missing-clk_disable_unprepare-on-er.patch b/root/target/linux/bcm27xx/patches-5.14/0501-drm-vc4-hdmi-Add-missing-clk_disable_unprepare-on-er.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0502-drm-vc4-Add-firmware-kms-mode.patch b/root/target/linux/bcm27xx/patches-5.14/0502-drm-vc4-Add-firmware-kms-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0503-firmware-Updated-mailbox-header.patch b/root/target/linux/bcm27xx/patches-5.14/0503-firmware-Updated-mailbox-header.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0504-raspberrypi-firmware-Export-the-general-transaction-.patch b/root/target/linux/bcm27xx/patches-5.14/0504-raspberrypi-firmware-Export-the-general-transaction-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0505-configs-Add-SND_SOC_WM8960-m.patch b/root/target/linux/bcm27xx/patches-5.14/0505-configs-Add-SND_SOC_WM8960-m.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0506-media-i2c-imx477-Fix-framerates-for-1332x990-mode.patch b/root/target/linux/bcm27xx/patches-5.14/0506-media-i2c-imx477-Fix-framerates-for-1332x990-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0507-drm-gud-Free-buffers-on-device-removal.patch b/root/target/linux/bcm27xx/patches-5.14/0507-drm-gud-Free-buffers-on-device-removal.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0508-drm-gud-Use-scatter-gather-USB-bulk-transfer.patch b/root/target/linux/bcm27xx/patches-5.14/0508-drm-gud-Use-scatter-gather-USB-bulk-transfer.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0509-drm-gud-Add-Raspberry-Pi-Pico-ID.patch b/root/target/linux/bcm27xx/patches-5.14/0509-drm-gud-Add-Raspberry-Pi-Pico-ID.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0510-drm-gud-Add-async_flush-module-parameter.patch b/root/target/linux/bcm27xx/patches-5.14/0510-drm-gud-Add-async_flush-module-parameter.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0511-configs-Add-CONFIG_DRM_GUD-m.patch b/root/target/linux/bcm27xx/patches-5.14/0511-configs-Add-CONFIG_DRM_GUD-m.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0512-Revert-drm-vc4-hdmi-Make-sure-the-controller-is-powe.patch b/root/target/linux/bcm27xx/patches-5.14/0512-Revert-drm-vc4-hdmi-Make-sure-the-controller-is-powe.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0513-brcmfmac-Try-product-specific-clm_blob-names-first.patch b/root/target/linux/bcm27xx/patches-5.14/0513-brcmfmac-Try-product-specific-clm_blob-names-first.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0514-SQUASH-fbmem-Use-fallthrough-keyword.patch b/root/target/linux/bcm27xx/patches-5.14/0514-SQUASH-fbmem-Use-fallthrough-keyword.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0515-ASoC-bcm-Compiler-warnings-in-audioinjector-octo.patch b/root/target/linux/bcm27xx/patches-5.14/0515-ASoC-bcm-Compiler-warnings-in-audioinjector-octo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0516-media-i2c-tc358743-Fix-compiler-warning.patch b/root/target/linux/bcm27xx/patches-5.14/0516-media-i2c-tc358743-Fix-compiler-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0517-ASoC-bcm-Add-chipdip-dac-driver.patch b/root/target/linux/bcm27xx/patches-5.14/0517-ASoC-bcm-Add-chipdip-dac-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0518-configs-Add-SND_BCM2708_SOC_CHIPDIP_DAC.patch b/root/target/linux/bcm27xx/patches-5.14/0518-configs-Add-SND_BCM2708_SOC_CHIPDIP_DAC.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0519-drm-vc4-hdmi-Unregister-codec-device-on-unbind.patch b/root/target/linux/bcm27xx/patches-5.14/0519-drm-vc4-hdmi-Unregister-codec-device-on-unbind.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0520-drm-vc4-crtc-Make-sure-the-HDMI-controller-is-powere.patch b/root/target/linux/bcm27xx/patches-5.14/0520-drm-vc4-crtc-Make-sure-the-HDMI-controller-is-powere.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0521-drm-vc4-fix-vc4_atomic_commit_tail-logic.patch b/root/target/linux/bcm27xx/patches-5.14/0521-drm-vc4-fix-vc4_atomic_commit_tail-logic.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0522-char-vc_mem-Delete-dead-code.patch b/root/target/linux/bcm27xx/patches-5.14/0522-char-vc_mem-Delete-dead-code.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0523-configs-Add-RANDOM_TRUST_BOOTLOADER-y.patch b/root/target/linux/bcm27xx/patches-5.14/0523-configs-Add-RANDOM_TRUST_BOOTLOADER-y.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0524-configs-NOP_USB_XCEIV-y-and-USB_GADGET-y.patch b/root/target/linux/bcm27xx/patches-5.14/0524-configs-NOP_USB_XCEIV-y-and-USB_GADGET-y.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0525-overlays-Add-Ablic-S35390A-to-i2c-rtc-and-gpio.patch b/root/target/linux/bcm27xx/patches-5.14/0525-overlays-Add-Ablic-S35390A-to-i2c-rtc-and-gpio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0526-dtoverlays-Add-orientation-and-rotation-parameter-to.patch b/root/target/linux/bcm27xx/patches-5.14/0526-dtoverlays-Add-orientation-and-rotation-parameter-to.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0527-media-i2c-imx290-Add-fwnode-properties-controls.patch b/root/target/linux/bcm27xx/patches-5.14/0527-media-i2c-imx290-Add-fwnode-properties-controls.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0528-media-i2c-ov9281-Add-fwnode-properties-controls.patch b/root/target/linux/bcm27xx/patches-5.14/0528-media-i2c-ov9281-Add-fwnode-properties-controls.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0529-media-i2c-ov7251-Add-fwnode-properties-controls.patch b/root/target/linux/bcm27xx/patches-5.14/0529-media-i2c-ov7251-Add-fwnode-properties-controls.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0530-overlays-Reduce-Pi-4-vc4-CMA-size-to-320MB.patch b/root/target/linux/bcm27xx/patches-5.14/0530-overlays-Reduce-Pi-4-vc4-CMA-size-to-320MB.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0531-media-v4l2-Remove-v4l2-ctrls.c.patch b/root/target/linux/bcm27xx/patches-5.14/0531-media-v4l2-Remove-v4l2-ctrls.c.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0532-media-v4l2-Add-HEVC_SCALING_MATRIX-attribute-to-v4l2.patch b/root/target/linux/bcm27xx/patches-5.14/0532-media-v4l2-Add-HEVC_SCALING_MATRIX-attribute-to-v4l2.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0533-media-rpivid-Update-to-compile-with-new-hevc-decode-.patch b/root/target/linux/bcm27xx/patches-5.14/0533-media-rpivid-Update-to-compile-with-new-hevc-decode-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0534-Revert-configs-Remove-non-building-CONFIG_VIDEO_RPIV.patch b/root/target/linux/bcm27xx/patches-5.14/0534-Revert-configs-Remove-non-building-CONFIG_VIDEO_RPIV.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0535-media-v4l2-Add-Greyworld-AWB-control-name.patch b/root/target/linux/bcm27xx/patches-5.14/0535-media-v4l2-Add-Greyworld-AWB-control-name.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0536-videodev2.h-add-V4L2_CTRL_FLAG_DYNAMIC_ARRAY.patch b/root/target/linux/bcm27xx/patches-5.14/0536-videodev2.h-add-V4L2_CTRL_FLAG_DYNAMIC_ARRAY.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0537-v4l2-ctrls-add-support-for-dynamically-allocated-arr.patch b/root/target/linux/bcm27xx/patches-5.14/0537-v4l2-ctrls-add-support-for-dynamically-allocated-arr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0538-media-rpivid-Make-slice-ctrl-dynamic.patch b/root/target/linux/bcm27xx/patches-5.14/0538-media-rpivid-Make-slice-ctrl-dynamic.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0539-media-rpivid-Only-create-aux-entries-for-H265-if-nee.patch b/root/target/linux/bcm27xx/patches-5.14/0539-media-rpivid-Only-create-aux-entries-for-H265-if-nee.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0540-Revert-overlays-Update-display-GPIO-declarations-for.patch b/root/target/linux/bcm27xx/patches-5.14/0540-Revert-overlays-Update-display-GPIO-declarations-for.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0541-overlays-Add-midi-uart-2345-overlay.dts.patch b/root/target/linux/bcm27xx/patches-5.14/0541-overlays-Add-midi-uart-2345-overlay.dts.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0542-usb-xhci-workaround-for-bogus-SET_DEQ_PENDING-endpoi.patch b/root/target/linux/bcm27xx/patches-5.14/0542-usb-xhci-workaround-for-bogus-SET_DEQ_PENDING-endpoi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0543-overlays-Add-TI-BQ32000-RTC-support.patch b/root/target/linux/bcm27xx/patches-5.14/0543-overlays-Add-TI-BQ32000-RTC-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0544-xhci-guard-accesses-to-ep_state-in-xhci_endpoint_res.patch b/root/target/linux/bcm27xx/patches-5.14/0544-xhci-guard-accesses-to-ep_state-in-xhci_endpoint_res.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0545-overlays-rpi-poe-plus-Improve-the-cooling-levels.patch b/root/target/linux/bcm27xx/patches-5.14/0545-overlays-rpi-poe-plus-Improve-the-cooling-levels.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0546-Makefiles-dt-Always-set-on-ARCH_BCM2835.patch b/root/target/linux/bcm27xx/patches-5.14/0546-Makefiles-dt-Always-set-on-ARCH_BCM2835.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0547-overlays-qca7000-Fix-URL-README.patch b/root/target/linux/bcm27xx/patches-5.14/0547-overlays-qca7000-Fix-URL-README.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0548-drm-probe-helper-Create-a-HPD-IRQ-event-helper-for-a.patch b/root/target/linux/bcm27xx/patches-5.14/0548-drm-probe-helper-Create-a-HPD-IRQ-event-helper-for-a.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0549-drm-vc4-hdmi-Actually-check-for-the-connector-status.patch b/root/target/linux/bcm27xx/patches-5.14/0549-drm-vc4-hdmi-Actually-check-for-the-connector-status.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0550-drm-vc4-hdmi-Remove-the-DDC-probing-for-status-detec.patch b/root/target/linux/bcm27xx/patches-5.14/0550-drm-vc4-hdmi-Remove-the-DDC-probing-for-status-detec.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0551-drm-vc4-Set-a-default-HSM-rate.patch b/root/target/linux/bcm27xx/patches-5.14/0551-drm-vc4-Set-a-default-HSM-rate.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.14/0552-overlays-Add-overlay-for-QCA7000-via-UART0.patch b/root/target/linux/bcm27xx/patches-5.14/0552-overlays-Add-overlay-for-QCA7000-via-UART0.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0020-drm-probe-helper-Create-a-HPD-IRQ-event-helper-for-a.patch b/root/target/linux/bcm27xx/patches-5.15/950-0020-drm-probe-helper-Create-a-HPD-IRQ-event-helper-for-a.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0022-firmware-raspberrypi-Add-RPI_FIRMWARE_NOTIFY_DISPLAY.patch b/root/target/linux/bcm27xx/patches-5.15/950-0022-firmware-raspberrypi-Add-RPI_FIRMWARE_NOTIFY_DISPLAY.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0025-arm-partially-revert-702b94bff3c50542a6e4ab9a4f4cef0.patch b/root/target/linux/bcm27xx/patches-5.15/950-0025-arm-partially-revert-702b94bff3c50542a6e4ab9a4f4cef0.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0026-Revert-rtc-pcf8523-properly-handle-oscillator-stop-b.patch b/root/target/linux/bcm27xx/patches-5.15/950-0026-Revert-rtc-pcf8523-properly-handle-oscillator-stop-b.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0027-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch b/root/target/linux/bcm27xx/patches-5.15/950-0027-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0028-Revert-spi-spidev-Fix-CS-polarity-if-GPIO-descriptor.patch b/root/target/linux/bcm27xx/patches-5.15/950-0028-Revert-spi-spidev-Fix-CS-polarity-if-GPIO-descriptor.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0029-Revert-mailbox-avoid-timer-start-from-callback.patch b/root/target/linux/bcm27xx/patches-5.15/950-0029-Revert-mailbox-avoid-timer-start-from-callback.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0030-Revert-Bluetooth-Always-request-for-user-confirmatio.patch b/root/target/linux/bcm27xx/patches-5.15/950-0030-Revert-Bluetooth-Always-request-for-user-confirmatio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0031-Revert-Bluetooth-Always-request-for-user-confirmatio.patch b/root/target/linux/bcm27xx/patches-5.15/950-0031-Revert-Bluetooth-Always-request-for-user-confirmatio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0032-smsx95xx-fix-crimes-against-truesize.patch b/root/target/linux/bcm27xx/patches-5.15/950-0032-smsx95xx-fix-crimes-against-truesize.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0033-smsc95xx-Experimental-Enable-turbo_mode-and-packetsi.patch b/root/target/linux/bcm27xx/patches-5.15/950-0033-smsc95xx-Experimental-Enable-turbo_mode-and-packetsi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0034-Allow-mac-address-to-be-set-in-smsc95xx.patch b/root/target/linux/bcm27xx/patches-5.15/950-0034-Allow-mac-address-to-be-set-in-smsc95xx.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0035-cgroup-Disable-cgroup-memory-by-default.patch b/root/target/linux/bcm27xx/patches-5.15/950-0035-cgroup-Disable-cgroup-memory-by-default.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0036-Protect-__release_resource-against-resources-without.patch b/root/target/linux/bcm27xx/patches-5.15/950-0036-Protect-__release_resource-against-resources-without.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0037-irq-bcm2836-Avoid-Invalid-trigger-warning.patch b/root/target/linux/bcm27xx/patches-5.15/950-0037-irq-bcm2836-Avoid-Invalid-trigger-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0038-irqchip-bcm2835-Add-FIQ-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0038-irqchip-bcm2835-Add-FIQ-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0039-irqchip-irq-bcm2835-Add-2836-FIQ-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0039-irqchip-irq-bcm2835-Add-2836-FIQ-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0040-spi-spidev-Completely-disable-the-spidev-warning.patch b/root/target/linux/bcm27xx/patches-5.15/950-0040-spi-spidev-Completely-disable-the-spidev-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0041-dmaengine-bcm2835-Load-driver-early-and-support-lega.patch b/root/target/linux/bcm27xx/patches-5.15/950-0041-dmaengine-bcm2835-Load-driver-early-and-support-lega.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0042-rtc-Add-SPI-alias-for-pcf2123-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0042-rtc-Add-SPI-alias-for-pcf2123-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0043-watchdog-bcm2835-Support-setting-reboot-partition.patch b/root/target/linux/bcm27xx/patches-5.15/950-0043-watchdog-bcm2835-Support-setting-reboot-partition.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0044-reboot-Use-power-off-rather-than-busy-spinning-when-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0044-reboot-Use-power-off-rather-than-busy-spinning-when-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0045-bcm-Make-RASPBERRYPI_POWER-depend-on-PM.patch b/root/target/linux/bcm27xx/patches-5.15/950-0045-bcm-Make-RASPBERRYPI_POWER-depend-on-PM.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0046-Register-the-clocks-early-during-the-boot-process-so.patch b/root/target/linux/bcm27xx/patches-5.15/950-0046-Register-the-clocks-early-during-the-boot-process-so.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0047-bcm2835-rng-Avoid-initialising-if-already-enabled.patch b/root/target/linux/bcm27xx/patches-5.15/950-0047-bcm2835-rng-Avoid-initialising-if-already-enabled.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0048-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch b/root/target/linux/bcm27xx/patches-5.15/950-0048-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0049-clk-bcm2835-Add-claim-clocks-property.patch b/root/target/linux/bcm27xx/patches-5.15/950-0049-clk-bcm2835-Add-claim-clocks-property.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0050-clk-bcm2835-Read-max-core-clock-from-firmware.patch b/root/target/linux/bcm27xx/patches-5.15/950-0050-clk-bcm2835-Read-max-core-clock-from-firmware.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0051-sound-Demote-deferral-errors-to-INFO-level.patch b/root/target/linux/bcm27xx/patches-5.15/950-0051-sound-Demote-deferral-errors-to-INFO-level.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0052-Update-vfpmodule.c.patch b/root/target/linux/bcm27xx/patches-5.15/950-0052-Update-vfpmodule.c.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0053-i2c-bcm2835-Add-debug-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0053-i2c-bcm2835-Add-debug-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0054-irqchip-irq-bcm2836-Remove-regmap-and-syscon-use.patch b/root/target/linux/bcm27xx/patches-5.15/950-0054-irqchip-irq-bcm2836-Remove-regmap-and-syscon-use.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0055-lan78xx-Enable-LEDs-and-auto-negotiation.patch b/root/target/linux/bcm27xx/patches-5.15/950-0055-lan78xx-Enable-LEDs-and-auto-negotiation.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0056-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch b/root/target/linux/bcm27xx/patches-5.15/950-0056-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0057-amba_pl011-Round-input-clock-up.patch b/root/target/linux/bcm27xx/patches-5.15/950-0057-amba_pl011-Round-input-clock-up.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0058-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch b/root/target/linux/bcm27xx/patches-5.15/950-0058-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0059-amba_pl011-Add-cts-event-workaround-DT-property.patch b/root/target/linux/bcm27xx/patches-5.15/950-0059-amba_pl011-Add-cts-event-workaround-DT-property.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0060-tty-amba-pl011-Add-un-throttle-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0060-tty-amba-pl011-Add-un-throttle-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0061-tty-amba-pl011-Avoid-rare-write-when-full-error.patch b/root/target/linux/bcm27xx/patches-5.15/950-0061-tty-amba-pl011-Avoid-rare-write-when-full-error.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0062-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch b/root/target/linux/bcm27xx/patches-5.15/950-0062-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0063-Main-bcm2708-bcm2709-linux-port.patch b/root/target/linux/bcm27xx/patches-5.15/950-0063-Main-bcm2708-bcm2709-linux-port.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0064-Add-dwc_otg-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0064-Add-dwc_otg-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0065-bcm2708-framebuffer-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0065-bcm2708-framebuffer-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0066-Pulled-in-the-multi-frame-buffer-support-from-the-Pi.patch b/root/target/linux/bcm27xx/patches-5.15/950-0066-Pulled-in-the-multi-frame-buffer-support-from-the-Pi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0067-fbdev-add-FBIOCOPYAREA-ioctl.patch b/root/target/linux/bcm27xx/patches-5.15/950-0067-fbdev-add-FBIOCOPYAREA-ioctl.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0068-Speed-up-console-framebuffer-imageblit-function.patch b/root/target/linux/bcm27xx/patches-5.15/950-0068-Speed-up-console-framebuffer-imageblit-function.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0069-dmaengine-Add-support-for-BCM2708.patch b/root/target/linux/bcm27xx/patches-5.15/950-0069-dmaengine-Add-support-for-BCM2708.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0070-MMC-added-alternative-MMC-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0070-MMC-added-alternative-MMC-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0071-Adding-bcm2835-sdhost-driver-and-an-overlay-to-enabl.patch b/root/target/linux/bcm27xx/patches-5.15/950-0071-Adding-bcm2835-sdhost-driver-and-an-overlay-to-enabl.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0072-vc_mem-Add-vc_mem-driver-for-querying-firmware-memor.patch b/root/target/linux/bcm27xx/patches-5.15/950-0072-vc_mem-Add-vc_mem-driver-for-querying-firmware-memor.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0073-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch b/root/target/linux/bcm27xx/patches-5.15/950-0073-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0074-Add-SMI-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0074-Add-SMI-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0075-Add-Chris-Boot-s-i2c-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0075-Add-Chris-Boot-s-i2c-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0076-char-broadcom-Add-vcio-module.patch b/root/target/linux/bcm27xx/patches-5.15/950-0076-char-broadcom-Add-vcio-module.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0077-firmware-bcm2835-Support-ARCH_BCM270x.patch b/root/target/linux/bcm27xx/patches-5.15/950-0077-firmware-bcm2835-Support-ARCH_BCM270x.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0078-BCM2708-Add-core-Device-Tree-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0078-BCM2708-Add-core-Device-Tree-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0079-leds-Add-the-input-trigger-for-pwr_led.patch b/root/target/linux/bcm27xx/patches-5.15/950-0079-leds-Add-the-input-trigger-for-pwr_led.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0080-Added-Device-IDs-for-August-DVB-T-205.patch b/root/target/linux/bcm27xx/patches-5.15/950-0080-Added-Device-IDs-for-August-DVB-T-205.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0081-Improve-__copy_to_user-and-__copy_from_user-performa.patch b/root/target/linux/bcm27xx/patches-5.15/950-0081-Improve-__copy_to_user-and-__copy_from_user-performa.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0082-gpio-poweroff-Allow-it-to-work-on-Raspberry-Pi.patch b/root/target/linux/bcm27xx/patches-5.15/950-0082-gpio-poweroff-Allow-it-to-work-on-Raspberry-Pi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0083-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0083-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0084-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch b/root/target/linux/bcm27xx/patches-5.15/950-0084-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0085-rpi_display-add-backlight-driver-and-overlay.patch b/root/target/linux/bcm27xx/patches-5.15/950-0085-rpi_display-add-backlight-driver-and-overlay.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0086-bcm2835-virtgpio-Virtual-GPIO-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0086-bcm2835-virtgpio-Virtual-GPIO-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0087-OF-DT-Overlay-configfs-interface.patch b/root/target/linux/bcm27xx/patches-5.15/950-0087-OF-DT-Overlay-configfs-interface.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0088-brcm-adds-support-for-BCM43341-wifi.patch b/root/target/linux/bcm27xx/patches-5.15/950-0088-brcm-adds-support-for-BCM43341-wifi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0089-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch b/root/target/linux/bcm27xx/patches-5.15/950-0089-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0090-ARM64-Round-Robin-dispatch-IRQs-between-CPUs.patch b/root/target/linux/bcm27xx/patches-5.15/950-0090-ARM64-Round-Robin-dispatch-IRQs-between-CPUs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0091-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch b/root/target/linux/bcm27xx/patches-5.15/950-0091-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0092-cache-export-clean-and-invalidate.patch b/root/target/linux/bcm27xx/patches-5.15/950-0092-cache-export-clean-and-invalidate.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0093-AXI-performance-monitor-driver-2222.patch b/root/target/linux/bcm27xx/patches-5.15/950-0093-AXI-performance-monitor-driver-2222.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0094-ARM-bcm2835-Set-Serial-number-and-Revision.patch b/root/target/linux/bcm27xx/patches-5.15/950-0094-ARM-bcm2835-Set-Serial-number-and-Revision.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0095-dwc-otg-FIQ-Fix-bad-mode-in-data-abort-handler.patch b/root/target/linux/bcm27xx/patches-5.15/950-0095-dwc-otg-FIQ-Fix-bad-mode-in-data-abort-handler.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0096-ARM-Activate-FIQs-to-avoid-__irq_startup-warnings.patch b/root/target/linux/bcm27xx/patches-5.15/950-0096-ARM-Activate-FIQs-to-avoid-__irq_startup-warnings.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0097-i2c-gpio-Also-set-bus-numbers-from-reg-property.patch b/root/target/linux/bcm27xx/patches-5.15/950-0097-i2c-gpio-Also-set-bus-numbers-from-reg-property.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0098-added-capture_clear-option-to-pps-gpio-via-dtoverlay.patch b/root/target/linux/bcm27xx/patches-5.15/950-0098-added-capture_clear-option-to-pps-gpio-via-dtoverlay.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0099-lan78xx-Read-initial-EEE-status-from-DT.patch b/root/target/linux/bcm27xx/patches-5.15/950-0099-lan78xx-Read-initial-EEE-status-from-DT.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0100-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch b/root/target/linux/bcm27xx/patches-5.15/950-0100-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0101-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch b/root/target/linux/bcm27xx/patches-5.15/950-0101-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0102-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch b/root/target/linux/bcm27xx/patches-5.15/950-0102-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0103-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch b/root/target/linux/bcm27xx/patches-5.15/950-0103-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0104-of-configfs-Use-of_overlay_fdt_apply-API-call.patch b/root/target/linux/bcm27xx/patches-5.15/950-0104-of-configfs-Use-of_overlay_fdt_apply-API-call.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0105-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch b/root/target/linux/bcm27xx/patches-5.15/950-0105-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0106-brcmfmac-Re-enable-firmware-roaming-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0106-brcmfmac-Re-enable-firmware-roaming-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0107-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch b/root/target/linux/bcm27xx/patches-5.15/950-0107-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0108-cxd2880-CXD2880_SPI_DRV-should-select-DVB_CXD2880-wi.patch b/root/target/linux/bcm27xx/patches-5.15/950-0108-cxd2880-CXD2880_SPI_DRV-should-select-DVB_CXD2880-wi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0109-firmware-raspberrypi-Add-backward-compatible-get_thr.patch b/root/target/linux/bcm27xx/patches-5.15/950-0109-firmware-raspberrypi-Add-backward-compatible-get_thr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0110-sc16is7xx-Don-t-spin-if-no-data-received.patch b/root/target/linux/bcm27xx/patches-5.15/950-0110-sc16is7xx-Don-t-spin-if-no-data-received.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0111-drivers-thermal-step_wise-add-support-for-hysteresis.patch b/root/target/linux/bcm27xx/patches-5.15/950-0111-drivers-thermal-step_wise-add-support-for-hysteresis.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0112-drivers-thermal-step_wise-avoid-throttling-at-hyster.patch b/root/target/linux/bcm27xx/patches-5.15/950-0112-drivers-thermal-step_wise-avoid-throttling-at-hyster.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0113-Update-issue-templates-2736.patch b/root/target/linux/bcm27xx/patches-5.15/950-0113-Update-issue-templates-2736.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0114-net-lan78xx-Support-auto-downshift-to-100Mb-s.patch b/root/target/linux/bcm27xx/patches-5.15/950-0114-net-lan78xx-Support-auto-downshift-to-100Mb-s.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0115-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch b/root/target/linux/bcm27xx/patches-5.15/950-0115-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0116-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch b/root/target/linux/bcm27xx/patches-5.15/950-0116-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0117-lan78xx-EEE-support-is-now-a-PHY-property.patch b/root/target/linux/bcm27xx/patches-5.15/950-0117-lan78xx-EEE-support-is-now-a-PHY-property.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0118-bcm2835-dma-Add-support-for-per-channel-flags.patch b/root/target/linux/bcm27xx/patches-5.15/950-0118-bcm2835-dma-Add-support-for-per-channel-flags.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0119-rtc-rv3028-Add-backup-switchover-mode-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0119-rtc-rv3028-Add-backup-switchover-mode-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0120-lan78xx-use-default-alignment-for-rx-buffers.patch b/root/target/linux/bcm27xx/patches-5.15/950-0120-lan78xx-use-default-alignment-for-rx-buffers.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0121-media-tc358743-Increase-FIFO-level-to-374.patch b/root/target/linux/bcm27xx/patches-5.15/950-0121-media-tc358743-Increase-FIFO-level-to-374.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0122-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch b/root/target/linux/bcm27xx/patches-5.15/950-0122-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0123-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch b/root/target/linux/bcm27xx/patches-5.15/950-0123-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0124-media-tc358743-Check-I2C-succeeded-during-probe.patch b/root/target/linux/bcm27xx/patches-5.15/950-0124-media-tc358743-Check-I2C-succeeded-during-probe.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0125-media-adv7180-Default-to-the-first-valid-input.patch b/root/target/linux/bcm27xx/patches-5.15/950-0125-media-adv7180-Default-to-the-first-valid-input.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0126-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch b/root/target/linux/bcm27xx/patches-5.15/950-0126-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0127-media-videodev2-Add-helper-defines-for-printing-FOUR.patch b/root/target/linux/bcm27xx/patches-5.15/950-0127-media-videodev2-Add-helper-defines-for-printing-FOUR.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0128-dt-bindings-Document-BCM283x-CSI2-CCP2-receiver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0128-dt-bindings-Document-BCM283x-CSI2-CCP2-receiver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0129-MAINTAINERS-Add-entry-for-BCM2835-Unicam-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0129-MAINTAINERS-Add-entry-for-BCM2835-Unicam-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0130-media-tc358743-Return-an-appropriate-colorspace-from.patch b/root/target/linux/bcm27xx/patches-5.15/950-0130-media-tc358743-Return-an-appropriate-colorspace-from.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0131-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch b/root/target/linux/bcm27xx/patches-5.15/950-0131-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0132-staging-mmal-vchiq-Add-support-for-event-callbacks.patch b/root/target/linux/bcm27xx/patches-5.15/950-0132-staging-mmal-vchiq-Add-support-for-event-callbacks.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0133-staging-vc04_services-Support-sending-data-to-MMAL-p.patch b/root/target/linux/bcm27xx/patches-5.15/950-0133-staging-vc04_services-Support-sending-data-to-MMAL-p.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0134-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch b/root/target/linux/bcm27xx/patches-5.15/950-0134-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0135-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch b/root/target/linux/bcm27xx/patches-5.15/950-0135-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0136-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch b/root/target/linux/bcm27xx/patches-5.15/950-0136-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0137-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch b/root/target/linux/bcm27xx/patches-5.15/950-0137-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0138-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch b/root/target/linux/bcm27xx/patches-5.15/950-0138-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0139-staging-mmal-vchiq-Free-the-event-context-for-contro.patch b/root/target/linux/bcm27xx/patches-5.15/950-0139-staging-mmal-vchiq-Free-the-event-context-for-contro.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0140-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch b/root/target/linux/bcm27xx/patches-5.15/950-0140-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0141-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch b/root/target/linux/bcm27xx/patches-5.15/950-0141-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0142-arm-bcm2835-Fix-FIQ-early-ioremap.patch b/root/target/linux/bcm27xx/patches-5.15/950-0142-arm-bcm2835-Fix-FIQ-early-ioremap.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0143-arm-bcm2835-DMA-can-only-address-1GB.patch b/root/target/linux/bcm27xx/patches-5.15/950-0143-arm-bcm2835-DMA-can-only-address-1GB.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0144-hwrng-iproc-rng200-Add-BCM2838-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0144-hwrng-iproc-rng200-Add-BCM2838-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0145-bcmgenet-constrain-max-DMA-burst-length.patch b/root/target/linux/bcm27xx/patches-5.15/950-0145-bcmgenet-constrain-max-DMA-burst-length.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0146-bcmgenet-Better-coalescing-parameter-defaults.patch b/root/target/linux/bcm27xx/patches-5.15/950-0146-bcmgenet-Better-coalescing-parameter-defaults.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0147-net-genet-enable-link-energy-detect-powerdown-for-ex.patch b/root/target/linux/bcm27xx/patches-5.15/950-0147-net-genet-enable-link-energy-detect-powerdown-for-ex.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0148-spi-bcm2835-enable-shared-interrupt-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0148-spi-bcm2835-enable-shared-interrupt-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0149-clk-bcm2835-Don-t-wait-for-pllh-lock.patch b/root/target/linux/bcm27xx/patches-5.15/950-0149-clk-bcm2835-Don-t-wait-for-pllh-lock.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0150-soc-bcm-bcm2835-pm-Add-support-for-2711.patch b/root/target/linux/bcm27xx/patches-5.15/950-0150-soc-bcm-bcm2835-pm-Add-support-for-2711.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0151-clk-bcm2835-Add-support-for-setting-leaf-clock-rates.patch b/root/target/linux/bcm27xx/patches-5.15/950-0151-clk-bcm2835-Add-support-for-setting-leaf-clock-rates.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0152-clk-bcm2835-Allow-reparenting-leaf-clocks-while-they.patch b/root/target/linux/bcm27xx/patches-5.15/950-0152-clk-bcm2835-Allow-reparenting-leaf-clocks-while-they.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0153-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch b/root/target/linux/bcm27xx/patches-5.15/950-0153-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0154-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/root/target/linux/bcm27xx/patches-5.15/950-0154-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0155-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch b/root/target/linux/bcm27xx/patches-5.15/950-0155-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0156-arm-bcm2835-Add-bcm2838-compatible-string.patch b/root/target/linux/bcm27xx/patches-5.15/950-0156-arm-bcm2835-Add-bcm2838-compatible-string.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0157-drm-v3d-Add-support-for-2711.patch b/root/target/linux/bcm27xx/patches-5.15/950-0157-drm-v3d-Add-support-for-2711.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0158-drm-v3d-Skip-MMU-flush-if-the-device-is-currently-of.patch b/root/target/linux/bcm27xx/patches-5.15/950-0158-drm-v3d-Skip-MMU-flush-if-the-device-is-currently-of.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0159-drm-v3d-Hook-up-the-runtime-PM-ops.patch b/root/target/linux/bcm27xx/patches-5.15/950-0159-drm-v3d-Hook-up-the-runtime-PM-ops.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0160-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch b/root/target/linux/bcm27xx/patches-5.15/950-0160-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0161-clk-bcm2835-Avoid-null-pointer-exception.patch b/root/target/linux/bcm27xx/patches-5.15/950-0161-clk-bcm2835-Avoid-null-pointer-exception.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0162-drm-v3d-HACK-gut-runtime-pm-for-now.patch b/root/target/linux/bcm27xx/patches-5.15/950-0162-drm-v3d-HACK-gut-runtime-pm-for-now.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0163-drm-v3d-Clock-V3D-down-when-not-in-use.patch b/root/target/linux/bcm27xx/patches-5.15/950-0163-drm-v3d-Clock-V3D-down-when-not-in-use.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0164-drivers-char-add-chardev-for-mmap-ing-the-RPiVid-con.patch b/root/target/linux/bcm27xx/patches-5.15/950-0164-drivers-char-add-chardev-for-mmap-ing-the-RPiVid-con.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0165-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/root/target/linux/bcm27xx/patches-5.15/950-0165-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0166-Add-HDMI1-facility-to-the-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0166-Add-HDMI1-facility-to-the-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0167-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch b/root/target/linux/bcm27xx/patches-5.15/950-0167-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0168-xhci-Use-more-event-ring-segment-table-entries.patch b/root/target/linux/bcm27xx/patches-5.15/950-0168-xhci-Use-more-event-ring-segment-table-entries.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0169-configs-arm64-bcm2711-Enable-V3D.patch b/root/target/linux/bcm27xx/patches-5.15/950-0169-configs-arm64-bcm2711-Enable-V3D.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0170-arch-arm-Add-model-string-to-cpuinfo.patch b/root/target/linux/bcm27xx/patches-5.15/950-0170-arch-arm-Add-model-string-to-cpuinfo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0171-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch b/root/target/linux/bcm27xx/patches-5.15/950-0171-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0172-media-dt-bindings-Add-binding-for-the-Sony-IMX219-se.patch b/root/target/linux/bcm27xx/patches-5.15/950-0172-media-dt-bindings-Add-binding-for-the-Sony-IMX219-se.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0173-v4l2-Add-a-Greyworld-AWB-mode.patch b/root/target/linux/bcm27xx/patches-5.15/950-0173-v4l2-Add-a-Greyworld-AWB-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0174-staging-bcm2835-camera-Add-greyworld-AWB-mode.patch b/root/target/linux/bcm27xx/patches-5.15/950-0174-staging-bcm2835-camera-Add-greyworld-AWB-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0175-drm-v3d-Delete-pm_runtime-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0175-drm-v3d-Delete-pm_runtime-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0176-ARM-bcm-Switch-board-clk-and-pinctrl-to-bcm2711-comp.patch b/root/target/linux/bcm27xx/patches-5.15/950-0176-ARM-bcm-Switch-board-clk-and-pinctrl-to-bcm2711-comp.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0177-Rename-HDMI-ALSA-device-names-check-for-enable-state.patch b/root/target/linux/bcm27xx/patches-5.15/950-0177-Rename-HDMI-ALSA-device-names-check-for-enable-state.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0178-dt-bindings-Add-binding-for-the-Infineon-IRS1125-sen.patch b/root/target/linux/bcm27xx/patches-5.15/950-0178-dt-bindings-Add-binding-for-the-Infineon-IRS1125-sen.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0179-media-i2c-Add-a-driver-for-the-Infineon-IRS1125-dept.patch b/root/target/linux/bcm27xx/patches-5.15/950-0179-media-i2c-Add-a-driver-for-the-Infineon-IRS1125-dept.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0180-drm-v3d-Suppress-all-but-the-first-MMU-error.patch b/root/target/linux/bcm27xx/patches-5.15/950-0180-drm-v3d-Suppress-all-but-the-first-MMU-error.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0181-drm-v3d-Plug-dma_fence-leak.patch b/root/target/linux/bcm27xx/patches-5.15/950-0181-drm-v3d-Plug-dma_fence-leak.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0182-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch b/root/target/linux/bcm27xx/patches-5.15/950-0182-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0183-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch b/root/target/linux/bcm27xx/patches-5.15/950-0183-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0184-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch b/root/target/linux/bcm27xx/patches-5.15/950-0184-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0185-v3d_drv-Handle-missing-clock-more-gracefully.patch b/root/target/linux/bcm27xx/patches-5.15/950-0185-v3d_drv-Handle-missing-clock-more-gracefully.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0186-v3d_gem-Kick-the-clock-so-firmware-knows-we-are-usin.patch b/root/target/linux/bcm27xx/patches-5.15/950-0186-v3d_gem-Kick-the-clock-so-firmware-knows-we-are-usin.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0187-clk-raspberrypi-Allow-cpufreq-driver-to-also-adjust-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0187-clk-raspberrypi-Allow-cpufreq-driver-to-also-adjust-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0188-clk-bcm2835-Disable-v3d-clock.patch b/root/target/linux/bcm27xx/patches-5.15/950-0188-clk-bcm2835-Disable-v3d-clock.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0189-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch b/root/target/linux/bcm27xx/patches-5.15/950-0189-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0190-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch b/root/target/linux/bcm27xx/patches-5.15/950-0190-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0191-ARM-bcm-Backport-BCM2711-support-from-upstream.patch b/root/target/linux/bcm27xx/patches-5.15/950-0191-ARM-bcm-Backport-BCM2711-support-from-upstream.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0192-Initialise-rpi-firmware-before-clk-bcm2835.patch b/root/target/linux/bcm27xx/patches-5.15/950-0192-Initialise-rpi-firmware-before-clk-bcm2835.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0193-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch b/root/target/linux/bcm27xx/patches-5.15/950-0193-staging-vchiq_arm-Give-vchiq-children-DT-nodes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0194-pinctrl-bcm2835-Remove-gpiochip-on-error.patch b/root/target/linux/bcm27xx/patches-5.15/950-0194-pinctrl-bcm2835-Remove-gpiochip-on-error.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0195-drivers-char-vcio-Use-common-compat-header.patch b/root/target/linux/bcm27xx/patches-5.15/950-0195-drivers-char-vcio-Use-common-compat-header.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0196-video-fbdev-bcm2708_fb-Use-common-compat-header.patch b/root/target/linux/bcm27xx/patches-5.15/950-0196-video-fbdev-bcm2708_fb-Use-common-compat-header.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0197-of-overlay-Correct-symbol-path-fixups.patch b/root/target/linux/bcm27xx/patches-5.15/950-0197-of-overlay-Correct-symbol-path-fixups.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0198-dt-bindings-pci-Add-DT-docs-for-Brcmstb-PCIe-device.patch b/root/target/linux/bcm27xx/patches-5.15/950-0198-dt-bindings-pci-Add-DT-docs-for-Brcmstb-PCIe-device.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0199-bcmgenet-Disable-skip_umac_reset-by-default.patch b/root/target/linux/bcm27xx/patches-5.15/950-0199-bcmgenet-Disable-skip_umac_reset-by-default.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0200-drm-fourcc-Add-packed-10bit-YUV-4-2-0-format.patch b/root/target/linux/bcm27xx/patches-5.15/950-0200-drm-fourcc-Add-packed-10bit-YUV-4-2-0-format.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0201-media-uapi-hevc-Add-scaling-matrix-control.patch b/root/target/linux/bcm27xx/patches-5.15/950-0201-media-uapi-hevc-Add-scaling-matrix-control.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0202-media-uapi-hevc-Add-segment-address-field.patch b/root/target/linux/bcm27xx/patches-5.15/950-0202-media-uapi-hevc-Add-segment-address-field.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0203-media-videodev2.h-Add-a-format-for-column-YUV4-2-0-m.patch b/root/target/linux/bcm27xx/patches-5.15/950-0203-media-videodev2.h-Add-a-format-for-column-YUV4-2-0-m.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0204-media-dt-bindings-media-Add-binding-for-the-Raspberr.patch b/root/target/linux/bcm27xx/patches-5.15/950-0204-media-dt-bindings-media-Add-binding-for-the-Raspberr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0205-staging-media-Add-Raspberry-Pi-V4L2-H265-decoder.patch b/root/target/linux/bcm27xx/patches-5.15/950-0205-staging-media-Add-Raspberry-Pi-V4L2-H265-decoder.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0206-dt-bindings-clock-Add-a-binding-for-the-RPi-Firmware.patch b/root/target/linux/bcm27xx/patches-5.15/950-0206-dt-bindings-clock-Add-a-binding-for-the-RPi-Firmware.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0207-dt-bindings-display-vc4-hdmi-Add-BCM2711-HDMI-contro.patch b/root/target/linux/bcm27xx/patches-5.15/950-0207-dt-bindings-display-vc4-hdmi-Add-BCM2711-HDMI-contro.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0208-drm-Checking-of-the-pitch-is-only-valid-for-linear-f.patch b/root/target/linux/bcm27xx/patches-5.15/950-0208-drm-Checking-of-the-pitch-is-only-valid-for-linear-f.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0209-driver-char-rpivid-Remove-legacy-name-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0209-driver-char-rpivid-Remove-legacy-name-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0210-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch b/root/target/linux/bcm27xx/patches-5.15/950-0210-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0211-driver-char-rpivid-Don-t-map-more-than-wanted.patch b/root/target/linux/bcm27xx/patches-5.15/950-0211-driver-char-rpivid-Don-t-map-more-than-wanted.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0212-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch b/root/target/linux/bcm27xx/patches-5.15/950-0212-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0213-media-uapi-v4l2-core-Add-sensor-ancillary-data-V4L2-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0213-media-uapi-v4l2-core-Add-sensor-ancillary-data-V4L2-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0214-media-uapi-Add-MEDIA_BUS_FMT_SENSOR_DATA-media-bus-f.patch b/root/target/linux/bcm27xx/patches-5.15/950-0214-media-uapi-Add-MEDIA_BUS_FMT_SENSOR_DATA-media-bus-f.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0215-media-bcm2835-unicam-Add-support-for-mulitple-device.patch b/root/target/linux/bcm27xx/patches-5.15/950-0215-media-bcm2835-unicam-Add-support-for-mulitple-device.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0216-media-bcm2835-unicam-Add-embedded-data-node.patch b/root/target/linux/bcm27xx/patches-5.15/950-0216-media-bcm2835-unicam-Add-embedded-data-node.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0217-media-bcm2835-unicam-Use-dummy-buffer-if-none-have-b.patch b/root/target/linux/bcm27xx/patches-5.15/950-0217-media-bcm2835-unicam-Use-dummy-buffer-if-none-have-b.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0218-media-bcm2835-unicam-Disable-event-related-ioctls-on.patch b/root/target/linux/bcm27xx/patches-5.15/950-0218-media-bcm2835-unicam-Disable-event-related-ioctls-on.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0219-media-bcm2835-unicam-Add-support-for-the-FRAME_SYNC-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0219-media-bcm2835-unicam-Add-support-for-the-FRAME_SYNC-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0220-media-bcm2835-unicam-Re-fetch-mbus-code-from-subdev-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0220-media-bcm2835-unicam-Re-fetch-mbus-code-from-subdev-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0221-media-uapi-v4l2-core-Add-ISP-statistics-output-V4L2-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0221-media-uapi-v4l2-core-Add-ISP-statistics-output-V4L2-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0222-media-uapi-v4l-ctrls-Add-CID-base-for-the-bcm2835-is.patch b/root/target/linux/bcm27xx/patches-5.15/950-0222-media-uapi-v4l-ctrls-Add-CID-base-for-the-bcm2835-is.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0223-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch b/root/target/linux/bcm27xx/patches-5.15/950-0223-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0224-bcm2835-dma-Add-proper-40-bit-DMA-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0224-bcm2835-dma-Add-proper-40-bit-DMA-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0225-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch b/root/target/linux/bcm27xx/patches-5.15/950-0225-media-bcm2835-unicam-Add-support-for-VIDIOC_-S-G-_SE.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0226-media-bcm2835-unicam-Do-not-stop-streaming-in-unicam.patch b/root/target/linux/bcm27xx/patches-5.15/950-0226-media-bcm2835-unicam-Do-not-stop-streaming-in-unicam.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0227-media-bcm2835-unicam-Fix-reference-counting-in-unica.patch b/root/target/linux/bcm27xx/patches-5.15/950-0227-media-bcm2835-unicam-Fix-reference-counting-in-unica.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0228-media-i2c-tc358743-Fix-fallthrough-warning.patch b/root/target/linux/bcm27xx/patches-5.15/950-0228-media-i2c-tc358743-Fix-fallthrough-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0229-media-bcm2835-unicam-Fix-uninitialized-warning.patch b/root/target/linux/bcm27xx/patches-5.15/950-0229-media-bcm2835-unicam-Fix-uninitialized-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0230-video-bcm2708_fb-Disable-FB-if-no-displays-found.patch b/root/target/linux/bcm27xx/patches-5.15/950-0230-video-bcm2708_fb-Disable-FB-if-no-displays-found.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0231-dt-bindings-media-i2c-Add-IMX477-CMOS-sensor-binding.patch b/root/target/linux/bcm27xx/patches-5.15/950-0231-dt-bindings-media-i2c-Add-IMX477-CMOS-sensor-binding.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0232-media-bcm2835-unicam-Always-service-interrupts.patch b/root/target/linux/bcm27xx/patches-5.15/950-0232-media-bcm2835-unicam-Always-service-interrupts.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0233-sc16is7xx-Fix-for-hardware-flow-control.patch b/root/target/linux/bcm27xx/patches-5.15/950-0233-sc16is7xx-Fix-for-hardware-flow-control.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0234-staging-vc04_services-mmal-vchiq-Update-parameters-l.patch b/root/target/linux/bcm27xx/patches-5.15/950-0234-staging-vc04_services-mmal-vchiq-Update-parameters-l.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0235-staging-vc04_services-bcm2835-camera-Request-headers.patch b/root/target/linux/bcm27xx/patches-5.15/950-0235-staging-vc04_services-bcm2835-camera-Request-headers.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0236-media-bcm2835-unicam-Retain-packing-information-on-G.patch b/root/target/linux/bcm27xx/patches-5.15/950-0236-media-bcm2835-unicam-Retain-packing-information-on-G.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0237-zswap-Defer-zswap-initialisation.patch b/root/target/linux/bcm27xx/patches-5.15/950-0237-zswap-Defer-zswap-initialisation.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0238-media-bcm2835-unicam-change-minimum-number-of-vb2_qu.patch b/root/target/linux/bcm27xx/patches-5.15/950-0238-media-bcm2835-unicam-change-minimum-number-of-vb2_qu.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0239-snd_bcm2835-disable-HDMI-audio-when-vc4-is-used-3640.patch b/root/target/linux/bcm27xx/patches-5.15/950-0239-snd_bcm2835-disable-HDMI-audio-when-vc4-is-used-3640.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0240-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch b/root/target/linux/bcm27xx/patches-5.15/950-0240-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0241-PCI-brcmstb-Add-DT-property-to-control-L1SS.patch b/root/target/linux/bcm27xx/patches-5.15/950-0241-PCI-brcmstb-Add-DT-property-to-control-L1SS.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0242-media-irs1125-Using-i2c_transfer-for-ic2-reads.patch b/root/target/linux/bcm27xx/patches-5.15/950-0242-media-irs1125-Using-i2c_transfer-for-ic2-reads.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0243-media-irs1125-Refactoring-and-debug-messages.patch b/root/target/linux/bcm27xx/patches-5.15/950-0243-media-irs1125-Refactoring-and-debug-messages.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0244-media-irs1125-Atomic-access-to-imager-reconfiguratio.patch b/root/target/linux/bcm27xx/patches-5.15/950-0244-media-irs1125-Atomic-access-to-imager-reconfiguratio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0245-media-irs1125-Keep-HW-in-sync-after-imager-reset.patch b/root/target/linux/bcm27xx/patches-5.15/950-0245-media-irs1125-Keep-HW-in-sync-after-imager-reset.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0246-staging-bcm2835-audio-Add-missing-MODULE_ALIAS.patch b/root/target/linux/bcm27xx/patches-5.15/950-0246-staging-bcm2835-audio-Add-missing-MODULE_ALIAS.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0247-brcmfmac-Prefer-a-ccode-from-OTP-over-nvram-file.patch b/root/target/linux/bcm27xx/patches-5.15/950-0247-brcmfmac-Prefer-a-ccode-from-OTP-over-nvram-file.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0248-drivers-media-Remove-the-downstream-version-of-bcm28.patch b/root/target/linux/bcm27xx/patches-5.15/950-0248-drivers-media-Remove-the-downstream-version-of-bcm28.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0249-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch b/root/target/linux/bcm27xx/patches-5.15/950-0249-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0250-media-bcm2835-unicam-Add-support-for-get_mbus_config.patch b/root/target/linux/bcm27xx/patches-5.15/950-0250-media-bcm2835-unicam-Add-support-for-get_mbus_config.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0251-media-bcm2835-unicam-Avoid-gcc-warning-over-0-on-end.patch b/root/target/linux/bcm27xx/patches-5.15/950-0251-media-bcm2835-unicam-Avoid-gcc-warning-over-0-on-end.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0252-media-i2c-imx290-set-the-format-before-VIDIOC_SUBDEV.patch b/root/target/linux/bcm27xx/patches-5.15/950-0252-media-i2c-imx290-set-the-format-before-VIDIOC_SUBDEV.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0253-media-i2c-imx290-Add-support-for-74.25MHz-clock.patch b/root/target/linux/bcm27xx/patches-5.15/950-0253-media-i2c-imx290-Add-support-for-74.25MHz-clock.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0254-media-i2c-imx290-Correct-range-for-V4L2_CID_GAIN-to-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0254-media-i2c-imx290-Correct-range-for-V4L2_CID_GAIN-to-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0255-media-i2c-imx290-Convert-HMAX-setting-into-V4L2_CID_.patch b/root/target/linux/bcm27xx/patches-5.15/950-0255-media-i2c-imx290-Convert-HMAX-setting-into-V4L2_CID_.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0256-media-i2c-imx290-Add-support-for-V4L2_CID_VBLANK.patch b/root/target/linux/bcm27xx/patches-5.15/950-0256-media-i2c-imx290-Add-support-for-V4L2_CID_VBLANK.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0257-media-i2c-imx290-Add-exposure-control-to-the-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0257-media-i2c-imx290-Add-exposure-control-to-the-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0258-media-i2c-imx290-Add-H-and-V-flip-controls.patch b/root/target/linux/bcm27xx/patches-5.15/950-0258-media-i2c-imx290-Add-H-and-V-flip-controls.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0259-media-dt-bindings-media-i2c-Add-mono-version-to-IMX2.patch b/root/target/linux/bcm27xx/patches-5.15/950-0259-media-dt-bindings-media-i2c-Add-mono-version-to-IMX2.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0260-media-i2c-imx290-Add-support-for-the-mono-sensor-var.patch b/root/target/linux/bcm27xx/patches-5.15/950-0260-media-i2c-imx290-Add-support-for-the-mono-sensor-var.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0261-media-i2c-imx290-Switch-set_hmax-to-use-imx290_write.patch b/root/target/linux/bcm27xx/patches-5.15/950-0261-media-i2c-imx290-Switch-set_hmax-to-use-imx290_write.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0262-serial-8250-bcm2835aux-defer-if-clock-is-zero.patch b/root/target/linux/bcm27xx/patches-5.15/950-0262-serial-8250-bcm2835aux-defer-if-clock-is-zero.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0263-media-Add-a-pixel-format-for-MIPI-packed-12bit-luma-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0263-media-Add-a-pixel-format-for-MIPI-packed-12bit-luma-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0264-media-Add-a-pixel-format-for-MIPI-packed-14bit-luma-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0264-media-Add-a-pixel-format-for-MIPI-packed-14bit-luma-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0265-media-bcm2835-unicam-Add-support-for-12bit-mono-pack.patch b/root/target/linux/bcm27xx/patches-5.15/950-0265-media-bcm2835-unicam-Add-support-for-12bit-mono-pack.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0266-media-bcm2835-unicam-Add-support-for-14bit-mono-sour.patch b/root/target/linux/bcm27xx/patches-5.15/950-0266-media-bcm2835-unicam-Add-support-for-14bit-mono-sour.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0267-media-bcm2835-unicam-Add-support-for-unpacked-14bit-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0267-media-bcm2835-unicam-Add-support-for-unpacked-14bit-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0268-bcm2835-dma-Add-NO_WAIT_RESP-flag.patch b/root/target/linux/bcm27xx/patches-5.15/950-0268-bcm2835-dma-Add-NO_WAIT_RESP-flag.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0269-media-i2c-imx290-Explicitly-set-v-h-blank-on-mode-ch.patch b/root/target/linux/bcm27xx/patches-5.15/950-0269-media-i2c-imx290-Explicitly-set-v-h-blank-on-mode-ch.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0270-media-i2c-imx290-Add-support-for-g_selection-to-repo.patch b/root/target/linux/bcm27xx/patches-5.15/950-0270-media-i2c-imx290-Add-support-for-g_selection-to-repo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0271-media-i2c-imx290-Set-the-colorspace-fields-in-the-fo.patch b/root/target/linux/bcm27xx/patches-5.15/950-0271-media-i2c-imx290-Set-the-colorspace-fields-in-the-fo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0272-media-bcm2835-unicam-Reinstate-V4L2_CAP_READWRITE-in.patch b/root/target/linux/bcm27xx/patches-5.15/950-0272-media-bcm2835-unicam-Reinstate-V4L2_CAP_READWRITE-in.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0273-media-bcm2835-unicam-Ensure-type-is-VIDEO_CAPTURE-in.patch b/root/target/linux/bcm27xx/patches-5.15/950-0273-media-bcm2835-unicam-Ensure-type-is-VIDEO_CAPTURE-in.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0274-media-bcm2835-unicam-Set-VPU-min-clock-freq-to-250Mh.patch b/root/target/linux/bcm27xx/patches-5.15/950-0274-media-bcm2835-unicam-Set-VPU-min-clock-freq-to-250Mh.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0275-dt-bindings-bcm2835-unicam-Update-documentation-with.patch b/root/target/linux/bcm27xx/patches-5.15/950-0275-dt-bindings-bcm2835-unicam-Update-documentation-with.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0276-leds-Add-the-actpwr-trigger.patch b/root/target/linux/bcm27xx/patches-5.15/950-0276-leds-Add-the-actpwr-trigger.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0277-bcm2835-dma-Advertise-the-full-DMA-range.patch b/root/target/linux/bcm27xx/patches-5.15/950-0277-bcm2835-dma-Advertise-the-full-DMA-range.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0278-media-bcm2835-unicam-Select-MEDIA_CONTROLLER-and-VID.patch b/root/target/linux/bcm27xx/patches-5.15/950-0278-media-bcm2835-unicam-Select-MEDIA_CONTROLLER-and-VID.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0279-staging-media-rpivid-Select-MEDIA_CONTROLLER-and-MED.patch b/root/target/linux/bcm27xx/patches-5.15/950-0279-staging-media-rpivid-Select-MEDIA_CONTROLLER-and-MED.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0280-media-bcm2835-unicam-Drop-WARN-on-uing-direct-cache-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0280-media-bcm2835-unicam-Drop-WARN-on-uing-direct-cache-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0281-media-i2c-tc358743-Only-allow-supported-pixel-fmts-i.patch b/root/target/linux/bcm27xx/patches-5.15/950-0281-media-i2c-tc358743-Only-allow-supported-pixel-fmts-i.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0282-dwc_otg-whitelist_table-is-now-productlist_table.patch b/root/target/linux/bcm27xx/patches-5.15/950-0282-dwc_otg-whitelist_table-is-now-productlist_table.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0283-include-firmware-Add-enum-for-RPI_FIRMWARE_FRAMEBUFF.patch b/root/target/linux/bcm27xx/patches-5.15/950-0283-include-firmware-Add-enum-for-RPI_FIRMWARE_FRAMEBUFF.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0284-media-i2c-Add-driver-for-Sony-IMX477-sensor.patch b/root/target/linux/bcm27xx/patches-5.15/950-0284-media-i2c-Add-driver-for-Sony-IMX477-sensor.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0285-media-i2c-imx477-Add-support-for-adaptive-frame-cont.patch b/root/target/linux/bcm27xx/patches-5.15/950-0285-media-i2c-imx477-Add-support-for-adaptive-frame-cont.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0286-media-i2c-imx477-Return-correct-result-on-sensor-id-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0286-media-i2c-imx477-Return-correct-result-on-sensor-id-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0287-media-i2c-imx477-Parse-and-register-properties.patch b/root/target/linux/bcm27xx/patches-5.15/950-0287-media-i2c-imx477-Parse-and-register-properties.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0288-media-bcm2835-unicam-Always-service-interrupts.patch b/root/target/linux/bcm27xx/patches-5.15/950-0288-media-bcm2835-unicam-Always-service-interrupts.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0289-media-bcm2835-unicam-Fix-uninitialized-warning.patch b/root/target/linux/bcm27xx/patches-5.15/950-0289-media-bcm2835-unicam-Fix-uninitialized-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0290-media-bcm2835-unicam-Fixup-review-comments-from-Hans.patch b/root/target/linux/bcm27xx/patches-5.15/950-0290-media-bcm2835-unicam-Fixup-review-comments-from-Hans.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0291-media-bcm2835-unicam-Retain-packing-information-on-G.patch b/root/target/linux/bcm27xx/patches-5.15/950-0291-media-bcm2835-unicam-Retain-packing-information-on-G.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0292-media-bcm2835-unicam-change-minimum-number-of-vb2_qu.patch b/root/target/linux/bcm27xx/patches-5.15/950-0292-media-bcm2835-unicam-change-minimum-number-of-vb2_qu.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0293-staging-fbtft-Add-support-for-display-variants.patch b/root/target/linux/bcm27xx/patches-5.15/950-0293-staging-fbtft-Add-support-for-display-variants.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0294-brcmfmac-Increase-power-saving-delay-to-2s.patch b/root/target/linux/bcm27xx/patches-5.15/950-0294-brcmfmac-Increase-power-saving-delay-to-2s.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0295-rpivid_h265-Fix-width-height-typo.patch b/root/target/linux/bcm27xx/patches-5.15/950-0295-rpivid_h265-Fix-width-height-typo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0296-net-bcmgenet-Reset-RBUF-on-first-open.patch b/root/target/linux/bcm27xx/patches-5.15/950-0296-net-bcmgenet-Reset-RBUF-on-first-open.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0297-char-Add-broadcom-char-drivers-back-to-build-files.patch b/root/target/linux/bcm27xx/patches-5.15/950-0297-char-Add-broadcom-char-drivers-back-to-build-files.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0298-dwc_otg-initialise-sched_frame-for-periodic-QHs-that.patch b/root/target/linux/bcm27xx/patches-5.15/950-0298-dwc_otg-initialise-sched_frame-for-periodic-QHs-that.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0299-staging-bcm2835-camera-Replace-deprecated-V4L2_PIX_F.patch b/root/target/linux/bcm27xx/patches-5.15/950-0299-staging-bcm2835-camera-Replace-deprecated-V4L2_PIX_F.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0300-staging-vc04_services-Add-new-vc-sm-cma-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0300-staging-vc04_services-Add-new-vc-sm-cma-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0301-staging-vchiq-mmal-Add-support-for-14bit-Bayer.patch b/root/target/linux/bcm27xx/patches-5.15/950-0301-staging-vchiq-mmal-Add-support-for-14bit-Bayer.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0302-staging-mmal-vchiq-Add-monochrome-image-formats.patch b/root/target/linux/bcm27xx/patches-5.15/950-0302-staging-mmal-vchiq-Add-monochrome-image-formats.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0303-staging-mmal-vchiq-Use-vc-sm-cma-to-support-zero-cop.patch b/root/target/linux/bcm27xx/patches-5.15/950-0303-staging-mmal-vchiq-Use-vc-sm-cma-to-support-zero-cop.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0304-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0304-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0305-bcm2835-dma-only-reserve-channel-0-if-legacy-dma-dri.patch b/root/target/linux/bcm27xx/patches-5.15/950-0305-bcm2835-dma-only-reserve-channel-0-if-legacy-dma-dri.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0306-uapi-bcm2835-isp-Add-bcm2835-isp-uapi-header-file.patch b/root/target/linux/bcm27xx/patches-5.15/950-0306-uapi-bcm2835-isp-Add-bcm2835-isp-uapi-header-file.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0307-staging-vc04_services-ISP-Add-a-more-complex-ISP-pro.patch b/root/target/linux/bcm27xx/patches-5.15/950-0307-staging-vc04_services-ISP-Add-a-more-complex-ISP-pro.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0308-gpio-Add-gpio-fsm-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0308-gpio-Add-gpio-fsm-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0309-staging-bcm2835-audio-Add-disable-headphones-flag.patch b/root/target/linux/bcm27xx/patches-5.15/950-0309-staging-bcm2835-audio-Add-disable-headphones-flag.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0310-rpisense-fb-Set-pseudo_pallete-to-prevent-crash-on-f.patch b/root/target/linux/bcm27xx/patches-5.15/950-0310-rpisense-fb-Set-pseudo_pallete-to-prevent-crash-on-f.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0311-dwc_otg-Minimise-header-and-fix-build-warnings.patch b/root/target/linux/bcm27xx/patches-5.15/950-0311-dwc_otg-Minimise-header-and-fix-build-warnings.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0312-rpivid_h625-Fix-build-warnings.patch b/root/target/linux/bcm27xx/patches-5.15/950-0312-rpivid_h625-Fix-build-warnings.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0313-bcm2708_fb-Fix-a-build-warning.patch b/root/target/linux/bcm27xx/patches-5.15/950-0313-bcm2708_fb-Fix-a-build-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0314-watchdog-bcm2835-Ignore-params-after-the-partition-n.patch b/root/target/linux/bcm27xx/patches-5.15/950-0314-watchdog-bcm2835-Ignore-params-after-the-partition-n.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0315-firmware-raspberrypi-Add-support-for-tryonce-reboot-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0315-firmware-raspberrypi-Add-support-for-tryonce-reboot-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0316-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch b/root/target/linux/bcm27xx/patches-5.15/950-0316-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0317-phy-broadcom-Add-bcm54213pe-configuration.patch b/root/target/linux/bcm27xx/patches-5.15/950-0317-phy-broadcom-Add-bcm54213pe-configuration.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0318-PCI-brcmstb-Restore-initial-fundamental-reset.patch b/root/target/linux/bcm27xx/patches-5.15/950-0318-PCI-brcmstb-Restore-initial-fundamental-reset.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0319-Input-edt-ft5x06-Poll-the-device-if-no-interrupt-is-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0319-Input-edt-ft5x06-Poll-the-device-if-no-interrupt-is-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0320-drm-panel-raspberrypi-touchscreen-Use-independent-I2.patch b/root/target/linux/bcm27xx/patches-5.15/950-0320-drm-panel-raspberrypi-touchscreen-Use-independent-I2.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0321-drm-panel-raspberrypi-ts-Insert-delay-before-polling.patch b/root/target/linux/bcm27xx/patches-5.15/950-0321-drm-panel-raspberrypi-ts-Insert-delay-before-polling.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0322-dt-bindings-Add-compatible-for-BCM2711-DSI1.patch b/root/target/linux/bcm27xx/patches-5.15/950-0322-dt-bindings-Add-compatible-for-BCM2711-DSI1.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0323-media-bcm2835-unicam-Correctly-handle-error-propagat.patch b/root/target/linux/bcm27xx/patches-5.15/950-0323-media-bcm2835-unicam-Correctly-handle-error-propagat.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0324-media-bcm2835-unicam-Return-early-from-stop_streamin.patch b/root/target/linux/bcm27xx/patches-5.15/950-0324-media-bcm2835-unicam-Return-early-from-stop_streamin.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0325-media-bcm2835-unicam-Clear-clock-state-when-stopping.patch b/root/target/linux/bcm27xx/patches-5.15/950-0325-media-bcm2835-unicam-Clear-clock-state-when-stopping.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0326-PCI-brcmstb-Advertise-MSI-X-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0326-PCI-brcmstb-Advertise-MSI-X-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0327-net-lan78xx-Ack-pending-PHY-ints-when-resetting.patch b/root/target/linux/bcm27xx/patches-5.15/950-0327-net-lan78xx-Ack-pending-PHY-ints-when-resetting.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0328-media-i2c-imx477-Selection-compliance-fixes.patch b/root/target/linux/bcm27xx/patches-5.15/950-0328-media-i2c-imx477-Selection-compliance-fixes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0329-vc-sm-cma-fixed-kbuild-problem.patch b/root/target/linux/bcm27xx/patches-5.15/950-0329-vc-sm-cma-fixed-kbuild-problem.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0330-staging-vc04_services-Add-additional-unpacked-raw-fo.patch b/root/target/linux/bcm27xx/patches-5.15/950-0330-staging-vc04_services-Add-additional-unpacked-raw-fo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0331-staging-bcm2835-codec-Add-the-unpacked-16bpp-raw-for.patch b/root/target/linux/bcm27xx/patches-5.15/950-0331-staging-bcm2835-codec-Add-the-unpacked-16bpp-raw-for.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0332-staging-bcm2835-codec-Log-the-number-of-excess-suppo.patch b/root/target/linux/bcm27xx/patches-5.15/950-0332-staging-bcm2835-codec-Log-the-number-of-excess-suppo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0333-staging-bcm2835-isp-Add-the-unpacked-16bpp-raw-forma.patch b/root/target/linux/bcm27xx/patches-5.15/950-0333-staging-bcm2835-isp-Add-the-unpacked-16bpp-raw-forma.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0334-staging-bcm2835-isp-Log-the-number-of-excess-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0334-staging-bcm2835-isp-Log-the-number-of-excess-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0335-bcm2835-dma-Avoid-losing-CS-flags-after-interrupt.patch b/root/target/linux/bcm27xx/patches-5.15/950-0335-bcm2835-dma-Avoid-losing-CS-flags-after-interrupt.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0336-arch-arm-Add-__memset-alias-to-memset_rpi.S.patch b/root/target/linux/bcm27xx/patches-5.15/950-0336-arch-arm-Add-__memset-alias-to-memset_rpi.S.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0337-bcm2835-dma-Add-bcm2835-dma-Add-DMA_WIDE_SOURCE-and-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0337-bcm2835-dma-Add-bcm2835-dma-Add-DMA_WIDE_SOURCE-and-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0338-uapi-bcm2835-isp-Add-colour-denoise-configuration.patch b/root/target/linux/bcm27xx/patches-5.15/950-0338-uapi-bcm2835-isp-Add-colour-denoise-configuration.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0339-staging-vc04_services-ISP-Add-colour-denoise-control.patch b/root/target/linux/bcm27xx/patches-5.15/950-0339-staging-vc04_services-ISP-Add-colour-denoise-control.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0340-spi-bcm2835-Workaround-fix-for-zero-length-transfers.patch b/root/target/linux/bcm27xx/patches-5.15/950-0340-spi-bcm2835-Workaround-fix-for-zero-length-transfers.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0341-kbuild-Silence-unavoidable-dtc-overlay-warnings.patch b/root/target/linux/bcm27xx/patches-5.15/950-0341-kbuild-Silence-unavoidable-dtc-overlay-warnings.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0342-media-i2c-imx290-Replace-V4L2_CID_GAIN-with-V4L2_CID.patch b/root/target/linux/bcm27xx/patches-5.15/950-0342-media-i2c-imx290-Replace-V4L2_CID_GAIN-with-V4L2_CID.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0343-media-i2c-imx290-Fix-number-of-controls-in-v4l2_ctrl.patch b/root/target/linux/bcm27xx/patches-5.15/950-0343-media-i2c-imx290-Fix-number-of-controls-in-v4l2_ctrl.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0344-dt-binding-display-bcm2711-hdmi-Add-CEC-and-hotplug-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0344-dt-binding-display-bcm2711-hdmi-Add-CEC-and-hotplug-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0345-staging-bcm2835-camera-Fix-the-cherry-pick-of-AWB-Gr.patch b/root/target/linux/bcm27xx/patches-5.15/950-0345-staging-bcm2835-camera-Fix-the-cherry-pick-of-AWB-Gr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0346-bcm2835-isp-Allow-formats-with-different-colour-spac.patch b/root/target/linux/bcm27xx/patches-5.15/950-0346-bcm2835-isp-Allow-formats-with-different-colour-spac.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0347-staging-rpivid-Fix-crash-when-CMA-alloc-fails.patch b/root/target/linux/bcm27xx/patches-5.15/950-0347-staging-rpivid-Fix-crash-when-CMA-alloc-fails.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0348-media-i2c-imx477-Remove-auto-frame-length-adjusting.patch b/root/target/linux/bcm27xx/patches-5.15/950-0348-media-i2c-imx477-Remove-auto-frame-length-adjusting.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0349-media-i2c-imx477-Add-very-long-exposure-control-to-t.patch b/root/target/linux/bcm27xx/patches-5.15/950-0349-media-i2c-imx477-Add-very-long-exposure-control-to-t.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0350-media-i2c-imx290-Fix-up-exposure-calcuations-and-ran.patch b/root/target/linux/bcm27xx/patches-5.15/950-0350-media-i2c-imx290-Fix-up-exposure-calcuations-and-ran.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0351-media-i2c-imx290-Handle-exposure-correctly-when-vbla.patch b/root/target/linux/bcm27xx/patches-5.15/950-0351-media-i2c-imx290-Handle-exposure-correctly-when-vbla.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0352-media-i2c-imx477-Fix-crop-height-for-2028x1080-mode.patch b/root/target/linux/bcm27xx/patches-5.15/950-0352-media-i2c-imx477-Fix-crop-height-for-2028x1080-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0353-media-i2c-imx477-Replace-existing-1012x760-mode.patch b/root/target/linux/bcm27xx/patches-5.15/950-0353-media-i2c-imx477-Replace-existing-1012x760-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0354-media-i2c-imx477-Remove-internal-v4l2_mbus_framefmt-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0354-media-i2c-imx477-Remove-internal-v4l2_mbus_framefmt-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0355-media-i2c-imx477-Remove-unused-function-parameter.patch b/root/target/linux/bcm27xx/patches-5.15/950-0355-media-i2c-imx477-Remove-unused-function-parameter.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0356-media-bcm2835-unicam-Fix-bug-in-buffer-swapping-logi.patch b/root/target/linux/bcm27xx/patches-5.15/950-0356-media-bcm2835-unicam-Fix-bug-in-buffer-swapping-logi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0357-Assign-crypto-aliases-to-different-AES-implementatio.patch b/root/target/linux/bcm27xx/patches-5.15/950-0357-Assign-crypto-aliases-to-different-AES-implementatio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0358-media-v4l2_m2m-In-buffered-mode-run-jobs-if-either-p.patch b/root/target/linux/bcm27xx/patches-5.15/950-0358-media-v4l2_m2m-In-buffered-mode-run-jobs-if-either-p.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0359-staging-bcm2835-codec-Correct-logging-of-size_t-to-z.patch b/root/target/linux/bcm27xx/patches-5.15/950-0359-staging-bcm2835-codec-Correct-logging-of-size_t-to-z.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0360-staging-bcm2835-codec-Add-support-for-pixel-aspect-r.patch b/root/target/linux/bcm27xx/patches-5.15/950-0360-staging-bcm2835-codec-Add-support-for-pixel-aspect-r.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0361-staging-bcm2835-codec-Implement-additional-g_selecti.patch b/root/target/linux/bcm27xx/patches-5.15/950-0361-staging-bcm2835-codec-Implement-additional-g_selecti.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0362-staging-bcm2835-codec-Add-VC-1-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0362-staging-bcm2835-codec-Add-VC-1-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0363-hack-fixup-bcm2835-unicam.patch b/root/target/linux/bcm27xx/patches-5.15/950-0363-hack-fixup-bcm2835-unicam.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0364-media-i2c-add-ov9281-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0364-media-i2c-add-ov9281-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0365-media-i2c-ov9281-fix-mclk-issue-when-probe-multiple-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0365-media-i2c-ov9281-fix-mclk-issue-when-probe-multiple-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0366-media-i2c-ov9281-add-enum_frame_interval-function-fo.patch b/root/target/linux/bcm27xx/patches-5.15/950-0366-media-i2c-ov9281-add-enum_frame_interval-function-fo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0367-media-i2c-ov9281-Fixup-for-recent-kernel-releases-an.patch b/root/target/linux/bcm27xx/patches-5.15/950-0367-media-i2c-ov9281-Fixup-for-recent-kernel-releases-an.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0368-media-i2c-ov9281-Read-chip-ID-via-2-reads.patch b/root/target/linux/bcm27xx/patches-5.15/950-0368-media-i2c-ov9281-Read-chip-ID-via-2-reads.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0369-media-i2c-ov9281-Add-support-for-8-bit-readout.patch b/root/target/linux/bcm27xx/patches-5.15/950-0369-media-i2c-ov9281-Add-support-for-8-bit-readout.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0370-media-ov9281-Add-1280x720-and-640x480-modes.patch b/root/target/linux/bcm27xx/patches-5.15/950-0370-media-ov9281-Add-1280x720-and-640x480-modes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0371-Fixed-picture-line-bug-in-all-ov9281-modes.patch b/root/target/linux/bcm27xx/patches-5.15/950-0371-Fixed-picture-line-bug-in-all-ov9281-modes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0372-Added-hflip-and-vflip-controls-to-ov9281.patch b/root/target/linux/bcm27xx/patches-5.15/950-0372-Added-hflip-and-vflip-controls-to-ov9281.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0373-media-ov5647-Fix-return-codes-from-ov5647_write-ov56.patch b/root/target/linux/bcm27xx/patches-5.15/950-0373-media-ov5647-Fix-return-codes-from-ov5647_write-ov56.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0374-media-i2c-ov5647-Parse-and-register-properties.patch b/root/target/linux/bcm27xx/patches-5.15/950-0374-media-i2c-ov5647-Parse-and-register-properties.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0375-clk-raspberrypi-Also-support-HEVC-clock.patch b/root/target/linux/bcm27xx/patches-5.15/950-0375-clk-raspberrypi-Also-support-HEVC-clock.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0376-rpivid-Request-maximum-hevc-clock.patch b/root/target/linux/bcm27xx/patches-5.15/950-0376-rpivid-Request-maximum-hevc-clock.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0377-staging-bcm2835-camera-Add-support-for-DMABUFs.patch b/root/target/linux/bcm27xx/patches-5.15/950-0377-staging-bcm2835-camera-Add-support-for-DMABUFs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0378-staging-fbtft-Add-minipitft13-variant.patch b/root/target/linux/bcm27xx/patches-5.15/950-0378-staging-fbtft-Add-minipitft13-variant.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0379-dwc-otg-fix-clang-Wignored-attributes-warning.patch b/root/target/linux/bcm27xx/patches-5.15/950-0379-dwc-otg-fix-clang-Wignored-attributes-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0380-dwc-otg-fix-clang-Wsometimes-uninitialized-warning.patch b/root/target/linux/bcm27xx/patches-5.15/950-0380-dwc-otg-fix-clang-Wsometimes-uninitialized-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0381-dwc-otg-fix-clang-Wpointer-bool-conversion-warning.patch b/root/target/linux/bcm27xx/patches-5.15/950-0381-dwc-otg-fix-clang-Wpointer-bool-conversion-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0382-staging-vcsm-cma-Fix-memory-leak-from-not-detaching-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0382-staging-vcsm-cma-Fix-memory-leak-from-not-detaching-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0383-clk-Introduce-a-clock-request-API.patch b/root/target/linux/bcm27xx/patches-5.15/950-0383-clk-Introduce-a-clock-request-API.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0384-bcm2835-unicam-Switch-to-new-clock-api.patch b/root/target/linux/bcm27xx/patches-5.15/950-0384-bcm2835-unicam-Switch-to-new-clock-api.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0385-rpivid-Switch-to-new-clock-api.patch b/root/target/linux/bcm27xx/patches-5.15/950-0385-rpivid-Switch-to-new-clock-api.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0386-rpivid-Only-clk_request_done-once.patch b/root/target/linux/bcm27xx/patches-5.15/950-0386-rpivid-Only-clk_request_done-once.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0387-dwc_otg-fix-an-undeclared-variable-Replace-an-undecl.patch b/root/target/linux/bcm27xx/patches-5.15/950-0387-dwc_otg-fix-an-undeclared-variable-Replace-an-undecl.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0388-drm-panel-jdi-lt070me05000-Use-gpiod_set_value_cansl.patch b/root/target/linux/bcm27xx/patches-5.15/950-0388-drm-panel-jdi-lt070me05000-Use-gpiod_set_value_cansl.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0389-clk-requests-Ignore-if-the-pointer-is-null.patch b/root/target/linux/bcm27xx/patches-5.15/950-0389-clk-requests-Ignore-if-the-pointer-is-null.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0390-clk-requests-Dereference-the-request-pointer-after-t.patch b/root/target/linux/bcm27xx/patches-5.15/950-0390-clk-requests-Dereference-the-request-pointer-after-t.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0391-staging-bcm2835-codec-Fix-support-for-levels-4.1-and.patch b/root/target/linux/bcm27xx/patches-5.15/950-0391-staging-bcm2835-codec-Fix-support-for-levels-4.1-and.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0392-staging-bcm2835-codec-Set-the-colourspace-appropriat.patch b/root/target/linux/bcm27xx/patches-5.15/950-0392-staging-bcm2835-codec-Set-the-colourspace-appropriat.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0393-staging-bcm2835-codec-Pass-corrupt-frame-flag.patch b/root/target/linux/bcm27xx/patches-5.15/950-0393-staging-bcm2835-codec-Pass-corrupt-frame-flag.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0394-staging-bcm2835-camera-Add-support-for-H264-levels-4.patch b/root/target/linux/bcm27xx/patches-5.15/950-0394-staging-bcm2835-camera-Add-support-for-H264-levels-4.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0395-staging-bcm2835-codec-Do-not-update-crop-from-S_FMT-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0395-staging-bcm2835-codec-Do-not-update-crop-from-S_FMT-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0396-staging-bcm2835-isp-Fix-compiler-warning.patch b/root/target/linux/bcm27xx/patches-5.15/950-0396-staging-bcm2835-isp-Fix-compiler-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0397-gpio-poweroff-Remember-the-old-poweroff-handler.patch b/root/target/linux/bcm27xx/patches-5.15/950-0397-gpio-poweroff-Remember-the-old-poweroff-handler.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0398-media-i2c-ov5647-Correct-pixel-array-offset.patch b/root/target/linux/bcm27xx/patches-5.15/950-0398-media-i2c-ov5647-Correct-pixel-array-offset.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0399-media-i2c-ov5647-Correct-minimum-VBLANK-value.patch b/root/target/linux/bcm27xx/patches-5.15/950-0399-media-i2c-ov5647-Correct-minimum-VBLANK-value.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0400-media-i2c-ov5647-Fix-v4l2-compliance-failure-subscri.patch b/root/target/linux/bcm27xx/patches-5.15/950-0400-media-i2c-ov5647-Fix-v4l2-compliance-failure-subscri.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0401-media-rpivid-Remove-the-need-to-have-num_entry_point.patch b/root/target/linux/bcm27xx/patches-5.15/950-0401-media-rpivid-Remove-the-need-to-have-num_entry_point.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0402-media-rpivid-Convert-to-MPLANE.patch b/root/target/linux/bcm27xx/patches-5.15/950-0402-media-rpivid-Convert-to-MPLANE.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0403-media-rpivid-Add-an-enable-count-to-irq-claim-Qs.patch b/root/target/linux/bcm27xx/patches-5.15/950-0403-media-rpivid-Add-an-enable-count-to-irq-claim-Qs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0404-RFC-media-Add-media_request_-pin-unpin-API.patch b/root/target/linux/bcm27xx/patches-5.15/950-0404-RFC-media-Add-media_request_-pin-unpin-API.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0405-media-rpivid-Add-a-Pass0-to-accumulate-slices-and-re.patch b/root/target/linux/bcm27xx/patches-5.15/950-0405-media-rpivid-Add-a-Pass0-to-accumulate-slices-and-re.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0406-media-rpivid-Map-cmd-buffer-directly.patch b/root/target/linux/bcm27xx/patches-5.15/950-0406-media-rpivid-Map-cmd-buffer-directly.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0407-media-rpivid-Improve-values-returned-when-setting-ou.patch b/root/target/linux/bcm27xx/patches-5.15/950-0407-media-rpivid-Improve-values-returned-when-setting-ou.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0408-media-rpivid-Improve-stream_on-off-conformance-clock.patch b/root/target/linux/bcm27xx/patches-5.15/950-0408-media-rpivid-Improve-stream_on-off-conformance-clock.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0409-media-rpivid-Improve-SPS-PPS-error-handling-validati.patch b/root/target/linux/bcm27xx/patches-5.15/950-0409-media-rpivid-Improve-SPS-PPS-error-handling-validati.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0410-bcm2835-Allow-compressed-frames-to-set-sizeimage-438.patch b/root/target/linux/bcm27xx/patches-5.15/950-0410-bcm2835-Allow-compressed-frames-to-set-sizeimage-438.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0411-media-i2c-imx477-Fix-for-long-exposure-limit-calcula.patch b/root/target/linux/bcm27xx/patches-5.15/950-0411-media-i2c-imx477-Fix-for-long-exposure-limit-calcula.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0412-clk-bcm2835-Pass-DT-node-to-rpi_firmware_get.patch b/root/target/linux/bcm27xx/patches-5.15/950-0412-clk-bcm2835-Pass-DT-node-to-rpi_firmware_get.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0413-bcm2835-pcm.c-Support-multichannel-audio.patch b/root/target/linux/bcm27xx/patches-5.15/950-0413-bcm2835-pcm.c-Support-multichannel-audio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0414-bcm2835-pcm-Fix-up-multichannel-pcm-audio.patch b/root/target/linux/bcm27xx/patches-5.15/950-0414-bcm2835-pcm-Fix-up-multichannel-pcm-audio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0415-media-i2c-imx290-Support-60fps-in-2-lane-operation.patch b/root/target/linux/bcm27xx/patches-5.15/950-0415-media-i2c-imx290-Support-60fps-in-2-lane-operation.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0416-media-i2c-imx290-Fix-the-pixel-rate-at-148.5Mpix-s.patch b/root/target/linux/bcm27xx/patches-5.15/950-0416-media-i2c-imx290-Fix-the-pixel-rate-at-148.5Mpix-s.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0417-media-i2c-imx290-Fix-clock-setup-register-assignment.patch b/root/target/linux/bcm27xx/patches-5.15/950-0417-media-i2c-imx290-Fix-clock-setup-register-assignment.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0418-media-rpivid-Fix-H265-aux-ent-reuse-of-the-same-slot.patch b/root/target/linux/bcm27xx/patches-5.15/950-0418-media-rpivid-Fix-H265-aux-ent-reuse-of-the-same-slot.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0419-media-i2c-ov9281-Remove-override-of-subdev-name.patch b/root/target/linux/bcm27xx/patches-5.15/950-0419-media-i2c-ov9281-Remove-override-of-subdev-name.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0420-staging-vc04_services-isp-Set-the-YUV420-YVU420-form.patch b/root/target/linux/bcm27xx/patches-5.15/950-0420-staging-vc04_services-isp-Set-the-YUV420-YVU420-form.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0421-Documentation-devicetree-Add-documentation-for-imx37.patch b/root/target/linux/bcm27xx/patches-5.15/950-0421-Documentation-devicetree-Add-documentation-for-imx37.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0422-media-i2c-imx477-Extend-driver-to-support-imx378-sen.patch b/root/target/linux/bcm27xx/patches-5.15/950-0422-media-i2c-imx477-Extend-driver-to-support-imx378-sen.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0423-dt-bindings-clk-raspberrypi-Remove-unused-property.patch b/root/target/linux/bcm27xx/patches-5.15/950-0423-dt-bindings-clk-raspberrypi-Remove-unused-property.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0424-dt-bindings-display-vc4-Add-phandle-to-the-firmware.patch b/root/target/linux/bcm27xx/patches-5.15/950-0424-dt-bindings-display-vc4-Add-phandle-to-the-firmware.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0425-bcm2711_thermal-Don-t-clamp-temperature-at-zero.patch b/root/target/linux/bcm27xx/patches-5.15/950-0425-bcm2711_thermal-Don-t-clamp-temperature-at-zero.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0426-media-bcm2835-unicam-Forward-input-status-from-subde.patch b/root/target/linux/bcm27xx/patches-5.15/950-0426-media-bcm2835-unicam-Forward-input-status-from-subde.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0427-media-v4l2-subdev-add-subdev-wide-state-struct.patch b/root/target/linux/bcm27xx/patches-5.15/950-0427-media-v4l2-subdev-add-subdev-wide-state-struct.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0429-Support-RPi-DPI-interface-in-mode6-for-18-bit-color.patch b/root/target/linux/bcm27xx/patches-5.15/950-0429-Support-RPi-DPI-interface-in-mode6-for-18-bit-color.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0437-vc4_hdmi-Report-that-3d-stereo-is-allowed.patch b/root/target/linux/bcm27xx/patches-5.15/950-0437-vc4_hdmi-Report-that-3d-stereo-is-allowed.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0447-drm-atomic-Don-t-fixup-modes-that-haven-t-been-reset.patch b/root/target/linux/bcm27xx/patches-5.15/950-0447-drm-atomic-Don-t-fixup-modes-that-haven-t-been-reset.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0448-clk-Always-clamp-the-rounded-rate.patch b/root/target/linux/bcm27xx/patches-5.15/950-0448-clk-Always-clamp-the-rounded-rate.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0452-dwc_otg-Update-NetBSD-usb.h-header-licence.patch b/root/target/linux/bcm27xx/patches-5.15/950-0452-dwc_otg-Update-NetBSD-usb.h-header-licence.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0461-media-i2c-imx477-Fix-framerates-for-1332x990-mode.patch b/root/target/linux/bcm27xx/patches-5.15/950-0461-media-i2c-imx477-Fix-framerates-for-1332x990-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0462-ASoC-bcm-Compiler-warnings-in-audioinjector-octo.patch b/root/target/linux/bcm27xx/patches-5.15/950-0462-ASoC-bcm-Compiler-warnings-in-audioinjector-octo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0463-media-i2c-tc358743-Fix-compiler-warning.patch b/root/target/linux/bcm27xx/patches-5.15/950-0463-media-i2c-tc358743-Fix-compiler-warning.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0464-ASoC-bcm-Add-chipdip-dac-driver.patch b/root/target/linux/bcm27xx/patches-5.15/950-0464-ASoC-bcm-Add-chipdip-dac-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0465-media-i2c-imx290-Add-fwnode-properties-controls.patch b/root/target/linux/bcm27xx/patches-5.15/950-0465-media-i2c-imx290-Add-fwnode-properties-controls.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0466-media-i2c-ov9281-Add-fwnode-properties-controls.patch b/root/target/linux/bcm27xx/patches-5.15/950-0466-media-i2c-ov9281-Add-fwnode-properties-controls.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0467-media-i2c-ov7251-Add-fwnode-properties-controls.patch b/root/target/linux/bcm27xx/patches-5.15/950-0467-media-i2c-ov7251-Add-fwnode-properties-controls.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0468-media-v4l2-Remove-v4l2-ctrls.c.patch b/root/target/linux/bcm27xx/patches-5.15/950-0468-media-v4l2-Remove-v4l2-ctrls.c.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0469-media-v4l2-Add-HEVC_SCALING_MATRIX-attribute-to-v4l2.patch b/root/target/linux/bcm27xx/patches-5.15/950-0469-media-v4l2-Add-HEVC_SCALING_MATRIX-attribute-to-v4l2.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0470-media-rpivid-Update-to-compile-with-new-hevc-decode-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0470-media-rpivid-Update-to-compile-with-new-hevc-decode-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0471-media-v4l2-Add-Greyworld-AWB-control-name.patch b/root/target/linux/bcm27xx/patches-5.15/950-0471-media-v4l2-Add-Greyworld-AWB-control-name.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0472-videodev2.h-add-V4L2_CTRL_FLAG_DYNAMIC_ARRAY.patch b/root/target/linux/bcm27xx/patches-5.15/950-0472-videodev2.h-add-V4L2_CTRL_FLAG_DYNAMIC_ARRAY.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0473-v4l2-ctrls-add-support-for-dynamically-allocated-arr.patch b/root/target/linux/bcm27xx/patches-5.15/950-0473-v4l2-ctrls-add-support-for-dynamically-allocated-arr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0474-media-rpivid-Make-slice-ctrl-dynamic.patch b/root/target/linux/bcm27xx/patches-5.15/950-0474-media-rpivid-Make-slice-ctrl-dynamic.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0475-media-rpivid-Only-create-aux-entries-for-H265-if-nee.patch b/root/target/linux/bcm27xx/patches-5.15/950-0475-media-rpivid-Only-create-aux-entries-for-H265-if-nee.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0476-usb-xhci-workaround-for-bogus-SET_DEQ_PENDING-endpoi.patch b/root/target/linux/bcm27xx/patches-5.15/950-0476-usb-xhci-workaround-for-bogus-SET_DEQ_PENDING-endpoi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0477-media-i2c-imx477-Allow-control-of-on-sensor-DPC.patch b/root/target/linux/bcm27xx/patches-5.15/950-0477-media-i2c-imx477-Allow-control-of-on-sensor-DPC.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0478-sound-usb-add-device-quirks-for-A4Tech-FHD-1080p-web.patch b/root/target/linux/bcm27xx/patches-5.15/950-0478-sound-usb-add-device-quirks-for-A4Tech-FHD-1080p-web.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0479-sound-usb-call-usb_autopm_get_interface-for-devices-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0479-sound-usb-call-usb_autopm_get_interface-for-devices-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0480-brcmfmac-Try-product-specific-clm_blob-names-first.patch b/root/target/linux/bcm27xx/patches-5.15/950-0480-brcmfmac-Try-product-specific-clm_blob-names-first.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0481-staging-vchiq_arm-Add-36-bit-address-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0481-staging-vchiq_arm-Add-36-bit-address-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0482-staging-vchiq_arm-children-inherit-DMA-config.patch b/root/target/linux/bcm27xx/patches-5.15/950-0482-staging-vchiq_arm-children-inherit-DMA-config.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0483-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch b/root/target/linux/bcm27xx/patches-5.15/950-0483-staging-vchiq_arm-Usa-a-DMA-pool-for-small-bulks.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0487-drm-panel-raspberrypi-touchscreen-Avoid-NULL-deref-i.patch b/root/target/linux/bcm27xx/patches-5.15/950-0487-drm-panel-raspberrypi-touchscreen-Avoid-NULL-deref-i.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0488-drm-panel-raspberrypi-touchscreen-Initialise-the-bri.patch b/root/target/linux/bcm27xx/patches-5.15/950-0488-drm-panel-raspberrypi-touchscreen-Initialise-the-bri.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0489-drm-panel-raspberrypi-touchscreen-Handle-I2C-errors.patch b/root/target/linux/bcm27xx/patches-5.15/950-0489-drm-panel-raspberrypi-touchscreen-Handle-I2C-errors.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0490-drm-panel-simple-Add-a-timing-for-the-Raspberry-Pi-7.patch b/root/target/linux/bcm27xx/patches-5.15/950-0490-drm-panel-simple-Add-a-timing-for-the-Raspberry-Pi-7.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0491-Input-edt-ft54x6-Clean-up-timer-and-workqueue-on-rem.patch b/root/target/linux/bcm27xx/patches-5.15/950-0491-Input-edt-ft54x6-Clean-up-timer-and-workqueue-on-rem.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0492-regulator-rpi-panel-Register-with-a-unique-backlight.patch b/root/target/linux/bcm27xx/patches-5.15/950-0492-regulator-rpi-panel-Register-with-a-unique-backlight.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0498-staging-bcm2835-codec-Change-the-default-codec-res-t.patch b/root/target/linux/bcm27xx/patches-5.15/950-0498-staging-bcm2835-codec-Change-the-default-codec-res-t.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0499-staging-vchiq-mmal-Add-buffer-flags-for-interlaced-v.patch b/root/target/linux/bcm27xx/patches-5.15/950-0499-staging-vchiq-mmal-Add-buffer-flags-for-interlaced-v.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0500-staging-vchiq-mmal-Add-parameters-for-interlaced-vid.patch b/root/target/linux/bcm27xx/patches-5.15/950-0500-staging-vchiq-mmal-Add-parameters-for-interlaced-vid.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0501-staging-bcm2835-codec-Add-support-for-decoding-inter.patch b/root/target/linux/bcm27xx/patches-5.15/950-0501-staging-bcm2835-codec-Add-support-for-decoding-inter.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0502-staging-bcm2835-codec-Correct-ENUM_FRAMESIZES-stepsi.patch b/root/target/linux/bcm27xx/patches-5.15/950-0502-staging-bcm2835-codec-Correct-ENUM_FRAMESIZES-stepsi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0503-staging-bcm2835-codec-Return-buffers-to-QUEUED-not-E.patch b/root/target/linux/bcm27xx/patches-5.15/950-0503-staging-bcm2835-codec-Return-buffers-to-QUEUED-not-E.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0504-staging-bcm2835_codec-Log-MMAL-flags-in-hex.patch b/root/target/linux/bcm27xx/patches-5.15/950-0504-staging-bcm2835_codec-Log-MMAL-flags-in-hex.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0505-staging-bcm2835-codec-Allow-custom-specified-strides.patch b/root/target/linux/bcm27xx/patches-5.15/950-0505-staging-bcm2835-codec-Allow-custom-specified-strides.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0506-staging-vchiq-mmal-Add-the-deinterlace-image-effects.patch b/root/target/linux/bcm27xx/patches-5.15/950-0506-staging-vchiq-mmal-Add-the-deinterlace-image-effects.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0507-staging-bcm2835_codec-Add-support-for-image_fx-to-de.patch b/root/target/linux/bcm27xx/patches-5.15/950-0507-staging-bcm2835_codec-Add-support-for-image_fx-to-de.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0508-staging-bcm2835-v4l2_codec-Fix-for-encode-selection-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0508-staging-bcm2835-v4l2_codec-Fix-for-encode-selection-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0509-Add-Raspberry-Pi-PoE-HAT-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0509-Add-Raspberry-Pi-PoE-HAT-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0510-ARM-dts-Restore-downstream-dtbs-to-Makefile.patch b/root/target/linux/bcm27xx/patches-5.15/950-0510-ARM-dts-Restore-downstream-dtbs-to-Makefile.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0511-media-rpivid-Avoid-returning-EINVAL-to-a-G_FMT-ioctl.patch b/root/target/linux/bcm27xx/patches-5.15/950-0511-media-rpivid-Avoid-returning-EINVAL-to-a-G_FMT-ioctl.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0512-net-phy-lan87xx-Allow-more-time-for-link-detect.patch b/root/target/linux/bcm27xx/patches-5.15/950-0512-net-phy-lan87xx-Allow-more-time-for-link-detect.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0513-media-rpivid-Remove-unused-ctx-state-variable-and-de.patch b/root/target/linux/bcm27xx/patches-5.15/950-0513-media-rpivid-Remove-unused-ctx-state-variable-and-de.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0514-media-rpivid-Ensure-IRQs-have-completed-before-unini.patch b/root/target/linux/bcm27xx/patches-5.15/950-0514-media-rpivid-Ensure-IRQs-have-completed-before-unini.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0515-staging-bcm2835-codec-Allow-decode-res-changed-befor.patch b/root/target/linux/bcm27xx/patches-5.15/950-0515-staging-bcm2835-codec-Allow-decode-res-changed-befor.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0516-staging-bcm2835-codec-Do-not-send-buffers-to-the-VPU.patch b/root/target/linux/bcm27xx/patches-5.15/950-0516-staging-bcm2835-codec-Do-not-send-buffers-to-the-VPU.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0517-staging-mmal-vchiq-Rationalise-included-headers.patch b/root/target/linux/bcm27xx/patches-5.15/950-0517-staging-mmal-vchiq-Rationalise-included-headers.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0518-staging-bcm2835-codec-Format-changed-should-trigger-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0518-staging-bcm2835-codec-Format-changed-should-trigger-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0519-staging-bcm2835-codec-Signal-the-firmware-to-stop-on.patch b/root/target/linux/bcm27xx/patches-5.15/950-0519-staging-bcm2835-codec-Signal-the-firmware-to-stop-on.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0520-staging-mmal-vchiq-Add-module-parameter-to-enable-lo.patch b/root/target/linux/bcm27xx/patches-5.15/950-0520-staging-mmal-vchiq-Add-module-parameter-to-enable-lo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0521-staging-bcm2835-codec-Queue-flushed-buffers-instead-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0521-staging-bcm2835-codec-Queue-flushed-buffers-instead-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0522-staging-mmal-vchiq-Reset-buffers_with_vpu-on-port_en.patch b/root/target/linux/bcm27xx/patches-5.15/950-0522-staging-mmal-vchiq-Reset-buffers_with_vpu-on-port_en.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0523-staging-bcm2835_codec-Correct-flushing-code-for-refc.patch b/root/target/linux/bcm27xx/patches-5.15/950-0523-staging-bcm2835_codec-Correct-flushing-code-for-refc.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0524-staging-bcm2835-codec-Ensure-all-ctrls-are-set-on-st.patch b/root/target/linux/bcm27xx/patches-5.15/950-0524-staging-bcm2835-codec-Ensure-all-ctrls-are-set-on-st.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0525-staging-bcm2835-codec-Add-support-for-H-V-Flips-to-I.patch b/root/target/linux/bcm27xx/patches-5.15/950-0525-staging-bcm2835-codec-Add-support-for-H-V-Flips-to-I.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0526-overlays-add-support-for-the-MLX90640-thermal-camera.patch b/root/target/linux/bcm27xx/patches-5.15/950-0526-overlays-add-support-for-the-MLX90640-thermal-camera.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0527-overlays-Add-generic-mcp2515-overlay.patch b/root/target/linux/bcm27xx/patches-5.15/950-0527-overlays-Add-generic-mcp2515-overlay.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0529-bcm2835_smi_dev-Fix-handling-of-word-odd-lengths.patch b/root/target/linux/bcm27xx/patches-5.15/950-0529-bcm2835_smi_dev-Fix-handling-of-word-odd-lengths.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0530-Revert-mmc-sdhci-iproc-Fix-vmmc-regulators-on-iProc.patch b/root/target/linux/bcm27xx/patches-5.15/950-0530-Revert-mmc-sdhci-iproc-Fix-vmmc-regulators-on-iProc.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0531-mmc-sdhci-iproc-Fix-vmmc-regulators-pre-bcm2711.patch b/root/target/linux/bcm27xx/patches-5.15/950-0531-mmc-sdhci-iproc-Fix-vmmc-regulators-pre-bcm2711.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0532-dt-bindings-media-i2c-Add-IMX519-CMOS-sensor-binding.patch b/root/target/linux/bcm27xx/patches-5.15/950-0532-dt-bindings-media-i2c-Add-IMX519-CMOS-sensor-binding.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0533-media-i2c-Add-driver-for-IMX519-sensor.patch b/root/target/linux/bcm27xx/patches-5.15/950-0533-media-i2c-Add-driver-for-IMX519-sensor.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0534-media-i2c-imx519-Advertise-embedded-data-node-on-med.patch b/root/target/linux/bcm27xx/patches-5.15/950-0534-media-i2c-imx519-Advertise-embedded-data-node-on-med.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0535-overlays-Add-imx519-overlay.dts.patch b/root/target/linux/bcm27xx/patches-5.15/950-0535-overlays-Add-imx519-overlay.dts.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0536-dtoverlays-Add-overlay-for-ST7735R-160x128-TinyDRM-d.patch b/root/target/linux/bcm27xx/patches-5.15/950-0536-dtoverlays-Add-overlay-for-ST7735R-160x128-TinyDRM-d.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0537-dwc_otg-pay-attention-to-qh-interval-when-rescheduli.patch b/root/target/linux/bcm27xx/patches-5.15/950-0537-dwc_otg-pay-attention-to-qh-interval-when-rescheduli.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0538-Hifiberry-DAC-ADCPro-DT-overlay-add-optional-headpho.patch b/root/target/linux/bcm27xx/patches-5.15/950-0538-Hifiberry-DAC-ADCPro-DT-overlay-add-optional-headpho.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0539-Hifiberry-DAC-ADCPro-adding-optional-headphone-amp-c.patch b/root/target/linux/bcm27xx/patches-5.15/950-0539-Hifiberry-DAC-ADCPro-adding-optional-headphone-amp-c.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0540-drivers-gpio-Add-a-driver-that-wraps-the-PWM-API-as-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0540-drivers-gpio-Add-a-driver-that-wraps-the-PWM-API-as-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0541-rtc-pcf85063-Always-clear-EXT_TEST-from-set_time.patch b/root/target/linux/bcm27xx/patches-5.15/950-0541-rtc-pcf85063-Always-clear-EXT_TEST-from-set_time.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0542-char-vcio-Rewrite-as-a-firmware-node-child.patch b/root/target/linux/bcm27xx/patches-5.15/950-0542-char-vcio-Rewrite-as-a-firmware-node-child.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0543-ARM-dts-Make-vcio-a-child-of-the-firmware-node.patch b/root/target/linux/bcm27xx/patches-5.15/950-0543-ARM-dts-Make-vcio-a-child-of-the-firmware-node.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0544-ARM-dts-bcm2835_audio-missing-firmware-reference.patch b/root/target/linux/bcm27xx/patches-5.15/950-0544-ARM-dts-bcm2835_audio-missing-firmware-reference.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0545-ARM-dts-Delete-vestigial-vcsm-node.patch b/root/target/linux/bcm27xx/patches-5.15/950-0545-ARM-dts-Delete-vestigial-vcsm-node.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0546-gpio-bcm-virt-Fix-the-get-method.patch b/root/target/linux/bcm27xx/patches-5.15/950-0546-gpio-bcm-virt-Fix-the-get-method.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0547-media-i2c-imx219-Sensor-should-report-RAW-color-spac.patch b/root/target/linux/bcm27xx/patches-5.15/950-0547-media-i2c-imx219-Sensor-should-report-RAW-color-spac.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0548-media-i2c-imx290-Sensor-should-report-RAW-color-spac.patch b/root/target/linux/bcm27xx/patches-5.15/950-0548-media-i2c-imx290-Sensor-should-report-RAW-color-spac.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0549-media-i2c-imx477-Sensor-should-report-RAW-color-spac.patch b/root/target/linux/bcm27xx/patches-5.15/950-0549-media-i2c-imx477-Sensor-should-report-RAW-color-spac.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0550-media-i2c-imx519-Sensor-should-report-RAW-color-spac.patch b/root/target/linux/bcm27xx/patches-5.15/950-0550-media-i2c-imx519-Sensor-should-report-RAW-color-spac.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0551-media-i2c-ov5647-Sensor-should-report-RAW-color-spac.patch b/root/target/linux/bcm27xx/patches-5.15/950-0551-media-i2c-ov5647-Sensor-should-report-RAW-color-spac.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0552-media-i2c-ov9281-Sensor-should-report-RAW-color-spac.patch b/root/target/linux/bcm27xx/patches-5.15/950-0552-media-i2c-ov9281-Sensor-should-report-RAW-color-spac.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0553-vc04_services-isp-Report-input-node-as-wanting-full-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0553-vc04_services-isp-Report-input-node-as-wanting-full-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0554-media-bcm2835-unicam-Parse-pad-numbers-correctly.patch b/root/target/linux/bcm27xx/patches-5.15/950-0554-media-bcm2835-unicam-Parse-pad-numbers-correctly.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0555-media-bcm2835-unicam-Add-support-for-configuration-v.patch b/root/target/linux/bcm27xx/patches-5.15/950-0555-media-bcm2835-unicam-Add-support-for-configuration-v.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0556-ARM-dts-vc4-kms-v3d-Always-disable-firmware-HDMI.patch b/root/target/linux/bcm27xx/patches-5.15/950-0556-ARM-dts-vc4-kms-v3d-Always-disable-firmware-HDMI.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0557-staging-bcm2835-camera-Add-support-for-H264_MIN_QP-H.patch b/root/target/linux/bcm27xx/patches-5.15/950-0557-staging-bcm2835-camera-Add-support-for-H264_MIN_QP-H.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0558-staging-bcm2835-camera-Add-support-for-MPEG_VIDEO_FO.patch b/root/target/linux/bcm27xx/patches-5.15/950-0558-staging-bcm2835-camera-Add-support-for-MPEG_VIDEO_FO.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0559-ARM-dts-Add-Pi-Zero-2-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0559-ARM-dts-Add-Pi-Zero-2-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0560-clk-raspberrypi-Support-VEC-clock.patch b/root/target/linux/bcm27xx/patches-5.15/950-0560-clk-raspberrypi-Support-VEC-clock.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0561-dt-Move-VEC-clock-to-clk-raspberrypi.patch b/root/target/linux/bcm27xx/patches-5.15/950-0561-dt-Move-VEC-clock-to-clk-raspberrypi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0562-clk-bcm2835-Remove-VEC-clock-support.patch b/root/target/linux/bcm27xx/patches-5.15/950-0562-clk-bcm2835-Remove-VEC-clock-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0566-media-i2c-imx477-Add-vsync-trigger_mode-parameter.patch b/root/target/linux/bcm27xx/patches-5.15/950-0566-media-i2c-imx477-Add-vsync-trigger_mode-parameter.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0569-bcm2835-v4l2-codec-Remove-advertised-support-of-VP8.patch b/root/target/linux/bcm27xx/patches-5.15/950-0569-bcm2835-v4l2-codec-Remove-advertised-support-of-VP8.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0570-ARM-dts-Rename-Zero-2-W-DT-files.patch b/root/target/linux/bcm27xx/patches-5.15/950-0570-ARM-dts-Rename-Zero-2-W-DT-files.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0571-brcmfmac-Don-t-promote-INFO-logging-to-ERR.patch b/root/target/linux/bcm27xx/patches-5.15/950-0571-brcmfmac-Don-t-promote-INFO-logging-to-ERR.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0572-dtoverlays-Update-all-image-sensor-overlays-for-Medi.patch b/root/target/linux/bcm27xx/patches-5.15/950-0572-dtoverlays-Update-all-image-sensor-overlays-for-Medi.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0573-ARM-dt-Add-DT-nodes-for-the-WLAN-interfaces.patch b/root/target/linux/bcm27xx/patches-5.15/950-0573-ARM-dt-Add-DT-nodes-for-the-WLAN-interfaces.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0574-brcmfmac-Read-alternative-firmware-names-from-DT.patch b/root/target/linux/bcm27xx/patches-5.15/950-0574-brcmfmac-Read-alternative-firmware-names-from-DT.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0575-ARM-dts-Provide-WLAN-firmware-names-for-Zero-2-W.patch b/root/target/linux/bcm27xx/patches-5.15/950-0575-ARM-dts-Provide-WLAN-firmware-names-for-Zero-2-W.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0576-drm-Check-whether-the-gamma-lut-has-changed-before-u.patch b/root/target/linux/bcm27xx/patches-5.15/950-0576-drm-Check-whether-the-gamma-lut-has-changed-before-u.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0577-brcmfmac-Protect-against-reprobing.patch b/root/target/linux/bcm27xx/patches-5.15/950-0577-brcmfmac-Protect-against-reprobing.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0580-overlays-Add-fbtft-overlay.patch b/root/target/linux/bcm27xx/patches-5.15/950-0580-overlays-Add-fbtft-overlay.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0581-overlays-Additional-parameters-for-gpio-poweroff.patch b/root/target/linux/bcm27xx/patches-5.15/950-0581-overlays-Additional-parameters-for-gpio-poweroff.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0582-drm-Fix-double-free-from-checking-if-gamma-lut-has-b.patch b/root/target/linux/bcm27xx/patches-5.15/950-0582-drm-Fix-double-free-from-checking-if-gamma-lut-has-b.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/bcm27xx/patches-5.15/950-0585-dtoverlays-Remove-i2c0mux-and-i20if-status-from-edt-.patch b/root/target/linux/bcm27xx/patches-5.15/950-0585-dtoverlays-Remove-i2c0mux-and-i20if-status-from-edt-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/backport-5.14/011-kbuild-export-SUBARCH.patch b/root/target/linux/generic/backport-5.14/011-kbuild-export-SUBARCH.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/backport-5.14/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch b/root/target/linux/generic/backport-5.14/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/backport-5.15/011-kbuild-export-SUBARCH.patch b/root/target/linux/generic/backport-5.15/011-kbuild-export-SUBARCH.patch old mode 100755 new mode 100644 index 0aedad4b..d99dcc9f --- a/root/target/linux/generic/backport-5.15/011-kbuild-export-SUBARCH.patch +++ b/root/target/linux/generic/backport-5.15/011-kbuild-export-SUBARCH.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau --- a/Makefile +++ b/Makefile -@@ -523,7 +523,7 @@ KBUILD_LDFLAGS_MODULE := +@@ -524,7 +524,7 @@ KBUILD_LDFLAGS_MODULE := KBUILD_LDFLAGS := CLANG_FLAGS := diff --git a/root/target/linux/generic/backport-5.15/050-v5.16-00-MIPS-uasm-Enable-muhu-opcode-for-MIPS-R6.patch b/root/target/linux/generic/backport-5.15/050-v5.16-00-MIPS-uasm-Enable-muhu-opcode-for-MIPS-R6.patch deleted file mode 100755 index 82feb742..00000000 --- a/root/target/linux/generic/backport-5.15/050-v5.16-00-MIPS-uasm-Enable-muhu-opcode-for-MIPS-R6.patch +++ /dev/null @@ -1,65 +0,0 @@ -From: Johan Almbladh -Date: Tue, 5 Oct 2021 18:54:02 +0200 -Subject: [PATCH] MIPS: uasm: Enable muhu opcode for MIPS R6 - -Enable the 'muhu' instruction, complementing the existing 'mulu', needed -to implement a MIPS32 BPF JIT. - -Also fix a typo in the existing definition of 'dmulu'. - -Signed-off-by: Tony Ambardar - -This patch is a dependency for my 32-bit MIPS eBPF JIT. - -Signed-off-by: Johan Almbladh ---- - ---- a/arch/mips/include/asm/uasm.h -+++ b/arch/mips/include/asm/uasm.h -@@ -145,6 +145,7 @@ Ip_u1(_mtlo); - Ip_u3u1u2(_mul); - Ip_u1u2(_multu); - Ip_u3u1u2(_mulu); -+Ip_u3u1u2(_muhu); - Ip_u3u1u2(_nor); - Ip_u3u1u2(_or); - Ip_u2u1u3(_ori); ---- a/arch/mips/mm/uasm-mips.c -+++ b/arch/mips/mm/uasm-mips.c -@@ -90,7 +90,7 @@ static const struct insn insn_table[insn - RS | RT | RD}, - [insn_dmtc0] = {M(cop0_op, dmtc_op, 0, 0, 0, 0), RT | RD | SET}, - [insn_dmultu] = {M(spec_op, 0, 0, 0, 0, dmultu_op), RS | RT}, -- [insn_dmulu] = {M(spec_op, 0, 0, 0, dmult_dmul_op, dmultu_op), -+ [insn_dmulu] = {M(spec_op, 0, 0, 0, dmultu_dmulu_op, dmultu_op), - RS | RT | RD}, - [insn_drotr] = {M(spec_op, 1, 0, 0, 0, dsrl_op), RT | RD | RE}, - [insn_drotr32] = {M(spec_op, 1, 0, 0, 0, dsrl32_op), RT | RD | RE}, -@@ -150,6 +150,8 @@ static const struct insn insn_table[insn - [insn_mtlo] = {M(spec_op, 0, 0, 0, 0, mtlo_op), RS}, - [insn_mulu] = {M(spec_op, 0, 0, 0, multu_mulu_op, multu_op), - RS | RT | RD}, -+ [insn_muhu] = {M(spec_op, 0, 0, 0, multu_muhu_op, multu_op), -+ RS | RT | RD}, - #ifndef CONFIG_CPU_MIPSR6 - [insn_mul] = {M(spec2_op, 0, 0, 0, 0, mul_op), RS | RT | RD}, - #else ---- a/arch/mips/mm/uasm.c -+++ b/arch/mips/mm/uasm.c -@@ -59,7 +59,7 @@ enum opcode { - insn_lddir, insn_ldpte, insn_ldx, insn_lh, insn_lhu, insn_ll, insn_lld, - insn_lui, insn_lw, insn_lwu, insn_lwx, insn_mfc0, insn_mfhc0, insn_mfhi, - insn_mflo, insn_modu, insn_movn, insn_movz, insn_mtc0, insn_mthc0, -- insn_mthi, insn_mtlo, insn_mul, insn_multu, insn_mulu, insn_nor, -+ insn_mthi, insn_mtlo, insn_mul, insn_multu, insn_mulu, insn_muhu, insn_nor, - insn_or, insn_ori, insn_pref, insn_rfe, insn_rotr, insn_sb, insn_sc, - insn_scd, insn_seleqz, insn_selnez, insn_sd, insn_sh, insn_sll, - insn_sllv, insn_slt, insn_slti, insn_sltiu, insn_sltu, insn_sra, -@@ -344,6 +344,7 @@ I_u1(_mtlo) - I_u3u1u2(_mul) - I_u1u2(_multu) - I_u3u1u2(_mulu) -+I_u3u1u2(_muhu) - I_u3u1u2(_nor) - I_u3u1u2(_or) - I_u2u1u3(_ori) diff --git a/root/target/linux/generic/backport-5.15/050-v5.16-01-mips-uasm-Add-workaround-for-Loongson-2F-nop-CPU-err.patch b/root/target/linux/generic/backport-5.15/050-v5.16-01-mips-uasm-Add-workaround-for-Loongson-2F-nop-CPU-err.patch deleted file mode 100755 index 3a4d573f..00000000 --- a/root/target/linux/generic/backport-5.15/050-v5.16-01-mips-uasm-Add-workaround-for-Loongson-2F-nop-CPU-err.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Johan Almbladh -Date: Tue, 5 Oct 2021 18:54:03 +0200 -Subject: [PATCH] mips: uasm: Add workaround for Loongson-2F nop CPU errata - -This patch implements a workaround for the Loongson-2F nop in generated, -code, if the existing option CONFIG_CPU_NOP_WORKAROUND is set. Before, -the binutils option -mfix-loongson2f-nop was enabled, but no workaround -was done when emitting MIPS code. Now, the nop pseudo instruction is -emitted as "or ax,ax,zero" instead of the default "sll zero,zero,0". This -is consistent with the workaround implemented by binutils. - -Link: https://sourceware.org/legacy-ml/binutils/2009-11/msg00387.html - -Signed-off-by: Johan Almbladh -Reviewed-by: Jiaxun Yang ---- - ---- a/arch/mips/include/asm/uasm.h -+++ b/arch/mips/include/asm/uasm.h -@@ -249,7 +249,11 @@ static inline void uasm_l##lb(struct uas - #define uasm_i_bnezl(buf, rs, off) uasm_i_bnel(buf, rs, 0, off) - #define uasm_i_ehb(buf) uasm_i_sll(buf, 0, 0, 3) - #define uasm_i_move(buf, a, b) UASM_i_ADDU(buf, a, 0, b) -+#ifdef CONFIG_CPU_NOP_WORKAROUNDS -+#define uasm_i_nop(buf) uasm_i_or(buf, 1, 1, 0) -+#else - #define uasm_i_nop(buf) uasm_i_sll(buf, 0, 0, 0) -+#endif - #define uasm_i_ssnop(buf) uasm_i_sll(buf, 0, 0, 1) - - static inline void uasm_i_drotr_safe(u32 **p, unsigned int a1, diff --git a/root/target/linux/generic/backport-5.15/050-v5.16-02-mips-bpf-Add-eBPF-JIT-for-32-bit-MIPS.patch b/root/target/linux/generic/backport-5.15/050-v5.16-02-mips-bpf-Add-eBPF-JIT-for-32-bit-MIPS.patch deleted file mode 100755 index 79806599..00000000 --- a/root/target/linux/generic/backport-5.15/050-v5.16-02-mips-bpf-Add-eBPF-JIT-for-32-bit-MIPS.patch +++ /dev/null @@ -1,3078 +0,0 @@ -From: Johan Almbladh -Date: Tue, 5 Oct 2021 18:54:04 +0200 -Subject: [PATCH] mips: bpf: Add eBPF JIT for 32-bit MIPS - -This is an implementation of an eBPF JIT for 32-bit MIPS I-V and MIPS32. -The implementation supports all 32-bit and 64-bit ALU and JMP operations, -including the recently-added atomics. 64-bit div/mod and 64-bit atomics -are implemented using function calls to math64 and atomic64 functions, -respectively. All 32-bit operations are implemented natively by the JIT, -except if the CPU lacks ll/sc instructions. - -Register mapping -================ -All 64-bit eBPF registers are mapped to native 32-bit MIPS register pairs, -and does not use any stack scratch space for register swapping. This means -that all eBPF register data is kept in CPU registers all the time, and -this simplifies the register management a lot. It also reduces the JIT's -pressure on temporary registers since we do not have to move data around. - -Native register pairs are ordered according to CPU endiannes, following -the O32 calling convention for passing 64-bit arguments and return values. -The eBPF return value, arguments and callee-saved registers are mapped to -their native MIPS equivalents. - -Since the 32 highest bits in the eBPF FP (frame pointer) register are -always zero, only one general-purpose register is actually needed for the -mapping. The MIPS fp register is used for this purpose. The high bits are -mapped to MIPS register r0. This saves us one CPU register, which is much -needed for temporaries, while still allowing us to treat the R10 (FP) -register just like any other eBPF register in the JIT. - -The MIPS gp (global pointer) and at (assembler temporary) registers are -used as internal temporary registers for constant blinding. CPU registers -t6-t9 are used internally by the JIT when constructing more complex 64-bit -operations. This is precisely what is needed - two registers to store an -operand value, and two more as scratch registers when performing the -operation. - -The register mapping is shown below. - - R0 - $v1, $v0 return value - R1 - $a1, $a0 argument 1, passed in registers - R2 - $a3, $a2 argument 2, passed in registers - R3 - $t1, $t0 argument 3, passed on stack - R4 - $t3, $t2 argument 4, passed on stack - R5 - $t4, $t3 argument 5, passed on stack - R6 - $s1, $s0 callee-saved - R7 - $s3, $s2 callee-saved - R8 - $s5, $s4 callee-saved - R9 - $s7, $s6 callee-saved - FP - $r0, $fp 32-bit frame pointer - AX - $gp, $at constant-blinding - $t6 - $t9 unallocated, JIT temporaries - -Jump offsets -============ -The JIT tries to map all conditional JMP operations to MIPS conditional -PC-relative branches. The MIPS branch offset field is 18 bits, in bytes, -which is equivalent to the eBPF 16-bit instruction offset. However, since -the JIT may emit more than one CPU instruction per eBPF instruction, the -field width may overflow. If that happens, the JIT converts the long -conditional jump to a short PC-relative branch with the condition -inverted, jumping over a long unconditional absolute jmp (j). - -This conversion will change the instruction offset mapping used for jumps, -and may in turn result in more branch offset overflows. The JIT therefore -dry-runs the translation until no more branches are converted and the -offsets do not change anymore. There is an upper bound on this of course, -and if the JIT hits that limit, the last two iterations are run with all -branches being converted. - -Tail call count -=============== -The current tail call count is stored in the 16-byte area of the caller's -stack frame that is reserved for the callee in the o32 ABI. The value is -initialized in the prologue, and propagated to the tail-callee by skipping -the initialization instructions when emitting the tail call. - -Signed-off-by: Johan Almbladh ---- - create mode 100644 arch/mips/net/bpf_jit_comp.c - create mode 100644 arch/mips/net/bpf_jit_comp.h - create mode 100644 arch/mips/net/bpf_jit_comp32.c - ---- a/arch/mips/net/Makefile -+++ b/arch/mips/net/Makefile -@@ -2,4 +2,9 @@ - # MIPS networking code - - obj-$(CONFIG_MIPS_CBPF_JIT) += bpf_jit.o bpf_jit_asm.o --obj-$(CONFIG_MIPS_EBPF_JIT) += ebpf_jit.o -+ -+ifeq ($(CONFIG_32BIT),y) -+ obj-$(CONFIG_MIPS_EBPF_JIT) += bpf_jit_comp.o bpf_jit_comp32.o -+else -+ obj-$(CONFIG_MIPS_EBPF_JIT) += ebpf_jit.o -+endif ---- /dev/null -+++ b/arch/mips/net/bpf_jit_comp.c -@@ -0,0 +1,1020 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+/* -+ * Just-In-Time compiler for eBPF bytecode on MIPS. -+ * Implementation of JIT functions common to 32-bit and 64-bit CPUs. -+ * -+ * Copyright (c) 2021 Anyfi Networks AB. -+ * Author: Johan Almbladh -+ * -+ * Based on code and ideas from -+ * Copyright (c) 2017 Cavium, Inc. -+ * Copyright (c) 2017 Shubham Bansal -+ * Copyright (c) 2011 Mircea Gherzan -+ */ -+ -+/* -+ * Code overview -+ * ============= -+ * -+ * - bpf_jit_comp.h -+ * Common definitions and utilities. -+ * -+ * - bpf_jit_comp.c -+ * Implementation of JIT top-level logic and exported JIT API functions. -+ * Implementation of internal operations shared by 32-bit and 64-bit code. -+ * JMP and ALU JIT control code, register control code, shared ALU and -+ * JMP/JMP32 JIT operations. -+ * -+ * - bpf_jit_comp32.c -+ * Implementation of functions to JIT prologue, epilogue and a single eBPF -+ * instruction for 32-bit MIPS CPUs. The functions use shared operations -+ * where possible, and implement the rest for 32-bit MIPS such as ALU64 -+ * operations. -+ * -+ * - bpf_jit_comp64.c -+ * Ditto, for 64-bit MIPS CPUs. -+ * -+ * Zero and sign extension -+ * ======================== -+ * 32-bit MIPS instructions on 64-bit MIPS registers use sign extension, -+ * but the eBPF instruction set mandates zero extension. We let the verifier -+ * insert explicit zero-extensions after 32-bit ALU operations, both for -+ * 32-bit and 64-bit MIPS JITs. Conditional JMP32 operations on 64-bit MIPs -+ * are JITed with sign extensions inserted when so expected. -+ * -+ * ALU operations -+ * ============== -+ * ALU operations on 32/64-bit MIPS and ALU64 operations on 64-bit MIPS are -+ * JITed in the following steps. ALU64 operations on 32-bit MIPS are more -+ * complicated and therefore only processed by special implementations in -+ * step (3). -+ * -+ * 1) valid_alu_i: -+ * Determine if an immediate operation can be emitted as such, or if -+ * we must fall back to the register version. -+ * -+ * 2) rewrite_alu_i: -+ * Convert BPF operation and immediate value to a canonical form for -+ * JITing. In some degenerate cases this form may be a no-op. -+ * -+ * 3) emit_alu_{i,i64,r,64}: -+ * Emit instructions for an ALU or ALU64 immediate or register operation. -+ * -+ * JMP operations -+ * ============== -+ * JMP and JMP32 operations require an JIT instruction offset table for -+ * translating the jump offset. This table is computed by dry-running the -+ * JIT without actually emitting anything. However, the computed PC-relative -+ * offset may overflow the 18-bit offset field width of the native MIPS -+ * branch instruction. In such cases, the long jump is converted into the -+ * following sequence. -+ * -+ * ! +2 Inverted PC-relative branch -+ * nop Delay slot -+ * j Unconditional absolute long jump -+ * nop Delay slot -+ * -+ * Since this converted sequence alters the offset table, all offsets must -+ * be re-calculated. This may in turn trigger new branch conversions, so -+ * the process is repeated until no further changes are made. Normally it -+ * completes in 1-2 iterations. If JIT_MAX_ITERATIONS should reached, we -+ * fall back to converting every remaining jump operation. The branch -+ * conversion is independent of how the JMP or JMP32 condition is JITed. -+ * -+ * JMP32 and JMP operations are JITed as follows. -+ * -+ * 1) setup_jmp_{i,r}: -+ * Convert jump conditional and offset into a form that can be JITed. -+ * This form may be a no-op, a canonical form, or an inverted PC-relative -+ * jump if branch conversion is necessary. -+ * -+ * 2) valid_jmp_i: -+ * Determine if an immediate operations can be emitted as such, or if -+ * we must fall back to the register version. Applies to JMP32 for 32-bit -+ * MIPS, and both JMP and JMP32 for 64-bit MIPS. -+ * -+ * 3) emit_jmp_{i,i64,r,r64}: -+ * Emit instructions for an JMP or JMP32 immediate or register operation. -+ * -+ * 4) finish_jmp_{i,r}: -+ * Emit any instructions needed to finish the jump. This includes a nop -+ * for the delay slot if a branch was emitted, and a long absolute jump -+ * if the branch was converted. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "bpf_jit_comp.h" -+ -+/* Convenience macros for descriptor access */ -+#define CONVERTED(desc) ((desc) & JIT_DESC_CONVERT) -+#define INDEX(desc) ((desc) & ~JIT_DESC_CONVERT) -+ -+/* -+ * Push registers on the stack, starting at a given depth from the stack -+ * pointer and increasing. The next depth to be written is returned. -+ */ -+int push_regs(struct jit_context *ctx, u32 mask, u32 excl, int depth) -+{ -+ int reg; -+ -+ for (reg = 0; reg < BITS_PER_BYTE * sizeof(mask); reg++) -+ if (mask & BIT(reg)) { -+ if ((excl & BIT(reg)) == 0) { -+ if (sizeof(long) == 4) -+ emit(ctx, sw, reg, depth, MIPS_R_SP); -+ else /* sizeof(long) == 8 */ -+ emit(ctx, sd, reg, depth, MIPS_R_SP); -+ } -+ depth += sizeof(long); -+ } -+ -+ ctx->stack_used = max((int)ctx->stack_used, depth); -+ return depth; -+} -+ -+/* -+ * Pop registers from the stack, starting at a given depth from the stack -+ * pointer and increasing. The next depth to be read is returned. -+ */ -+int pop_regs(struct jit_context *ctx, u32 mask, u32 excl, int depth) -+{ -+ int reg; -+ -+ for (reg = 0; reg < BITS_PER_BYTE * sizeof(mask); reg++) -+ if (mask & BIT(reg)) { -+ if ((excl & BIT(reg)) == 0) { -+ if (sizeof(long) == 4) -+ emit(ctx, lw, reg, depth, MIPS_R_SP); -+ else /* sizeof(long) == 8 */ -+ emit(ctx, ld, reg, depth, MIPS_R_SP); -+ } -+ depth += sizeof(long); -+ } -+ -+ return depth; -+} -+ -+/* Compute the 28-bit jump target address from a BPF program location */ -+int get_target(struct jit_context *ctx, u32 loc) -+{ -+ u32 index = INDEX(ctx->descriptors[loc]); -+ unsigned long pc = (unsigned long)&ctx->target[ctx->jit_index]; -+ unsigned long addr = (unsigned long)&ctx->target[index]; -+ -+ if (!ctx->target) -+ return 0; -+ -+ if ((addr ^ pc) & ~MIPS_JMP_MASK) -+ return -1; -+ -+ return addr & MIPS_JMP_MASK; -+} -+ -+/* Compute the PC-relative offset to relative BPF program offset */ -+int get_offset(const struct jit_context *ctx, int off) -+{ -+ return (INDEX(ctx->descriptors[ctx->bpf_index + off]) - -+ ctx->jit_index - 1) * sizeof(u32); -+} -+ -+/* dst = imm (register width) */ -+void emit_mov_i(struct jit_context *ctx, u8 dst, s32 imm) -+{ -+ if (imm >= -0x8000 && imm <= 0x7fff) { -+ emit(ctx, addiu, dst, MIPS_R_ZERO, imm); -+ } else { -+ emit(ctx, lui, dst, (s16)((u32)imm >> 16)); -+ emit(ctx, ori, dst, dst, (u16)(imm & 0xffff)); -+ } -+ clobber_reg(ctx, dst); -+} -+ -+/* dst = src (register width) */ -+void emit_mov_r(struct jit_context *ctx, u8 dst, u8 src) -+{ -+ emit(ctx, ori, dst, src, 0); -+ clobber_reg(ctx, dst); -+} -+ -+/* Validate ALU immediate range */ -+bool valid_alu_i(u8 op, s32 imm) -+{ -+ switch (BPF_OP(op)) { -+ case BPF_NEG: -+ case BPF_LSH: -+ case BPF_RSH: -+ case BPF_ARSH: -+ /* All legal eBPF values are valid */ -+ return true; -+ case BPF_ADD: -+ /* imm must be 16 bits */ -+ return imm >= -0x8000 && imm <= 0x7fff; -+ case BPF_SUB: -+ /* -imm must be 16 bits */ -+ return imm >= -0x7fff && imm <= 0x8000; -+ case BPF_AND: -+ case BPF_OR: -+ case BPF_XOR: -+ /* imm must be 16 bits unsigned */ -+ return imm >= 0 && imm <= 0xffff; -+ case BPF_MUL: -+ /* imm must be zero or a positive power of two */ -+ return imm == 0 || (imm > 0 && is_power_of_2(imm)); -+ case BPF_DIV: -+ case BPF_MOD: -+ /* imm must be an 17-bit power of two */ -+ return (u32)imm <= 0x10000 && is_power_of_2((u32)imm); -+ } -+ return false; -+} -+ -+/* Rewrite ALU immediate operation */ -+bool rewrite_alu_i(u8 op, s32 imm, u8 *alu, s32 *val) -+{ -+ bool act = true; -+ -+ switch (BPF_OP(op)) { -+ case BPF_LSH: -+ case BPF_RSH: -+ case BPF_ARSH: -+ case BPF_ADD: -+ case BPF_SUB: -+ case BPF_OR: -+ case BPF_XOR: -+ /* imm == 0 is a no-op */ -+ act = imm != 0; -+ break; -+ case BPF_MUL: -+ if (imm == 1) { -+ /* dst * 1 is a no-op */ -+ act = false; -+ } else if (imm == 0) { -+ /* dst * 0 is dst & 0 */ -+ op = BPF_AND; -+ } else { -+ /* dst * (1 << n) is dst << n */ -+ op = BPF_LSH; -+ imm = ilog2(abs(imm)); -+ } -+ break; -+ case BPF_DIV: -+ if (imm == 1) { -+ /* dst / 1 is a no-op */ -+ act = false; -+ } else { -+ /* dst / (1 << n) is dst >> n */ -+ op = BPF_RSH; -+ imm = ilog2(imm); -+ } -+ break; -+ case BPF_MOD: -+ /* dst % (1 << n) is dst & ((1 << n) - 1) */ -+ op = BPF_AND; -+ imm--; -+ break; -+ } -+ -+ *alu = op; -+ *val = imm; -+ return act; -+} -+ -+/* ALU immediate operation (32-bit) */ -+void emit_alu_i(struct jit_context *ctx, u8 dst, s32 imm, u8 op) -+{ -+ switch (BPF_OP(op)) { -+ /* dst = -dst */ -+ case BPF_NEG: -+ emit(ctx, subu, dst, MIPS_R_ZERO, dst); -+ break; -+ /* dst = dst & imm */ -+ case BPF_AND: -+ emit(ctx, andi, dst, dst, (u16)imm); -+ break; -+ /* dst = dst | imm */ -+ case BPF_OR: -+ emit(ctx, ori, dst, dst, (u16)imm); -+ break; -+ /* dst = dst ^ imm */ -+ case BPF_XOR: -+ emit(ctx, xori, dst, dst, (u16)imm); -+ break; -+ /* dst = dst << imm */ -+ case BPF_LSH: -+ emit(ctx, sll, dst, dst, imm); -+ break; -+ /* dst = dst >> imm */ -+ case BPF_RSH: -+ emit(ctx, srl, dst, dst, imm); -+ break; -+ /* dst = dst >> imm (arithmetic) */ -+ case BPF_ARSH: -+ emit(ctx, sra, dst, dst, imm); -+ break; -+ /* dst = dst + imm */ -+ case BPF_ADD: -+ emit(ctx, addiu, dst, dst, imm); -+ break; -+ /* dst = dst - imm */ -+ case BPF_SUB: -+ emit(ctx, addiu, dst, dst, -imm); -+ break; -+ } -+ clobber_reg(ctx, dst); -+} -+ -+/* ALU register operation (32-bit) */ -+void emit_alu_r(struct jit_context *ctx, u8 dst, u8 src, u8 op) -+{ -+ switch (BPF_OP(op)) { -+ /* dst = dst & src */ -+ case BPF_AND: -+ emit(ctx, and, dst, dst, src); -+ break; -+ /* dst = dst | src */ -+ case BPF_OR: -+ emit(ctx, or, dst, dst, src); -+ break; -+ /* dst = dst ^ src */ -+ case BPF_XOR: -+ emit(ctx, xor, dst, dst, src); -+ break; -+ /* dst = dst << src */ -+ case BPF_LSH: -+ emit(ctx, sllv, dst, dst, src); -+ break; -+ /* dst = dst >> src */ -+ case BPF_RSH: -+ emit(ctx, srlv, dst, dst, src); -+ break; -+ /* dst = dst >> src (arithmetic) */ -+ case BPF_ARSH: -+ emit(ctx, srav, dst, dst, src); -+ break; -+ /* dst = dst + src */ -+ case BPF_ADD: -+ emit(ctx, addu, dst, dst, src); -+ break; -+ /* dst = dst - src */ -+ case BPF_SUB: -+ emit(ctx, subu, dst, dst, src); -+ break; -+ /* dst = dst * src */ -+ case BPF_MUL: -+ if (cpu_has_mips32r1 || cpu_has_mips32r6) { -+ emit(ctx, mul, dst, dst, src); -+ } else { -+ emit(ctx, multu, dst, src); -+ emit(ctx, mflo, dst); -+ } -+ break; -+ /* dst = dst / src */ -+ case BPF_DIV: -+ if (cpu_has_mips32r6) { -+ emit(ctx, divu_r6, dst, dst, src); -+ } else { -+ emit(ctx, divu, dst, src); -+ emit(ctx, mflo, dst); -+ } -+ break; -+ /* dst = dst % src */ -+ case BPF_MOD: -+ if (cpu_has_mips32r6) { -+ emit(ctx, modu, dst, dst, src); -+ } else { -+ emit(ctx, divu, dst, src); -+ emit(ctx, mfhi, dst); -+ } -+ break; -+ } -+ clobber_reg(ctx, dst); -+} -+ -+/* Atomic read-modify-write (32-bit) */ -+void emit_atomic_r(struct jit_context *ctx, u8 dst, u8 src, s16 off, u8 code) -+{ -+ emit(ctx, ll, MIPS_R_T9, off, dst); -+ switch (code) { -+ case BPF_ADD: -+ emit(ctx, addu, MIPS_R_T8, MIPS_R_T9, src); -+ break; -+ case BPF_AND: -+ emit(ctx, and, MIPS_R_T8, MIPS_R_T9, src); -+ break; -+ case BPF_OR: -+ emit(ctx, or, MIPS_R_T8, MIPS_R_T9, src); -+ break; -+ case BPF_XOR: -+ emit(ctx, xor, MIPS_R_T8, MIPS_R_T9, src); -+ break; -+ } -+ emit(ctx, sc, MIPS_R_T8, off, dst); -+ emit(ctx, beqz, MIPS_R_T8, -16); -+ emit(ctx, nop); /* Delay slot */ -+} -+ -+/* Atomic compare-and-exchange (32-bit) */ -+void emit_cmpxchg_r(struct jit_context *ctx, u8 dst, u8 src, u8 res, s16 off) -+{ -+ emit(ctx, ll, MIPS_R_T9, off, dst); -+ emit(ctx, bne, MIPS_R_T9, res, 12); -+ emit(ctx, move, MIPS_R_T8, src); /* Delay slot */ -+ emit(ctx, sc, MIPS_R_T8, off, dst); -+ emit(ctx, beqz, MIPS_R_T8, -20); -+ emit(ctx, move, res, MIPS_R_T9); /* Delay slot */ -+ clobber_reg(ctx, res); -+} -+ -+/* Swap bytes and truncate a register word or half word */ -+void emit_bswap_r(struct jit_context *ctx, u8 dst, u32 width) -+{ -+ u8 tmp = MIPS_R_T8; -+ u8 msk = MIPS_R_T9; -+ -+ switch (width) { -+ /* Swap bytes in a word */ -+ case 32: -+ if (cpu_has_mips32r2 || cpu_has_mips32r6) { -+ emit(ctx, wsbh, dst, dst); -+ emit(ctx, rotr, dst, dst, 16); -+ } else { -+ emit(ctx, sll, tmp, dst, 16); /* tmp = dst << 16 */ -+ emit(ctx, srl, dst, dst, 16); /* dst = dst >> 16 */ -+ emit(ctx, or, dst, dst, tmp); /* dst = dst | tmp */ -+ -+ emit(ctx, lui, msk, 0xff); /* msk = 0x00ff0000 */ -+ emit(ctx, ori, msk, msk, 0xff); /* msk = msk | 0xff */ -+ -+ emit(ctx, and, tmp, dst, msk); /* tmp = dst & msk */ -+ emit(ctx, sll, tmp, tmp, 8); /* tmp = tmp << 8 */ -+ emit(ctx, srl, dst, dst, 8); /* dst = dst >> 8 */ -+ emit(ctx, and, dst, dst, msk); /* dst = dst & msk */ -+ emit(ctx, or, dst, dst, tmp); /* reg = dst | tmp */ -+ } -+ break; -+ /* Swap bytes in a half word */ -+ case 16: -+ if (cpu_has_mips32r2 || cpu_has_mips32r6) { -+ emit(ctx, wsbh, dst, dst); -+ emit(ctx, andi, dst, dst, 0xffff); -+ } else { -+ emit(ctx, andi, tmp, dst, 0xff00); /* t = d & 0xff00 */ -+ emit(ctx, srl, tmp, tmp, 8); /* t = t >> 8 */ -+ emit(ctx, andi, dst, dst, 0x00ff); /* d = d & 0x00ff */ -+ emit(ctx, sll, dst, dst, 8); /* d = d << 8 */ -+ emit(ctx, or, dst, dst, tmp); /* d = d | t */ -+ } -+ break; -+ } -+ clobber_reg(ctx, dst); -+} -+ -+/* Validate jump immediate range */ -+bool valid_jmp_i(u8 op, s32 imm) -+{ -+ switch (op) { -+ case JIT_JNOP: -+ /* Immediate value not used */ -+ return true; -+ case BPF_JEQ: -+ case BPF_JNE: -+ /* No immediate operation */ -+ return false; -+ case BPF_JSET: -+ case JIT_JNSET: -+ /* imm must be 16 bits unsigned */ -+ return imm >= 0 && imm <= 0xffff; -+ case BPF_JGE: -+ case BPF_JLT: -+ case BPF_JSGE: -+ case BPF_JSLT: -+ /* imm must be 16 bits */ -+ return imm >= -0x8000 && imm <= 0x7fff; -+ case BPF_JGT: -+ case BPF_JLE: -+ case BPF_JSGT: -+ case BPF_JSLE: -+ /* imm + 1 must be 16 bits */ -+ return imm >= -0x8001 && imm <= 0x7ffe; -+ } -+ return false; -+} -+ -+/* Invert a conditional jump operation */ -+static u8 invert_jmp(u8 op) -+{ -+ switch (op) { -+ case BPF_JA: return JIT_JNOP; -+ case BPF_JEQ: return BPF_JNE; -+ case BPF_JNE: return BPF_JEQ; -+ case BPF_JSET: return JIT_JNSET; -+ case BPF_JGT: return BPF_JLE; -+ case BPF_JGE: return BPF_JLT; -+ case BPF_JLT: return BPF_JGE; -+ case BPF_JLE: return BPF_JGT; -+ case BPF_JSGT: return BPF_JSLE; -+ case BPF_JSGE: return BPF_JSLT; -+ case BPF_JSLT: return BPF_JSGE; -+ case BPF_JSLE: return BPF_JSGT; -+ } -+ return 0; -+} -+ -+/* Prepare a PC-relative jump operation */ -+static void setup_jmp(struct jit_context *ctx, u8 bpf_op, -+ s16 bpf_off, u8 *jit_op, s32 *jit_off) -+{ -+ u32 *descp = &ctx->descriptors[ctx->bpf_index]; -+ int op = bpf_op; -+ int offset = 0; -+ -+ /* Do not compute offsets on the first pass */ -+ if (INDEX(*descp) == 0) -+ goto done; -+ -+ /* Skip jumps never taken */ -+ if (bpf_op == JIT_JNOP) -+ goto done; -+ -+ /* Convert jumps always taken */ -+ if (bpf_op == BPF_JA) -+ *descp |= JIT_DESC_CONVERT; -+ -+ /* -+ * Current ctx->jit_index points to the start of the branch preamble. -+ * Since the preamble differs among different branch conditionals, -+ * the current index cannot be used to compute the branch offset. -+ * Instead, we use the offset table value for the next instruction, -+ * which gives the index immediately after the branch delay slot. -+ */ -+ if (!CONVERTED(*descp)) { -+ int target = ctx->bpf_index + bpf_off + 1; -+ int origin = ctx->bpf_index + 1; -+ -+ offset = (INDEX(ctx->descriptors[target]) - -+ INDEX(ctx->descriptors[origin]) + 1) * sizeof(u32); -+ } -+ -+ /* -+ * The PC-relative branch offset field on MIPS is 18 bits signed, -+ * so if the computed offset is larger than this we generate a an -+ * absolute jump that we skip with an inverted conditional branch. -+ */ -+ if (CONVERTED(*descp) || offset < -0x20000 || offset > 0x1ffff) { -+ offset = 3 * sizeof(u32); -+ op = invert_jmp(bpf_op); -+ ctx->changes += !CONVERTED(*descp); -+ *descp |= JIT_DESC_CONVERT; -+ } -+ -+done: -+ *jit_off = offset; -+ *jit_op = op; -+} -+ -+/* Prepare a PC-relative jump operation with immediate conditional */ -+void setup_jmp_i(struct jit_context *ctx, s32 imm, u8 width, -+ u8 bpf_op, s16 bpf_off, u8 *jit_op, s32 *jit_off) -+{ -+ bool always = false; -+ bool never = false; -+ -+ switch (bpf_op) { -+ case BPF_JEQ: -+ case BPF_JNE: -+ break; -+ case BPF_JSET: -+ case BPF_JLT: -+ never = imm == 0; -+ break; -+ case BPF_JGE: -+ always = imm == 0; -+ break; -+ case BPF_JGT: -+ never = (u32)imm == U32_MAX; -+ break; -+ case BPF_JLE: -+ always = (u32)imm == U32_MAX; -+ break; -+ case BPF_JSGT: -+ never = imm == S32_MAX && width == 32; -+ break; -+ case BPF_JSGE: -+ always = imm == S32_MIN && width == 32; -+ break; -+ case BPF_JSLT: -+ never = imm == S32_MIN && width == 32; -+ break; -+ case BPF_JSLE: -+ always = imm == S32_MAX && width == 32; -+ break; -+ } -+ -+ if (never) -+ bpf_op = JIT_JNOP; -+ if (always) -+ bpf_op = BPF_JA; -+ setup_jmp(ctx, bpf_op, bpf_off, jit_op, jit_off); -+} -+ -+/* Prepare a PC-relative jump operation with register conditional */ -+void setup_jmp_r(struct jit_context *ctx, bool same_reg, -+ u8 bpf_op, s16 bpf_off, u8 *jit_op, s32 *jit_off) -+{ -+ switch (bpf_op) { -+ case BPF_JSET: -+ break; -+ case BPF_JEQ: -+ case BPF_JGE: -+ case BPF_JLE: -+ case BPF_JSGE: -+ case BPF_JSLE: -+ if (same_reg) -+ bpf_op = BPF_JA; -+ break; -+ case BPF_JNE: -+ case BPF_JLT: -+ case BPF_JGT: -+ case BPF_JSGT: -+ case BPF_JSLT: -+ if (same_reg) -+ bpf_op = JIT_JNOP; -+ break; -+ } -+ setup_jmp(ctx, bpf_op, bpf_off, jit_op, jit_off); -+} -+ -+/* Finish a PC-relative jump operation */ -+int finish_jmp(struct jit_context *ctx, u8 jit_op, s16 bpf_off) -+{ -+ /* Emit conditional branch delay slot */ -+ if (jit_op != JIT_JNOP) -+ emit(ctx, nop); -+ /* -+ * Emit an absolute long jump with delay slot, -+ * if the PC-relative branch was converted. -+ */ -+ if (CONVERTED(ctx->descriptors[ctx->bpf_index])) { -+ int target = get_target(ctx, ctx->bpf_index + bpf_off + 1); -+ -+ if (target < 0) -+ return -1; -+ emit(ctx, j, target); -+ emit(ctx, nop); -+ } -+ return 0; -+} -+ -+/* Jump immediate (32-bit) */ -+void emit_jmp_i(struct jit_context *ctx, u8 dst, s32 imm, s32 off, u8 op) -+{ -+ switch (op) { -+ /* No-op, used internally for branch optimization */ -+ case JIT_JNOP: -+ break; -+ /* PC += off if dst & imm */ -+ case BPF_JSET: -+ emit(ctx, andi, MIPS_R_T9, dst, (u16)imm); -+ emit(ctx, bnez, MIPS_R_T9, off); -+ break; -+ /* PC += off if (dst & imm) == 0 (not in BPF, used for long jumps) */ -+ case JIT_JNSET: -+ emit(ctx, andi, MIPS_R_T9, dst, (u16)imm); -+ emit(ctx, beqz, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst > imm */ -+ case BPF_JGT: -+ emit(ctx, sltiu, MIPS_R_T9, dst, imm + 1); -+ emit(ctx, beqz, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst >= imm */ -+ case BPF_JGE: -+ emit(ctx, sltiu, MIPS_R_T9, dst, imm); -+ emit(ctx, beqz, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst < imm */ -+ case BPF_JLT: -+ emit(ctx, sltiu, MIPS_R_T9, dst, imm); -+ emit(ctx, bnez, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst <= imm */ -+ case BPF_JLE: -+ emit(ctx, sltiu, MIPS_R_T9, dst, imm + 1); -+ emit(ctx, bnez, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst > imm (signed) */ -+ case BPF_JSGT: -+ emit(ctx, slti, MIPS_R_T9, dst, imm + 1); -+ emit(ctx, beqz, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst >= imm (signed) */ -+ case BPF_JSGE: -+ emit(ctx, slti, MIPS_R_T9, dst, imm); -+ emit(ctx, beqz, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst < imm (signed) */ -+ case BPF_JSLT: -+ emit(ctx, slti, MIPS_R_T9, dst, imm); -+ emit(ctx, bnez, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst <= imm (signed) */ -+ case BPF_JSLE: -+ emit(ctx, slti, MIPS_R_T9, dst, imm + 1); -+ emit(ctx, bnez, MIPS_R_T9, off); -+ break; -+ } -+} -+ -+/* Jump register (32-bit) */ -+void emit_jmp_r(struct jit_context *ctx, u8 dst, u8 src, s32 off, u8 op) -+{ -+ switch (op) { -+ /* No-op, used internally for branch optimization */ -+ case JIT_JNOP: -+ break; -+ /* PC += off if dst == src */ -+ case BPF_JEQ: -+ emit(ctx, beq, dst, src, off); -+ break; -+ /* PC += off if dst != src */ -+ case BPF_JNE: -+ emit(ctx, bne, dst, src, off); -+ break; -+ /* PC += off if dst & src */ -+ case BPF_JSET: -+ emit(ctx, and, MIPS_R_T9, dst, src); -+ emit(ctx, bnez, MIPS_R_T9, off); -+ break; -+ /* PC += off if (dst & imm) == 0 (not in BPF, used for long jumps) */ -+ case JIT_JNSET: -+ emit(ctx, and, MIPS_R_T9, dst, src); -+ emit(ctx, beqz, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst > src */ -+ case BPF_JGT: -+ emit(ctx, sltu, MIPS_R_T9, src, dst); -+ emit(ctx, bnez, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst >= src */ -+ case BPF_JGE: -+ emit(ctx, sltu, MIPS_R_T9, dst, src); -+ emit(ctx, beqz, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst < src */ -+ case BPF_JLT: -+ emit(ctx, sltu, MIPS_R_T9, dst, src); -+ emit(ctx, bnez, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst <= src */ -+ case BPF_JLE: -+ emit(ctx, sltu, MIPS_R_T9, src, dst); -+ emit(ctx, beqz, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst > src (signed) */ -+ case BPF_JSGT: -+ emit(ctx, slt, MIPS_R_T9, src, dst); -+ emit(ctx, bnez, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst >= src (signed) */ -+ case BPF_JSGE: -+ emit(ctx, slt, MIPS_R_T9, dst, src); -+ emit(ctx, beqz, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst < src (signed) */ -+ case BPF_JSLT: -+ emit(ctx, slt, MIPS_R_T9, dst, src); -+ emit(ctx, bnez, MIPS_R_T9, off); -+ break; -+ /* PC += off if dst <= src (signed) */ -+ case BPF_JSLE: -+ emit(ctx, slt, MIPS_R_T9, src, dst); -+ emit(ctx, beqz, MIPS_R_T9, off); -+ break; -+ } -+} -+ -+/* Jump always */ -+int emit_ja(struct jit_context *ctx, s16 off) -+{ -+ int target = get_target(ctx, ctx->bpf_index + off + 1); -+ -+ if (target < 0) -+ return -1; -+ emit(ctx, j, target); -+ emit(ctx, nop); -+ return 0; -+} -+ -+/* Jump to epilogue */ -+int emit_exit(struct jit_context *ctx) -+{ -+ int target = get_target(ctx, ctx->program->len); -+ -+ if (target < 0) -+ return -1; -+ emit(ctx, j, target); -+ emit(ctx, nop); -+ return 0; -+} -+ -+/* Build the program body from eBPF bytecode */ -+static int build_body(struct jit_context *ctx) -+{ -+ const struct bpf_prog *prog = ctx->program; -+ unsigned int i; -+ -+ ctx->stack_used = 0; -+ for (i = 0; i < prog->len; i++) { -+ const struct bpf_insn *insn = &prog->insnsi[i]; -+ u32 *descp = &ctx->descriptors[i]; -+ int ret; -+ -+ access_reg(ctx, insn->src_reg); -+ access_reg(ctx, insn->dst_reg); -+ -+ ctx->bpf_index = i; -+ if (ctx->target == NULL) { -+ ctx->changes += INDEX(*descp) != ctx->jit_index; -+ *descp &= JIT_DESC_CONVERT; -+ *descp |= ctx->jit_index; -+ } -+ -+ ret = build_insn(insn, ctx); -+ if (ret < 0) -+ return ret; -+ -+ if (ret > 0) { -+ i++; -+ if (ctx->target == NULL) -+ descp[1] = ctx->jit_index; -+ } -+ } -+ -+ /* Store the end offset, where the epilogue begins */ -+ ctx->descriptors[prog->len] = ctx->jit_index; -+ return 0; -+} -+ -+/* Set the branch conversion flag on all instructions */ -+static void set_convert_flag(struct jit_context *ctx, bool enable) -+{ -+ const struct bpf_prog *prog = ctx->program; -+ u32 flag = enable ? JIT_DESC_CONVERT : 0; -+ unsigned int i; -+ -+ for (i = 0; i <= prog->len; i++) -+ ctx->descriptors[i] = INDEX(ctx->descriptors[i]) | flag; -+} -+ -+static void jit_fill_hole(void *area, unsigned int size) -+{ -+ u32 *p; -+ -+ /* We are guaranteed to have aligned memory. */ -+ for (p = area; size >= sizeof(u32); size -= sizeof(u32)) -+ uasm_i_break(&p, BRK_BUG); /* Increments p */ -+} -+ -+bool bpf_jit_needs_zext(void) -+{ -+ return true; -+} -+ -+struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog) -+{ -+ struct bpf_prog *tmp, *orig_prog = prog; -+ struct bpf_binary_header *header = NULL; -+ struct jit_context ctx; -+ bool tmp_blinded = false; -+ unsigned int tmp_idx; -+ unsigned int image_size; -+ u8 *image_ptr; -+ int tries; -+ -+ /* -+ * If BPF JIT was not enabled then we must fall back to -+ * the interpreter. -+ */ -+ if (!prog->jit_requested) -+ return orig_prog; -+ /* -+ * If constant blinding was enabled and we failed during blinding -+ * then we must fall back to the interpreter. Otherwise, we save -+ * the new JITed code. -+ */ -+ tmp = bpf_jit_blind_constants(prog); -+ if (IS_ERR(tmp)) -+ return orig_prog; -+ if (tmp != prog) { -+ tmp_blinded = true; -+ prog = tmp; -+ } -+ -+ memset(&ctx, 0, sizeof(ctx)); -+ ctx.program = prog; -+ -+ /* -+ * Not able to allocate memory for descriptors[], then -+ * we must fall back to the interpreter -+ */ -+ ctx.descriptors = kcalloc(prog->len + 1, sizeof(*ctx.descriptors), -+ GFP_KERNEL); -+ if (ctx.descriptors == NULL) -+ goto out_err; -+ -+ /* First pass discovers used resources */ -+ if (build_body(&ctx) < 0) -+ goto out_err; -+ /* -+ * Second pass computes instruction offsets. -+ * If any PC-relative branches are out of range, a sequence of -+ * a PC-relative branch + a jump is generated, and we have to -+ * try again from the beginning to generate the new offsets. -+ * This is done until no additional conversions are necessary. -+ * The last two iterations are done with all branches being -+ * converted, to guarantee offset table convergence within a -+ * fixed number of iterations. -+ */ -+ ctx.jit_index = 0; -+ build_prologue(&ctx); -+ tmp_idx = ctx.jit_index; -+ -+ tries = JIT_MAX_ITERATIONS; -+ do { -+ ctx.jit_index = tmp_idx; -+ ctx.changes = 0; -+ if (tries == 2) -+ set_convert_flag(&ctx, true); -+ if (build_body(&ctx) < 0) -+ goto out_err; -+ } while (ctx.changes > 0 && --tries > 0); -+ -+ if (WARN_ONCE(ctx.changes > 0, "JIT offsets failed to converge")) -+ goto out_err; -+ -+ build_epilogue(&ctx, MIPS_R_RA); -+ -+ /* Now we know the size of the structure to make */ -+ image_size = sizeof(u32) * ctx.jit_index; -+ header = bpf_jit_binary_alloc(image_size, &image_ptr, -+ sizeof(u32), jit_fill_hole); -+ /* -+ * Not able to allocate memory for the structure then -+ * we must fall back to the interpretation -+ */ -+ if (header == NULL) -+ goto out_err; -+ -+ /* Actual pass to generate final JIT code */ -+ ctx.target = (u32 *)image_ptr; -+ ctx.jit_index = 0; -+ -+ /* -+ * If building the JITed code fails somehow, -+ * we fall back to the interpretation. -+ */ -+ build_prologue(&ctx); -+ if (build_body(&ctx) < 0) -+ goto out_err; -+ build_epilogue(&ctx, MIPS_R_RA); -+ -+ /* Populate line info meta data */ -+ set_convert_flag(&ctx, false); -+ bpf_prog_fill_jited_linfo(prog, &ctx.descriptors[1]); -+ -+ /* Set as read-only exec and flush instruction cache */ -+ bpf_jit_binary_lock_ro(header); -+ flush_icache_range((unsigned long)header, -+ (unsigned long)&ctx.target[ctx.jit_index]); -+ -+ if (bpf_jit_enable > 1) -+ bpf_jit_dump(prog->len, image_size, 2, ctx.target); -+ -+ prog->bpf_func = (void *)ctx.target; -+ prog->jited = 1; -+ prog->jited_len = image_size; -+ -+out: -+ if (tmp_blinded) -+ bpf_jit_prog_release_other(prog, prog == orig_prog ? -+ tmp : orig_prog); -+ kfree(ctx.descriptors); -+ return prog; -+ -+out_err: -+ prog = orig_prog; -+ if (header) -+ bpf_jit_binary_free(header); -+ goto out; -+} ---- /dev/null -+++ b/arch/mips/net/bpf_jit_comp.h -@@ -0,0 +1,211 @@ -+/* SPDX-License-Identifier: GPL-2.0-only */ -+/* -+ * Just-In-Time compiler for eBPF bytecode on 32-bit and 64-bit MIPS. -+ * -+ * Copyright (c) 2021 Anyfi Networks AB. -+ * Author: Johan Almbladh -+ * -+ * Based on code and ideas from -+ * Copyright (c) 2017 Cavium, Inc. -+ * Copyright (c) 2017 Shubham Bansal -+ * Copyright (c) 2011 Mircea Gherzan -+ */ -+ -+#ifndef _BPF_JIT_COMP_H -+#define _BPF_JIT_COMP_H -+ -+/* MIPS registers */ -+#define MIPS_R_ZERO 0 /* Const zero */ -+#define MIPS_R_AT 1 /* Asm temp */ -+#define MIPS_R_V0 2 /* Result */ -+#define MIPS_R_V1 3 /* Result */ -+#define MIPS_R_A0 4 /* Argument */ -+#define MIPS_R_A1 5 /* Argument */ -+#define MIPS_R_A2 6 /* Argument */ -+#define MIPS_R_A3 7 /* Argument */ -+#define MIPS_R_A4 8 /* Arg (n64) */ -+#define MIPS_R_A5 9 /* Arg (n64) */ -+#define MIPS_R_A6 10 /* Arg (n64) */ -+#define MIPS_R_A7 11 /* Arg (n64) */ -+#define MIPS_R_T0 8 /* Temp (o32) */ -+#define MIPS_R_T1 9 /* Temp (o32) */ -+#define MIPS_R_T2 10 /* Temp (o32) */ -+#define MIPS_R_T3 11 /* Temp (o32) */ -+#define MIPS_R_T4 12 /* Temporary */ -+#define MIPS_R_T5 13 /* Temporary */ -+#define MIPS_R_T6 14 /* Temporary */ -+#define MIPS_R_T7 15 /* Temporary */ -+#define MIPS_R_S0 16 /* Saved */ -+#define MIPS_R_S1 17 /* Saved */ -+#define MIPS_R_S2 18 /* Saved */ -+#define MIPS_R_S3 19 /* Saved */ -+#define MIPS_R_S4 20 /* Saved */ -+#define MIPS_R_S5 21 /* Saved */ -+#define MIPS_R_S6 22 /* Saved */ -+#define MIPS_R_S7 23 /* Saved */ -+#define MIPS_R_T8 24 /* Temporary */ -+#define MIPS_R_T9 25 /* Temporary */ -+/* MIPS_R_K0 26 Reserved */ -+/* MIPS_R_K1 27 Reserved */ -+#define MIPS_R_GP 28 /* Global ptr */ -+#define MIPS_R_SP 29 /* Stack ptr */ -+#define MIPS_R_FP 30 /* Frame ptr */ -+#define MIPS_R_RA 31 /* Return */ -+ -+/* -+ * Jump address mask for immediate jumps. The four most significant bits -+ * must be equal to PC. -+ */ -+#define MIPS_JMP_MASK 0x0fffffffUL -+ -+/* Maximum number of iterations in offset table computation */ -+#define JIT_MAX_ITERATIONS 8 -+ -+/* -+ * Jump pseudo-instructions used internally -+ * for branch conversion and branch optimization. -+ */ -+#define JIT_JNSET 0xe0 -+#define JIT_JNOP 0xf0 -+ -+/* Descriptor flag for PC-relative branch conversion */ -+#define JIT_DESC_CONVERT BIT(31) -+ -+/* JIT context for an eBPF program */ -+struct jit_context { -+ struct bpf_prog *program; /* The eBPF program being JITed */ -+ u32 *descriptors; /* eBPF to JITed CPU insn descriptors */ -+ u32 *target; /* JITed code buffer */ -+ u32 bpf_index; /* Index of current BPF program insn */ -+ u32 jit_index; /* Index of current JIT target insn */ -+ u32 changes; /* Number of PC-relative branch conv */ -+ u32 accessed; /* Bit mask of read eBPF registers */ -+ u32 clobbered; /* Bit mask of modified CPU registers */ -+ u32 stack_size; /* Total allocated stack size in bytes */ -+ u32 saved_size; /* Size of callee-saved registers */ -+ u32 stack_used; /* Stack size used for function calls */ -+}; -+ -+/* Emit the instruction if the JIT memory space has been allocated */ -+#define emit(ctx, func, ...) \ -+do { \ -+ if ((ctx)->target != NULL) { \ -+ u32 *p = &(ctx)->target[ctx->jit_index]; \ -+ uasm_i_##func(&p, ##__VA_ARGS__); \ -+ } \ -+ (ctx)->jit_index++; \ -+} while (0) -+ -+/* -+ * Mark a BPF register as accessed, it needs to be -+ * initialized by the program if expected, e.g. FP. -+ */ -+static inline void access_reg(struct jit_context *ctx, u8 reg) -+{ -+ ctx->accessed |= BIT(reg); -+} -+ -+/* -+ * Mark a CPU register as clobbered, it needs to be -+ * saved/restored by the program if callee-saved. -+ */ -+static inline void clobber_reg(struct jit_context *ctx, u8 reg) -+{ -+ ctx->clobbered |= BIT(reg); -+} -+ -+/* -+ * Push registers on the stack, starting at a given depth from the stack -+ * pointer and increasing. The next depth to be written is returned. -+ */ -+int push_regs(struct jit_context *ctx, u32 mask, u32 excl, int depth); -+ -+/* -+ * Pop registers from the stack, starting at a given depth from the stack -+ * pointer and increasing. The next depth to be read is returned. -+ */ -+int pop_regs(struct jit_context *ctx, u32 mask, u32 excl, int depth); -+ -+/* Compute the 28-bit jump target address from a BPF program location */ -+int get_target(struct jit_context *ctx, u32 loc); -+ -+/* Compute the PC-relative offset to relative BPF program offset */ -+int get_offset(const struct jit_context *ctx, int off); -+ -+/* dst = imm (32-bit) */ -+void emit_mov_i(struct jit_context *ctx, u8 dst, s32 imm); -+ -+/* dst = src (32-bit) */ -+void emit_mov_r(struct jit_context *ctx, u8 dst, u8 src); -+ -+/* Validate ALU/ALU64 immediate range */ -+bool valid_alu_i(u8 op, s32 imm); -+ -+/* Rewrite ALU/ALU64 immediate operation */ -+bool rewrite_alu_i(u8 op, s32 imm, u8 *alu, s32 *val); -+ -+/* ALU immediate operation (32-bit) */ -+void emit_alu_i(struct jit_context *ctx, u8 dst, s32 imm, u8 op); -+ -+/* ALU register operation (32-bit) */ -+void emit_alu_r(struct jit_context *ctx, u8 dst, u8 src, u8 op); -+ -+/* Atomic read-modify-write (32-bit) */ -+void emit_atomic_r(struct jit_context *ctx, u8 dst, u8 src, s16 off, u8 code); -+ -+/* Atomic compare-and-exchange (32-bit) */ -+void emit_cmpxchg_r(struct jit_context *ctx, u8 dst, u8 src, u8 res, s16 off); -+ -+/* Swap bytes and truncate a register word or half word */ -+void emit_bswap_r(struct jit_context *ctx, u8 dst, u32 width); -+ -+/* Validate JMP/JMP32 immediate range */ -+bool valid_jmp_i(u8 op, s32 imm); -+ -+/* Prepare a PC-relative jump operation with immediate conditional */ -+void setup_jmp_i(struct jit_context *ctx, s32 imm, u8 width, -+ u8 bpf_op, s16 bpf_off, u8 *jit_op, s32 *jit_off); -+ -+/* Prepare a PC-relative jump operation with register conditional */ -+void setup_jmp_r(struct jit_context *ctx, bool same_reg, -+ u8 bpf_op, s16 bpf_off, u8 *jit_op, s32 *jit_off); -+ -+/* Finish a PC-relative jump operation */ -+int finish_jmp(struct jit_context *ctx, u8 jit_op, s16 bpf_off); -+ -+/* Conditional JMP/JMP32 immediate */ -+void emit_jmp_i(struct jit_context *ctx, u8 dst, s32 imm, s32 off, u8 op); -+ -+/* Conditional JMP/JMP32 register */ -+void emit_jmp_r(struct jit_context *ctx, u8 dst, u8 src, s32 off, u8 op); -+ -+/* Jump always */ -+int emit_ja(struct jit_context *ctx, s16 off); -+ -+/* Jump to epilogue */ -+int emit_exit(struct jit_context *ctx); -+ -+/* -+ * Build program prologue to set up the stack and registers. -+ * This function is implemented separately for 32-bit and 64-bit JITs. -+ */ -+void build_prologue(struct jit_context *ctx); -+ -+/* -+ * Build the program epilogue to restore the stack and registers. -+ * This function is implemented separately for 32-bit and 64-bit JITs. -+ */ -+void build_epilogue(struct jit_context *ctx, int dest_reg); -+ -+/* -+ * Convert an eBPF instruction to native instruction, i.e -+ * JITs an eBPF instruction. -+ * Returns : -+ * 0 - Successfully JITed an 8-byte eBPF instruction -+ * >0 - Successfully JITed a 16-byte eBPF instruction -+ * <0 - Failed to JIT. -+ * This function is implemented separately for 32-bit and 64-bit JITs. -+ */ -+int build_insn(const struct bpf_insn *insn, struct jit_context *ctx); -+ -+#endif /* _BPF_JIT_COMP_H */ ---- /dev/null -+++ b/arch/mips/net/bpf_jit_comp32.c -@@ -0,0 +1,1741 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+/* -+ * Just-In-Time compiler for eBPF bytecode on MIPS. -+ * Implementation of JIT functions for 32-bit CPUs. -+ * -+ * Copyright (c) 2021 Anyfi Networks AB. -+ * Author: Johan Almbladh -+ * -+ * Based on code and ideas from -+ * Copyright (c) 2017 Cavium, Inc. -+ * Copyright (c) 2017 Shubham Bansal -+ * Copyright (c) 2011 Mircea Gherzan -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "bpf_jit_comp.h" -+ -+/* MIPS a4-a7 are not available in the o32 ABI */ -+#undef MIPS_R_A4 -+#undef MIPS_R_A5 -+#undef MIPS_R_A6 -+#undef MIPS_R_A7 -+ -+/* Stack is 8-byte aligned in o32 ABI */ -+#define MIPS_STACK_ALIGNMENT 8 -+ -+/* -+ * The top 16 bytes of a stack frame is reserved for the callee in O32 ABI. -+ * This corresponds to stack space for register arguments a0-a3. -+ */ -+#define JIT_RESERVED_STACK 16 -+ -+/* Temporary 64-bit register used by JIT */ -+#define JIT_REG_TMP MAX_BPF_JIT_REG -+ -+/* -+ * Number of prologue bytes to skip when doing a tail call. -+ * Tail call count (TCC) initialization (8 bytes) always, plus -+ * R0-to-v0 assignment (4 bytes) if big endian. -+ */ -+#ifdef __BIG_ENDIAN -+#define JIT_TCALL_SKIP 12 -+#else -+#define JIT_TCALL_SKIP 8 -+#endif -+ -+/* CPU registers holding the callee return value */ -+#define JIT_RETURN_REGS \ -+ (BIT(MIPS_R_V0) | \ -+ BIT(MIPS_R_V1)) -+ -+/* CPU registers arguments passed to callee directly */ -+#define JIT_ARG_REGS \ -+ (BIT(MIPS_R_A0) | \ -+ BIT(MIPS_R_A1) | \ -+ BIT(MIPS_R_A2) | \ -+ BIT(MIPS_R_A3)) -+ -+/* CPU register arguments passed to callee on stack */ -+#define JIT_STACK_REGS \ -+ (BIT(MIPS_R_T0) | \ -+ BIT(MIPS_R_T1) | \ -+ BIT(MIPS_R_T2) | \ -+ BIT(MIPS_R_T3) | \ -+ BIT(MIPS_R_T4) | \ -+ BIT(MIPS_R_T5)) -+ -+/* Caller-saved CPU registers */ -+#define JIT_CALLER_REGS \ -+ (JIT_RETURN_REGS | \ -+ JIT_ARG_REGS | \ -+ JIT_STACK_REGS) -+ -+/* Callee-saved CPU registers */ -+#define JIT_CALLEE_REGS \ -+ (BIT(MIPS_R_S0) | \ -+ BIT(MIPS_R_S1) | \ -+ BIT(MIPS_R_S2) | \ -+ BIT(MIPS_R_S3) | \ -+ BIT(MIPS_R_S4) | \ -+ BIT(MIPS_R_S5) | \ -+ BIT(MIPS_R_S6) | \ -+ BIT(MIPS_R_S7) | \ -+ BIT(MIPS_R_GP) | \ -+ BIT(MIPS_R_FP) | \ -+ BIT(MIPS_R_RA)) -+ -+/* -+ * Mapping of 64-bit eBPF registers to 32-bit native MIPS registers. -+ * -+ * 1) Native register pairs are ordered according to CPU endiannes, following -+ * the MIPS convention for passing 64-bit arguments and return values. -+ * 2) The eBPF return value, arguments and callee-saved registers are mapped -+ * to their native MIPS equivalents. -+ * 3) Since the 32 highest bits in the eBPF FP register are always zero, -+ * only one general-purpose register is actually needed for the mapping. -+ * We use the fp register for this purpose, and map the highest bits to -+ * the MIPS register r0 (zero). -+ * 4) We use the MIPS gp and at registers as internal temporary registers -+ * for constant blinding. The gp register is callee-saved. -+ * 5) One 64-bit temporary register is mapped for use when sign-extending -+ * immediate operands. MIPS registers t6-t9 are available to the JIT -+ * for as temporaries when implementing complex 64-bit operations. -+ * -+ * With this scheme all eBPF registers are being mapped to native MIPS -+ * registers without having to use any stack scratch space. The direct -+ * register mapping (2) simplifies the handling of function calls. -+ */ -+static const u8 bpf2mips32[][2] = { -+ /* Return value from in-kernel function, and exit value from eBPF */ -+ [BPF_REG_0] = {MIPS_R_V1, MIPS_R_V0}, -+ /* Arguments from eBPF program to in-kernel function */ -+ [BPF_REG_1] = {MIPS_R_A1, MIPS_R_A0}, -+ [BPF_REG_2] = {MIPS_R_A3, MIPS_R_A2}, -+ /* Remaining arguments, to be passed on the stack per O32 ABI */ -+ [BPF_REG_3] = {MIPS_R_T1, MIPS_R_T0}, -+ [BPF_REG_4] = {MIPS_R_T3, MIPS_R_T2}, -+ [BPF_REG_5] = {MIPS_R_T5, MIPS_R_T4}, -+ /* Callee-saved registers that in-kernel function will preserve */ -+ [BPF_REG_6] = {MIPS_R_S1, MIPS_R_S0}, -+ [BPF_REG_7] = {MIPS_R_S3, MIPS_R_S2}, -+ [BPF_REG_8] = {MIPS_R_S5, MIPS_R_S4}, -+ [BPF_REG_9] = {MIPS_R_S7, MIPS_R_S6}, -+ /* Read-only frame pointer to access the eBPF stack */ -+#ifdef __BIG_ENDIAN -+ [BPF_REG_FP] = {MIPS_R_FP, MIPS_R_ZERO}, -+#else -+ [BPF_REG_FP] = {MIPS_R_ZERO, MIPS_R_FP}, -+#endif -+ /* Temporary register for blinding constants */ -+ [BPF_REG_AX] = {MIPS_R_GP, MIPS_R_AT}, -+ /* Temporary register for internal JIT use */ -+ [JIT_REG_TMP] = {MIPS_R_T7, MIPS_R_T6}, -+}; -+ -+/* Get low CPU register for a 64-bit eBPF register mapping */ -+static inline u8 lo(const u8 reg[]) -+{ -+#ifdef __BIG_ENDIAN -+ return reg[0]; -+#else -+ return reg[1]; -+#endif -+} -+ -+/* Get high CPU register for a 64-bit eBPF register mapping */ -+static inline u8 hi(const u8 reg[]) -+{ -+#ifdef __BIG_ENDIAN -+ return reg[1]; -+#else -+ return reg[0]; -+#endif -+} -+ -+/* -+ * Mark a 64-bit CPU register pair as clobbered, it needs to be -+ * saved/restored by the program if callee-saved. -+ */ -+static void clobber_reg64(struct jit_context *ctx, const u8 reg[]) -+{ -+ clobber_reg(ctx, reg[0]); -+ clobber_reg(ctx, reg[1]); -+} -+ -+/* dst = imm (sign-extended) */ -+static void emit_mov_se_i64(struct jit_context *ctx, const u8 dst[], s32 imm) -+{ -+ emit_mov_i(ctx, lo(dst), imm); -+ if (imm < 0) -+ emit(ctx, addiu, hi(dst), MIPS_R_ZERO, -1); -+ else -+ emit(ctx, move, hi(dst), MIPS_R_ZERO); -+ clobber_reg64(ctx, dst); -+} -+ -+/* Zero extension, if verifier does not do it for us */ -+static void emit_zext_ver(struct jit_context *ctx, const u8 dst[]) -+{ -+ if (!ctx->program->aux->verifier_zext) { -+ emit(ctx, move, hi(dst), MIPS_R_ZERO); -+ clobber_reg(ctx, hi(dst)); -+ } -+} -+ -+/* Load delay slot, if ISA mandates it */ -+static void emit_load_delay(struct jit_context *ctx) -+{ -+ if (!cpu_has_mips_2_3_4_5_r) -+ emit(ctx, nop); -+} -+ -+/* ALU immediate operation (64-bit) */ -+static void emit_alu_i64(struct jit_context *ctx, -+ const u8 dst[], s32 imm, u8 op) -+{ -+ u8 src = MIPS_R_T6; -+ -+ /* -+ * ADD/SUB with all but the max negative imm can be handled by -+ * inverting the operation and the imm value, saving one insn. -+ */ -+ if (imm > S32_MIN && imm < 0) -+ switch (op) { -+ case BPF_ADD: -+ op = BPF_SUB; -+ imm = -imm; -+ break; -+ case BPF_SUB: -+ op = BPF_ADD; -+ imm = -imm; -+ break; -+ } -+ -+ /* Move immediate to temporary register */ -+ emit_mov_i(ctx, src, imm); -+ -+ switch (op) { -+ /* dst = dst + imm */ -+ case BPF_ADD: -+ emit(ctx, addu, lo(dst), lo(dst), src); -+ emit(ctx, sltu, MIPS_R_T9, lo(dst), src); -+ emit(ctx, addu, hi(dst), hi(dst), MIPS_R_T9); -+ if (imm < 0) -+ emit(ctx, addiu, hi(dst), hi(dst), -1); -+ break; -+ /* dst = dst - imm */ -+ case BPF_SUB: -+ emit(ctx, sltu, MIPS_R_T9, lo(dst), src); -+ emit(ctx, subu, lo(dst), lo(dst), src); -+ emit(ctx, subu, hi(dst), hi(dst), MIPS_R_T9); -+ if (imm < 0) -+ emit(ctx, addiu, hi(dst), hi(dst), 1); -+ break; -+ /* dst = dst | imm */ -+ case BPF_OR: -+ emit(ctx, or, lo(dst), lo(dst), src); -+ if (imm < 0) -+ emit(ctx, addiu, hi(dst), MIPS_R_ZERO, -1); -+ break; -+ /* dst = dst & imm */ -+ case BPF_AND: -+ emit(ctx, and, lo(dst), lo(dst), src); -+ if (imm >= 0) -+ emit(ctx, move, hi(dst), MIPS_R_ZERO); -+ break; -+ /* dst = dst ^ imm */ -+ case BPF_XOR: -+ emit(ctx, xor, lo(dst), lo(dst), src); -+ if (imm < 0) { -+ emit(ctx, subu, hi(dst), MIPS_R_ZERO, hi(dst)); -+ emit(ctx, addiu, hi(dst), hi(dst), -1); -+ } -+ break; -+ } -+ clobber_reg64(ctx, dst); -+} -+ -+/* ALU register operation (64-bit) */ -+static void emit_alu_r64(struct jit_context *ctx, -+ const u8 dst[], const u8 src[], u8 op) -+{ -+ switch (BPF_OP(op)) { -+ /* dst = dst + src */ -+ case BPF_ADD: -+ if (src == dst) { -+ emit(ctx, srl, MIPS_R_T9, lo(dst), 31); -+ emit(ctx, addu, lo(dst), lo(dst), lo(dst)); -+ } else { -+ emit(ctx, addu, lo(dst), lo(dst), lo(src)); -+ emit(ctx, sltu, MIPS_R_T9, lo(dst), lo(src)); -+ } -+ emit(ctx, addu, hi(dst), hi(dst), hi(src)); -+ emit(ctx, addu, hi(dst), hi(dst), MIPS_R_T9); -+ break; -+ /* dst = dst - src */ -+ case BPF_SUB: -+ emit(ctx, sltu, MIPS_R_T9, lo(dst), lo(src)); -+ emit(ctx, subu, lo(dst), lo(dst), lo(src)); -+ emit(ctx, subu, hi(dst), hi(dst), hi(src)); -+ emit(ctx, subu, hi(dst), hi(dst), MIPS_R_T9); -+ break; -+ /* dst = dst | src */ -+ case BPF_OR: -+ emit(ctx, or, lo(dst), lo(dst), lo(src)); -+ emit(ctx, or, hi(dst), hi(dst), hi(src)); -+ break; -+ /* dst = dst & src */ -+ case BPF_AND: -+ emit(ctx, and, lo(dst), lo(dst), lo(src)); -+ emit(ctx, and, hi(dst), hi(dst), hi(src)); -+ break; -+ /* dst = dst ^ src */ -+ case BPF_XOR: -+ emit(ctx, xor, lo(dst), lo(dst), lo(src)); -+ emit(ctx, xor, hi(dst), hi(dst), hi(src)); -+ break; -+ } -+ clobber_reg64(ctx, dst); -+} -+ -+/* ALU invert (64-bit) */ -+static void emit_neg_i64(struct jit_context *ctx, const u8 dst[]) -+{ -+ emit(ctx, sltu, MIPS_R_T9, MIPS_R_ZERO, lo(dst)); -+ emit(ctx, subu, lo(dst), MIPS_R_ZERO, lo(dst)); -+ emit(ctx, subu, hi(dst), MIPS_R_ZERO, hi(dst)); -+ emit(ctx, subu, hi(dst), hi(dst), MIPS_R_T9); -+ -+ clobber_reg64(ctx, dst); -+} -+ -+/* ALU shift immediate (64-bit) */ -+static void emit_shift_i64(struct jit_context *ctx, -+ const u8 dst[], u32 imm, u8 op) -+{ -+ switch (BPF_OP(op)) { -+ /* dst = dst << imm */ -+ case BPF_LSH: -+ if (imm < 32) { -+ emit(ctx, srl, MIPS_R_T9, lo(dst), 32 - imm); -+ emit(ctx, sll, lo(dst), lo(dst), imm); -+ emit(ctx, sll, hi(dst), hi(dst), imm); -+ emit(ctx, or, hi(dst), hi(dst), MIPS_R_T9); -+ } else { -+ emit(ctx, sll, hi(dst), lo(dst), imm - 32); -+ emit(ctx, move, lo(dst), MIPS_R_ZERO); -+ } -+ break; -+ /* dst = dst >> imm */ -+ case BPF_RSH: -+ if (imm < 32) { -+ emit(ctx, sll, MIPS_R_T9, hi(dst), 32 - imm); -+ emit(ctx, srl, lo(dst), lo(dst), imm); -+ emit(ctx, srl, hi(dst), hi(dst), imm); -+ emit(ctx, or, lo(dst), lo(dst), MIPS_R_T9); -+ } else { -+ emit(ctx, srl, lo(dst), hi(dst), imm - 32); -+ emit(ctx, move, hi(dst), MIPS_R_ZERO); -+ } -+ break; -+ /* dst = dst >> imm (arithmetic) */ -+ case BPF_ARSH: -+ if (imm < 32) { -+ emit(ctx, sll, MIPS_R_T9, hi(dst), 32 - imm); -+ emit(ctx, srl, lo(dst), lo(dst), imm); -+ emit(ctx, sra, hi(dst), hi(dst), imm); -+ emit(ctx, or, lo(dst), lo(dst), MIPS_R_T9); -+ } else { -+ emit(ctx, sra, lo(dst), hi(dst), imm - 32); -+ emit(ctx, sra, hi(dst), hi(dst), 31); -+ } -+ break; -+ } -+ clobber_reg64(ctx, dst); -+} -+ -+/* ALU shift register (64-bit) */ -+static void emit_shift_r64(struct jit_context *ctx, -+ const u8 dst[], u8 src, u8 op) -+{ -+ u8 t1 = MIPS_R_T8; -+ u8 t2 = MIPS_R_T9; -+ -+ emit(ctx, andi, t1, src, 32); /* t1 = src & 32 */ -+ emit(ctx, beqz, t1, 16); /* PC += 16 if t1 == 0 */ -+ emit(ctx, nor, t2, src, MIPS_R_ZERO); /* t2 = ~src (delay slot) */ -+ -+ switch (BPF_OP(op)) { -+ /* dst = dst << src */ -+ case BPF_LSH: -+ /* Next: shift >= 32 */ -+ emit(ctx, sllv, hi(dst), lo(dst), src); /* dh = dl << src */ -+ emit(ctx, move, lo(dst), MIPS_R_ZERO); /* dl = 0 */ -+ emit(ctx, b, 20); /* PC += 20 */ -+ /* +16: shift < 32 */ -+ emit(ctx, srl, t1, lo(dst), 1); /* t1 = dl >> 1 */ -+ emit(ctx, srlv, t1, t1, t2); /* t1 = t1 >> t2 */ -+ emit(ctx, sllv, lo(dst), lo(dst), src); /* dl = dl << src */ -+ emit(ctx, sllv, hi(dst), hi(dst), src); /* dh = dh << src */ -+ emit(ctx, or, hi(dst), hi(dst), t1); /* dh = dh | t1 */ -+ break; -+ /* dst = dst >> src */ -+ case BPF_RSH: -+ /* Next: shift >= 32 */ -+ emit(ctx, srlv, lo(dst), hi(dst), src); /* dl = dh >> src */ -+ emit(ctx, move, hi(dst), MIPS_R_ZERO); /* dh = 0 */ -+ emit(ctx, b, 20); /* PC += 20 */ -+ /* +16: shift < 32 */ -+ emit(ctx, sll, t1, hi(dst), 1); /* t1 = dl << 1 */ -+ emit(ctx, sllv, t1, t1, t2); /* t1 = t1 << t2 */ -+ emit(ctx, srlv, lo(dst), lo(dst), src); /* dl = dl >> src */ -+ emit(ctx, srlv, hi(dst), hi(dst), src); /* dh = dh >> src */ -+ emit(ctx, or, lo(dst), lo(dst), t1); /* dl = dl | t1 */ -+ break; -+ /* dst = dst >> src (arithmetic) */ -+ case BPF_ARSH: -+ /* Next: shift >= 32 */ -+ emit(ctx, srav, lo(dst), hi(dst), src); /* dl = dh >>a src */ -+ emit(ctx, sra, hi(dst), hi(dst), 31); /* dh = dh >>a 31 */ -+ emit(ctx, b, 20); /* PC += 20 */ -+ /* +16: shift < 32 */ -+ emit(ctx, sll, t1, hi(dst), 1); /* t1 = dl << 1 */ -+ emit(ctx, sllv, t1, t1, t2); /* t1 = t1 << t2 */ -+ emit(ctx, srlv, lo(dst), lo(dst), src); /* dl = dl >>a src */ -+ emit(ctx, srav, hi(dst), hi(dst), src); /* dh = dh >> src */ -+ emit(ctx, or, lo(dst), lo(dst), t1); /* dl = dl | t1 */ -+ break; -+ } -+ -+ /* +20: Done */ -+ clobber_reg64(ctx, dst); -+} -+ -+/* ALU mul immediate (64x32-bit) */ -+static void emit_mul_i64(struct jit_context *ctx, const u8 dst[], s32 imm) -+{ -+ u8 src = MIPS_R_T6; -+ u8 tmp = MIPS_R_T9; -+ -+ switch (imm) { -+ /* dst = dst * 1 is a no-op */ -+ case 1: -+ break; -+ /* dst = dst * -1 */ -+ case -1: -+ emit_neg_i64(ctx, dst); -+ break; -+ case 0: -+ emit_mov_r(ctx, lo(dst), MIPS_R_ZERO); -+ emit_mov_r(ctx, hi(dst), MIPS_R_ZERO); -+ break; -+ /* Full 64x32 multiply */ -+ default: -+ /* hi(dst) = hi(dst) * src(imm) */ -+ emit_mov_i(ctx, src, imm); -+ if (cpu_has_mips32r1 || cpu_has_mips32r6) { -+ emit(ctx, mul, hi(dst), hi(dst), src); -+ } else { -+ emit(ctx, multu, hi(dst), src); -+ emit(ctx, mflo, hi(dst)); -+ } -+ -+ /* hi(dst) = hi(dst) - lo(dst) */ -+ if (imm < 0) -+ emit(ctx, subu, hi(dst), hi(dst), lo(dst)); -+ -+ /* tmp = lo(dst) * src(imm) >> 32 */ -+ /* lo(dst) = lo(dst) * src(imm) */ -+ if (cpu_has_mips32r6) { -+ emit(ctx, muhu, tmp, lo(dst), src); -+ emit(ctx, mulu, lo(dst), lo(dst), src); -+ } else { -+ emit(ctx, multu, lo(dst), src); -+ emit(ctx, mflo, lo(dst)); -+ emit(ctx, mfhi, tmp); -+ } -+ -+ /* hi(dst) += tmp */ -+ emit(ctx, addu, hi(dst), hi(dst), tmp); -+ clobber_reg64(ctx, dst); -+ break; -+ } -+} -+ -+/* ALU mul register (64x64-bit) */ -+static void emit_mul_r64(struct jit_context *ctx, -+ const u8 dst[], const u8 src[]) -+{ -+ u8 acc = MIPS_R_T8; -+ u8 tmp = MIPS_R_T9; -+ -+ /* acc = hi(dst) * lo(src) */ -+ if (cpu_has_mips32r1 || cpu_has_mips32r6) { -+ emit(ctx, mul, acc, hi(dst), lo(src)); -+ } else { -+ emit(ctx, multu, hi(dst), lo(src)); -+ emit(ctx, mflo, acc); -+ } -+ -+ /* tmp = lo(dst) * hi(src) */ -+ if (cpu_has_mips32r1 || cpu_has_mips32r6) { -+ emit(ctx, mul, tmp, lo(dst), hi(src)); -+ } else { -+ emit(ctx, multu, lo(dst), hi(src)); -+ emit(ctx, mflo, tmp); -+ } -+ -+ /* acc += tmp */ -+ emit(ctx, addu, acc, acc, tmp); -+ -+ /* tmp = lo(dst) * lo(src) >> 32 */ -+ /* lo(dst) = lo(dst) * lo(src) */ -+ if (cpu_has_mips32r6) { -+ emit(ctx, muhu, tmp, lo(dst), lo(src)); -+ emit(ctx, mulu, lo(dst), lo(dst), lo(src)); -+ } else { -+ emit(ctx, multu, lo(dst), lo(src)); -+ emit(ctx, mflo, lo(dst)); -+ emit(ctx, mfhi, tmp); -+ } -+ -+ /* hi(dst) = acc + tmp */ -+ emit(ctx, addu, hi(dst), acc, tmp); -+ clobber_reg64(ctx, dst); -+} -+ -+/* Helper function for 64-bit modulo */ -+static u64 jit_mod64(u64 a, u64 b) -+{ -+ u64 rem; -+ -+ div64_u64_rem(a, b, &rem); -+ return rem; -+} -+ -+/* ALU div/mod register (64-bit) */ -+static void emit_divmod_r64(struct jit_context *ctx, -+ const u8 dst[], const u8 src[], u8 op) -+{ -+ const u8 *r0 = bpf2mips32[BPF_REG_0]; /* Mapped to v0-v1 */ -+ const u8 *r1 = bpf2mips32[BPF_REG_1]; /* Mapped to a0-a1 */ -+ const u8 *r2 = bpf2mips32[BPF_REG_2]; /* Mapped to a2-a3 */ -+ int exclude, k; -+ u32 addr = 0; -+ -+ /* Push caller-saved registers on stack */ -+ push_regs(ctx, ctx->clobbered & JIT_CALLER_REGS, -+ 0, JIT_RESERVED_STACK); -+ -+ /* Put 64-bit arguments 1 and 2 in registers a0-a3 */ -+ for (k = 0; k < 2; k++) { -+ emit(ctx, move, MIPS_R_T9, src[k]); -+ emit(ctx, move, r1[k], dst[k]); -+ emit(ctx, move, r2[k], MIPS_R_T9); -+ } -+ -+ /* Emit function call */ -+ switch (BPF_OP(op)) { -+ /* dst = dst / src */ -+ case BPF_DIV: -+ addr = (u32)&div64_u64; -+ break; -+ /* dst = dst % src */ -+ case BPF_MOD: -+ addr = (u32)&jit_mod64; -+ break; -+ } -+ emit_mov_i(ctx, MIPS_R_T9, addr); -+ emit(ctx, jalr, MIPS_R_RA, MIPS_R_T9); -+ emit(ctx, nop); /* Delay slot */ -+ -+ /* Store the 64-bit result in dst */ -+ emit(ctx, move, dst[0], r0[0]); -+ emit(ctx, move, dst[1], r0[1]); -+ -+ /* Restore caller-saved registers, excluding the computed result */ -+ exclude = BIT(lo(dst)) | BIT(hi(dst)); -+ pop_regs(ctx, ctx->clobbered & JIT_CALLER_REGS, -+ exclude, JIT_RESERVED_STACK); -+ emit_load_delay(ctx); -+ -+ clobber_reg64(ctx, dst); -+ clobber_reg(ctx, MIPS_R_V0); -+ clobber_reg(ctx, MIPS_R_V1); -+ clobber_reg(ctx, MIPS_R_RA); -+} -+ -+/* Swap bytes in a register word */ -+static void emit_swap8_r(struct jit_context *ctx, u8 dst, u8 src, u8 mask) -+{ -+ u8 tmp = MIPS_R_T9; -+ -+ emit(ctx, and, tmp, src, mask); /* tmp = src & 0x00ff00ff */ -+ emit(ctx, sll, tmp, tmp, 8); /* tmp = tmp << 8 */ -+ emit(ctx, srl, dst, src, 8); /* dst = src >> 8 */ -+ emit(ctx, and, dst, dst, mask); /* dst = dst & 0x00ff00ff */ -+ emit(ctx, or, dst, dst, tmp); /* dst = dst | tmp */ -+} -+ -+/* Swap half words in a register word */ -+static void emit_swap16_r(struct jit_context *ctx, u8 dst, u8 src) -+{ -+ u8 tmp = MIPS_R_T9; -+ -+ emit(ctx, sll, tmp, src, 16); /* tmp = src << 16 */ -+ emit(ctx, srl, dst, src, 16); /* dst = src >> 16 */ -+ emit(ctx, or, dst, dst, tmp); /* dst = dst | tmp */ -+} -+ -+/* Swap bytes and truncate a register double word, word or half word */ -+static void emit_bswap_r64(struct jit_context *ctx, const u8 dst[], u32 width) -+{ -+ u8 tmp = MIPS_R_T8; -+ -+ switch (width) { -+ /* Swap bytes in a double word */ -+ case 64: -+ if (cpu_has_mips32r2 || cpu_has_mips32r6) { -+ emit(ctx, rotr, tmp, hi(dst), 16); -+ emit(ctx, rotr, hi(dst), lo(dst), 16); -+ emit(ctx, wsbh, lo(dst), tmp); -+ emit(ctx, wsbh, hi(dst), hi(dst)); -+ } else { -+ emit_swap16_r(ctx, tmp, lo(dst)); -+ emit_swap16_r(ctx, lo(dst), hi(dst)); -+ emit(ctx, move, hi(dst), tmp); -+ -+ emit(ctx, lui, tmp, 0xff); /* tmp = 0x00ff0000 */ -+ emit(ctx, ori, tmp, tmp, 0xff); /* tmp = 0x00ff00ff */ -+ emit_swap8_r(ctx, lo(dst), lo(dst), tmp); -+ emit_swap8_r(ctx, hi(dst), hi(dst), tmp); -+ } -+ break; -+ /* Swap bytes in a word */ -+ /* Swap bytes in a half word */ -+ case 32: -+ case 16: -+ emit_bswap_r(ctx, lo(dst), width); -+ emit(ctx, move, hi(dst), MIPS_R_ZERO); -+ break; -+ } -+ clobber_reg64(ctx, dst); -+} -+ -+/* Truncate a register double word, word or half word */ -+static void emit_trunc_r64(struct jit_context *ctx, const u8 dst[], u32 width) -+{ -+ switch (width) { -+ case 64: -+ break; -+ /* Zero-extend a word */ -+ case 32: -+ emit(ctx, move, hi(dst), MIPS_R_ZERO); -+ clobber_reg(ctx, hi(dst)); -+ break; -+ /* Zero-extend a half word */ -+ case 16: -+ emit(ctx, move, hi(dst), MIPS_R_ZERO); -+ emit(ctx, andi, lo(dst), lo(dst), 0xffff); -+ clobber_reg64(ctx, dst); -+ break; -+ } -+} -+ -+/* Load operation: dst = *(size*)(src + off) */ -+static void emit_ldx(struct jit_context *ctx, -+ const u8 dst[], u8 src, s16 off, u8 size) -+{ -+ switch (size) { -+ /* Load a byte */ -+ case BPF_B: -+ emit(ctx, lbu, lo(dst), off, src); -+ emit(ctx, move, hi(dst), MIPS_R_ZERO); -+ break; -+ /* Load a half word */ -+ case BPF_H: -+ emit(ctx, lhu, lo(dst), off, src); -+ emit(ctx, move, hi(dst), MIPS_R_ZERO); -+ break; -+ /* Load a word */ -+ case BPF_W: -+ emit(ctx, lw, lo(dst), off, src); -+ emit(ctx, move, hi(dst), MIPS_R_ZERO); -+ break; -+ /* Load a double word */ -+ case BPF_DW: -+ if (dst[1] == src) { -+ emit(ctx, lw, dst[0], off + 4, src); -+ emit(ctx, lw, dst[1], off, src); -+ } else { -+ emit(ctx, lw, dst[1], off, src); -+ emit(ctx, lw, dst[0], off + 4, src); -+ } -+ emit_load_delay(ctx); -+ break; -+ } -+ clobber_reg64(ctx, dst); -+} -+ -+/* Store operation: *(size *)(dst + off) = src */ -+static void emit_stx(struct jit_context *ctx, -+ const u8 dst, const u8 src[], s16 off, u8 size) -+{ -+ switch (size) { -+ /* Store a byte */ -+ case BPF_B: -+ emit(ctx, sb, lo(src), off, dst); -+ break; -+ /* Store a half word */ -+ case BPF_H: -+ emit(ctx, sh, lo(src), off, dst); -+ break; -+ /* Store a word */ -+ case BPF_W: -+ emit(ctx, sw, lo(src), off, dst); -+ break; -+ /* Store a double word */ -+ case BPF_DW: -+ emit(ctx, sw, src[1], off, dst); -+ emit(ctx, sw, src[0], off + 4, dst); -+ break; -+ } -+} -+ -+/* Atomic read-modify-write (32-bit, non-ll/sc fallback) */ -+static void emit_atomic_r32(struct jit_context *ctx, -+ u8 dst, u8 src, s16 off, u8 code) -+{ -+ u32 exclude = 0; -+ u32 addr = 0; -+ -+ /* Push caller-saved registers on stack */ -+ push_regs(ctx, ctx->clobbered & JIT_CALLER_REGS, -+ 0, JIT_RESERVED_STACK); -+ /* -+ * Argument 1: dst+off if xchg, otherwise src, passed in register a0 -+ * Argument 2: src if xchg, othersize dst+off, passed in register a1 -+ */ -+ emit(ctx, move, MIPS_R_T9, dst); -+ emit(ctx, move, MIPS_R_A0, src); -+ emit(ctx, addiu, MIPS_R_A1, MIPS_R_T9, off); -+ -+ /* Emit function call */ -+ switch (code) { -+ case BPF_ADD: -+ addr = (u32)&atomic_add; -+ break; -+ case BPF_SUB: -+ addr = (u32)&atomic_sub; -+ break; -+ case BPF_OR: -+ addr = (u32)&atomic_or; -+ break; -+ case BPF_AND: -+ addr = (u32)&atomic_and; -+ break; -+ case BPF_XOR: -+ addr = (u32)&atomic_xor; -+ break; -+ } -+ emit_mov_i(ctx, MIPS_R_T9, addr); -+ emit(ctx, jalr, MIPS_R_RA, MIPS_R_T9); -+ emit(ctx, nop); /* Delay slot */ -+ -+ /* Restore caller-saved registers, except any fetched value */ -+ pop_regs(ctx, ctx->clobbered & JIT_CALLER_REGS, -+ exclude, JIT_RESERVED_STACK); -+ emit_load_delay(ctx); -+ clobber_reg(ctx, MIPS_R_RA); -+} -+ -+/* Atomic read-modify-write (64-bit) */ -+static void emit_atomic_r64(struct jit_context *ctx, -+ u8 dst, const u8 src[], s16 off, u8 code) -+{ -+ const u8 *r1 = bpf2mips32[BPF_REG_1]; /* Mapped to a0-a1 */ -+ u32 exclude = 0; -+ u32 addr = 0; -+ -+ /* Push caller-saved registers on stack */ -+ push_regs(ctx, ctx->clobbered & JIT_CALLER_REGS, -+ 0, JIT_RESERVED_STACK); -+ /* -+ * Argument 1: 64-bit src, passed in registers a0-a1 -+ * Argument 2: 32-bit dst+off, passed in register a2 -+ */ -+ emit(ctx, move, MIPS_R_T9, dst); -+ emit(ctx, move, r1[0], src[0]); -+ emit(ctx, move, r1[1], src[1]); -+ emit(ctx, addiu, MIPS_R_A2, MIPS_R_T9, off); -+ -+ /* Emit function call */ -+ switch (code) { -+ case BPF_ADD: -+ addr = (u32)&atomic64_add; -+ break; -+ case BPF_SUB: -+ addr = (u32)&atomic64_sub; -+ break; -+ case BPF_OR: -+ addr = (u32)&atomic64_or; -+ break; -+ case BPF_AND: -+ addr = (u32)&atomic64_and; -+ break; -+ case BPF_XOR: -+ addr = (u32)&atomic64_xor; -+ break; -+ } -+ emit_mov_i(ctx, MIPS_R_T9, addr); -+ emit(ctx, jalr, MIPS_R_RA, MIPS_R_T9); -+ emit(ctx, nop); /* Delay slot */ -+ -+ /* Restore caller-saved registers, except any fetched value */ -+ pop_regs(ctx, ctx->clobbered & JIT_CALLER_REGS, -+ exclude, JIT_RESERVED_STACK); -+ emit_load_delay(ctx); -+ clobber_reg(ctx, MIPS_R_RA); -+} -+ -+/* -+ * Conditional movz or an emulated equivalent. -+ * Note that the rs register may be modified. -+ */ -+static void emit_movz_r(struct jit_context *ctx, u8 rd, u8 rs, u8 rt) -+{ -+ if (cpu_has_mips_2) { -+ emit(ctx, movz, rd, rs, rt); /* rd = rt ? rd : rs */ -+ } else if (cpu_has_mips32r6) { -+ if (rs != MIPS_R_ZERO) -+ emit(ctx, seleqz, rs, rs, rt); /* rs = 0 if rt == 0 */ -+ emit(ctx, selnez, rd, rd, rt); /* rd = 0 if rt != 0 */ -+ if (rs != MIPS_R_ZERO) -+ emit(ctx, or, rd, rd, rs); /* rd = rd | rs */ -+ } else { -+ emit(ctx, bnez, rt, 8); /* PC += 8 if rd != 0 */ -+ emit(ctx, nop); /* +0: delay slot */ -+ emit(ctx, or, rd, rs, MIPS_R_ZERO); /* +4: rd = rs */ -+ } -+ clobber_reg(ctx, rd); -+ clobber_reg(ctx, rs); -+} -+ -+/* -+ * Conditional movn or an emulated equivalent. -+ * Note that the rs register may be modified. -+ */ -+static void emit_movn_r(struct jit_context *ctx, u8 rd, u8 rs, u8 rt) -+{ -+ if (cpu_has_mips_2) { -+ emit(ctx, movn, rd, rs, rt); /* rd = rt ? rs : rd */ -+ } else if (cpu_has_mips32r6) { -+ if (rs != MIPS_R_ZERO) -+ emit(ctx, selnez, rs, rs, rt); /* rs = 0 if rt == 0 */ -+ emit(ctx, seleqz, rd, rd, rt); /* rd = 0 if rt != 0 */ -+ if (rs != MIPS_R_ZERO) -+ emit(ctx, or, rd, rd, rs); /* rd = rd | rs */ -+ } else { -+ emit(ctx, beqz, rt, 8); /* PC += 8 if rd == 0 */ -+ emit(ctx, nop); /* +0: delay slot */ -+ emit(ctx, or, rd, rs, MIPS_R_ZERO); /* +4: rd = rs */ -+ } -+ clobber_reg(ctx, rd); -+ clobber_reg(ctx, rs); -+} -+ -+/* Emulation of 64-bit sltiu rd, rs, imm, where imm may be S32_MAX + 1 */ -+static void emit_sltiu_r64(struct jit_context *ctx, u8 rd, -+ const u8 rs[], s64 imm) -+{ -+ u8 tmp = MIPS_R_T9; -+ -+ if (imm < 0) { -+ emit_mov_i(ctx, rd, imm); /* rd = imm */ -+ emit(ctx, sltu, rd, lo(rs), rd); /* rd = rsl < rd */ -+ emit(ctx, sltiu, tmp, hi(rs), -1); /* tmp = rsh < ~0U */ -+ emit(ctx, or, rd, rd, tmp); /* rd = rd | tmp */ -+ } else { /* imm >= 0 */ -+ if (imm > 0x7fff) { -+ emit_mov_i(ctx, rd, (s32)imm); /* rd = imm */ -+ emit(ctx, sltu, rd, lo(rs), rd); /* rd = rsl < rd */ -+ } else { -+ emit(ctx, sltiu, rd, lo(rs), imm); /* rd = rsl < imm */ -+ } -+ emit_movn_r(ctx, rd, MIPS_R_ZERO, hi(rs)); /* rd = 0 if rsh */ -+ } -+} -+ -+/* Emulation of 64-bit sltu rd, rs, rt */ -+static void emit_sltu_r64(struct jit_context *ctx, u8 rd, -+ const u8 rs[], const u8 rt[]) -+{ -+ u8 tmp = MIPS_R_T9; -+ -+ emit(ctx, sltu, rd, lo(rs), lo(rt)); /* rd = rsl < rtl */ -+ emit(ctx, subu, tmp, hi(rs), hi(rt)); /* tmp = rsh - rth */ -+ emit_movn_r(ctx, rd, MIPS_R_ZERO, tmp); /* rd = 0 if tmp != 0 */ -+ emit(ctx, sltu, tmp, hi(rs), hi(rt)); /* tmp = rsh < rth */ -+ emit(ctx, or, rd, rd, tmp); /* rd = rd | tmp */ -+} -+ -+/* Emulation of 64-bit slti rd, rs, imm, where imm may be S32_MAX + 1 */ -+static void emit_slti_r64(struct jit_context *ctx, u8 rd, -+ const u8 rs[], s64 imm) -+{ -+ u8 t1 = MIPS_R_T8; -+ u8 t2 = MIPS_R_T9; -+ u8 cmp; -+ -+ /* -+ * if ((rs < 0) ^ (imm < 0)) t1 = imm >u rsl -+ * else t1 = rsl > 31 */ -+ if (imm < 0) -+ emit_movz_r(ctx, t1, t2, rd); /* t1 = rd ? t1 : t2 */ -+ else -+ emit_movn_r(ctx, t1, t2, rd); /* t1 = rd ? t2 : t1 */ -+ /* -+ * if ((imm < 0 && rsh != 0xffffffff) || -+ * (imm >= 0 && rsh != 0)) -+ * t1 = 0 -+ */ -+ if (imm < 0) { -+ emit(ctx, addiu, rd, hi(rs), 1); /* rd = rsh + 1 */ -+ cmp = rd; -+ } else { /* imm >= 0 */ -+ cmp = hi(rs); -+ } -+ emit_movn_r(ctx, t1, MIPS_R_ZERO, cmp); /* t1 = 0 if cmp != 0 */ -+ -+ /* -+ * if (imm < 0) rd = rsh < -1 -+ * else rd = rsh != 0 -+ * rd = rd | t1 -+ */ -+ emit(ctx, slti, rd, hi(rs), imm < 0 ? -1 : 0); /* rd = rsh < hi(imm) */ -+ emit(ctx, or, rd, rd, t1); /* rd = rd | t1 */ -+} -+ -+/* Emulation of 64-bit(slt rd, rs, rt) */ -+static void emit_slt_r64(struct jit_context *ctx, u8 rd, -+ const u8 rs[], const u8 rt[]) -+{ -+ u8 t1 = MIPS_R_T7; -+ u8 t2 = MIPS_R_T8; -+ u8 t3 = MIPS_R_T9; -+ -+ /* -+ * if ((rs < 0) ^ (rt < 0)) t1 = rtl > 31 */ -+ emit_movn_r(ctx, t1, t2, rd); /* t1 = rd ? t2 : t1 */ -+ emit_movn_r(ctx, t1, MIPS_R_ZERO, t3); /* t1 = 0 if t3 != 0 */ -+ -+ /* rd = (rsh < rth) | t1 */ -+ emit(ctx, slt, rd, hi(rs), hi(rt)); /* rd = rsh = -0x7fff && imm <= 0x8000) { -+ emit(ctx, addiu, tmp, lo(dst), -imm); -+ } else if ((u32)imm <= 0xffff) { -+ emit(ctx, xori, tmp, lo(dst), imm); -+ } else { /* Register fallback */ -+ emit_mov_i(ctx, tmp, imm); -+ emit(ctx, xor, tmp, lo(dst), tmp); -+ } -+ if (imm < 0) { /* Compare sign extension */ -+ emit(ctx, addu, MIPS_R_T9, hi(dst), 1); -+ emit(ctx, or, tmp, tmp, MIPS_R_T9); -+ } else { /* Compare zero extension */ -+ emit(ctx, or, tmp, tmp, hi(dst)); -+ } -+ if (op == BPF_JEQ) -+ emit(ctx, beqz, tmp, off); -+ else /* BPF_JNE */ -+ emit(ctx, bnez, tmp, off); -+ break; -+ /* PC += off if dst & imm */ -+ /* PC += off if (dst & imm) == 0 (not in BPF, used for long jumps) */ -+ case BPF_JSET: -+ case JIT_JNSET: -+ if ((u32)imm <= 0xffff) { -+ emit(ctx, andi, tmp, lo(dst), imm); -+ } else { /* Register fallback */ -+ emit_mov_i(ctx, tmp, imm); -+ emit(ctx, and, tmp, lo(dst), tmp); -+ } -+ if (imm < 0) /* Sign-extension pulls in high word */ -+ emit(ctx, or, tmp, tmp, hi(dst)); -+ if (op == BPF_JSET) -+ emit(ctx, bnez, tmp, off); -+ else /* JIT_JNSET */ -+ emit(ctx, beqz, tmp, off); -+ break; -+ /* PC += off if dst > imm */ -+ case BPF_JGT: -+ emit_sltiu_r64(ctx, tmp, dst, (s64)imm + 1); -+ emit(ctx, beqz, tmp, off); -+ break; -+ /* PC += off if dst >= imm */ -+ case BPF_JGE: -+ emit_sltiu_r64(ctx, tmp, dst, imm); -+ emit(ctx, beqz, tmp, off); -+ break; -+ /* PC += off if dst < imm */ -+ case BPF_JLT: -+ emit_sltiu_r64(ctx, tmp, dst, imm); -+ emit(ctx, bnez, tmp, off); -+ break; -+ /* PC += off if dst <= imm */ -+ case BPF_JLE: -+ emit_sltiu_r64(ctx, tmp, dst, (s64)imm + 1); -+ emit(ctx, bnez, tmp, off); -+ break; -+ /* PC += off if dst > imm (signed) */ -+ case BPF_JSGT: -+ emit_slti_r64(ctx, tmp, dst, (s64)imm + 1); -+ emit(ctx, beqz, tmp, off); -+ break; -+ /* PC += off if dst >= imm (signed) */ -+ case BPF_JSGE: -+ emit_slti_r64(ctx, tmp, dst, imm); -+ emit(ctx, beqz, tmp, off); -+ break; -+ /* PC += off if dst < imm (signed) */ -+ case BPF_JSLT: -+ emit_slti_r64(ctx, tmp, dst, imm); -+ emit(ctx, bnez, tmp, off); -+ break; -+ /* PC += off if dst <= imm (signed) */ -+ case BPF_JSLE: -+ emit_slti_r64(ctx, tmp, dst, (s64)imm + 1); -+ emit(ctx, bnez, tmp, off); -+ break; -+ } -+} -+ -+/* Jump register (64-bit) */ -+static void emit_jmp_r64(struct jit_context *ctx, -+ const u8 dst[], const u8 src[], s32 off, u8 op) -+{ -+ u8 t1 = MIPS_R_T6; -+ u8 t2 = MIPS_R_T7; -+ -+ switch (op) { -+ /* No-op, used internally for branch optimization */ -+ case JIT_JNOP: -+ break; -+ /* PC += off if dst == src */ -+ /* PC += off if dst != src */ -+ case BPF_JEQ: -+ case BPF_JNE: -+ emit(ctx, subu, t1, lo(dst), lo(src)); -+ emit(ctx, subu, t2, hi(dst), hi(src)); -+ emit(ctx, or, t1, t1, t2); -+ if (op == BPF_JEQ) -+ emit(ctx, beqz, t1, off); -+ else /* BPF_JNE */ -+ emit(ctx, bnez, t1, off); -+ break; -+ /* PC += off if dst & src */ -+ /* PC += off if (dst & imm) == 0 (not in BPF, used for long jumps) */ -+ case BPF_JSET: -+ case JIT_JNSET: -+ emit(ctx, and, t1, lo(dst), lo(src)); -+ emit(ctx, and, t2, hi(dst), hi(src)); -+ emit(ctx, or, t1, t1, t2); -+ if (op == BPF_JSET) -+ emit(ctx, bnez, t1, off); -+ else /* JIT_JNSET */ -+ emit(ctx, beqz, t1, off); -+ break; -+ /* PC += off if dst > src */ -+ case BPF_JGT: -+ emit_sltu_r64(ctx, t1, src, dst); -+ emit(ctx, bnez, t1, off); -+ break; -+ /* PC += off if dst >= src */ -+ case BPF_JGE: -+ emit_sltu_r64(ctx, t1, dst, src); -+ emit(ctx, beqz, t1, off); -+ break; -+ /* PC += off if dst < src */ -+ case BPF_JLT: -+ emit_sltu_r64(ctx, t1, dst, src); -+ emit(ctx, bnez, t1, off); -+ break; -+ /* PC += off if dst <= src */ -+ case BPF_JLE: -+ emit_sltu_r64(ctx, t1, src, dst); -+ emit(ctx, beqz, t1, off); -+ break; -+ /* PC += off if dst > src (signed) */ -+ case BPF_JSGT: -+ emit_slt_r64(ctx, t1, src, dst); -+ emit(ctx, bnez, t1, off); -+ break; -+ /* PC += off if dst >= src (signed) */ -+ case BPF_JSGE: -+ emit_slt_r64(ctx, t1, dst, src); -+ emit(ctx, beqz, t1, off); -+ break; -+ /* PC += off if dst < src (signed) */ -+ case BPF_JSLT: -+ emit_slt_r64(ctx, t1, dst, src); -+ emit(ctx, bnez, t1, off); -+ break; -+ /* PC += off if dst <= src (signed) */ -+ case BPF_JSLE: -+ emit_slt_r64(ctx, t1, src, dst); -+ emit(ctx, beqz, t1, off); -+ break; -+ } -+} -+ -+/* Function call */ -+static int emit_call(struct jit_context *ctx, const struct bpf_insn *insn) -+{ -+ bool fixed; -+ u64 addr; -+ -+ /* Decode the call address */ -+ if (bpf_jit_get_func_addr(ctx->program, insn, false, -+ &addr, &fixed) < 0) -+ return -1; -+ if (!fixed) -+ return -1; -+ -+ /* Push stack arguments */ -+ push_regs(ctx, JIT_STACK_REGS, 0, JIT_RESERVED_STACK); -+ -+ /* Emit function call */ -+ emit_mov_i(ctx, MIPS_R_T9, addr); -+ emit(ctx, jalr, MIPS_R_RA, MIPS_R_T9); -+ emit(ctx, nop); /* Delay slot */ -+ -+ clobber_reg(ctx, MIPS_R_RA); -+ clobber_reg(ctx, MIPS_R_V0); -+ clobber_reg(ctx, MIPS_R_V1); -+ return 0; -+} -+ -+/* Function tail call */ -+static int emit_tail_call(struct jit_context *ctx) -+{ -+ u8 ary = lo(bpf2mips32[BPF_REG_2]); -+ u8 ind = lo(bpf2mips32[BPF_REG_3]); -+ u8 t1 = MIPS_R_T8; -+ u8 t2 = MIPS_R_T9; -+ int off; -+ -+ /* -+ * Tail call: -+ * eBPF R1 - function argument (context ptr), passed in a0-a1 -+ * eBPF R2 - ptr to object with array of function entry points -+ * eBPF R3 - array index of function to be called -+ * stack[sz] - remaining tail call count, initialized in prologue -+ */ -+ -+ /* if (ind >= ary->map.max_entries) goto out */ -+ off = offsetof(struct bpf_array, map.max_entries); -+ if (off > 0x7fff) -+ return -1; -+ emit(ctx, lw, t1, off, ary); /* t1 = ary->map.max_entries*/ -+ emit_load_delay(ctx); /* Load delay slot */ -+ emit(ctx, sltu, t1, ind, t1); /* t1 = ind < t1 */ -+ emit(ctx, beqz, t1, get_offset(ctx, 1)); /* PC += off(1) if t1 == 0 */ -+ /* (next insn delay slot) */ -+ /* if (TCC-- <= 0) goto out */ -+ emit(ctx, lw, t2, ctx->stack_size, MIPS_R_SP); /* t2 = *(SP + size) */ -+ emit_load_delay(ctx); /* Load delay slot */ -+ emit(ctx, blez, t2, get_offset(ctx, 1)); /* PC += off(1) if t2 < 0 */ -+ emit(ctx, addiu, t2, t2, -1); /* t2-- (delay slot) */ -+ emit(ctx, sw, t2, ctx->stack_size, MIPS_R_SP); /* *(SP + size) = t2 */ -+ -+ /* prog = ary->ptrs[ind] */ -+ off = offsetof(struct bpf_array, ptrs); -+ if (off > 0x7fff) -+ return -1; -+ emit(ctx, sll, t1, ind, 2); /* t1 = ind << 2 */ -+ emit(ctx, addu, t1, t1, ary); /* t1 += ary */ -+ emit(ctx, lw, t2, off, t1); /* t2 = *(t1 + off) */ -+ emit_load_delay(ctx); /* Load delay slot */ -+ -+ /* if (prog == 0) goto out */ -+ emit(ctx, beqz, t2, get_offset(ctx, 1)); /* PC += off(1) if t2 == 0 */ -+ emit(ctx, nop); /* Delay slot */ -+ -+ /* func = prog->bpf_func + 8 (prologue skip offset) */ -+ off = offsetof(struct bpf_prog, bpf_func); -+ if (off > 0x7fff) -+ return -1; -+ emit(ctx, lw, t1, off, t2); /* t1 = *(t2 + off) */ -+ emit_load_delay(ctx); /* Load delay slot */ -+ emit(ctx, addiu, t1, t1, JIT_TCALL_SKIP); /* t1 += skip (8 or 12) */ -+ -+ /* goto func */ -+ build_epilogue(ctx, t1); -+ return 0; -+} -+ -+/* -+ * Stack frame layout for a JITed program (stack grows down). -+ * -+ * Higher address : Caller's stack frame : -+ * :----------------------------: -+ * : 64-bit eBPF args r3-r5 : -+ * :----------------------------: -+ * : Reserved / tail call count : -+ * +============================+ <--- MIPS sp before call -+ * | Callee-saved registers, | -+ * | including RA and FP | -+ * +----------------------------+ <--- eBPF FP (MIPS zero,fp) -+ * | Local eBPF variables | -+ * | allocated by program | -+ * +----------------------------+ -+ * | Reserved for caller-saved | -+ * | registers | -+ * +----------------------------+ -+ * | Reserved for 64-bit eBPF | -+ * | args r3-r5 & args passed | -+ * | on stack in kernel calls | -+ * Lower address +============================+ <--- MIPS sp -+ */ -+ -+/* Build program prologue to set up the stack and registers */ -+void build_prologue(struct jit_context *ctx) -+{ -+ const u8 *r1 = bpf2mips32[BPF_REG_1]; -+ const u8 *fp = bpf2mips32[BPF_REG_FP]; -+ int stack, saved, locals, reserved; -+ -+ /* -+ * The first two instructions initialize TCC in the reserved (for us) -+ * 16-byte area in the parent's stack frame. On a tail call, the -+ * calling function jumps into the prologue after these instructions. -+ */ -+ emit(ctx, ori, MIPS_R_T9, MIPS_R_ZERO, -+ min(MAX_TAIL_CALL_CNT + 1, 0xffff)); -+ emit(ctx, sw, MIPS_R_T9, 0, MIPS_R_SP); -+ -+ /* -+ * Register eBPF R1 contains the 32-bit context pointer argument. -+ * A 32-bit argument is always passed in MIPS register a0, regardless -+ * of CPU endianness. Initialize R1 accordingly and zero-extend. -+ */ -+#ifdef __BIG_ENDIAN -+ emit(ctx, move, lo(r1), MIPS_R_A0); -+#endif -+ -+ /* === Entry-point for tail calls === */ -+ -+ /* Zero-extend the 32-bit argument */ -+ emit(ctx, move, hi(r1), MIPS_R_ZERO); -+ -+ /* If the eBPF frame pointer was accessed it must be saved */ -+ if (ctx->accessed & BIT(BPF_REG_FP)) -+ clobber_reg64(ctx, fp); -+ -+ /* Compute the stack space needed for callee-saved registers */ -+ saved = hweight32(ctx->clobbered & JIT_CALLEE_REGS) * sizeof(u32); -+ saved = ALIGN(saved, MIPS_STACK_ALIGNMENT); -+ -+ /* Stack space used by eBPF program local data */ -+ locals = ALIGN(ctx->program->aux->stack_depth, MIPS_STACK_ALIGNMENT); -+ -+ /* -+ * If we are emitting function calls, reserve extra stack space for -+ * caller-saved registers and function arguments passed on the stack. -+ * The required space is computed automatically during resource -+ * usage discovery (pass 1). -+ */ -+ reserved = ctx->stack_used; -+ -+ /* Allocate the stack frame */ -+ stack = ALIGN(saved + locals + reserved, MIPS_STACK_ALIGNMENT); -+ emit(ctx, addiu, MIPS_R_SP, MIPS_R_SP, -stack); -+ -+ /* Store callee-saved registers on stack */ -+ push_regs(ctx, ctx->clobbered & JIT_CALLEE_REGS, 0, stack - saved); -+ -+ /* Initialize the eBPF frame pointer if accessed */ -+ if (ctx->accessed & BIT(BPF_REG_FP)) -+ emit(ctx, addiu, lo(fp), MIPS_R_SP, stack - saved); -+ -+ ctx->saved_size = saved; -+ ctx->stack_size = stack; -+} -+ -+/* Build the program epilogue to restore the stack and registers */ -+void build_epilogue(struct jit_context *ctx, int dest_reg) -+{ -+ /* Restore callee-saved registers from stack */ -+ pop_regs(ctx, ctx->clobbered & JIT_CALLEE_REGS, 0, -+ ctx->stack_size - ctx->saved_size); -+ /* -+ * A 32-bit return value is always passed in MIPS register v0, -+ * but on big-endian targets the low part of R0 is mapped to v1. -+ */ -+#ifdef __BIG_ENDIAN -+ emit(ctx, move, MIPS_R_V0, MIPS_R_V1); -+#endif -+ -+ /* Jump to the return address and adjust the stack pointer */ -+ emit(ctx, jr, dest_reg); -+ emit(ctx, addiu, MIPS_R_SP, MIPS_R_SP, ctx->stack_size); -+} -+ -+/* Build one eBPF instruction */ -+int build_insn(const struct bpf_insn *insn, struct jit_context *ctx) -+{ -+ const u8 *dst = bpf2mips32[insn->dst_reg]; -+ const u8 *src = bpf2mips32[insn->src_reg]; -+ const u8 *tmp = bpf2mips32[JIT_REG_TMP]; -+ u8 code = insn->code; -+ s16 off = insn->off; -+ s32 imm = insn->imm; -+ s32 val, rel; -+ u8 alu, jmp; -+ -+ switch (code) { -+ /* ALU operations */ -+ /* dst = imm */ -+ case BPF_ALU | BPF_MOV | BPF_K: -+ emit_mov_i(ctx, lo(dst), imm); -+ emit_zext_ver(ctx, dst); -+ break; -+ /* dst = src */ -+ case BPF_ALU | BPF_MOV | BPF_X: -+ if (imm == 1) { -+ /* Special mov32 for zext */ -+ emit_mov_i(ctx, hi(dst), 0); -+ } else { -+ emit_mov_r(ctx, lo(dst), lo(src)); -+ emit_zext_ver(ctx, dst); -+ } -+ break; -+ /* dst = -dst */ -+ case BPF_ALU | BPF_NEG: -+ emit_alu_i(ctx, lo(dst), 0, BPF_NEG); -+ emit_zext_ver(ctx, dst); -+ break; -+ /* dst = dst & imm */ -+ /* dst = dst | imm */ -+ /* dst = dst ^ imm */ -+ /* dst = dst << imm */ -+ /* dst = dst >> imm */ -+ /* dst = dst >> imm (arithmetic) */ -+ /* dst = dst + imm */ -+ /* dst = dst - imm */ -+ /* dst = dst * imm */ -+ /* dst = dst / imm */ -+ /* dst = dst % imm */ -+ case BPF_ALU | BPF_OR | BPF_K: -+ case BPF_ALU | BPF_AND | BPF_K: -+ case BPF_ALU | BPF_XOR | BPF_K: -+ case BPF_ALU | BPF_LSH | BPF_K: -+ case BPF_ALU | BPF_RSH | BPF_K: -+ case BPF_ALU | BPF_ARSH | BPF_K: -+ case BPF_ALU | BPF_ADD | BPF_K: -+ case BPF_ALU | BPF_SUB | BPF_K: -+ case BPF_ALU | BPF_MUL | BPF_K: -+ case BPF_ALU | BPF_DIV | BPF_K: -+ case BPF_ALU | BPF_MOD | BPF_K: -+ if (!valid_alu_i(BPF_OP(code), imm)) { -+ emit_mov_i(ctx, MIPS_R_T6, imm); -+ emit_alu_r(ctx, lo(dst), MIPS_R_T6, BPF_OP(code)); -+ } else if (rewrite_alu_i(BPF_OP(code), imm, &alu, &val)) { -+ emit_alu_i(ctx, lo(dst), val, alu); -+ } -+ emit_zext_ver(ctx, dst); -+ break; -+ /* dst = dst & src */ -+ /* dst = dst | src */ -+ /* dst = dst ^ src */ -+ /* dst = dst << src */ -+ /* dst = dst >> src */ -+ /* dst = dst >> src (arithmetic) */ -+ /* dst = dst + src */ -+ /* dst = dst - src */ -+ /* dst = dst * src */ -+ /* dst = dst / src */ -+ /* dst = dst % src */ -+ case BPF_ALU | BPF_AND | BPF_X: -+ case BPF_ALU | BPF_OR | BPF_X: -+ case BPF_ALU | BPF_XOR | BPF_X: -+ case BPF_ALU | BPF_LSH | BPF_X: -+ case BPF_ALU | BPF_RSH | BPF_X: -+ case BPF_ALU | BPF_ARSH | BPF_X: -+ case BPF_ALU | BPF_ADD | BPF_X: -+ case BPF_ALU | BPF_SUB | BPF_X: -+ case BPF_ALU | BPF_MUL | BPF_X: -+ case BPF_ALU | BPF_DIV | BPF_X: -+ case BPF_ALU | BPF_MOD | BPF_X: -+ emit_alu_r(ctx, lo(dst), lo(src), BPF_OP(code)); -+ emit_zext_ver(ctx, dst); -+ break; -+ /* dst = imm (64-bit) */ -+ case BPF_ALU64 | BPF_MOV | BPF_K: -+ emit_mov_se_i64(ctx, dst, imm); -+ break; -+ /* dst = src (64-bit) */ -+ case BPF_ALU64 | BPF_MOV | BPF_X: -+ emit_mov_r(ctx, lo(dst), lo(src)); -+ emit_mov_r(ctx, hi(dst), hi(src)); -+ break; -+ /* dst = -dst (64-bit) */ -+ case BPF_ALU64 | BPF_NEG: -+ emit_neg_i64(ctx, dst); -+ break; -+ /* dst = dst & imm (64-bit) */ -+ case BPF_ALU64 | BPF_AND | BPF_K: -+ emit_alu_i64(ctx, dst, imm, BPF_OP(code)); -+ break; -+ /* dst = dst | imm (64-bit) */ -+ /* dst = dst ^ imm (64-bit) */ -+ /* dst = dst + imm (64-bit) */ -+ /* dst = dst - imm (64-bit) */ -+ case BPF_ALU64 | BPF_OR | BPF_K: -+ case BPF_ALU64 | BPF_XOR | BPF_K: -+ case BPF_ALU64 | BPF_ADD | BPF_K: -+ case BPF_ALU64 | BPF_SUB | BPF_K: -+ if (imm) -+ emit_alu_i64(ctx, dst, imm, BPF_OP(code)); -+ break; -+ /* dst = dst << imm (64-bit) */ -+ /* dst = dst >> imm (64-bit) */ -+ /* dst = dst >> imm (64-bit, arithmetic) */ -+ case BPF_ALU64 | BPF_LSH | BPF_K: -+ case BPF_ALU64 | BPF_RSH | BPF_K: -+ case BPF_ALU64 | BPF_ARSH | BPF_K: -+ if (imm) -+ emit_shift_i64(ctx, dst, imm, BPF_OP(code)); -+ break; -+ /* dst = dst * imm (64-bit) */ -+ case BPF_ALU64 | BPF_MUL | BPF_K: -+ emit_mul_i64(ctx, dst, imm); -+ break; -+ /* dst = dst / imm (64-bit) */ -+ /* dst = dst % imm (64-bit) */ -+ case BPF_ALU64 | BPF_DIV | BPF_K: -+ case BPF_ALU64 | BPF_MOD | BPF_K: -+ /* -+ * Sign-extend the immediate value into a temporary register, -+ * and then do the operation on this register. -+ */ -+ emit_mov_se_i64(ctx, tmp, imm); -+ emit_divmod_r64(ctx, dst, tmp, BPF_OP(code)); -+ break; -+ /* dst = dst & src (64-bit) */ -+ /* dst = dst | src (64-bit) */ -+ /* dst = dst ^ src (64-bit) */ -+ /* dst = dst + src (64-bit) */ -+ /* dst = dst - src (64-bit) */ -+ case BPF_ALU64 | BPF_AND | BPF_X: -+ case BPF_ALU64 | BPF_OR | BPF_X: -+ case BPF_ALU64 | BPF_XOR | BPF_X: -+ case BPF_ALU64 | BPF_ADD | BPF_X: -+ case BPF_ALU64 | BPF_SUB | BPF_X: -+ emit_alu_r64(ctx, dst, src, BPF_OP(code)); -+ break; -+ /* dst = dst << src (64-bit) */ -+ /* dst = dst >> src (64-bit) */ -+ /* dst = dst >> src (64-bit, arithmetic) */ -+ case BPF_ALU64 | BPF_LSH | BPF_X: -+ case BPF_ALU64 | BPF_RSH | BPF_X: -+ case BPF_ALU64 | BPF_ARSH | BPF_X: -+ emit_shift_r64(ctx, dst, lo(src), BPF_OP(code)); -+ break; -+ /* dst = dst * src (64-bit) */ -+ case BPF_ALU64 | BPF_MUL | BPF_X: -+ emit_mul_r64(ctx, dst, src); -+ break; -+ /* dst = dst / src (64-bit) */ -+ /* dst = dst % src (64-bit) */ -+ case BPF_ALU64 | BPF_DIV | BPF_X: -+ case BPF_ALU64 | BPF_MOD | BPF_X: -+ emit_divmod_r64(ctx, dst, src, BPF_OP(code)); -+ break; -+ /* dst = htole(dst) */ -+ /* dst = htobe(dst) */ -+ case BPF_ALU | BPF_END | BPF_FROM_LE: -+ case BPF_ALU | BPF_END | BPF_FROM_BE: -+ if (BPF_SRC(code) == -+#ifdef __BIG_ENDIAN -+ BPF_FROM_LE -+#else -+ BPF_FROM_BE -+#endif -+ ) -+ emit_bswap_r64(ctx, dst, imm); -+ else -+ emit_trunc_r64(ctx, dst, imm); -+ break; -+ /* dst = imm64 */ -+ case BPF_LD | BPF_IMM | BPF_DW: -+ emit_mov_i(ctx, lo(dst), imm); -+ emit_mov_i(ctx, hi(dst), insn[1].imm); -+ return 1; -+ /* LDX: dst = *(size *)(src + off) */ -+ case BPF_LDX | BPF_MEM | BPF_W: -+ case BPF_LDX | BPF_MEM | BPF_H: -+ case BPF_LDX | BPF_MEM | BPF_B: -+ case BPF_LDX | BPF_MEM | BPF_DW: -+ emit_ldx(ctx, dst, lo(src), off, BPF_SIZE(code)); -+ break; -+ /* ST: *(size *)(dst + off) = imm */ -+ case BPF_ST | BPF_MEM | BPF_W: -+ case BPF_ST | BPF_MEM | BPF_H: -+ case BPF_ST | BPF_MEM | BPF_B: -+ case BPF_ST | BPF_MEM | BPF_DW: -+ switch (BPF_SIZE(code)) { -+ case BPF_DW: -+ /* Sign-extend immediate value into temporary reg */ -+ emit_mov_se_i64(ctx, tmp, imm); -+ break; -+ case BPF_W: -+ case BPF_H: -+ case BPF_B: -+ emit_mov_i(ctx, lo(tmp), imm); -+ break; -+ } -+ emit_stx(ctx, lo(dst), tmp, off, BPF_SIZE(code)); -+ break; -+ /* STX: *(size *)(dst + off) = src */ -+ case BPF_STX | BPF_MEM | BPF_W: -+ case BPF_STX | BPF_MEM | BPF_H: -+ case BPF_STX | BPF_MEM | BPF_B: -+ case BPF_STX | BPF_MEM | BPF_DW: -+ emit_stx(ctx, lo(dst), src, off, BPF_SIZE(code)); -+ break; -+ /* Speculation barrier */ -+ case BPF_ST | BPF_NOSPEC: -+ break; -+ /* Atomics */ -+ case BPF_STX | BPF_XADD | BPF_W: -+ switch (imm) { -+ case BPF_ADD: -+ case BPF_AND: -+ case BPF_OR: -+ case BPF_XOR: -+ if (cpu_has_llsc) -+ emit_atomic_r(ctx, lo(dst), lo(src), off, imm); -+ else /* Non-ll/sc fallback */ -+ emit_atomic_r32(ctx, lo(dst), lo(src), -+ off, imm); -+ break; -+ default: -+ goto notyet; -+ } -+ break; -+ /* Atomics (64-bit) */ -+ case BPF_STX | BPF_XADD | BPF_DW: -+ switch (imm) { -+ case BPF_ADD: -+ case BPF_AND: -+ case BPF_OR: -+ case BPF_XOR: -+ emit_atomic_r64(ctx, lo(dst), src, off, imm); -+ break; -+ default: -+ goto notyet; -+ } -+ break; -+ /* PC += off if dst == src */ -+ /* PC += off if dst != src */ -+ /* PC += off if dst & src */ -+ /* PC += off if dst > src */ -+ /* PC += off if dst >= src */ -+ /* PC += off if dst < src */ -+ /* PC += off if dst <= src */ -+ /* PC += off if dst > src (signed) */ -+ /* PC += off if dst >= src (signed) */ -+ /* PC += off if dst < src (signed) */ -+ /* PC += off if dst <= src (signed) */ -+ case BPF_JMP32 | BPF_JEQ | BPF_X: -+ case BPF_JMP32 | BPF_JNE | BPF_X: -+ case BPF_JMP32 | BPF_JSET | BPF_X: -+ case BPF_JMP32 | BPF_JGT | BPF_X: -+ case BPF_JMP32 | BPF_JGE | BPF_X: -+ case BPF_JMP32 | BPF_JLT | BPF_X: -+ case BPF_JMP32 | BPF_JLE | BPF_X: -+ case BPF_JMP32 | BPF_JSGT | BPF_X: -+ case BPF_JMP32 | BPF_JSGE | BPF_X: -+ case BPF_JMP32 | BPF_JSLT | BPF_X: -+ case BPF_JMP32 | BPF_JSLE | BPF_X: -+ if (off == 0) -+ break; -+ setup_jmp_r(ctx, dst == src, BPF_OP(code), off, &jmp, &rel); -+ emit_jmp_r(ctx, lo(dst), lo(src), rel, jmp); -+ if (finish_jmp(ctx, jmp, off) < 0) -+ goto toofar; -+ break; -+ /* PC += off if dst == imm */ -+ /* PC += off if dst != imm */ -+ /* PC += off if dst & imm */ -+ /* PC += off if dst > imm */ -+ /* PC += off if dst >= imm */ -+ /* PC += off if dst < imm */ -+ /* PC += off if dst <= imm */ -+ /* PC += off if dst > imm (signed) */ -+ /* PC += off if dst >= imm (signed) */ -+ /* PC += off if dst < imm (signed) */ -+ /* PC += off if dst <= imm (signed) */ -+ case BPF_JMP32 | BPF_JEQ | BPF_K: -+ case BPF_JMP32 | BPF_JNE | BPF_K: -+ case BPF_JMP32 | BPF_JSET | BPF_K: -+ case BPF_JMP32 | BPF_JGT | BPF_K: -+ case BPF_JMP32 | BPF_JGE | BPF_K: -+ case BPF_JMP32 | BPF_JLT | BPF_K: -+ case BPF_JMP32 | BPF_JLE | BPF_K: -+ case BPF_JMP32 | BPF_JSGT | BPF_K: -+ case BPF_JMP32 | BPF_JSGE | BPF_K: -+ case BPF_JMP32 | BPF_JSLT | BPF_K: -+ case BPF_JMP32 | BPF_JSLE | BPF_K: -+ if (off == 0) -+ break; -+ setup_jmp_i(ctx, imm, 32, BPF_OP(code), off, &jmp, &rel); -+ if (valid_jmp_i(jmp, imm)) { -+ emit_jmp_i(ctx, lo(dst), imm, rel, jmp); -+ } else { -+ /* Move large immediate to register */ -+ emit_mov_i(ctx, MIPS_R_T6, imm); -+ emit_jmp_r(ctx, lo(dst), MIPS_R_T6, rel, jmp); -+ } -+ if (finish_jmp(ctx, jmp, off) < 0) -+ goto toofar; -+ break; -+ /* PC += off if dst == src */ -+ /* PC += off if dst != src */ -+ /* PC += off if dst & src */ -+ /* PC += off if dst > src */ -+ /* PC += off if dst >= src */ -+ /* PC += off if dst < src */ -+ /* PC += off if dst <= src */ -+ /* PC += off if dst > src (signed) */ -+ /* PC += off if dst >= src (signed) */ -+ /* PC += off if dst < src (signed) */ -+ /* PC += off if dst <= src (signed) */ -+ case BPF_JMP | BPF_JEQ | BPF_X: -+ case BPF_JMP | BPF_JNE | BPF_X: -+ case BPF_JMP | BPF_JSET | BPF_X: -+ case BPF_JMP | BPF_JGT | BPF_X: -+ case BPF_JMP | BPF_JGE | BPF_X: -+ case BPF_JMP | BPF_JLT | BPF_X: -+ case BPF_JMP | BPF_JLE | BPF_X: -+ case BPF_JMP | BPF_JSGT | BPF_X: -+ case BPF_JMP | BPF_JSGE | BPF_X: -+ case BPF_JMP | BPF_JSLT | BPF_X: -+ case BPF_JMP | BPF_JSLE | BPF_X: -+ if (off == 0) -+ break; -+ setup_jmp_r(ctx, dst == src, BPF_OP(code), off, &jmp, &rel); -+ emit_jmp_r64(ctx, dst, src, rel, jmp); -+ if (finish_jmp(ctx, jmp, off) < 0) -+ goto toofar; -+ break; -+ /* PC += off if dst == imm */ -+ /* PC += off if dst != imm */ -+ /* PC += off if dst & imm */ -+ /* PC += off if dst > imm */ -+ /* PC += off if dst >= imm */ -+ /* PC += off if dst < imm */ -+ /* PC += off if dst <= imm */ -+ /* PC += off if dst > imm (signed) */ -+ /* PC += off if dst >= imm (signed) */ -+ /* PC += off if dst < imm (signed) */ -+ /* PC += off if dst <= imm (signed) */ -+ case BPF_JMP | BPF_JEQ | BPF_K: -+ case BPF_JMP | BPF_JNE | BPF_K: -+ case BPF_JMP | BPF_JSET | BPF_K: -+ case BPF_JMP | BPF_JGT | BPF_K: -+ case BPF_JMP | BPF_JGE | BPF_K: -+ case BPF_JMP | BPF_JLT | BPF_K: -+ case BPF_JMP | BPF_JLE | BPF_K: -+ case BPF_JMP | BPF_JSGT | BPF_K: -+ case BPF_JMP | BPF_JSGE | BPF_K: -+ case BPF_JMP | BPF_JSLT | BPF_K: -+ case BPF_JMP | BPF_JSLE | BPF_K: -+ if (off == 0) -+ break; -+ setup_jmp_i(ctx, imm, 64, BPF_OP(code), off, &jmp, &rel); -+ emit_jmp_i64(ctx, dst, imm, rel, jmp); -+ if (finish_jmp(ctx, jmp, off) < 0) -+ goto toofar; -+ break; -+ /* PC += off */ -+ case BPF_JMP | BPF_JA: -+ if (off == 0) -+ break; -+ if (emit_ja(ctx, off) < 0) -+ goto toofar; -+ break; -+ /* Tail call */ -+ case BPF_JMP | BPF_TAIL_CALL: -+ if (emit_tail_call(ctx) < 0) -+ goto invalid; -+ break; -+ /* Function call */ -+ case BPF_JMP | BPF_CALL: -+ if (emit_call(ctx, insn) < 0) -+ goto invalid; -+ break; -+ /* Function return */ -+ case BPF_JMP | BPF_EXIT: -+ /* -+ * Optimization: when last instruction is EXIT -+ * simply continue to epilogue. -+ */ -+ if (ctx->bpf_index == ctx->program->len - 1) -+ break; -+ if (emit_exit(ctx) < 0) -+ goto toofar; -+ break; -+ -+ default: -+invalid: -+ pr_err_once("unknown opcode %02x\n", code); -+ return -EINVAL; -+notyet: -+ pr_info_once("*** NOT YET: opcode %02x ***\n", code); -+ return -EFAULT; -+toofar: -+ pr_info_once("*** TOO FAR: jump at %u opcode %02x ***\n", -+ ctx->bpf_index, code); -+ return -E2BIG; -+ } -+ return 0; -+} diff --git a/root/target/linux/generic/backport-5.15/050-v5.16-03-mips-bpf-Add-new-eBPF-JIT-for-64-bit-MIPS.patch b/root/target/linux/generic/backport-5.15/050-v5.16-03-mips-bpf-Add-new-eBPF-JIT-for-64-bit-MIPS.patch deleted file mode 100755 index 38b46c0b..00000000 --- a/root/target/linux/generic/backport-5.15/050-v5.16-03-mips-bpf-Add-new-eBPF-JIT-for-64-bit-MIPS.patch +++ /dev/null @@ -1,1005 +0,0 @@ -From: Johan Almbladh -Date: Tue, 5 Oct 2021 18:54:05 +0200 -Subject: [PATCH] mips: bpf: Add new eBPF JIT for 64-bit MIPS - -This is an implementation on of an eBPF JIT for 64-bit MIPS III-V and -MIPS64r1-r6. It uses the same framework introduced by the 32-bit JIT. - -Signed-off-by: Johan Almbladh ---- - create mode 100644 arch/mips/net/bpf_jit_comp64.c - ---- /dev/null -+++ b/arch/mips/net/bpf_jit_comp64.c -@@ -0,0 +1,991 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+/* -+ * Just-In-Time compiler for eBPF bytecode on MIPS. -+ * Implementation of JIT functions for 64-bit CPUs. -+ * -+ * Copyright (c) 2021 Anyfi Networks AB. -+ * Author: Johan Almbladh -+ * -+ * Based on code and ideas from -+ * Copyright (c) 2017 Cavium, Inc. -+ * Copyright (c) 2017 Shubham Bansal -+ * Copyright (c) 2011 Mircea Gherzan -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "bpf_jit_comp.h" -+ -+/* MIPS t0-t3 are not available in the n64 ABI */ -+#undef MIPS_R_T0 -+#undef MIPS_R_T1 -+#undef MIPS_R_T2 -+#undef MIPS_R_T3 -+ -+/* Stack is 16-byte aligned in n64 ABI */ -+#define MIPS_STACK_ALIGNMENT 16 -+ -+/* Extra 64-bit eBPF registers used by JIT */ -+#define JIT_REG_TC (MAX_BPF_JIT_REG + 0) -+#define JIT_REG_ZX (MAX_BPF_JIT_REG + 1) -+ -+/* Number of prologue bytes to skip when doing a tail call */ -+#define JIT_TCALL_SKIP 4 -+ -+/* Callee-saved CPU registers that the JIT must preserve */ -+#define JIT_CALLEE_REGS \ -+ (BIT(MIPS_R_S0) | \ -+ BIT(MIPS_R_S1) | \ -+ BIT(MIPS_R_S2) | \ -+ BIT(MIPS_R_S3) | \ -+ BIT(MIPS_R_S4) | \ -+ BIT(MIPS_R_S5) | \ -+ BIT(MIPS_R_S6) | \ -+ BIT(MIPS_R_S7) | \ -+ BIT(MIPS_R_GP) | \ -+ BIT(MIPS_R_FP) | \ -+ BIT(MIPS_R_RA)) -+ -+/* Caller-saved CPU registers available for JIT use */ -+#define JIT_CALLER_REGS \ -+ (BIT(MIPS_R_A5) | \ -+ BIT(MIPS_R_A6) | \ -+ BIT(MIPS_R_A7)) -+/* -+ * Mapping of 64-bit eBPF registers to 64-bit native MIPS registers. -+ * MIPS registers t4 - t7 may be used by the JIT as temporary registers. -+ * MIPS registers t8 - t9 are reserved for single-register common functions. -+ */ -+static const u8 bpf2mips64[] = { -+ /* Return value from in-kernel function, and exit value from eBPF */ -+ [BPF_REG_0] = MIPS_R_V0, -+ /* Arguments from eBPF program to in-kernel function */ -+ [BPF_REG_1] = MIPS_R_A0, -+ [BPF_REG_2] = MIPS_R_A1, -+ [BPF_REG_3] = MIPS_R_A2, -+ [BPF_REG_4] = MIPS_R_A3, -+ [BPF_REG_5] = MIPS_R_A4, -+ /* Callee-saved registers that in-kernel function will preserve */ -+ [BPF_REG_6] = MIPS_R_S0, -+ [BPF_REG_7] = MIPS_R_S1, -+ [BPF_REG_8] = MIPS_R_S2, -+ [BPF_REG_9] = MIPS_R_S3, -+ /* Read-only frame pointer to access the eBPF stack */ -+ [BPF_REG_FP] = MIPS_R_FP, -+ /* Temporary register for blinding constants */ -+ [BPF_REG_AX] = MIPS_R_AT, -+ /* Tail call count register, caller-saved */ -+ [JIT_REG_TC] = MIPS_R_A5, -+ /* Constant for register zero-extension */ -+ [JIT_REG_ZX] = MIPS_R_V1, -+}; -+ -+/* -+ * MIPS 32-bit operations on 64-bit registers generate a sign-extended -+ * result. However, the eBPF ISA mandates zero-extension, so we rely on the -+ * verifier to add that for us (emit_zext_ver). In addition, ALU arithmetic -+ * operations, right shift and byte swap require properly sign-extended -+ * operands or the result is unpredictable. We emit explicit sign-extensions -+ * in those cases. -+ */ -+ -+/* Sign extension */ -+static void emit_sext(struct jit_context *ctx, u8 dst, u8 src) -+{ -+ emit(ctx, sll, dst, src, 0); -+ clobber_reg(ctx, dst); -+} -+ -+/* Zero extension */ -+static void emit_zext(struct jit_context *ctx, u8 dst) -+{ -+ if (cpu_has_mips64r2 || cpu_has_mips64r6) { -+ emit(ctx, dinsu, dst, MIPS_R_ZERO, 32, 32); -+ } else { -+ emit(ctx, and, dst, dst, bpf2mips64[JIT_REG_ZX]); -+ access_reg(ctx, JIT_REG_ZX); /* We need the ZX register */ -+ } -+ clobber_reg(ctx, dst); -+} -+ -+/* Zero extension, if verifier does not do it for us */ -+static void emit_zext_ver(struct jit_context *ctx, u8 dst) -+{ -+ if (!ctx->program->aux->verifier_zext) -+ emit_zext(ctx, dst); -+} -+ -+/* dst = imm (64-bit) */ -+static void emit_mov_i64(struct jit_context *ctx, u8 dst, u64 imm64) -+{ -+ if (imm64 >= 0xffffffffffff8000ULL || imm64 < 0x8000ULL) { -+ emit(ctx, daddiu, dst, MIPS_R_ZERO, (s16)imm64); -+ } else if (imm64 >= 0xffffffff80000000ULL || -+ (imm64 < 0x80000000 && imm64 > 0xffff)) { -+ emit(ctx, lui, dst, (s16)(imm64 >> 16)); -+ emit(ctx, ori, dst, dst, (u16)imm64 & 0xffff); -+ } else { -+ u8 acc = MIPS_R_ZERO; -+ int k; -+ -+ for (k = 0; k < 4; k++) { -+ u16 half = imm64 >> (48 - 16 * k); -+ -+ if (acc == dst) -+ emit(ctx, dsll, dst, dst, 16); -+ -+ if (half) { -+ emit(ctx, ori, dst, acc, half); -+ acc = dst; -+ } -+ } -+ } -+ clobber_reg(ctx, dst); -+} -+ -+/* ALU immediate operation (64-bit) */ -+static void emit_alu_i64(struct jit_context *ctx, u8 dst, s32 imm, u8 op) -+{ -+ switch (BPF_OP(op)) { -+ /* dst = dst | imm */ -+ case BPF_OR: -+ emit(ctx, ori, dst, dst, (u16)imm); -+ break; -+ /* dst = dst ^ imm */ -+ case BPF_XOR: -+ emit(ctx, xori, dst, dst, (u16)imm); -+ break; -+ /* dst = -dst */ -+ case BPF_NEG: -+ emit(ctx, dsubu, dst, MIPS_R_ZERO, dst); -+ break; -+ /* dst = dst << imm */ -+ case BPF_LSH: -+ emit(ctx, dsll_safe, dst, dst, imm); -+ break; -+ /* dst = dst >> imm */ -+ case BPF_RSH: -+ emit(ctx, dsrl_safe, dst, dst, imm); -+ break; -+ /* dst = dst >> imm (arithmetic) */ -+ case BPF_ARSH: -+ emit(ctx, dsra_safe, dst, dst, imm); -+ break; -+ /* dst = dst + imm */ -+ case BPF_ADD: -+ emit(ctx, daddiu, dst, dst, imm); -+ break; -+ /* dst = dst - imm */ -+ case BPF_SUB: -+ emit(ctx, daddiu, dst, dst, -imm); -+ break; -+ default: -+ /* Width-generic operations */ -+ emit_alu_i(ctx, dst, imm, op); -+ } -+ clobber_reg(ctx, dst); -+} -+ -+/* ALU register operation (64-bit) */ -+static void emit_alu_r64(struct jit_context *ctx, u8 dst, u8 src, u8 op) -+{ -+ switch (BPF_OP(op)) { -+ /* dst = dst << src */ -+ case BPF_LSH: -+ emit(ctx, dsllv, dst, dst, src); -+ break; -+ /* dst = dst >> src */ -+ case BPF_RSH: -+ emit(ctx, dsrlv, dst, dst, src); -+ break; -+ /* dst = dst >> src (arithmetic) */ -+ case BPF_ARSH: -+ emit(ctx, dsrav, dst, dst, src); -+ break; -+ /* dst = dst + src */ -+ case BPF_ADD: -+ emit(ctx, daddu, dst, dst, src); -+ break; -+ /* dst = dst - src */ -+ case BPF_SUB: -+ emit(ctx, dsubu, dst, dst, src); -+ break; -+ /* dst = dst * src */ -+ case BPF_MUL: -+ if (cpu_has_mips64r6) { -+ emit(ctx, dmulu, dst, dst, src); -+ } else { -+ emit(ctx, dmultu, dst, src); -+ emit(ctx, mflo, dst); -+ } -+ break; -+ /* dst = dst / src */ -+ case BPF_DIV: -+ if (cpu_has_mips64r6) { -+ emit(ctx, ddivu_r6, dst, dst, src); -+ } else { -+ emit(ctx, ddivu, dst, src); -+ emit(ctx, mflo, dst); -+ } -+ break; -+ /* dst = dst % src */ -+ case BPF_MOD: -+ if (cpu_has_mips64r6) { -+ emit(ctx, dmodu, dst, dst, src); -+ } else { -+ emit(ctx, ddivu, dst, src); -+ emit(ctx, mfhi, dst); -+ } -+ break; -+ default: -+ /* Width-generic operations */ -+ emit_alu_r(ctx, dst, src, op); -+ } -+ clobber_reg(ctx, dst); -+} -+ -+/* Swap sub words in a register double word */ -+static void emit_swap_r64(struct jit_context *ctx, u8 dst, u8 mask, u32 bits) -+{ -+ u8 tmp = MIPS_R_T9; -+ -+ emit(ctx, and, tmp, dst, mask); /* tmp = dst & mask */ -+ emit(ctx, dsll, tmp, tmp, bits); /* tmp = tmp << bits */ -+ emit(ctx, dsrl, dst, dst, bits); /* dst = dst >> bits */ -+ emit(ctx, and, dst, dst, mask); /* dst = dst & mask */ -+ emit(ctx, or, dst, dst, tmp); /* dst = dst | tmp */ -+} -+ -+/* Swap bytes and truncate a register double word, word or half word */ -+static void emit_bswap_r64(struct jit_context *ctx, u8 dst, u32 width) -+{ -+ switch (width) { -+ /* Swap bytes in a double word */ -+ case 64: -+ if (cpu_has_mips64r2 || cpu_has_mips64r6) { -+ emit(ctx, dsbh, dst, dst); -+ emit(ctx, dshd, dst, dst); -+ } else { -+ u8 t1 = MIPS_R_T6; -+ u8 t2 = MIPS_R_T7; -+ -+ emit(ctx, dsll32, t2, dst, 0); /* t2 = dst << 32 */ -+ emit(ctx, dsrl32, dst, dst, 0); /* dst = dst >> 32 */ -+ emit(ctx, or, dst, dst, t2); /* dst = dst | t2 */ -+ -+ emit(ctx, ori, t2, MIPS_R_ZERO, 0xffff); -+ emit(ctx, dsll32, t1, t2, 0); /* t1 = t2 << 32 */ -+ emit(ctx, or, t1, t1, t2); /* t1 = t1 | t2 */ -+ emit_swap_r64(ctx, dst, t1, 16);/* dst = swap16(dst) */ -+ -+ emit(ctx, lui, t2, 0xff); /* t2 = 0x00ff0000 */ -+ emit(ctx, ori, t2, t2, 0xff); /* t2 = t2 | 0x00ff */ -+ emit(ctx, dsll32, t1, t2, 0); /* t1 = t2 << 32 */ -+ emit(ctx, or, t1, t1, t2); /* t1 = t1 | t2 */ -+ emit_swap_r64(ctx, dst, t1, 8); /* dst = swap8(dst) */ -+ } -+ break; -+ /* Swap bytes in a half word */ -+ /* Swap bytes in a word */ -+ case 32: -+ case 16: -+ emit_sext(ctx, dst, dst); -+ emit_bswap_r(ctx, dst, width); -+ if (cpu_has_mips64r2 || cpu_has_mips64r6) -+ emit_zext(ctx, dst); -+ break; -+ } -+ clobber_reg(ctx, dst); -+} -+ -+/* Truncate a register double word, word or half word */ -+static void emit_trunc_r64(struct jit_context *ctx, u8 dst, u32 width) -+{ -+ switch (width) { -+ case 64: -+ break; -+ /* Zero-extend a word */ -+ case 32: -+ emit_zext(ctx, dst); -+ break; -+ /* Zero-extend a half word */ -+ case 16: -+ emit(ctx, andi, dst, dst, 0xffff); -+ break; -+ } -+ clobber_reg(ctx, dst); -+} -+ -+/* Load operation: dst = *(size*)(src + off) */ -+static void emit_ldx(struct jit_context *ctx, u8 dst, u8 src, s16 off, u8 size) -+{ -+ switch (size) { -+ /* Load a byte */ -+ case BPF_B: -+ emit(ctx, lbu, dst, off, src); -+ break; -+ /* Load a half word */ -+ case BPF_H: -+ emit(ctx, lhu, dst, off, src); -+ break; -+ /* Load a word */ -+ case BPF_W: -+ emit(ctx, lwu, dst, off, src); -+ break; -+ /* Load a double word */ -+ case BPF_DW: -+ emit(ctx, ld, dst, off, src); -+ break; -+ } -+ clobber_reg(ctx, dst); -+} -+ -+/* Store operation: *(size *)(dst + off) = src */ -+static void emit_stx(struct jit_context *ctx, u8 dst, u8 src, s16 off, u8 size) -+{ -+ switch (size) { -+ /* Store a byte */ -+ case BPF_B: -+ emit(ctx, sb, src, off, dst); -+ break; -+ /* Store a half word */ -+ case BPF_H: -+ emit(ctx, sh, src, off, dst); -+ break; -+ /* Store a word */ -+ case BPF_W: -+ emit(ctx, sw, src, off, dst); -+ break; -+ /* Store a double word */ -+ case BPF_DW: -+ emit(ctx, sd, src, off, dst); -+ break; -+ } -+} -+ -+/* Atomic read-modify-write */ -+static void emit_atomic_r64(struct jit_context *ctx, -+ u8 dst, u8 src, s16 off, u8 code) -+{ -+ u8 t1 = MIPS_R_T6; -+ u8 t2 = MIPS_R_T7; -+ -+ emit(ctx, lld, t1, off, dst); -+ switch (code) { -+ case BPF_ADD: -+ emit(ctx, daddu, t2, t1, src); -+ break; -+ case BPF_AND: -+ emit(ctx, and, t2, t1, src); -+ break; -+ case BPF_OR: -+ emit(ctx, or, t2, t1, src); -+ break; -+ case BPF_XOR: -+ emit(ctx, xor, t2, t1, src); -+ break; -+ } -+ emit(ctx, scd, t2, off, dst); -+ emit(ctx, beqz, t2, -16); -+ emit(ctx, nop); /* Delay slot */ -+} -+ -+/* Function call */ -+static int emit_call(struct jit_context *ctx, const struct bpf_insn *insn) -+{ -+ u8 zx = bpf2mips64[JIT_REG_ZX]; -+ u8 tmp = MIPS_R_T6; -+ bool fixed; -+ u64 addr; -+ -+ /* Decode the call address */ -+ if (bpf_jit_get_func_addr(ctx->program, insn, false, -+ &addr, &fixed) < 0) -+ return -1; -+ if (!fixed) -+ return -1; -+ -+ /* Push caller-saved registers on stack */ -+ push_regs(ctx, ctx->clobbered & JIT_CALLER_REGS, 0, 0); -+ -+ /* Emit function call */ -+ emit_mov_i64(ctx, tmp, addr); -+ emit(ctx, jalr, MIPS_R_RA, tmp); -+ emit(ctx, nop); /* Delay slot */ -+ -+ /* Restore caller-saved registers */ -+ pop_regs(ctx, ctx->clobbered & JIT_CALLER_REGS, 0, 0); -+ -+ /* Re-initialize the JIT zero-extension register if accessed */ -+ if (ctx->accessed & BIT(JIT_REG_ZX)) { -+ emit(ctx, daddiu, zx, MIPS_R_ZERO, -1); -+ emit(ctx, dsrl32, zx, zx, 0); -+ } -+ -+ clobber_reg(ctx, MIPS_R_RA); -+ clobber_reg(ctx, MIPS_R_V0); -+ clobber_reg(ctx, MIPS_R_V1); -+ return 0; -+} -+ -+/* Function tail call */ -+static int emit_tail_call(struct jit_context *ctx) -+{ -+ u8 ary = bpf2mips64[BPF_REG_2]; -+ u8 ind = bpf2mips64[BPF_REG_3]; -+ u8 tcc = bpf2mips64[JIT_REG_TC]; -+ u8 tmp = MIPS_R_T6; -+ int off; -+ -+ /* -+ * Tail call: -+ * eBPF R1 - function argument (context ptr), passed in a0-a1 -+ * eBPF R2 - ptr to object with array of function entry points -+ * eBPF R3 - array index of function to be called -+ */ -+ -+ /* if (ind >= ary->map.max_entries) goto out */ -+ off = offsetof(struct bpf_array, map.max_entries); -+ if (off > 0x7fff) -+ return -1; -+ emit(ctx, lwu, tmp, off, ary); /* tmp = ary->map.max_entrs*/ -+ emit(ctx, sltu, tmp, ind, tmp); /* tmp = ind < t1 */ -+ emit(ctx, beqz, tmp, get_offset(ctx, 1)); /* PC += off(1) if tmp == 0*/ -+ -+ /* if (--TCC < 0) goto out */ -+ emit(ctx, daddiu, tcc, tcc, -1); /* tcc-- (delay slot) */ -+ emit(ctx, bltz, tcc, get_offset(ctx, 1)); /* PC += off(1) if tcc < 0 */ -+ /* (next insn delay slot) */ -+ /* prog = ary->ptrs[ind] */ -+ off = offsetof(struct bpf_array, ptrs); -+ if (off > 0x7fff) -+ return -1; -+ emit(ctx, dsll, tmp, ind, 3); /* tmp = ind << 3 */ -+ emit(ctx, daddu, tmp, tmp, ary); /* tmp += ary */ -+ emit(ctx, ld, tmp, off, tmp); /* tmp = *(tmp + off) */ -+ -+ /* if (prog == 0) goto out */ -+ emit(ctx, beqz, tmp, get_offset(ctx, 1)); /* PC += off(1) if tmp == 0*/ -+ emit(ctx, nop); /* Delay slot */ -+ -+ /* func = prog->bpf_func + 8 (prologue skip offset) */ -+ off = offsetof(struct bpf_prog, bpf_func); -+ if (off > 0x7fff) -+ return -1; -+ emit(ctx, ld, tmp, off, tmp); /* tmp = *(tmp + off) */ -+ emit(ctx, daddiu, tmp, tmp, JIT_TCALL_SKIP); /* tmp += skip (4) */ -+ -+ /* goto func */ -+ build_epilogue(ctx, tmp); -+ access_reg(ctx, JIT_REG_TC); -+ return 0; -+} -+ -+/* -+ * Stack frame layout for a JITed program (stack grows down). -+ * -+ * Higher address : Previous stack frame : -+ * +===========================+ <--- MIPS sp before call -+ * | Callee-saved registers, | -+ * | including RA and FP | -+ * +---------------------------+ <--- eBPF FP (MIPS fp) -+ * | Local eBPF variables | -+ * | allocated by program | -+ * +---------------------------+ -+ * | Reserved for caller-saved | -+ * | registers | -+ * Lower address +===========================+ <--- MIPS sp -+ */ -+ -+/* Build program prologue to set up the stack and registers */ -+void build_prologue(struct jit_context *ctx) -+{ -+ u8 fp = bpf2mips64[BPF_REG_FP]; -+ u8 tc = bpf2mips64[JIT_REG_TC]; -+ u8 zx = bpf2mips64[JIT_REG_ZX]; -+ int stack, saved, locals, reserved; -+ -+ /* -+ * The first instruction initializes the tail call count register. -+ * On a tail call, the calling function jumps into the prologue -+ * after this instruction. -+ */ -+ emit(ctx, addiu, tc, MIPS_R_ZERO, min(MAX_TAIL_CALL_CNT + 1, 0xffff)); -+ -+ /* === Entry-point for tail calls === */ -+ -+ /* -+ * If the eBPF frame pointer and tail call count registers were -+ * accessed they must be preserved. Mark them as clobbered here -+ * to save and restore them on the stack as needed. -+ */ -+ if (ctx->accessed & BIT(BPF_REG_FP)) -+ clobber_reg(ctx, fp); -+ if (ctx->accessed & BIT(JIT_REG_TC)) -+ clobber_reg(ctx, tc); -+ if (ctx->accessed & BIT(JIT_REG_ZX)) -+ clobber_reg(ctx, zx); -+ -+ /* Compute the stack space needed for callee-saved registers */ -+ saved = hweight32(ctx->clobbered & JIT_CALLEE_REGS) * sizeof(u64); -+ saved = ALIGN(saved, MIPS_STACK_ALIGNMENT); -+ -+ /* Stack space used by eBPF program local data */ -+ locals = ALIGN(ctx->program->aux->stack_depth, MIPS_STACK_ALIGNMENT); -+ -+ /* -+ * If we are emitting function calls, reserve extra stack space for -+ * caller-saved registers needed by the JIT. The required space is -+ * computed automatically during resource usage discovery (pass 1). -+ */ -+ reserved = ctx->stack_used; -+ -+ /* Allocate the stack frame */ -+ stack = ALIGN(saved + locals + reserved, MIPS_STACK_ALIGNMENT); -+ if (stack) -+ emit(ctx, daddiu, MIPS_R_SP, MIPS_R_SP, -stack); -+ -+ /* Store callee-saved registers on stack */ -+ push_regs(ctx, ctx->clobbered & JIT_CALLEE_REGS, 0, stack - saved); -+ -+ /* Initialize the eBPF frame pointer if accessed */ -+ if (ctx->accessed & BIT(BPF_REG_FP)) -+ emit(ctx, daddiu, fp, MIPS_R_SP, stack - saved); -+ -+ /* Initialize the ePF JIT zero-extension register if accessed */ -+ if (ctx->accessed & BIT(JIT_REG_ZX)) { -+ emit(ctx, daddiu, zx, MIPS_R_ZERO, -1); -+ emit(ctx, dsrl32, zx, zx, 0); -+ } -+ -+ ctx->saved_size = saved; -+ ctx->stack_size = stack; -+} -+ -+/* Build the program epilogue to restore the stack and registers */ -+void build_epilogue(struct jit_context *ctx, int dest_reg) -+{ -+ /* Restore callee-saved registers from stack */ -+ pop_regs(ctx, ctx->clobbered & JIT_CALLEE_REGS, 0, -+ ctx->stack_size - ctx->saved_size); -+ -+ /* Release the stack frame */ -+ if (ctx->stack_size) -+ emit(ctx, daddiu, MIPS_R_SP, MIPS_R_SP, ctx->stack_size); -+ -+ /* Jump to return address and sign-extend the 32-bit return value */ -+ emit(ctx, jr, dest_reg); -+ emit(ctx, sll, MIPS_R_V0, MIPS_R_V0, 0); /* Delay slot */ -+} -+ -+/* Build one eBPF instruction */ -+int build_insn(const struct bpf_insn *insn, struct jit_context *ctx) -+{ -+ u8 dst = bpf2mips64[insn->dst_reg]; -+ u8 src = bpf2mips64[insn->src_reg]; -+ u8 code = insn->code; -+ s16 off = insn->off; -+ s32 imm = insn->imm; -+ s32 val, rel; -+ u8 alu, jmp; -+ -+ switch (code) { -+ /* ALU operations */ -+ /* dst = imm */ -+ case BPF_ALU | BPF_MOV | BPF_K: -+ emit_mov_i(ctx, dst, imm); -+ emit_zext_ver(ctx, dst); -+ break; -+ /* dst = src */ -+ case BPF_ALU | BPF_MOV | BPF_X: -+ if (imm == 1) { -+ /* Special mov32 for zext */ -+ emit_zext(ctx, dst); -+ } else { -+ emit_mov_r(ctx, dst, src); -+ emit_zext_ver(ctx, dst); -+ } -+ break; -+ /* dst = -dst */ -+ case BPF_ALU | BPF_NEG: -+ emit_sext(ctx, dst, dst); -+ emit_alu_i(ctx, dst, 0, BPF_NEG); -+ emit_zext_ver(ctx, dst); -+ break; -+ /* dst = dst & imm */ -+ /* dst = dst | imm */ -+ /* dst = dst ^ imm */ -+ /* dst = dst << imm */ -+ case BPF_ALU | BPF_OR | BPF_K: -+ case BPF_ALU | BPF_AND | BPF_K: -+ case BPF_ALU | BPF_XOR | BPF_K: -+ case BPF_ALU | BPF_LSH | BPF_K: -+ if (!valid_alu_i(BPF_OP(code), imm)) { -+ emit_mov_i(ctx, MIPS_R_T4, imm); -+ emit_alu_r(ctx, dst, MIPS_R_T4, BPF_OP(code)); -+ } else if (rewrite_alu_i(BPF_OP(code), imm, &alu, &val)) { -+ emit_alu_i(ctx, dst, val, alu); -+ } -+ emit_zext_ver(ctx, dst); -+ break; -+ /* dst = dst >> imm */ -+ /* dst = dst >> imm (arithmetic) */ -+ /* dst = dst + imm */ -+ /* dst = dst - imm */ -+ /* dst = dst * imm */ -+ /* dst = dst / imm */ -+ /* dst = dst % imm */ -+ case BPF_ALU | BPF_RSH | BPF_K: -+ case BPF_ALU | BPF_ARSH | BPF_K: -+ case BPF_ALU | BPF_ADD | BPF_K: -+ case BPF_ALU | BPF_SUB | BPF_K: -+ case BPF_ALU | BPF_MUL | BPF_K: -+ case BPF_ALU | BPF_DIV | BPF_K: -+ case BPF_ALU | BPF_MOD | BPF_K: -+ if (!valid_alu_i(BPF_OP(code), imm)) { -+ emit_sext(ctx, dst, dst); -+ emit_mov_i(ctx, MIPS_R_T4, imm); -+ emit_alu_r(ctx, dst, MIPS_R_T4, BPF_OP(code)); -+ } else if (rewrite_alu_i(BPF_OP(code), imm, &alu, &val)) { -+ emit_sext(ctx, dst, dst); -+ emit_alu_i(ctx, dst, val, alu); -+ } -+ emit_zext_ver(ctx, dst); -+ break; -+ /* dst = dst & src */ -+ /* dst = dst | src */ -+ /* dst = dst ^ src */ -+ /* dst = dst << src */ -+ case BPF_ALU | BPF_AND | BPF_X: -+ case BPF_ALU | BPF_OR | BPF_X: -+ case BPF_ALU | BPF_XOR | BPF_X: -+ case BPF_ALU | BPF_LSH | BPF_X: -+ emit_alu_r(ctx, dst, src, BPF_OP(code)); -+ emit_zext_ver(ctx, dst); -+ break; -+ /* dst = dst >> src */ -+ /* dst = dst >> src (arithmetic) */ -+ /* dst = dst + src */ -+ /* dst = dst - src */ -+ /* dst = dst * src */ -+ /* dst = dst / src */ -+ /* dst = dst % src */ -+ case BPF_ALU | BPF_RSH | BPF_X: -+ case BPF_ALU | BPF_ARSH | BPF_X: -+ case BPF_ALU | BPF_ADD | BPF_X: -+ case BPF_ALU | BPF_SUB | BPF_X: -+ case BPF_ALU | BPF_MUL | BPF_X: -+ case BPF_ALU | BPF_DIV | BPF_X: -+ case BPF_ALU | BPF_MOD | BPF_X: -+ emit_sext(ctx, dst, dst); -+ emit_sext(ctx, MIPS_R_T4, src); -+ emit_alu_r(ctx, dst, MIPS_R_T4, BPF_OP(code)); -+ emit_zext_ver(ctx, dst); -+ break; -+ /* dst = imm (64-bit) */ -+ case BPF_ALU64 | BPF_MOV | BPF_K: -+ emit_mov_i(ctx, dst, imm); -+ break; -+ /* dst = src (64-bit) */ -+ case BPF_ALU64 | BPF_MOV | BPF_X: -+ emit_mov_r(ctx, dst, src); -+ break; -+ /* dst = -dst (64-bit) */ -+ case BPF_ALU64 | BPF_NEG: -+ emit_alu_i64(ctx, dst, 0, BPF_NEG); -+ break; -+ /* dst = dst & imm (64-bit) */ -+ /* dst = dst | imm (64-bit) */ -+ /* dst = dst ^ imm (64-bit) */ -+ /* dst = dst << imm (64-bit) */ -+ /* dst = dst >> imm (64-bit) */ -+ /* dst = dst >> imm ((64-bit, arithmetic) */ -+ /* dst = dst + imm (64-bit) */ -+ /* dst = dst - imm (64-bit) */ -+ /* dst = dst * imm (64-bit) */ -+ /* dst = dst / imm (64-bit) */ -+ /* dst = dst % imm (64-bit) */ -+ case BPF_ALU64 | BPF_AND | BPF_K: -+ case BPF_ALU64 | BPF_OR | BPF_K: -+ case BPF_ALU64 | BPF_XOR | BPF_K: -+ case BPF_ALU64 | BPF_LSH | BPF_K: -+ case BPF_ALU64 | BPF_RSH | BPF_K: -+ case BPF_ALU64 | BPF_ARSH | BPF_K: -+ case BPF_ALU64 | BPF_ADD | BPF_K: -+ case BPF_ALU64 | BPF_SUB | BPF_K: -+ case BPF_ALU64 | BPF_MUL | BPF_K: -+ case BPF_ALU64 | BPF_DIV | BPF_K: -+ case BPF_ALU64 | BPF_MOD | BPF_K: -+ if (!valid_alu_i(BPF_OP(code), imm)) { -+ emit_mov_i(ctx, MIPS_R_T4, imm); -+ emit_alu_r64(ctx, dst, MIPS_R_T4, BPF_OP(code)); -+ } else if (rewrite_alu_i(BPF_OP(code), imm, &alu, &val)) { -+ emit_alu_i64(ctx, dst, val, alu); -+ } -+ break; -+ /* dst = dst & src (64-bit) */ -+ /* dst = dst | src (64-bit) */ -+ /* dst = dst ^ src (64-bit) */ -+ /* dst = dst << src (64-bit) */ -+ /* dst = dst >> src (64-bit) */ -+ /* dst = dst >> src (64-bit, arithmetic) */ -+ /* dst = dst + src (64-bit) */ -+ /* dst = dst - src (64-bit) */ -+ /* dst = dst * src (64-bit) */ -+ /* dst = dst / src (64-bit) */ -+ /* dst = dst % src (64-bit) */ -+ case BPF_ALU64 | BPF_AND | BPF_X: -+ case BPF_ALU64 | BPF_OR | BPF_X: -+ case BPF_ALU64 | BPF_XOR | BPF_X: -+ case BPF_ALU64 | BPF_LSH | BPF_X: -+ case BPF_ALU64 | BPF_RSH | BPF_X: -+ case BPF_ALU64 | BPF_ARSH | BPF_X: -+ case BPF_ALU64 | BPF_ADD | BPF_X: -+ case BPF_ALU64 | BPF_SUB | BPF_X: -+ case BPF_ALU64 | BPF_MUL | BPF_X: -+ case BPF_ALU64 | BPF_DIV | BPF_X: -+ case BPF_ALU64 | BPF_MOD | BPF_X: -+ emit_alu_r64(ctx, dst, src, BPF_OP(code)); -+ break; -+ /* dst = htole(dst) */ -+ /* dst = htobe(dst) */ -+ case BPF_ALU | BPF_END | BPF_FROM_LE: -+ case BPF_ALU | BPF_END | BPF_FROM_BE: -+ if (BPF_SRC(code) == -+#ifdef __BIG_ENDIAN -+ BPF_FROM_LE -+#else -+ BPF_FROM_BE -+#endif -+ ) -+ emit_bswap_r64(ctx, dst, imm); -+ else -+ emit_trunc_r64(ctx, dst, imm); -+ break; -+ /* dst = imm64 */ -+ case BPF_LD | BPF_IMM | BPF_DW: -+ emit_mov_i64(ctx, dst, (u32)imm | ((u64)insn[1].imm << 32)); -+ return 1; -+ /* LDX: dst = *(size *)(src + off) */ -+ case BPF_LDX | BPF_MEM | BPF_W: -+ case BPF_LDX | BPF_MEM | BPF_H: -+ case BPF_LDX | BPF_MEM | BPF_B: -+ case BPF_LDX | BPF_MEM | BPF_DW: -+ emit_ldx(ctx, dst, src, off, BPF_SIZE(code)); -+ break; -+ /* ST: *(size *)(dst + off) = imm */ -+ case BPF_ST | BPF_MEM | BPF_W: -+ case BPF_ST | BPF_MEM | BPF_H: -+ case BPF_ST | BPF_MEM | BPF_B: -+ case BPF_ST | BPF_MEM | BPF_DW: -+ emit_mov_i(ctx, MIPS_R_T4, imm); -+ emit_stx(ctx, dst, MIPS_R_T4, off, BPF_SIZE(code)); -+ break; -+ /* STX: *(size *)(dst + off) = src */ -+ case BPF_STX | BPF_MEM | BPF_W: -+ case BPF_STX | BPF_MEM | BPF_H: -+ case BPF_STX | BPF_MEM | BPF_B: -+ case BPF_STX | BPF_MEM | BPF_DW: -+ emit_stx(ctx, dst, src, off, BPF_SIZE(code)); -+ break; -+ /* Speculation barrier */ -+ case BPF_ST | BPF_NOSPEC: -+ break; -+ /* Atomics */ -+ case BPF_STX | BPF_XADD | BPF_W: -+ case BPF_STX | BPF_XADD | BPF_DW: -+ switch (imm) { -+ case BPF_ADD: -+ case BPF_AND: -+ case BPF_OR: -+ case BPF_XOR: -+ if (BPF_SIZE(code) == BPF_DW) { -+ emit_atomic_r64(ctx, dst, src, off, imm); -+ } else { /* 32-bit, no fetch */ -+ emit_sext(ctx, MIPS_R_T4, src); -+ emit_atomic_r(ctx, dst, MIPS_R_T4, off, imm); -+ } -+ break; -+ default: -+ goto notyet; -+ } -+ break; -+ /* PC += off if dst == src */ -+ /* PC += off if dst != src */ -+ /* PC += off if dst & src */ -+ /* PC += off if dst > src */ -+ /* PC += off if dst >= src */ -+ /* PC += off if dst < src */ -+ /* PC += off if dst <= src */ -+ /* PC += off if dst > src (signed) */ -+ /* PC += off if dst >= src (signed) */ -+ /* PC += off if dst < src (signed) */ -+ /* PC += off if dst <= src (signed) */ -+ case BPF_JMP32 | BPF_JEQ | BPF_X: -+ case BPF_JMP32 | BPF_JNE | BPF_X: -+ case BPF_JMP32 | BPF_JSET | BPF_X: -+ case BPF_JMP32 | BPF_JGT | BPF_X: -+ case BPF_JMP32 | BPF_JGE | BPF_X: -+ case BPF_JMP32 | BPF_JLT | BPF_X: -+ case BPF_JMP32 | BPF_JLE | BPF_X: -+ case BPF_JMP32 | BPF_JSGT | BPF_X: -+ case BPF_JMP32 | BPF_JSGE | BPF_X: -+ case BPF_JMP32 | BPF_JSLT | BPF_X: -+ case BPF_JMP32 | BPF_JSLE | BPF_X: -+ if (off == 0) -+ break; -+ setup_jmp_r(ctx, dst == src, BPF_OP(code), off, &jmp, &rel); -+ emit_sext(ctx, MIPS_R_T4, dst); /* Sign-extended dst */ -+ emit_sext(ctx, MIPS_R_T5, src); /* Sign-extended src */ -+ emit_jmp_r(ctx, MIPS_R_T4, MIPS_R_T5, rel, jmp); -+ if (finish_jmp(ctx, jmp, off) < 0) -+ goto toofar; -+ break; -+ /* PC += off if dst == imm */ -+ /* PC += off if dst != imm */ -+ /* PC += off if dst & imm */ -+ /* PC += off if dst > imm */ -+ /* PC += off if dst >= imm */ -+ /* PC += off if dst < imm */ -+ /* PC += off if dst <= imm */ -+ /* PC += off if dst > imm (signed) */ -+ /* PC += off if dst >= imm (signed) */ -+ /* PC += off if dst < imm (signed) */ -+ /* PC += off if dst <= imm (signed) */ -+ case BPF_JMP32 | BPF_JEQ | BPF_K: -+ case BPF_JMP32 | BPF_JNE | BPF_K: -+ case BPF_JMP32 | BPF_JSET | BPF_K: -+ case BPF_JMP32 | BPF_JGT | BPF_K: -+ case BPF_JMP32 | BPF_JGE | BPF_K: -+ case BPF_JMP32 | BPF_JLT | BPF_K: -+ case BPF_JMP32 | BPF_JLE | BPF_K: -+ case BPF_JMP32 | BPF_JSGT | BPF_K: -+ case BPF_JMP32 | BPF_JSGE | BPF_K: -+ case BPF_JMP32 | BPF_JSLT | BPF_K: -+ case BPF_JMP32 | BPF_JSLE | BPF_K: -+ if (off == 0) -+ break; -+ setup_jmp_i(ctx, imm, 32, BPF_OP(code), off, &jmp, &rel); -+ emit_sext(ctx, MIPS_R_T4, dst); /* Sign-extended dst */ -+ if (valid_jmp_i(jmp, imm)) { -+ emit_jmp_i(ctx, MIPS_R_T4, imm, rel, jmp); -+ } else { -+ /* Move large immediate to register, sign-extended */ -+ emit_mov_i(ctx, MIPS_R_T5, imm); -+ emit_jmp_r(ctx, MIPS_R_T4, MIPS_R_T5, rel, jmp); -+ } -+ if (finish_jmp(ctx, jmp, off) < 0) -+ goto toofar; -+ break; -+ /* PC += off if dst == src */ -+ /* PC += off if dst != src */ -+ /* PC += off if dst & src */ -+ /* PC += off if dst > src */ -+ /* PC += off if dst >= src */ -+ /* PC += off if dst < src */ -+ /* PC += off if dst <= src */ -+ /* PC += off if dst > src (signed) */ -+ /* PC += off if dst >= src (signed) */ -+ /* PC += off if dst < src (signed) */ -+ /* PC += off if dst <= src (signed) */ -+ case BPF_JMP | BPF_JEQ | BPF_X: -+ case BPF_JMP | BPF_JNE | BPF_X: -+ case BPF_JMP | BPF_JSET | BPF_X: -+ case BPF_JMP | BPF_JGT | BPF_X: -+ case BPF_JMP | BPF_JGE | BPF_X: -+ case BPF_JMP | BPF_JLT | BPF_X: -+ case BPF_JMP | BPF_JLE | BPF_X: -+ case BPF_JMP | BPF_JSGT | BPF_X: -+ case BPF_JMP | BPF_JSGE | BPF_X: -+ case BPF_JMP | BPF_JSLT | BPF_X: -+ case BPF_JMP | BPF_JSLE | BPF_X: -+ if (off == 0) -+ break; -+ setup_jmp_r(ctx, dst == src, BPF_OP(code), off, &jmp, &rel); -+ emit_jmp_r(ctx, dst, src, rel, jmp); -+ if (finish_jmp(ctx, jmp, off) < 0) -+ goto toofar; -+ break; -+ /* PC += off if dst == imm */ -+ /* PC += off if dst != imm */ -+ /* PC += off if dst & imm */ -+ /* PC += off if dst > imm */ -+ /* PC += off if dst >= imm */ -+ /* PC += off if dst < imm */ -+ /* PC += off if dst <= imm */ -+ /* PC += off if dst > imm (signed) */ -+ /* PC += off if dst >= imm (signed) */ -+ /* PC += off if dst < imm (signed) */ -+ /* PC += off if dst <= imm (signed) */ -+ case BPF_JMP | BPF_JEQ | BPF_K: -+ case BPF_JMP | BPF_JNE | BPF_K: -+ case BPF_JMP | BPF_JSET | BPF_K: -+ case BPF_JMP | BPF_JGT | BPF_K: -+ case BPF_JMP | BPF_JGE | BPF_K: -+ case BPF_JMP | BPF_JLT | BPF_K: -+ case BPF_JMP | BPF_JLE | BPF_K: -+ case BPF_JMP | BPF_JSGT | BPF_K: -+ case BPF_JMP | BPF_JSGE | BPF_K: -+ case BPF_JMP | BPF_JSLT | BPF_K: -+ case BPF_JMP | BPF_JSLE | BPF_K: -+ if (off == 0) -+ break; -+ setup_jmp_i(ctx, imm, 64, BPF_OP(code), off, &jmp, &rel); -+ if (valid_jmp_i(jmp, imm)) { -+ emit_jmp_i(ctx, dst, imm, rel, jmp); -+ } else { -+ /* Move large immediate to register */ -+ emit_mov_i(ctx, MIPS_R_T4, imm); -+ emit_jmp_r(ctx, dst, MIPS_R_T4, rel, jmp); -+ } -+ if (finish_jmp(ctx, jmp, off) < 0) -+ goto toofar; -+ break; -+ /* PC += off */ -+ case BPF_JMP | BPF_JA: -+ if (off == 0) -+ break; -+ if (emit_ja(ctx, off) < 0) -+ goto toofar; -+ break; -+ /* Tail call */ -+ case BPF_JMP | BPF_TAIL_CALL: -+ if (emit_tail_call(ctx) < 0) -+ goto invalid; -+ break; -+ /* Function call */ -+ case BPF_JMP | BPF_CALL: -+ if (emit_call(ctx, insn) < 0) -+ goto invalid; -+ break; -+ /* Function return */ -+ case BPF_JMP | BPF_EXIT: -+ /* -+ * Optimization: when last instruction is EXIT -+ * simply continue to epilogue. -+ */ -+ if (ctx->bpf_index == ctx->program->len - 1) -+ break; -+ if (emit_exit(ctx) < 0) -+ goto toofar; -+ break; -+ -+ default: -+invalid: -+ pr_err_once("unknown opcode %02x\n", code); -+ return -EINVAL; -+notyet: -+ pr_info_once("*** NOT YET: opcode %02x ***\n", code); -+ return -EFAULT; -+toofar: -+ pr_info_once("*** TOO FAR: jump at %u opcode %02x ***\n", -+ ctx->bpf_index, code); -+ return -E2BIG; -+ } -+ return 0; -+} diff --git a/root/target/linux/generic/backport-5.15/050-v5.16-04-mips-bpf-Add-JIT-workarounds-for-CPU-errata.patch b/root/target/linux/generic/backport-5.15/050-v5.16-04-mips-bpf-Add-JIT-workarounds-for-CPU-errata.patch deleted file mode 100755 index 63553ebe..00000000 --- a/root/target/linux/generic/backport-5.15/050-v5.16-04-mips-bpf-Add-JIT-workarounds-for-CPU-errata.patch +++ /dev/null @@ -1,120 +0,0 @@ -From: Johan Almbladh -Date: Tue, 5 Oct 2021 18:54:06 +0200 -Subject: [PATCH] mips: bpf: Add JIT workarounds for CPU errata - -This patch adds workarounds for the following CPU errata to the MIPS -eBPF JIT, if enabled in the kernel configuration. - - - R10000 ll/sc weak ordering - - Loongson-3 ll/sc weak ordering - - Loongson-2F jump hang - -The Loongson-2F nop errata is implemented in uasm, which the JIT uses, -so no additional mitigations are needed for that. - -Signed-off-by: Johan Almbladh -Reviewed-by: Jiaxun Yang ---- - ---- a/arch/mips/net/bpf_jit_comp.c -+++ b/arch/mips/net/bpf_jit_comp.c -@@ -404,6 +404,7 @@ void emit_alu_r(struct jit_context *ctx, - /* Atomic read-modify-write (32-bit) */ - void emit_atomic_r(struct jit_context *ctx, u8 dst, u8 src, s16 off, u8 code) - { -+ LLSC_sync(ctx); - emit(ctx, ll, MIPS_R_T9, off, dst); - switch (code) { - case BPF_ADD: -@@ -420,18 +421,19 @@ void emit_atomic_r(struct jit_context *c - break; - } - emit(ctx, sc, MIPS_R_T8, off, dst); -- emit(ctx, beqz, MIPS_R_T8, -16); -+ emit(ctx, LLSC_beqz, MIPS_R_T8, -16 - LLSC_offset); - emit(ctx, nop); /* Delay slot */ - } - - /* Atomic compare-and-exchange (32-bit) */ - void emit_cmpxchg_r(struct jit_context *ctx, u8 dst, u8 src, u8 res, s16 off) - { -+ LLSC_sync(ctx); - emit(ctx, ll, MIPS_R_T9, off, dst); - emit(ctx, bne, MIPS_R_T9, res, 12); - emit(ctx, move, MIPS_R_T8, src); /* Delay slot */ - emit(ctx, sc, MIPS_R_T8, off, dst); -- emit(ctx, beqz, MIPS_R_T8, -20); -+ emit(ctx, LLSC_beqz, MIPS_R_T8, -20 - LLSC_offset); - emit(ctx, move, res, MIPS_R_T9); /* Delay slot */ - clobber_reg(ctx, res); - } ---- a/arch/mips/net/bpf_jit_comp.h -+++ b/arch/mips/net/bpf_jit_comp.h -@@ -87,7 +87,7 @@ struct jit_context { - }; - - /* Emit the instruction if the JIT memory space has been allocated */ --#define emit(ctx, func, ...) \ -+#define __emit(ctx, func, ...) \ - do { \ - if ((ctx)->target != NULL) { \ - u32 *p = &(ctx)->target[ctx->jit_index]; \ -@@ -95,6 +95,30 @@ do { \ - } \ - (ctx)->jit_index++; \ - } while (0) -+#define emit(...) __emit(__VA_ARGS__) -+ -+/* Workaround for R10000 ll/sc errata */ -+#ifdef CONFIG_WAR_R10000 -+#define LLSC_beqz beqzl -+#else -+#define LLSC_beqz beqz -+#endif -+ -+/* Workaround for Loongson-3 ll/sc errata */ -+#ifdef CONFIG_CPU_LOONGSON3_WORKAROUNDS -+#define LLSC_sync(ctx) emit(ctx, sync, 0) -+#define LLSC_offset 4 -+#else -+#define LLSC_sync(ctx) -+#define LLSC_offset 0 -+#endif -+ -+/* Workaround for Loongson-2F jump errata */ -+#ifdef CONFIG_CPU_JUMP_WORKAROUNDS -+#define JALR_MASK 0xffffffffcfffffffULL -+#else -+#define JALR_MASK (~0ULL) -+#endif - - /* - * Mark a BPF register as accessed, it needs to be ---- a/arch/mips/net/bpf_jit_comp64.c -+++ b/arch/mips/net/bpf_jit_comp64.c -@@ -375,6 +375,7 @@ static void emit_atomic_r64(struct jit_c - u8 t1 = MIPS_R_T6; - u8 t2 = MIPS_R_T7; - -+ LLSC_sync(ctx); - emit(ctx, lld, t1, off, dst); - switch (code) { - case BPF_ADD: -@@ -391,7 +392,7 @@ static void emit_atomic_r64(struct jit_c - break; - } - emit(ctx, scd, t2, off, dst); -- emit(ctx, beqz, t2, -16); -+ emit(ctx, LLSC_beqz, t2, -16 - LLSC_offset); - emit(ctx, nop); /* Delay slot */ - } - -@@ -414,7 +415,7 @@ static int emit_call(struct jit_context - push_regs(ctx, ctx->clobbered & JIT_CALLER_REGS, 0, 0); - - /* Emit function call */ -- emit_mov_i64(ctx, tmp, addr); -+ emit_mov_i64(ctx, tmp, addr & JALR_MASK); - emit(ctx, jalr, MIPS_R_RA, tmp); - emit(ctx, nop); /* Delay slot */ - diff --git a/root/target/linux/generic/backport-5.15/050-v5.16-05-mips-bpf-Enable-eBPF-JITs.patch b/root/target/linux/generic/backport-5.15/050-v5.16-05-mips-bpf-Enable-eBPF-JITs.patch deleted file mode 100755 index 00b3536b..00000000 --- a/root/target/linux/generic/backport-5.15/050-v5.16-05-mips-bpf-Enable-eBPF-JITs.patch +++ /dev/null @@ -1,61 +0,0 @@ -From: Johan Almbladh -Date: Tue, 5 Oct 2021 18:54:07 +0200 -Subject: [PATCH] mips: bpf: Enable eBPF JITs - -This patch enables the new eBPF JITs for 32-bit and 64-bit MIPS. It also -disables the old cBPF JIT to so cBPF programs are converted to use the -new JIT. - -Workarounds for R4000 CPU errata are not implemented by the JIT, so the -JIT is disabled if any of those workarounds are configured. - -Signed-off-by: Johan Almbladh ---- - ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -3428,6 +3428,7 @@ S: Supported - F: arch/arm64/net/ - - BPF JIT for MIPS (32-BIT AND 64-BIT) -+M: Johan Almbladh - M: Paul Burton - L: netdev@vger.kernel.org - L: bpf@vger.kernel.org ---- a/arch/mips/Kconfig -+++ b/arch/mips/Kconfig -@@ -57,7 +57,6 @@ config MIPS - select HAVE_ARCH_TRACEHOOK - select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES - select HAVE_ASM_MODVERSIONS -- select HAVE_CBPF_JIT if !64BIT && !CPU_MICROMIPS - select HAVE_CONTEXT_TRACKING - select HAVE_TIF_NOHZ - select HAVE_C_RECORDMCOUNT -@@ -65,7 +64,10 @@ config MIPS - select HAVE_DEBUG_STACKOVERFLOW - select HAVE_DMA_CONTIGUOUS - select HAVE_DYNAMIC_FTRACE -- select HAVE_EBPF_JIT if 64BIT && !CPU_MICROMIPS && TARGET_ISA_REV >= 2 -+ select HAVE_EBPF_JIT if !CPU_MICROMIPS && \ -+ !CPU_DADDI_WORKAROUNDS && \ -+ !CPU_R4000_WORKAROUNDS && \ -+ !CPU_R4400_WORKAROUNDS - select HAVE_EXIT_THREAD - select HAVE_FAST_GUP - select HAVE_FTRACE_MCOUNT_RECORD ---- a/arch/mips/net/Makefile -+++ b/arch/mips/net/Makefile -@@ -2,9 +2,10 @@ - # MIPS networking code - - obj-$(CONFIG_MIPS_CBPF_JIT) += bpf_jit.o bpf_jit_asm.o -+obj-$(CONFIG_MIPS_EBPF_JIT) += bpf_jit_comp.o - - ifeq ($(CONFIG_32BIT),y) -- obj-$(CONFIG_MIPS_EBPF_JIT) += bpf_jit_comp.o bpf_jit_comp32.o -+ obj-$(CONFIG_MIPS_EBPF_JIT) += bpf_jit_comp32.o - else -- obj-$(CONFIG_MIPS_EBPF_JIT) += ebpf_jit.o -+ obj-$(CONFIG_MIPS_EBPF_JIT) += bpf_jit_comp64.o - endif diff --git a/root/target/linux/generic/backport-5.15/050-v5.16-06-mips-bpf-Remove-old-BPF-JIT-implementations.patch b/root/target/linux/generic/backport-5.15/050-v5.16-06-mips-bpf-Remove-old-BPF-JIT-implementations.patch deleted file mode 100755 index e25c3368..00000000 --- a/root/target/linux/generic/backport-5.15/050-v5.16-06-mips-bpf-Remove-old-BPF-JIT-implementations.patch +++ /dev/null @@ -1,387 +0,0 @@ -From: Johan Almbladh -Date: Tue, 5 Oct 2021 18:54:08 +0200 -Subject: [PATCH] mips: bpf: Remove old BPF JIT implementations - -This patch removes the old 32-bit cBPF and 64-bit eBPF JIT implementations. -They are replaced by a new eBPF implementation that supports both 32-bit -and 64-bit MIPS CPUs. - -Signed-off-by: Johan Almbladh ---- - delete mode 100644 arch/mips/net/bpf_jit.c - delete mode 100644 arch/mips/net/bpf_jit.h - delete mode 100644 arch/mips/net/bpf_jit_asm.S - delete mode 100644 arch/mips/net/ebpf_jit.c - ---- a/arch/mips/net/bpf_jit.h -+++ /dev/null -@@ -1,81 +0,0 @@ --/* SPDX-License-Identifier: GPL-2.0-only */ --/* -- * Just-In-Time compiler for BPF filters on MIPS -- * -- * Copyright (c) 2014 Imagination Technologies Ltd. -- * Author: Markos Chandras -- */ -- --#ifndef BPF_JIT_MIPS_OP_H --#define BPF_JIT_MIPS_OP_H -- --/* Registers used by JIT */ --#define MIPS_R_ZERO 0 --#define MIPS_R_V0 2 --#define MIPS_R_A0 4 --#define MIPS_R_A1 5 --#define MIPS_R_T4 12 --#define MIPS_R_T5 13 --#define MIPS_R_T6 14 --#define MIPS_R_T7 15 --#define MIPS_R_S0 16 --#define MIPS_R_S1 17 --#define MIPS_R_S2 18 --#define MIPS_R_S3 19 --#define MIPS_R_S4 20 --#define MIPS_R_S5 21 --#define MIPS_R_S6 22 --#define MIPS_R_S7 23 --#define MIPS_R_SP 29 --#define MIPS_R_RA 31 -- --/* Conditional codes */ --#define MIPS_COND_EQ 0x1 --#define MIPS_COND_GE (0x1 << 1) --#define MIPS_COND_GT (0x1 << 2) --#define MIPS_COND_NE (0x1 << 3) --#define MIPS_COND_ALL (0x1 << 4) --/* Conditionals on X register or K immediate */ --#define MIPS_COND_X (0x1 << 5) --#define MIPS_COND_K (0x1 << 6) -- --#define r_ret MIPS_R_V0 -- --/* -- * Use 2 scratch registers to avoid pipeline interlocks. -- * There is no overhead during epilogue and prologue since -- * any of the $s0-$s6 registers will only be preserved if -- * they are going to actually be used. -- */ --#define r_skb_hl MIPS_R_S0 /* skb header length */ --#define r_skb_data MIPS_R_S1 /* skb actual data */ --#define r_off MIPS_R_S2 --#define r_A MIPS_R_S3 --#define r_X MIPS_R_S4 --#define r_skb MIPS_R_S5 --#define r_M MIPS_R_S6 --#define r_skb_len MIPS_R_S7 --#define r_s0 MIPS_R_T4 /* scratch reg 1 */ --#define r_s1 MIPS_R_T5 /* scratch reg 2 */ --#define r_tmp_imm MIPS_R_T6 /* No need to preserve this */ --#define r_tmp MIPS_R_T7 /* No need to preserve this */ --#define r_zero MIPS_R_ZERO --#define r_sp MIPS_R_SP --#define r_ra MIPS_R_RA -- --#ifndef __ASSEMBLY__ -- --/* Declare ASM helpers */ -- --#define DECLARE_LOAD_FUNC(func) \ -- extern u8 func(unsigned long *skb, int offset); \ -- extern u8 func##_negative(unsigned long *skb, int offset); \ -- extern u8 func##_positive(unsigned long *skb, int offset) -- --DECLARE_LOAD_FUNC(sk_load_word); --DECLARE_LOAD_FUNC(sk_load_half); --DECLARE_LOAD_FUNC(sk_load_byte); -- --#endif -- --#endif /* BPF_JIT_MIPS_OP_H */ ---- a/arch/mips/net/bpf_jit_asm.S -+++ /dev/null -@@ -1,285 +0,0 @@ --/* -- * bpf_jib_asm.S: Packet/header access helper functions for MIPS/MIPS64 BPF -- * compiler. -- * -- * Copyright (C) 2015 Imagination Technologies Ltd. -- * Author: Markos Chandras -- * -- * This program is free software; you can redistribute it and/or modify it -- * under the terms of the GNU General Public License as published by the -- * Free Software Foundation; version 2 of the License. -- */ -- --#include --#include --#include --#include "bpf_jit.h" -- --/* ABI -- * -- * r_skb_hl skb header length -- * r_skb_data skb data -- * r_off(a1) offset register -- * r_A BPF register A -- * r_X PF register X -- * r_skb(a0) *skb -- * r_M *scratch memory -- * r_skb_le skb length -- * r_s0 Scratch register 0 -- * r_s1 Scratch register 1 -- * -- * On entry: -- * a0: *skb -- * a1: offset (imm or imm + X) -- * -- * All non-BPF-ABI registers are free for use. On return, we only -- * care about r_ret. The BPF-ABI registers are assumed to remain -- * unmodified during the entire filter operation. -- */ -- --#define skb a0 --#define offset a1 --#define SKF_LL_OFF (-0x200000) /* Can't include linux/filter.h in assembly */ -- -- /* We know better :) so prevent assembler reordering etc */ -- .set noreorder -- --#define is_offset_negative(TYPE) \ -- /* If offset is negative we have more work to do */ \ -- slti t0, offset, 0; \ -- bgtz t0, bpf_slow_path_##TYPE##_neg; \ -- /* Be careful what follows in DS. */ -- --#define is_offset_in_header(SIZE, TYPE) \ -- /* Reading from header? */ \ -- addiu $r_s0, $r_skb_hl, -SIZE; \ -- slt t0, $r_s0, offset; \ -- bgtz t0, bpf_slow_path_##TYPE; \ -- --LEAF(sk_load_word) -- is_offset_negative(word) --FEXPORT(sk_load_word_positive) -- is_offset_in_header(4, word) -- /* Offset within header boundaries */ -- PTR_ADDU t1, $r_skb_data, offset -- .set reorder -- lw $r_A, 0(t1) -- .set noreorder --#ifdef CONFIG_CPU_LITTLE_ENDIAN --# if MIPS_ISA_REV >= 2 -- wsbh t0, $r_A -- rotr $r_A, t0, 16 --# else -- sll t0, $r_A, 24 -- srl t1, $r_A, 24 -- srl t2, $r_A, 8 -- or t0, t0, t1 -- andi t2, t2, 0xff00 -- andi t1, $r_A, 0xff00 -- or t0, t0, t2 -- sll t1, t1, 8 -- or $r_A, t0, t1 --# endif --#endif -- jr $r_ra -- move $r_ret, zero -- END(sk_load_word) -- --LEAF(sk_load_half) -- is_offset_negative(half) --FEXPORT(sk_load_half_positive) -- is_offset_in_header(2, half) -- /* Offset within header boundaries */ -- PTR_ADDU t1, $r_skb_data, offset -- lhu $r_A, 0(t1) --#ifdef CONFIG_CPU_LITTLE_ENDIAN --# if MIPS_ISA_REV >= 2 -- wsbh $r_A, $r_A --# else -- sll t0, $r_A, 8 -- srl t1, $r_A, 8 -- andi t0, t0, 0xff00 -- or $r_A, t0, t1 --# endif --#endif -- jr $r_ra -- move $r_ret, zero -- END(sk_load_half) -- --LEAF(sk_load_byte) -- is_offset_negative(byte) --FEXPORT(sk_load_byte_positive) -- is_offset_in_header(1, byte) -- /* Offset within header boundaries */ -- PTR_ADDU t1, $r_skb_data, offset -- lbu $r_A, 0(t1) -- jr $r_ra -- move $r_ret, zero -- END(sk_load_byte) -- --/* -- * call skb_copy_bits: -- * (prototype in linux/skbuff.h) -- * -- * int skb_copy_bits(sk_buff *skb, int offset, void *to, int len) -- * -- * o32 mandates we leave 4 spaces for argument registers in case -- * the callee needs to use them. Even though we don't care about -- * the argument registers ourselves, we need to allocate that space -- * to remain ABI compliant since the callee may want to use that space. -- * We also allocate 2 more spaces for $r_ra and our return register (*to). -- * -- * n64 is a bit different. The *caller* will allocate the space to preserve -- * the arguments. So in 64-bit kernels, we allocate the 4-arg space for no -- * good reason but it does not matter that much really. -- * -- * (void *to) is returned in r_s0 -- * -- */ --#ifdef CONFIG_CPU_LITTLE_ENDIAN --#define DS_OFFSET(SIZE) (4 * SZREG) --#else --#define DS_OFFSET(SIZE) ((4 * SZREG) + (4 - SIZE)) --#endif --#define bpf_slow_path_common(SIZE) \ -- /* Quick check. Are we within reasonable boundaries? */ \ -- LONG_ADDIU $r_s1, $r_skb_len, -SIZE; \ -- sltu $r_s0, offset, $r_s1; \ -- beqz $r_s0, fault; \ -- /* Load 4th argument in DS */ \ -- LONG_ADDIU a3, zero, SIZE; \ -- PTR_ADDIU $r_sp, $r_sp, -(6 * SZREG); \ -- PTR_LA t0, skb_copy_bits; \ -- PTR_S $r_ra, (5 * SZREG)($r_sp); \ -- /* Assign low slot to a2 */ \ -- PTR_ADDIU a2, $r_sp, DS_OFFSET(SIZE); \ -- jalr t0; \ -- /* Reset our destination slot (DS but it's ok) */ \ -- INT_S zero, (4 * SZREG)($r_sp); \ -- /* \ -- * skb_copy_bits returns 0 on success and -EFAULT \ -- * on error. Our data live in a2. Do not bother with \ -- * our data if an error has been returned. \ -- */ \ -- /* Restore our frame */ \ -- PTR_L $r_ra, (5 * SZREG)($r_sp); \ -- INT_L $r_s0, (4 * SZREG)($r_sp); \ -- bltz v0, fault; \ -- PTR_ADDIU $r_sp, $r_sp, 6 * SZREG; \ -- move $r_ret, zero; \ -- --NESTED(bpf_slow_path_word, (6 * SZREG), $r_sp) -- bpf_slow_path_common(4) --#ifdef CONFIG_CPU_LITTLE_ENDIAN --# if MIPS_ISA_REV >= 2 -- wsbh t0, $r_s0 -- jr $r_ra -- rotr $r_A, t0, 16 --# else -- sll t0, $r_s0, 24 -- srl t1, $r_s0, 24 -- srl t2, $r_s0, 8 -- or t0, t0, t1 -- andi t2, t2, 0xff00 -- andi t1, $r_s0, 0xff00 -- or t0, t0, t2 -- sll t1, t1, 8 -- jr $r_ra -- or $r_A, t0, t1 --# endif --#else -- jr $r_ra -- move $r_A, $r_s0 --#endif -- -- END(bpf_slow_path_word) -- --NESTED(bpf_slow_path_half, (6 * SZREG), $r_sp) -- bpf_slow_path_common(2) --#ifdef CONFIG_CPU_LITTLE_ENDIAN --# if MIPS_ISA_REV >= 2 -- jr $r_ra -- wsbh $r_A, $r_s0 --# else -- sll t0, $r_s0, 8 -- andi t1, $r_s0, 0xff00 -- andi t0, t0, 0xff00 -- srl t1, t1, 8 -- jr $r_ra -- or $r_A, t0, t1 --# endif --#else -- jr $r_ra -- move $r_A, $r_s0 --#endif -- -- END(bpf_slow_path_half) -- --NESTED(bpf_slow_path_byte, (6 * SZREG), $r_sp) -- bpf_slow_path_common(1) -- jr $r_ra -- move $r_A, $r_s0 -- -- END(bpf_slow_path_byte) -- --/* -- * Negative entry points -- */ -- .macro bpf_is_end_of_data -- li t0, SKF_LL_OFF -- /* Reading link layer data? */ -- slt t1, offset, t0 -- bgtz t1, fault -- /* Be careful what follows in DS. */ -- .endm --/* -- * call skb_copy_bits: -- * (prototype in linux/filter.h) -- * -- * void *bpf_internal_load_pointer_neg_helper(const struct sk_buff *skb, -- * int k, unsigned int size) -- * -- * see above (bpf_slow_path_common) for ABI restrictions -- */ --#define bpf_negative_common(SIZE) \ -- PTR_ADDIU $r_sp, $r_sp, -(6 * SZREG); \ -- PTR_LA t0, bpf_internal_load_pointer_neg_helper; \ -- PTR_S $r_ra, (5 * SZREG)($r_sp); \ -- jalr t0; \ -- li a2, SIZE; \ -- PTR_L $r_ra, (5 * SZREG)($r_sp); \ -- /* Check return pointer */ \ -- beqz v0, fault; \ -- PTR_ADDIU $r_sp, $r_sp, 6 * SZREG; \ -- /* Preserve our pointer */ \ -- move $r_s0, v0; \ -- /* Set return value */ \ -- move $r_ret, zero; \ -- --bpf_slow_path_word_neg: -- bpf_is_end_of_data --NESTED(sk_load_word_negative, (6 * SZREG), $r_sp) -- bpf_negative_common(4) -- jr $r_ra -- lw $r_A, 0($r_s0) -- END(sk_load_word_negative) -- --bpf_slow_path_half_neg: -- bpf_is_end_of_data --NESTED(sk_load_half_negative, (6 * SZREG), $r_sp) -- bpf_negative_common(2) -- jr $r_ra -- lhu $r_A, 0($r_s0) -- END(sk_load_half_negative) -- --bpf_slow_path_byte_neg: -- bpf_is_end_of_data --NESTED(sk_load_byte_negative, (6 * SZREG), $r_sp) -- bpf_negative_common(1) -- jr $r_ra -- lbu $r_A, 0($r_s0) -- END(sk_load_byte_negative) -- --fault: -- jr $r_ra -- addiu $r_ret, zero, 1 diff --git a/root/target/linux/generic/backport-5.15/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch b/root/target/linux/generic/backport-5.15/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch old mode 100755 new mode 100644 index 9a6b802f..aa4ecf1b --- a/root/target/linux/generic/backport-5.15/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch +++ b/root/target/linux/generic/backport-5.15/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch @@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso --- a/net/netfilter/nf_flow_table_core.c +++ b/net/netfilter/nf_flow_table_core.c -@@ -646,13 +646,41 @@ void nf_flow_table_free(struct nf_flowta +@@ -656,13 +656,41 @@ void nf_flow_table_free(struct nf_flowta } EXPORT_SYMBOL_GPL(nf_flow_table_free); diff --git a/root/target/linux/generic/backport-5.15/734-v5.16-0001-net-bgmac-improve-handling-PHY.patch b/root/target/linux/generic/backport-5.15/734-v5.16-0001-net-bgmac-improve-handling-PHY.patch deleted file mode 100755 index 6788a2ec..00000000 --- a/root/target/linux/generic/backport-5.15/734-v5.16-0001-net-bgmac-improve-handling-PHY.patch +++ /dev/null @@ -1,84 +0,0 @@ -From b5375509184dc23d2b7fa0c5ed8763899ccc9674 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Sat, 2 Oct 2021 19:58:11 +0200 -Subject: [PATCH] net: bgmac: improve handling PHY -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -1. Use info from DT if available - -It allows describing for example a fixed link. It's more accurate than -just guessing there may be one (depending on a chipset). - -2. Verify PHY ID before trying to connect PHY - -PHY addr 0x1e (30) is special in Broadcom routers and means a switch -connected as MDIO devices instead of a real PHY. Don't try connecting to -it. - -Signed-off-by: RafaÅ‚ MiÅ‚ecki -Signed-off-by: David S. Miller ---- - drivers/net/ethernet/broadcom/bgmac-bcma.c | 33 ++++++++++++++-------- - 1 file changed, 21 insertions(+), 12 deletions(-) - ---- a/drivers/net/ethernet/broadcom/bgmac-bcma.c -+++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c -@@ -11,6 +11,7 @@ - #include - #include - #include -+#include - #include - #include "bgmac.h" - -@@ -86,17 +87,28 @@ static int bcma_phy_connect(struct bgmac - struct phy_device *phy_dev; - char bus_id[MII_BUS_ID_SIZE + 3]; - -+ /* DT info should be the most accurate */ -+ phy_dev = of_phy_get_and_connect(bgmac->net_dev, bgmac->dev->of_node, -+ bgmac_adjust_link); -+ if (phy_dev) -+ return 0; -+ - /* Connect to the PHY */ -- 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, -- PHY_INTERFACE_MODE_MII); -- if (IS_ERR(phy_dev)) { -- dev_err(bgmac->dev, "PHY connection failed\n"); -- return PTR_ERR(phy_dev); -+ if (bgmac->mii_bus && bgmac->phyaddr != BGMAC_PHY_NOREGS) { -+ 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, -+ PHY_INTERFACE_MODE_MII); -+ if (IS_ERR(phy_dev)) { -+ dev_err(bgmac->dev, "PHY connection failed\n"); -+ return PTR_ERR(phy_dev); -+ } -+ -+ return 0; - } - -- return 0; -+ /* Assume a fixed link to the switch port */ -+ return bgmac_phy_connect_direct(bgmac); - } - - static const struct bcma_device_id bgmac_bcma_tbl[] = { -@@ -297,10 +309,7 @@ static int bgmac_probe(struct bcma_devic - bgmac->cco_ctl_maskset = bcma_bgmac_cco_ctl_maskset; - bgmac->get_bus_clock = bcma_bgmac_get_bus_clock; - bgmac->cmn_maskset32 = bcma_bgmac_cmn_maskset32; -- if (bgmac->mii_bus) -- bgmac->phy_connect = bcma_phy_connect; -- else -- bgmac->phy_connect = bgmac_phy_connect_direct; -+ bgmac->phy_connect = bcma_phy_connect; - - err = bgmac_enet_probe(bgmac); - if (err) diff --git a/root/target/linux/generic/backport-5.15/734-v5.16-0002-net-bgmac-support-MDIO-described-in-DT.patch b/root/target/linux/generic/backport-5.15/734-v5.16-0002-net-bgmac-support-MDIO-described-in-DT.patch deleted file mode 100755 index f1348282..00000000 --- a/root/target/linux/generic/backport-5.15/734-v5.16-0002-net-bgmac-support-MDIO-described-in-DT.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 45c9d966688e7fad7f24bfc450547d91e4304d0b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Sat, 2 Oct 2021 19:58:12 +0200 -Subject: [PATCH] net: bgmac: support MDIO described in DT -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Check ethernet controller DT node for "mdio" subnode and use it with -of_mdiobus_register() when present. That allows specifying MDIO and its -PHY devices in a standard DT based way. - -This is required for BCM53573 SoC support. That family is sometimes -called Northstar (by marketing?) but is quite different from it. It uses -different CPU(s) and many different hw blocks. - -One of shared blocks in BCM53573 is Ethernet controller. Switch however -is not SRAB accessible (as it Northstar) but is MDIO attached. - -Signed-off-by: RafaÅ‚ MiÅ‚ecki -Signed-off-by: David S. Miller ---- - drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - ---- a/drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c -+++ b/drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c -@@ -10,6 +10,7 @@ - - #include - #include -+#include - #include "bgmac.h" - - static bool bcma_mdio_wait_value(struct bcma_device *core, u16 reg, u32 mask, -@@ -211,6 +212,7 @@ struct mii_bus *bcma_mdio_mii_register(s - { - struct bcma_device *core = bgmac->bcma.core; - struct mii_bus *mii_bus; -+ struct device_node *np; - int err; - - mii_bus = mdiobus_alloc(); -@@ -229,7 +231,9 @@ struct mii_bus *bcma_mdio_mii_register(s - mii_bus->parent = &core->dev; - mii_bus->phy_mask = ~(1 << bgmac->phyaddr); - -- err = mdiobus_register(mii_bus); -+ np = of_get_child_by_name(core->dev.of_node, "mdio"); -+ -+ err = of_mdiobus_register(mii_bus, np); - if (err) { - dev_err(&core->dev, "Registration of mii bus failed\n"); - goto err_free_bus; diff --git a/root/target/linux/generic/backport-5.15/742-v5.16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch b/root/target/linux/generic/backport-5.15/742-v5.16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch deleted file mode 100755 index e4bead89..00000000 --- a/root/target/linux/generic/backport-5.15/742-v5.16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 0ccf8511182436183c031e8a2f740ae91a02c625 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Tue, 14 Sep 2021 14:33:45 +0200 -Subject: net: phy: at803x: add support for qca 8327 internal phy - -Add support for qca8327 internal phy needed for correct init of the -switch port. It does use the same qca8337 function and reg just with a -different id. - -Signed-off-by: Ansuel Smith -Tested-by: Rosen Penev -Tested-by: Andrew Lunn -Signed-off-by: David S. Miller ---- - drivers/net/phy/at803x.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - ---- a/drivers/net/phy/at803x.c -+++ b/drivers/net/phy/at803x.c -@@ -1420,6 +1420,19 @@ static struct phy_driver at803x_driver[] - .get_sset_count = at803x_get_sset_count, - .get_strings = at803x_get_strings, - .get_stats = at803x_get_stats, -+}, { -+ /* QCA8327 */ -+ .phy_id = QCA8327_PHY_ID, -+ .phy_id_mask = QCA8K_PHY_ID_MASK, -+ .name = "QCA PHY 8327", -+ /* PHY_GBIT_FEATURES */ -+ .probe = at803x_probe, -+ .flags = PHY_IS_INTERNAL, -+ .config_init = qca83xx_config_init, -+ .soft_reset = genphy_soft_reset, -+ .get_sset_count = at803x_get_sset_count, -+ .get_strings = at803x_get_strings, -+ .get_stats = at803x_get_stats, - }, }; - - module_phy_driver(at803x_driver); -@@ -1430,6 +1443,8 @@ static struct mdio_device_id __maybe_unu - { PHY_ID_MATCH_EXACT(ATH8032_PHY_ID) }, - { PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) }, - { PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) }, -+ { PHY_ID_MATCH_EXACT(QCA8337_PHY_ID) }, -+ { PHY_ID_MATCH_EXACT(QCA8327_PHY_ID) }, - { } - }; - diff --git a/root/target/linux/generic/backport-5.15/745-v5.16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch b/root/target/linux/generic/backport-5.15/745-v5.16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch deleted file mode 100755 index 07428364..00000000 --- a/root/target/linux/generic/backport-5.15/745-v5.16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch +++ /dev/null @@ -1,65 +0,0 @@ -From b4df02b562f4aa14ff6811f30e1b4d2159585c59 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Sun, 19 Sep 2021 18:28:15 +0200 -Subject: net: phy: at803x: add support for qca 8327 A variant internal phy - -For qca8327 internal phy there are 2 different switch variant with 2 -different phy id. Add this missing variant so the internal phy can be -correctly identified and fixed. - -Signed-off-by: Ansuel Smith -Reviewed-by: Andrew Lunn -Signed-off-by: David S. Miller ---- - drivers/net/phy/at803x.c | 25 ++++++++++++++++++++----- - 1 file changed, 20 insertions(+), 5 deletions(-) - ---- a/drivers/net/phy/at803x.c -+++ b/drivers/net/phy/at803x.c -@@ -150,7 +150,8 @@ - #define ATH8035_PHY_ID 0x004dd072 - #define AT8030_PHY_ID_MASK 0xffffffef - --#define QCA8327_PHY_ID 0x004dd034 -+#define QCA8327_A_PHY_ID 0x004dd033 -+#define QCA8327_B_PHY_ID 0x004dd034 - #define QCA8337_PHY_ID 0x004dd036 - #define QCA8K_PHY_ID_MASK 0xffffffff - -@@ -1421,10 +1422,23 @@ static struct phy_driver at803x_driver[] - .get_strings = at803x_get_strings, - .get_stats = at803x_get_stats, - }, { -- /* QCA8327 */ -- .phy_id = QCA8327_PHY_ID, -+ /* QCA8327-A from switch QCA8327-AL1A */ -+ .phy_id = QCA8327_A_PHY_ID, - .phy_id_mask = QCA8K_PHY_ID_MASK, -- .name = "QCA PHY 8327", -+ .name = "QCA PHY 8327-A", -+ /* PHY_GBIT_FEATURES */ -+ .probe = at803x_probe, -+ .flags = PHY_IS_INTERNAL, -+ .config_init = qca83xx_config_init, -+ .soft_reset = genphy_soft_reset, -+ .get_sset_count = at803x_get_sset_count, -+ .get_strings = at803x_get_strings, -+ .get_stats = at803x_get_stats, -+}, { -+ /* QCA8327-B from switch QCA8327-BL1A */ -+ .phy_id = QCA8327_B_PHY_ID, -+ .phy_id_mask = QCA8K_PHY_ID_MASK, -+ .name = "QCA PHY 8327-B", - /* PHY_GBIT_FEATURES */ - .probe = at803x_probe, - .flags = PHY_IS_INTERNAL, -@@ -1444,7 +1458,8 @@ static struct mdio_device_id __maybe_unu - { PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) }, - { PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) }, - { PHY_ID_MATCH_EXACT(QCA8337_PHY_ID) }, -- { PHY_ID_MATCH_EXACT(QCA8327_PHY_ID) }, -+ { PHY_ID_MATCH_EXACT(QCA8327_A_PHY_ID) }, -+ { PHY_ID_MATCH_EXACT(QCA8327_B_PHY_ID) }, - { } - }; - diff --git a/root/target/linux/generic/backport-5.15/745-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch b/root/target/linux/generic/backport-5.15/745-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch deleted file mode 100755 index a572a318..00000000 --- a/root/target/linux/generic/backport-5.15/745-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 15b9df4ece17d084f14eb0ca1cf05f2ad497e425 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Sun, 19 Sep 2021 18:28:16 +0200 -Subject: net: phy: at803x: add resume/suspend function to qca83xx phy - -Add resume/suspend function to qca83xx internal phy. -We can't use the at803x generic function as the documentation lacks of -any support for WoL regs. - -Signed-off-by: Ansuel Smith -Reviewed-by: Andrew Lunn -Signed-off-by: David S. Miller ---- - drivers/net/phy/at803x.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/drivers/net/phy/at803x.c -+++ b/drivers/net/phy/at803x.c -@@ -1421,6 +1421,8 @@ static struct phy_driver at803x_driver[] - .get_sset_count = at803x_get_sset_count, - .get_strings = at803x_get_strings, - .get_stats = at803x_get_stats, -+ .suspend = genphy_suspend, -+ .resume = genphy_resume, - }, { - /* QCA8327-A from switch QCA8327-AL1A */ - .phy_id = QCA8327_A_PHY_ID, -@@ -1434,6 +1436,8 @@ static struct phy_driver at803x_driver[] - .get_sset_count = at803x_get_sset_count, - .get_strings = at803x_get_strings, - .get_stats = at803x_get_stats, -+ .suspend = genphy_suspend, -+ .resume = genphy_resume, - }, { - /* QCA8327-B from switch QCA8327-BL1A */ - .phy_id = QCA8327_B_PHY_ID, -@@ -1447,6 +1451,8 @@ static struct phy_driver at803x_driver[] - .get_sset_count = at803x_get_sset_count, - .get_strings = at803x_get_strings, - .get_stats = at803x_get_stats, -+ .suspend = genphy_suspend, -+ .resume = genphy_resume, - }, }; - - module_phy_driver(at803x_driver); diff --git a/root/target/linux/generic/backport-5.15/745-v5.16-03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch b/root/target/linux/generic/backport-5.15/745-v5.16-03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch deleted file mode 100755 index 45c1ff27..00000000 --- a/root/target/linux/generic/backport-5.15/745-v5.16-03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch +++ /dev/null @@ -1,95 +0,0 @@ -From d44fd8604a4ab92119adb35f05fd87612af722b5 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Sun, 19 Sep 2021 18:28:17 +0200 -Subject: net: phy: at803x: fix spacing and improve name for 83xx phy - -Fix spacing and improve name for 83xx phy following other phy in the -same driver. - -Signed-off-by: Ansuel Smith -Reviewed-by: Andrew Lunn -Signed-off-by: David S. Miller ---- - drivers/net/phy/at803x.c | 60 ++++++++++++++++++++++++------------------------ - 1 file changed, 30 insertions(+), 30 deletions(-) - ---- a/drivers/net/phy/at803x.c -+++ b/drivers/net/phy/at803x.c -@@ -1410,47 +1410,47 @@ static struct phy_driver at803x_driver[] - .config_aneg = at803x_config_aneg, - }, { - /* QCA8337 */ -- .phy_id = QCA8337_PHY_ID, -- .phy_id_mask = QCA8K_PHY_ID_MASK, -- .name = "QCA PHY 8337", -+ .phy_id = QCA8337_PHY_ID, -+ .phy_id_mask = QCA8K_PHY_ID_MASK, -+ .name = "Qualcomm Atheros 8337 internal PHY", - /* PHY_GBIT_FEATURES */ -- .probe = at803x_probe, -- .flags = PHY_IS_INTERNAL, -- .config_init = qca83xx_config_init, -- .soft_reset = genphy_soft_reset, -- .get_sset_count = at803x_get_sset_count, -- .get_strings = at803x_get_strings, -- .get_stats = at803x_get_stats, -+ .probe = at803x_probe, -+ .flags = PHY_IS_INTERNAL, -+ .config_init = qca83xx_config_init, -+ .soft_reset = genphy_soft_reset, -+ .get_sset_count = at803x_get_sset_count, -+ .get_strings = at803x_get_strings, -+ .get_stats = at803x_get_stats, - .suspend = genphy_suspend, - .resume = genphy_resume, - }, { - /* QCA8327-A from switch QCA8327-AL1A */ -- .phy_id = QCA8327_A_PHY_ID, -- .phy_id_mask = QCA8K_PHY_ID_MASK, -- .name = "QCA PHY 8327-A", -+ .phy_id = QCA8327_A_PHY_ID, -+ .phy_id_mask = QCA8K_PHY_ID_MASK, -+ .name = "Qualcomm Atheros 8327-A internal PHY", - /* PHY_GBIT_FEATURES */ -- .probe = at803x_probe, -- .flags = PHY_IS_INTERNAL, -- .config_init = qca83xx_config_init, -- .soft_reset = genphy_soft_reset, -- .get_sset_count = at803x_get_sset_count, -- .get_strings = at803x_get_strings, -- .get_stats = at803x_get_stats, -+ .probe = at803x_probe, -+ .flags = PHY_IS_INTERNAL, -+ .config_init = qca83xx_config_init, -+ .soft_reset = genphy_soft_reset, -+ .get_sset_count = at803x_get_sset_count, -+ .get_strings = at803x_get_strings, -+ .get_stats = at803x_get_stats, - .suspend = genphy_suspend, - .resume = genphy_resume, - }, { - /* QCA8327-B from switch QCA8327-BL1A */ -- .phy_id = QCA8327_B_PHY_ID, -- .phy_id_mask = QCA8K_PHY_ID_MASK, -- .name = "QCA PHY 8327-B", -+ .phy_id = QCA8327_B_PHY_ID, -+ .phy_id_mask = QCA8K_PHY_ID_MASK, -+ .name = "Qualcomm Atheros 8327-B internal PHY", - /* PHY_GBIT_FEATURES */ -- .probe = at803x_probe, -- .flags = PHY_IS_INTERNAL, -- .config_init = qca83xx_config_init, -- .soft_reset = genphy_soft_reset, -- .get_sset_count = at803x_get_sset_count, -- .get_strings = at803x_get_strings, -- .get_stats = at803x_get_stats, -+ .probe = at803x_probe, -+ .flags = PHY_IS_INTERNAL, -+ .config_init = qca83xx_config_init, -+ .soft_reset = genphy_soft_reset, -+ .get_sset_count = at803x_get_sset_count, -+ .get_strings = at803x_get_strings, -+ .get_stats = at803x_get_stats, - .suspend = genphy_suspend, - .resume = genphy_resume, - }, }; diff --git a/root/target/linux/generic/backport-5.15/746-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch b/root/target/linux/generic/backport-5.15/746-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch deleted file mode 100755 index 7f9182ab..00000000 --- a/root/target/linux/generic/backport-5.15/746-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch +++ /dev/null @@ -1,131 +0,0 @@ -From ba3c01ee02ed0d821c9f241f179bbc9457542b8f Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Sun, 10 Oct 2021 00:46:15 +0200 -Subject: net: phy: at803x: fix resume for QCA8327 phy - -From Documentation phy resume triggers phy reset and restart -auto-negotiation. Add a dedicated function to wait reset to finish as -it was notice a regression where port sometime are not reliable after a -suspend/resume session. The reset wait logic is copied from phy_poll_reset. -Add dedicated suspend function to use genphy_suspend only with QCA8337 -phy and set only additional debug settings for QCA8327. With more test -it was reported that QCA8327 doesn't proprely support this mode and -using this cause the unreliability of the switch ports, especially the -malfunction of the port0. - -Fixes: 15b9df4ece17 ("net: phy: at803x: add resume/suspend function to qca83xx phy") -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - drivers/net/phy/at803x.c | 69 +++++++++++++++++++++++++++++++++++++++++++----- - 1 file changed, 63 insertions(+), 6 deletions(-) - ---- a/drivers/net/phy/at803x.c -+++ b/drivers/net/phy/at803x.c -@@ -92,9 +92,14 @@ - #define AT803X_DEBUG_REG_5 0x05 - #define AT803X_DEBUG_TX_CLK_DLY_EN BIT(8) - -+#define AT803X_DEBUG_REG_HIB_CTRL 0x0b -+#define AT803X_DEBUG_HIB_CTRL_SEL_RST_80U BIT(10) -+#define AT803X_DEBUG_HIB_CTRL_EN_ANY_CHANGE BIT(13) -+ - #define AT803X_DEBUG_REG_3C 0x3C - - #define AT803X_DEBUG_REG_3D 0x3D -+#define AT803X_DEBUG_GATE_CLK_IN1000 BIT(6) - - #define AT803X_DEBUG_REG_1F 0x1F - #define AT803X_DEBUG_PLL_ON BIT(2) -@@ -1312,6 +1317,58 @@ static int qca83xx_config_init(struct ph - return 0; - } - -+static int qca83xx_resume(struct phy_device *phydev) -+{ -+ int ret, val; -+ -+ /* Skip reset if not suspended */ -+ if (!phydev->suspended) -+ return 0; -+ -+ /* Reinit the port, reset values set by suspend */ -+ qca83xx_config_init(phydev); -+ -+ /* Reset the port on port resume */ -+ phy_set_bits(phydev, MII_BMCR, BMCR_RESET | BMCR_ANENABLE); -+ -+ /* On resume from suspend the switch execute a reset and -+ * restart auto-negotiation. Wait for reset to complete. -+ */ -+ ret = phy_read_poll_timeout(phydev, MII_BMCR, val, !(val & BMCR_RESET), -+ 50000, 600000, true); -+ if (ret) -+ return ret; -+ -+ msleep(1); -+ -+ return 0; -+} -+ -+static int qca83xx_suspend(struct phy_device *phydev) -+{ -+ u16 mask = 0; -+ -+ /* Only QCA8337 support actual suspend. -+ * QCA8327 cause port unreliability when phy suspend -+ * is set. -+ */ -+ if (phydev->drv->phy_id == QCA8337_PHY_ID) { -+ genphy_suspend(phydev); -+ } else { -+ mask |= ~(BMCR_SPEED1000 | BMCR_FULLDPLX); -+ phy_modify(phydev, MII_BMCR, mask, 0); -+ } -+ -+ at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_3D, -+ AT803X_DEBUG_GATE_CLK_IN1000, 0); -+ -+ at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_HIB_CTRL, -+ AT803X_DEBUG_HIB_CTRL_EN_ANY_CHANGE | -+ AT803X_DEBUG_HIB_CTRL_SEL_RST_80U, 0); -+ -+ return 0; -+} -+ - static struct phy_driver at803x_driver[] = { - { - /* Qualcomm Atheros AR8035 */ -@@ -1421,8 +1478,8 @@ static struct phy_driver at803x_driver[] - .get_sset_count = at803x_get_sset_count, - .get_strings = at803x_get_strings, - .get_stats = at803x_get_stats, -- .suspend = genphy_suspend, -- .resume = genphy_resume, -+ .suspend = qca83xx_suspend, -+ .resume = qca83xx_resume, - }, { - /* QCA8327-A from switch QCA8327-AL1A */ - .phy_id = QCA8327_A_PHY_ID, -@@ -1436,8 +1493,8 @@ static struct phy_driver at803x_driver[] - .get_sset_count = at803x_get_sset_count, - .get_strings = at803x_get_strings, - .get_stats = at803x_get_stats, -- .suspend = genphy_suspend, -- .resume = genphy_resume, -+ .suspend = qca83xx_suspend, -+ .resume = qca83xx_resume, - }, { - /* QCA8327-B from switch QCA8327-BL1A */ - .phy_id = QCA8327_B_PHY_ID, -@@ -1451,8 +1508,8 @@ static struct phy_driver at803x_driver[] - .get_sset_count = at803x_get_sset_count, - .get_strings = at803x_get_strings, - .get_stats = at803x_get_stats, -- .suspend = genphy_suspend, -- .resume = genphy_resume, -+ .suspend = qca83xx_suspend, -+ .resume = qca83xx_resume, - }, }; - - module_phy_driver(at803x_driver); diff --git a/root/target/linux/generic/backport-5.15/746-v5.16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch b/root/target/linux/generic/backport-5.15/746-v5.16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch deleted file mode 100755 index cfdfe2c4..00000000 --- a/root/target/linux/generic/backport-5.15/746-v5.16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 1ca8311949aec5c9447645731ef1c6bc5bd71350 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Sun, 10 Oct 2021 00:46:16 +0200 -Subject: net: phy: at803x: add DAC amplitude fix for 8327 phy - -QCA8327 internal phy require DAC amplitude adjustement set to +6% with -100m speed. Also add additional define to report a change of the same -reg in QCA8337. (different scope it does set 1000m voltage) -Add link_change_notify function to set the proper amplitude adjustement -on PHY_RUNNING state and disable on any other state. - -Fixes: b4df02b562f4 ("net: phy: at803x: add support for qca 8327 A variant internal phy") -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - drivers/net/phy/at803x.c | 33 +++++++++++++++++++++++++++++++++ - 1 file changed, 33 insertions(+) - ---- a/drivers/net/phy/at803x.c -+++ b/drivers/net/phy/at803x.c -@@ -87,6 +87,8 @@ - #define AT803X_PSSR_MR_AN_COMPLETE 0x0200 - - #define AT803X_DEBUG_REG_0 0x00 -+#define QCA8327_DEBUG_MANU_CTRL_EN BIT(2) -+#define QCA8337_DEBUG_MANU_CTRL_EN GENMASK(3, 2) - #define AT803X_DEBUG_RX_CLK_DLY_EN BIT(15) - - #define AT803X_DEBUG_REG_5 0x05 -@@ -1314,9 +1316,37 @@ static int qca83xx_config_init(struct ph - break; - } - -+ /* QCA8327 require DAC amplitude adjustment for 100m set to +6%. -+ * Disable on init and enable only with 100m speed following -+ * qca original source code. -+ */ -+ if (phydev->drv->phy_id == QCA8327_A_PHY_ID || -+ phydev->drv->phy_id == QCA8327_B_PHY_ID) -+ at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_0, -+ QCA8327_DEBUG_MANU_CTRL_EN, 0); -+ - return 0; - } - -+static void qca83xx_link_change_notify(struct phy_device *phydev) -+{ -+ /* QCA8337 doesn't require DAC Amplitude adjustement */ -+ if (phydev->drv->phy_id == QCA8337_PHY_ID) -+ return; -+ -+ /* Set DAC Amplitude adjustment to +6% for 100m on link running */ -+ if (phydev->state == PHY_RUNNING) { -+ if (phydev->speed == SPEED_100) -+ at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_0, -+ QCA8327_DEBUG_MANU_CTRL_EN, -+ QCA8327_DEBUG_MANU_CTRL_EN); -+ } else { -+ /* Reset DAC Amplitude adjustment */ -+ at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_0, -+ QCA8327_DEBUG_MANU_CTRL_EN, 0); -+ } -+} -+ - static int qca83xx_resume(struct phy_device *phydev) - { - int ret, val; -@@ -1471,6 +1501,7 @@ static struct phy_driver at803x_driver[] - .phy_id_mask = QCA8K_PHY_ID_MASK, - .name = "Qualcomm Atheros 8337 internal PHY", - /* PHY_GBIT_FEATURES */ -+ .link_change_notify = qca83xx_link_change_notify, - .probe = at803x_probe, - .flags = PHY_IS_INTERNAL, - .config_init = qca83xx_config_init, -@@ -1486,6 +1517,7 @@ static struct phy_driver at803x_driver[] - .phy_id_mask = QCA8K_PHY_ID_MASK, - .name = "Qualcomm Atheros 8327-A internal PHY", - /* PHY_GBIT_FEATURES */ -+ .link_change_notify = qca83xx_link_change_notify, - .probe = at803x_probe, - .flags = PHY_IS_INTERNAL, - .config_init = qca83xx_config_init, -@@ -1501,6 +1533,7 @@ static struct phy_driver at803x_driver[] - .phy_id_mask = QCA8K_PHY_ID_MASK, - .name = "Qualcomm Atheros 8327-B internal PHY", - /* PHY_GBIT_FEATURES */ -+ .link_change_notify = qca83xx_link_change_notify, - .probe = at803x_probe, - .flags = PHY_IS_INTERNAL, - .config_init = qca83xx_config_init, diff --git a/root/target/linux/generic/backport-5.15/746-v5.16-03-net-phy-at803x-enable-prefer-master-for-83xx-interna.patch b/root/target/linux/generic/backport-5.15/746-v5.16-03-net-phy-at803x-enable-prefer-master-for-83xx-interna.patch deleted file mode 100755 index 71c1e60f..00000000 --- a/root/target/linux/generic/backport-5.15/746-v5.16-03-net-phy-at803x-enable-prefer-master-for-83xx-interna.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 9d1c29b4028557a496be9c5eb2b4b86063700636 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Sun, 10 Oct 2021 00:46:17 +0200 -Subject: net: phy: at803x: enable prefer master for 83xx internal phy - -From original QCA source code the port was set to prefer master as port -type in 1000BASE-T mode. Apply the same settings also here. - -Signed-off-by: Ansuel Smith -Reviewed-by: Andrew Lunn -Signed-off-by: David S. Miller ---- - drivers/net/phy/at803x.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/drivers/net/phy/at803x.c -+++ b/drivers/net/phy/at803x.c -@@ -1325,6 +1325,9 @@ static int qca83xx_config_init(struct ph - at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_0, - QCA8327_DEBUG_MANU_CTRL_EN, 0); - -+ /* Following original QCA sourcecode set port to prefer master */ -+ phy_set_bits(phydev, MII_CTRL1000, CTL1000_PREFER_MASTER); -+ - return 0; - } - diff --git a/root/target/linux/generic/backport-5.15/746-v5.16-04-net-phy-at803x-better-describe-debug-regs.patch b/root/target/linux/generic/backport-5.15/746-v5.16-04-net-phy-at803x-better-describe-debug-regs.patch deleted file mode 100755 index 64163bfb..00000000 --- a/root/target/linux/generic/backport-5.15/746-v5.16-04-net-phy-at803x-better-describe-debug-regs.patch +++ /dev/null @@ -1,127 +0,0 @@ -From 67999555ff42e91de7654488d9a7735bd9e84555 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Sun, 10 Oct 2021 00:46:18 +0200 -Subject: net: phy: at803x: better describe debug regs - -Give a name to known debug regs from Documentation instead of using -unknown hex values. - -Signed-off-by: Ansuel Smith -Reviewed-by: Andrew Lunn -Signed-off-by: David S. Miller ---- - drivers/net/phy/at803x.c | 30 +++++++++++++++--------------- - 1 file changed, 15 insertions(+), 15 deletions(-) - ---- a/drivers/net/phy/at803x.c -+++ b/drivers/net/phy/at803x.c -@@ -86,12 +86,12 @@ - #define AT803X_PSSR 0x11 /*PHY-Specific Status Register*/ - #define AT803X_PSSR_MR_AN_COMPLETE 0x0200 - --#define AT803X_DEBUG_REG_0 0x00 -+#define AT803X_DEBUG_ANALOG_TEST_CTRL 0x00 - #define QCA8327_DEBUG_MANU_CTRL_EN BIT(2) - #define QCA8337_DEBUG_MANU_CTRL_EN GENMASK(3, 2) - #define AT803X_DEBUG_RX_CLK_DLY_EN BIT(15) - --#define AT803X_DEBUG_REG_5 0x05 -+#define AT803X_DEBUG_SYSTEM_CTRL_MODE 0x05 - #define AT803X_DEBUG_TX_CLK_DLY_EN BIT(8) - - #define AT803X_DEBUG_REG_HIB_CTRL 0x0b -@@ -100,7 +100,7 @@ - - #define AT803X_DEBUG_REG_3C 0x3C - --#define AT803X_DEBUG_REG_3D 0x3D -+#define AT803X_DEBUG_REG_GREEN 0x3D - #define AT803X_DEBUG_GATE_CLK_IN1000 BIT(6) - - #define AT803X_DEBUG_REG_1F 0x1F -@@ -284,25 +284,25 @@ static int at803x_read_page(struct phy_d - - static int at803x_enable_rx_delay(struct phy_device *phydev) - { -- return at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_0, 0, -+ return at803x_debug_reg_mask(phydev, AT803X_DEBUG_ANALOG_TEST_CTRL, 0, - AT803X_DEBUG_RX_CLK_DLY_EN); - } - - static int at803x_enable_tx_delay(struct phy_device *phydev) - { -- return at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_5, 0, -+ return at803x_debug_reg_mask(phydev, AT803X_DEBUG_SYSTEM_CTRL_MODE, 0, - AT803X_DEBUG_TX_CLK_DLY_EN); - } - - static int at803x_disable_rx_delay(struct phy_device *phydev) - { -- return at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_0, -+ return at803x_debug_reg_mask(phydev, AT803X_DEBUG_ANALOG_TEST_CTRL, - AT803X_DEBUG_RX_CLK_DLY_EN, 0); - } - - static int at803x_disable_tx_delay(struct phy_device *phydev) - { -- return at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_5, -+ return at803x_debug_reg_mask(phydev, AT803X_DEBUG_SYSTEM_CTRL_MODE, - AT803X_DEBUG_TX_CLK_DLY_EN, 0); - } - -@@ -1300,9 +1300,9 @@ static int qca83xx_config_init(struct ph - switch (switch_revision) { - case 1: - /* For 100M waveform */ -- at803x_debug_reg_write(phydev, AT803X_DEBUG_REG_0, 0x02ea); -+ at803x_debug_reg_write(phydev, AT803X_DEBUG_ANALOG_TEST_CTRL, 0x02ea); - /* Turn on Gigabit clock */ -- at803x_debug_reg_write(phydev, AT803X_DEBUG_REG_3D, 0x68a0); -+ at803x_debug_reg_write(phydev, AT803X_DEBUG_REG_GREEN, 0x68a0); - break; - - case 2: -@@ -1310,8 +1310,8 @@ static int qca83xx_config_init(struct ph - fallthrough; - case 4: - phy_write_mmd(phydev, MDIO_MMD_PCS, MDIO_AZ_DEBUG, 0x803f); -- at803x_debug_reg_write(phydev, AT803X_DEBUG_REG_3D, 0x6860); -- at803x_debug_reg_write(phydev, AT803X_DEBUG_REG_5, 0x2c46); -+ at803x_debug_reg_write(phydev, AT803X_DEBUG_REG_GREEN, 0x6860); -+ at803x_debug_reg_write(phydev, AT803X_DEBUG_SYSTEM_CTRL_MODE, 0x2c46); - at803x_debug_reg_write(phydev, AT803X_DEBUG_REG_3C, 0x6000); - break; - } -@@ -1322,7 +1322,7 @@ static int qca83xx_config_init(struct ph - */ - if (phydev->drv->phy_id == QCA8327_A_PHY_ID || - phydev->drv->phy_id == QCA8327_B_PHY_ID) -- at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_0, -+ at803x_debug_reg_mask(phydev, AT803X_DEBUG_ANALOG_TEST_CTRL, - QCA8327_DEBUG_MANU_CTRL_EN, 0); - - /* Following original QCA sourcecode set port to prefer master */ -@@ -1340,12 +1340,12 @@ static void qca83xx_link_change_notify(s - /* Set DAC Amplitude adjustment to +6% for 100m on link running */ - if (phydev->state == PHY_RUNNING) { - if (phydev->speed == SPEED_100) -- at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_0, -+ at803x_debug_reg_mask(phydev, AT803X_DEBUG_ANALOG_TEST_CTRL, - QCA8327_DEBUG_MANU_CTRL_EN, - QCA8327_DEBUG_MANU_CTRL_EN); - } else { - /* Reset DAC Amplitude adjustment */ -- at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_0, -+ at803x_debug_reg_mask(phydev, AT803X_DEBUG_ANALOG_TEST_CTRL, - QCA8327_DEBUG_MANU_CTRL_EN, 0); - } - } -@@ -1392,7 +1392,7 @@ static int qca83xx_suspend(struct phy_de - phy_modify(phydev, MII_BMCR, mask, 0); - } - -- at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_3D, -+ at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_GREEN, - AT803X_DEBUG_GATE_CLK_IN1000, 0); - - at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_HIB_CTRL, diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-01-dsa-qca8k-add-mac-power-sel-support.patch b/root/target/linux/generic/backport-5.15/747-v5.16-01-dsa-qca8k-add-mac-power-sel-support.patch deleted file mode 100755 index c8d424de..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-01-dsa-qca8k-add-mac-power-sel-support.patch +++ /dev/null @@ -1,80 +0,0 @@ -From d8b6f5bae6d3b648a67b6958cb98e4e97256d652 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:06 +0200 -Subject: dsa: qca8k: add mac_power_sel support - -Add missing mac power sel support needed for ipq8064/5 SoC that require -1.8v for the internal regulator port instead of the default 1.5v. -If other device needs this, consider adding a dedicated binding to -support this. - -Signed-off-by: Ansuel Smith -Reviewed-by: Vladimir Oltean -Reviewed-by: Florian Fainelli -Signed-off-by: David S. Miller ---- - drivers/net/dsa/qca8k.c | 31 +++++++++++++++++++++++++++++++ - drivers/net/dsa/qca8k.h | 5 +++++ - 2 files changed, 36 insertions(+) - ---- a/drivers/net/dsa/qca8k.c -+++ b/drivers/net/dsa/qca8k.c -@@ -951,6 +951,33 @@ qca8k_setup_of_rgmii_delay(struct qca8k_ - } - - static int -+qca8k_setup_mac_pwr_sel(struct qca8k_priv *priv) -+{ -+ u32 mask = 0; -+ int ret = 0; -+ -+ /* SoC specific settings for ipq8064. -+ * If more device require this consider adding -+ * a dedicated binding. -+ */ -+ if (of_machine_is_compatible("qcom,ipq8064")) -+ mask |= QCA8K_MAC_PWR_RGMII0_1_8V; -+ -+ /* SoC specific settings for ipq8065 */ -+ if (of_machine_is_compatible("qcom,ipq8065")) -+ mask |= QCA8K_MAC_PWR_RGMII1_1_8V; -+ -+ if (mask) { -+ ret = qca8k_rmw(priv, QCA8K_REG_MAC_PWR_SEL, -+ QCA8K_MAC_PWR_RGMII0_1_8V | -+ QCA8K_MAC_PWR_RGMII1_1_8V, -+ mask); -+ } -+ -+ return ret; -+} -+ -+static int - qca8k_setup(struct dsa_switch *ds) - { - struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv; -@@ -979,6 +1006,10 @@ qca8k_setup(struct dsa_switch *ds) - if (ret) - return ret; - -+ ret = qca8k_setup_mac_pwr_sel(priv); -+ if (ret) -+ return ret; -+ - /* Enable CPU Port */ - ret = qca8k_reg_set(priv, QCA8K_REG_GLOBAL_FW_CTRL0, - QCA8K_GLOBAL_FW_CTRL0_CPU_PORT_EN); ---- a/drivers/net/dsa/qca8k.h -+++ b/drivers/net/dsa/qca8k.h -@@ -100,6 +100,11 @@ - #define QCA8K_SGMII_MODE_CTRL_PHY (1 << 22) - #define QCA8K_SGMII_MODE_CTRL_MAC (2 << 22) - -+/* MAC_PWR_SEL registers */ -+#define QCA8K_REG_MAC_PWR_SEL 0x0e4 -+#define QCA8K_MAC_PWR_RGMII1_1_8V BIT(18) -+#define QCA8K_MAC_PWR_RGMII0_1_8V BIT(19) -+ - /* EEE control registers */ - #define QCA8K_REG_EEE_CTRL 0x100 - #define QCA8K_REG_EEE_CTRL_LPI_EN(_i) ((_i + 1) * 2) diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-02-dt-bindings-net-dsa-qca8k-Add-SGMII-clock-phase-prop.patch b/root/target/linux/generic/backport-5.15/747-v5.16-02-dt-bindings-net-dsa-qca8k-Add-SGMII-clock-phase-prop.patch deleted file mode 100755 index bd768ec2..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-02-dt-bindings-net-dsa-qca8k-Add-SGMII-clock-phase-prop.patch +++ /dev/null @@ -1,30 +0,0 @@ -From fdbf35df9c091db9c46e57e9938e3f7a4f603a7c Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:07 +0200 -Subject: dt-bindings: net: dsa: qca8k: Add SGMII clock phase properties - -Add names and descriptions of additional PORT0_PAD_CTRL properties. -qca,sgmii-(rx|tx)clk-falling-edge are for setting the respective clock -phase to failling edge. - -Co-developed-by: Matthew Hagan -Signed-off-by: Matthew Hagan -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - Documentation/devicetree/bindings/net/dsa/qca8k.txt | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/Documentation/devicetree/bindings/net/dsa/qca8k.txt -+++ b/Documentation/devicetree/bindings/net/dsa/qca8k.txt -@@ -37,6 +37,10 @@ A CPU port node has the following option - managed entity. See - Documentation/devicetree/bindings/net/fixed-link.txt - for details. -+- qca,sgmii-rxclk-falling-edge: Set the receive clock phase to falling edge. -+ Mostly used in qca8327 with CPU port 0 set to -+ sgmii. -+- qca,sgmii-txclk-falling-edge: Set the transmit clock phase to falling edge. - - For QCA8K the 'fixed-link' sub-node supports only the following properties: - diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-03-net-dsa-qca8k-add-support-for-sgmii-falling-edge.patch b/root/target/linux/generic/backport-5.15/747-v5.16-03-net-dsa-qca8k-add-support-for-sgmii-falling-edge.patch deleted file mode 100755 index e464452d..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-03-net-dsa-qca8k-add-support-for-sgmii-falling-edge.patch +++ /dev/null @@ -1,127 +0,0 @@ -From 6c43809bf1bee76c434e365a26546a92a5fbec14 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:08 +0200 -Subject: net: dsa: qca8k: add support for sgmii falling edge - -Add support for this in the qca8k driver. Also add support for SGMII -rx/tx clock falling edge. This is only present for pad0, pad5 and -pad6 have these bit reserved from Documentation. Add a comment that this -is hardcoded to PAD0 as qca8327/28/34/37 have an unique sgmii line and -setting falling in port0 applies to both configuration with sgmii used -for port0 or port6. - -Co-developed-by: Matthew Hagan -Signed-off-by: Matthew Hagan -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - drivers/net/dsa/qca8k.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++ - drivers/net/dsa/qca8k.h | 4 ++++ - 2 files changed, 67 insertions(+) - ---- a/drivers/net/dsa/qca8k.c -+++ b/drivers/net/dsa/qca8k.c -@@ -978,6 +978,42 @@ qca8k_setup_mac_pwr_sel(struct qca8k_pri - } - - static int -+qca8k_parse_port_config(struct qca8k_priv *priv) -+{ -+ struct device_node *port_dn; -+ phy_interface_t mode; -+ struct dsa_port *dp; -+ int port, ret; -+ -+ /* We have 2 CPU port. Check them */ -+ for (port = 0; port < QCA8K_NUM_PORTS; port++) { -+ /* Skip every other port */ -+ if (port != 0 && port != 6) -+ continue; -+ -+ dp = dsa_to_port(priv->ds, port); -+ port_dn = dp->dn; -+ -+ if (!of_device_is_available(port_dn)) -+ continue; -+ -+ ret = of_get_phy_mode(port_dn, &mode); -+ if (ret) -+ continue; -+ -+ if (mode == PHY_INTERFACE_MODE_SGMII) { -+ if (of_property_read_bool(port_dn, "qca,sgmii-txclk-falling-edge")) -+ priv->sgmii_tx_clk_falling_edge = true; -+ -+ if (of_property_read_bool(port_dn, "qca,sgmii-rxclk-falling-edge")) -+ priv->sgmii_rx_clk_falling_edge = true; -+ } -+ } -+ -+ return 0; -+} -+ -+static int - qca8k_setup(struct dsa_switch *ds) - { - struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv; -@@ -990,6 +1026,11 @@ qca8k_setup(struct dsa_switch *ds) - return -EINVAL; - } - -+ /* Parse CPU port config to be later used in phy_link mac_config */ -+ ret = qca8k_parse_port_config(priv); -+ if (ret) -+ return ret; -+ - mutex_init(&priv->reg_mutex); - - /* Start by setting up the register mapping */ -@@ -1274,6 +1315,28 @@ qca8k_phylink_mac_config(struct dsa_swit - } - - qca8k_write(priv, QCA8K_REG_SGMII_CTRL, val); -+ -+ /* For qca8327/qca8328/qca8334/qca8338 sgmii is unique and -+ * falling edge is set writing in the PORT0 PAD reg -+ */ -+ if (priv->switch_id == QCA8K_ID_QCA8327 || -+ priv->switch_id == QCA8K_ID_QCA8337) -+ reg = QCA8K_REG_PORT0_PAD_CTRL; -+ -+ val = 0; -+ -+ /* SGMII Clock phase configuration */ -+ if (priv->sgmii_rx_clk_falling_edge) -+ val |= QCA8K_PORT0_PAD_SGMII_RXCLK_FALLING_EDGE; -+ -+ if (priv->sgmii_tx_clk_falling_edge) -+ val |= QCA8K_PORT0_PAD_SGMII_TXCLK_FALLING_EDGE; -+ -+ if (val) -+ ret = qca8k_rmw(priv, reg, -+ QCA8K_PORT0_PAD_SGMII_RXCLK_FALLING_EDGE | -+ QCA8K_PORT0_PAD_SGMII_TXCLK_FALLING_EDGE, -+ val); - break; - default: - dev_err(ds->dev, "xMII mode %s not supported for port %d\n", ---- a/drivers/net/dsa/qca8k.h -+++ b/drivers/net/dsa/qca8k.h -@@ -35,6 +35,8 @@ - #define QCA8K_MASK_CTRL_DEVICE_ID_MASK GENMASK(15, 8) - #define QCA8K_MASK_CTRL_DEVICE_ID(x) ((x) >> 8) - #define QCA8K_REG_PORT0_PAD_CTRL 0x004 -+#define QCA8K_PORT0_PAD_SGMII_RXCLK_FALLING_EDGE BIT(19) -+#define QCA8K_PORT0_PAD_SGMII_TXCLK_FALLING_EDGE BIT(18) - #define QCA8K_REG_PORT5_PAD_CTRL 0x008 - #define QCA8K_REG_PORT6_PAD_CTRL 0x00c - #define QCA8K_PORT_PAD_RGMII_EN BIT(26) -@@ -260,6 +262,8 @@ struct qca8k_priv { - u8 switch_revision; - u8 rgmii_tx_delay; - u8 rgmii_rx_delay; -+ bool sgmii_rx_clk_falling_edge; -+ bool sgmii_tx_clk_falling_edge; - bool legacy_phy_port_mapping; - struct regmap *regmap; - struct mii_bus *bus; diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-04-dt-bindings-net-dsa-qca8k-Document-support-for-CPU-p.patch b/root/target/linux/generic/backport-5.15/747-v5.16-04-dt-bindings-net-dsa-qca8k-Document-support-for-CPU-p.patch deleted file mode 100755 index 606ac0af..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-04-dt-bindings-net-dsa-qca8k-Document-support-for-CPU-p.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 731d613338ec6de482053ffa3f71be2325b0f8eb Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:09 +0200 -Subject: dt-bindings: net: dsa: qca8k: Document support for CPU port 6 - -The switch now support CPU port to be set 6 instead of be hardcoded to -0. Document support for it and describe logic selection. - -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - Documentation/devicetree/bindings/net/dsa/qca8k.txt | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - ---- a/Documentation/devicetree/bindings/net/dsa/qca8k.txt -+++ b/Documentation/devicetree/bindings/net/dsa/qca8k.txt -@@ -29,7 +29,11 @@ the mdio MASTER is used as communication - Don't use mixed external and internal mdio-bus configurations, as this is - not supported by the hardware. - --The CPU port of this switch is always port 0. -+This switch support 2 CPU port. Normally and advised configuration is with -+CPU port set to port 0. It is also possible to set the CPU port to port 6 -+if the device requires it. The driver will configure the switch to the defined -+port. With both CPU port declared the first CPU port is selected as primary -+and the secondary CPU ignored. - - A CPU port node has the following optional node: - diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-05-net-dsa-qca8k-add-support-for-cpu-port-6.patch b/root/target/linux/generic/backport-5.15/747-v5.16-05-net-dsa-qca8k-add-support-for-cpu-port-6.patch deleted file mode 100755 index 320db8fa..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-05-net-dsa-qca8k-add-support-for-cpu-port-6.patch +++ /dev/null @@ -1,153 +0,0 @@ -From 3fcf734aa482487df83cf8f18608438fcf59127f Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:10 +0200 -Subject: net: dsa: qca8k: add support for cpu port 6 - -Currently CPU port is always hardcoded to port 0. This switch have 2 CPU -ports. The original intention of this driver seems to be use the -mac06_exchange bit to swap MAC0 with MAC6 in the strange configuration -where device have connected only the CPU port 6. To skip the -introduction of a new binding, rework the driver to address the -secondary CPU port as primary and drop any reference of hardcoded port. -With configuration of mac06 exchange, just skip the definition of port0 -and define the CPU port as a secondary. The driver will autoconfigure -the switch to use that as the primary CPU port. - -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - drivers/net/dsa/qca8k.c | 51 ++++++++++++++++++++++++++++++++++--------------- - drivers/net/dsa/qca8k.h | 2 -- - 2 files changed, 36 insertions(+), 17 deletions(-) - ---- a/drivers/net/dsa/qca8k.c -+++ b/drivers/net/dsa/qca8k.c -@@ -977,6 +977,22 @@ qca8k_setup_mac_pwr_sel(struct qca8k_pri - return ret; - } - -+static int qca8k_find_cpu_port(struct dsa_switch *ds) -+{ -+ struct qca8k_priv *priv = ds->priv; -+ -+ /* Find the connected cpu port. Valid port are 0 or 6 */ -+ if (dsa_is_cpu_port(ds, 0)) -+ return 0; -+ -+ dev_dbg(priv->dev, "port 0 is not the CPU port. Checking port 6"); -+ -+ if (dsa_is_cpu_port(ds, 6)) -+ return 6; -+ -+ return -EINVAL; -+} -+ - static int - qca8k_parse_port_config(struct qca8k_priv *priv) - { -@@ -1017,13 +1033,13 @@ static int - qca8k_setup(struct dsa_switch *ds) - { - struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv; -- int ret, i; -+ int cpu_port, ret, i; - u32 mask; - -- /* Make sure that port 0 is the cpu port */ -- if (!dsa_is_cpu_port(ds, 0)) { -- dev_err(priv->dev, "port 0 is not the CPU port"); -- return -EINVAL; -+ cpu_port = qca8k_find_cpu_port(ds); -+ if (cpu_port < 0) { -+ dev_err(priv->dev, "No cpu port configured in both cpu port0 and port6"); -+ return cpu_port; - } - - /* Parse CPU port config to be later used in phy_link mac_config */ -@@ -1065,7 +1081,7 @@ qca8k_setup(struct dsa_switch *ds) - dev_warn(priv->dev, "mib init failed"); - - /* Enable QCA header mode on the cpu port */ -- ret = qca8k_write(priv, QCA8K_REG_PORT_HDR_CTRL(QCA8K_CPU_PORT), -+ ret = qca8k_write(priv, QCA8K_REG_PORT_HDR_CTRL(cpu_port), - QCA8K_PORT_HDR_CTRL_ALL << QCA8K_PORT_HDR_CTRL_TX_S | - QCA8K_PORT_HDR_CTRL_ALL << QCA8K_PORT_HDR_CTRL_RX_S); - if (ret) { -@@ -1087,10 +1103,10 @@ qca8k_setup(struct dsa_switch *ds) - - /* Forward all unknown frames to CPU port for Linux processing */ - ret = qca8k_write(priv, QCA8K_REG_GLOBAL_FW_CTRL1, -- BIT(0) << QCA8K_GLOBAL_FW_CTRL1_IGMP_DP_S | -- BIT(0) << QCA8K_GLOBAL_FW_CTRL1_BC_DP_S | -- BIT(0) << QCA8K_GLOBAL_FW_CTRL1_MC_DP_S | -- BIT(0) << QCA8K_GLOBAL_FW_CTRL1_UC_DP_S); -+ BIT(cpu_port) << QCA8K_GLOBAL_FW_CTRL1_IGMP_DP_S | -+ BIT(cpu_port) << QCA8K_GLOBAL_FW_CTRL1_BC_DP_S | -+ BIT(cpu_port) << QCA8K_GLOBAL_FW_CTRL1_MC_DP_S | -+ BIT(cpu_port) << QCA8K_GLOBAL_FW_CTRL1_UC_DP_S); - if (ret) - return ret; - -@@ -1098,7 +1114,7 @@ qca8k_setup(struct dsa_switch *ds) - for (i = 0; i < QCA8K_NUM_PORTS; i++) { - /* CPU port gets connected to all user ports of the switch */ - if (dsa_is_cpu_port(ds, i)) { -- ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(QCA8K_CPU_PORT), -+ ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(cpu_port), - QCA8K_PORT_LOOKUP_MEMBER, dsa_user_ports(ds)); - if (ret) - return ret; -@@ -1110,7 +1126,7 @@ qca8k_setup(struct dsa_switch *ds) - - ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(i), - QCA8K_PORT_LOOKUP_MEMBER, -- BIT(QCA8K_CPU_PORT)); -+ BIT(cpu_port)); - if (ret) - return ret; - -@@ -1616,9 +1632,12 @@ static int - qca8k_port_bridge_join(struct dsa_switch *ds, int port, struct net_device *br) - { - struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv; -- int port_mask = BIT(QCA8K_CPU_PORT); -+ int port_mask, cpu_port; - int i, ret; - -+ cpu_port = dsa_to_port(ds, port)->cpu_dp->index; -+ port_mask = BIT(cpu_port); -+ - for (i = 1; i < QCA8K_NUM_PORTS; i++) { - if (dsa_to_port(ds, i)->bridge_dev != br) - continue; -@@ -1645,7 +1664,9 @@ static void - qca8k_port_bridge_leave(struct dsa_switch *ds, int port, struct net_device *br) - { - struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv; -- int i; -+ int cpu_port, i; -+ -+ cpu_port = dsa_to_port(ds, port)->cpu_dp->index; - - for (i = 1; i < QCA8K_NUM_PORTS; i++) { - if (dsa_to_port(ds, i)->bridge_dev != br) -@@ -1662,7 +1683,7 @@ qca8k_port_bridge_leave(struct dsa_switc - * this port - */ - qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(port), -- QCA8K_PORT_LOOKUP_MEMBER, BIT(QCA8K_CPU_PORT)); -+ QCA8K_PORT_LOOKUP_MEMBER, BIT(cpu_port)); - } - - static int ---- a/drivers/net/dsa/qca8k.h -+++ b/drivers/net/dsa/qca8k.h -@@ -24,8 +24,6 @@ - - #define QCA8K_NUM_FDB_RECORDS 2048 - --#define QCA8K_CPU_PORT 0 -- - #define QCA8K_PORT_VID_DEF 1 - - /* Global control registers */ diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-06-net-dsa-qca8k-rework-rgmii-delay-logic-and-scan-for-.patch b/root/target/linux/generic/backport-5.15/747-v5.16-06-net-dsa-qca8k-rework-rgmii-delay-logic-and-scan-for-.patch deleted file mode 100755 index de201764..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-06-net-dsa-qca8k-rework-rgmii-delay-logic-and-scan-for-.patch +++ /dev/null @@ -1,295 +0,0 @@ -From 5654ec78dd7e64b1e04777b24007344329e6a63b Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:11 +0200 -Subject: net: dsa: qca8k: rework rgmii delay logic and scan for cpu port 6 - -Future proof commit. This switch have 2 CPU ports and one valid -configuration is first CPU port set to sgmii and second CPU port set to -rgmii-id. The current implementation detects delay only for CPU port -zero set to rgmii and doesn't count any delay set in a secondary CPU -port. Drop the current delay scan function and move it to the sgmii -parser function to generalize and implicitly add support for secondary -CPU port set to rgmii-id. Introduce new logic where delay is enabled -also with internal delay binding declared and rgmii set as PHY mode. - -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - drivers/net/dsa/qca8k.c | 165 ++++++++++++++++++++++++------------------------ - drivers/net/dsa/qca8k.h | 10 ++- - 2 files changed, 89 insertions(+), 86 deletions(-) - ---- a/drivers/net/dsa/qca8k.c -+++ b/drivers/net/dsa/qca8k.c -@@ -889,68 +889,6 @@ qca8k_setup_mdio_bus(struct qca8k_priv * - } - - static int --qca8k_setup_of_rgmii_delay(struct qca8k_priv *priv) --{ -- struct device_node *port_dn; -- phy_interface_t mode; -- struct dsa_port *dp; -- u32 val; -- -- /* CPU port is already checked */ -- dp = dsa_to_port(priv->ds, 0); -- -- port_dn = dp->dn; -- -- /* Check if port 0 is set to the correct type */ -- of_get_phy_mode(port_dn, &mode); -- if (mode != PHY_INTERFACE_MODE_RGMII_ID && -- mode != PHY_INTERFACE_MODE_RGMII_RXID && -- mode != PHY_INTERFACE_MODE_RGMII_TXID) { -- return 0; -- } -- -- switch (mode) { -- case PHY_INTERFACE_MODE_RGMII_ID: -- case PHY_INTERFACE_MODE_RGMII_RXID: -- if (of_property_read_u32(port_dn, "rx-internal-delay-ps", &val)) -- val = 2; -- else -- /* Switch regs accept value in ns, convert ps to ns */ -- val = val / 1000; -- -- if (val > QCA8K_MAX_DELAY) { -- dev_err(priv->dev, "rgmii rx delay is limited to a max value of 3ns, setting to the max value"); -- val = 3; -- } -- -- priv->rgmii_rx_delay = val; -- /* Stop here if we need to check only for rx delay */ -- if (mode != PHY_INTERFACE_MODE_RGMII_ID) -- break; -- -- fallthrough; -- case PHY_INTERFACE_MODE_RGMII_TXID: -- if (of_property_read_u32(port_dn, "tx-internal-delay-ps", &val)) -- val = 1; -- else -- /* Switch regs accept value in ns, convert ps to ns */ -- val = val / 1000; -- -- if (val > QCA8K_MAX_DELAY) { -- dev_err(priv->dev, "rgmii tx delay is limited to a max value of 3ns, setting to the max value"); -- val = 3; -- } -- -- priv->rgmii_tx_delay = val; -- break; -- default: -- return 0; -- } -- -- return 0; --} -- --static int - qca8k_setup_mac_pwr_sel(struct qca8k_priv *priv) - { - u32 mask = 0; -@@ -996,19 +934,21 @@ static int qca8k_find_cpu_port(struct ds - static int - qca8k_parse_port_config(struct qca8k_priv *priv) - { -+ int port, cpu_port_index = 0, ret; - struct device_node *port_dn; - phy_interface_t mode; - struct dsa_port *dp; -- int port, ret; -+ u32 delay; - - /* We have 2 CPU port. Check them */ -- for (port = 0; port < QCA8K_NUM_PORTS; port++) { -+ for (port = 0; port < QCA8K_NUM_PORTS && cpu_port_index < QCA8K_NUM_CPU_PORTS; port++) { - /* Skip every other port */ - if (port != 0 && port != 6) - continue; - - dp = dsa_to_port(priv->ds, port); - port_dn = dp->dn; -+ cpu_port_index++; - - if (!of_device_is_available(port_dn)) - continue; -@@ -1017,12 +957,54 @@ qca8k_parse_port_config(struct qca8k_pri - if (ret) - continue; - -- if (mode == PHY_INTERFACE_MODE_SGMII) { -+ switch (mode) { -+ case PHY_INTERFACE_MODE_RGMII: -+ case PHY_INTERFACE_MODE_RGMII_ID: -+ case PHY_INTERFACE_MODE_RGMII_TXID: -+ case PHY_INTERFACE_MODE_RGMII_RXID: -+ delay = 0; -+ -+ if (!of_property_read_u32(port_dn, "tx-internal-delay-ps", &delay)) -+ /* Switch regs accept value in ns, convert ps to ns */ -+ delay = delay / 1000; -+ else if (mode == PHY_INTERFACE_MODE_RGMII_ID || -+ mode == PHY_INTERFACE_MODE_RGMII_TXID) -+ delay = 1; -+ -+ if (delay > QCA8K_MAX_DELAY) { -+ dev_err(priv->dev, "rgmii tx delay is limited to a max value of 3ns, setting to the max value"); -+ delay = 3; -+ } -+ -+ priv->rgmii_tx_delay[cpu_port_index] = delay; -+ -+ delay = 0; -+ -+ if (!of_property_read_u32(port_dn, "rx-internal-delay-ps", &delay)) -+ /* Switch regs accept value in ns, convert ps to ns */ -+ delay = delay / 1000; -+ else if (mode == PHY_INTERFACE_MODE_RGMII_ID || -+ mode == PHY_INTERFACE_MODE_RGMII_RXID) -+ delay = 2; -+ -+ if (delay > QCA8K_MAX_DELAY) { -+ dev_err(priv->dev, "rgmii rx delay is limited to a max value of 3ns, setting to the max value"); -+ delay = 3; -+ } -+ -+ priv->rgmii_rx_delay[cpu_port_index] = delay; -+ -+ break; -+ case PHY_INTERFACE_MODE_SGMII: - if (of_property_read_bool(port_dn, "qca,sgmii-txclk-falling-edge")) - priv->sgmii_tx_clk_falling_edge = true; - - if (of_property_read_bool(port_dn, "qca,sgmii-rxclk-falling-edge")) - priv->sgmii_rx_clk_falling_edge = true; -+ -+ break; -+ default: -+ continue; - } - } - -@@ -1059,10 +1041,6 @@ qca8k_setup(struct dsa_switch *ds) - if (ret) - return ret; - -- ret = qca8k_setup_of_rgmii_delay(priv); -- if (ret) -- return ret; -- - ret = qca8k_setup_mac_pwr_sel(priv); - if (ret) - return ret; -@@ -1229,8 +1207,8 @@ qca8k_phylink_mac_config(struct dsa_swit - const struct phylink_link_state *state) - { - struct qca8k_priv *priv = ds->priv; -- u32 reg, val; -- int ret; -+ int cpu_port_index, ret; -+ u32 reg, val, delay; - - switch (port) { - case 0: /* 1st CPU port */ -@@ -1242,6 +1220,7 @@ qca8k_phylink_mac_config(struct dsa_swit - return; - - reg = QCA8K_REG_PORT0_PAD_CTRL; -+ cpu_port_index = QCA8K_CPU_PORT0; - break; - case 1: - case 2: -@@ -1260,6 +1239,7 @@ qca8k_phylink_mac_config(struct dsa_swit - return; - - reg = QCA8K_REG_PORT6_PAD_CTRL; -+ cpu_port_index = QCA8K_CPU_PORT6; - break; - default: - dev_err(ds->dev, "%s: unsupported port: %i\n", __func__, port); -@@ -1274,23 +1254,40 @@ qca8k_phylink_mac_config(struct dsa_swit - - switch (state->interface) { - case PHY_INTERFACE_MODE_RGMII: -- /* RGMII mode means no delay so don't enable the delay */ -- qca8k_write(priv, reg, QCA8K_PORT_PAD_RGMII_EN); -- break; - case PHY_INTERFACE_MODE_RGMII_ID: - case PHY_INTERFACE_MODE_RGMII_TXID: - case PHY_INTERFACE_MODE_RGMII_RXID: -- /* RGMII_ID needs internal delay. This is enabled through -- * PORT5_PAD_CTRL for all ports, rather than individual port -- * registers -+ val = QCA8K_PORT_PAD_RGMII_EN; -+ -+ /* Delay can be declared in 3 different way. -+ * Mode to rgmii and internal-delay standard binding defined -+ * rgmii-id or rgmii-tx/rx phy mode set. -+ * The parse logic set a delay different than 0 only when one -+ * of the 3 different way is used. In all other case delay is -+ * not enabled. With ID or TX/RXID delay is enabled and set -+ * to the default and recommended value. -+ */ -+ if (priv->rgmii_tx_delay[cpu_port_index]) { -+ delay = priv->rgmii_tx_delay[cpu_port_index]; -+ -+ val |= QCA8K_PORT_PAD_RGMII_TX_DELAY(delay) | -+ QCA8K_PORT_PAD_RGMII_TX_DELAY_EN; -+ } -+ -+ if (priv->rgmii_rx_delay[cpu_port_index]) { -+ delay = priv->rgmii_rx_delay[cpu_port_index]; -+ -+ val |= QCA8K_PORT_PAD_RGMII_RX_DELAY(delay) | -+ QCA8K_PORT_PAD_RGMII_RX_DELAY_EN; -+ } -+ -+ /* Set RGMII delay based on the selected values */ -+ qca8k_write(priv, reg, val); -+ -+ /* QCA8337 requires to set rgmii rx delay for all ports. -+ * This is enabled through PORT5_PAD_CTRL for all ports, -+ * rather than individual port registers. - */ -- qca8k_write(priv, reg, -- QCA8K_PORT_PAD_RGMII_EN | -- QCA8K_PORT_PAD_RGMII_TX_DELAY(priv->rgmii_tx_delay) | -- QCA8K_PORT_PAD_RGMII_RX_DELAY(priv->rgmii_rx_delay) | -- QCA8K_PORT_PAD_RGMII_TX_DELAY_EN | -- QCA8K_PORT_PAD_RGMII_RX_DELAY_EN); -- /* QCA8337 requires to set rgmii rx delay */ - if (priv->switch_id == QCA8K_ID_QCA8337) - qca8k_write(priv, QCA8K_REG_PORT5_PAD_CTRL, - QCA8K_PORT_PAD_RGMII_RX_DELAY_EN); ---- a/drivers/net/dsa/qca8k.h -+++ b/drivers/net/dsa/qca8k.h -@@ -13,6 +13,7 @@ - #include - - #define QCA8K_NUM_PORTS 7 -+#define QCA8K_NUM_CPU_PORTS 2 - #define QCA8K_MAX_MTU 9000 - - #define PHY_ID_QCA8327 0x004dd034 -@@ -255,13 +256,18 @@ struct qca8k_match_data { - u8 id; - }; - -+enum { -+ QCA8K_CPU_PORT0, -+ QCA8K_CPU_PORT6, -+}; -+ - struct qca8k_priv { - u8 switch_id; - u8 switch_revision; -- u8 rgmii_tx_delay; -- u8 rgmii_rx_delay; - bool sgmii_rx_clk_falling_edge; - bool sgmii_tx_clk_falling_edge; -+ u8 rgmii_rx_delay[QCA8K_NUM_CPU_PORTS]; /* 0: CPU port0, 1: CPU port6 */ -+ u8 rgmii_tx_delay[QCA8K_NUM_CPU_PORTS]; /* 0: CPU port0, 1: CPU port6 */ - bool legacy_phy_port_mapping; - struct regmap *regmap; - struct mii_bus *bus; diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-07-dt-bindings-net-dsa-qca8k-Document-qca-sgmii-enable-.patch b/root/target/linux/generic/backport-5.15/747-v5.16-07-dt-bindings-net-dsa-qca8k-Document-qca-sgmii-enable-.patch deleted file mode 100755 index 8abd264e..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-07-dt-bindings-net-dsa-qca8k-Document-qca-sgmii-enable-.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 13ad5ccc093ff448b99ac7e138e91e78796adb48 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:12 +0200 -Subject: dt-bindings: net: dsa: qca8k: Document qca,sgmii-enable-pll - -Document qca,sgmii-enable-pll binding used in the CPU nodes to -enable SGMII PLL on MAC config. - -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - Documentation/devicetree/bindings/net/dsa/qca8k.txt | 10 ++++++++++ - 1 file changed, 10 insertions(+) - ---- a/Documentation/devicetree/bindings/net/dsa/qca8k.txt -+++ b/Documentation/devicetree/bindings/net/dsa/qca8k.txt -@@ -45,6 +45,16 @@ A CPU port node has the following option - Mostly used in qca8327 with CPU port 0 set to - sgmii. - - qca,sgmii-txclk-falling-edge: Set the transmit clock phase to falling edge. -+- qca,sgmii-enable-pll : For SGMII CPU port, explicitly enable PLL, TX and RX -+ chain along with Signal Detection. -+ This should NOT be enabled for qca8327. If enabled with -+ qca8327 the sgmii port won't correctly init and an err -+ is printed. -+ This can be required for qca8337 switch with revision 2. -+ A warning is displayed when used with revision greater -+ 2. -+ With CPU port set to sgmii and qca8337 it is advised -+ to set this unless a communication problem is observed. - - For QCA8K the 'fixed-link' sub-node supports only the following properties: - diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-08-net-dsa-qca8k-add-explicit-SGMII-PLL-enable.patch b/root/target/linux/generic/backport-5.15/747-v5.16-08-net-dsa-qca8k-add-explicit-SGMII-PLL-enable.patch deleted file mode 100755 index 2b5a84a1..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-08-net-dsa-qca8k-add-explicit-SGMII-PLL-enable.patch +++ /dev/null @@ -1,65 +0,0 @@ -From bbc4799e8bb6c397e3b3fec13de68e179f5db9ff Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:13 +0200 -Subject: net: dsa: qca8k: add explicit SGMII PLL enable - -Support enabling PLL on the SGMII CPU port. Some device require this -special configuration or no traffic is transmitted and the switch -doesn't work at all. A dedicated binding is added to the CPU node -port to apply the correct reg on mac config. -Fail to correctly configure sgmii with qca8327 switch and warn if pll is -used on qca8337 with a revision greater than 1. - -Signed-off-by: Ansuel Smith -Reviewed-by: Florian Fainelli -Signed-off-by: David S. Miller ---- - drivers/net/dsa/qca8k.c | 19 +++++++++++++++++-- - drivers/net/dsa/qca8k.h | 1 + - 2 files changed, 18 insertions(+), 2 deletions(-) - ---- a/drivers/net/dsa/qca8k.c -+++ b/drivers/net/dsa/qca8k.c -@@ -1002,6 +1002,18 @@ qca8k_parse_port_config(struct qca8k_pri - if (of_property_read_bool(port_dn, "qca,sgmii-rxclk-falling-edge")) - priv->sgmii_rx_clk_falling_edge = true; - -+ if (of_property_read_bool(port_dn, "qca,sgmii-enable-pll")) { -+ priv->sgmii_enable_pll = true; -+ -+ if (priv->switch_id == QCA8K_ID_QCA8327) { -+ dev_err(priv->dev, "SGMII PLL should NOT be enabled for qca8327. Aborting enabling"); -+ priv->sgmii_enable_pll = false; -+ } -+ -+ if (priv->switch_revision < 2) -+ dev_warn(priv->dev, "SGMII PLL should NOT be enabled for qca8337 with revision 2 or more."); -+ } -+ - break; - default: - continue; -@@ -1312,8 +1324,11 @@ qca8k_phylink_mac_config(struct dsa_swit - if (ret) - return; - -- val |= QCA8K_SGMII_EN_PLL | QCA8K_SGMII_EN_RX | -- QCA8K_SGMII_EN_TX | QCA8K_SGMII_EN_SD; -+ val |= QCA8K_SGMII_EN_SD; -+ -+ if (priv->sgmii_enable_pll) -+ val |= QCA8K_SGMII_EN_PLL | QCA8K_SGMII_EN_RX | -+ QCA8K_SGMII_EN_TX; - - if (dsa_is_cpu_port(ds, port)) { - /* CPU port, we're talking to the CPU MAC, be a PHY */ ---- a/drivers/net/dsa/qca8k.h -+++ b/drivers/net/dsa/qca8k.h -@@ -266,6 +266,7 @@ struct qca8k_priv { - u8 switch_revision; - bool sgmii_rx_clk_falling_edge; - bool sgmii_tx_clk_falling_edge; -+ bool sgmii_enable_pll; - u8 rgmii_rx_delay[QCA8K_NUM_CPU_PORTS]; /* 0: CPU port0, 1: CPU port6 */ - u8 rgmii_tx_delay[QCA8K_NUM_CPU_PORTS]; /* 0: CPU port0, 1: CPU port6 */ - bool legacy_phy_port_mapping; diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-09-dt-bindings-net-dsa-qca8k-Document-qca-led-open-drai.patch b/root/target/linux/generic/backport-5.15/747-v5.16-09-dt-bindings-net-dsa-qca8k-Document-qca-led-open-drai.patch deleted file mode 100755 index 38dc954e..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-09-dt-bindings-net-dsa-qca8k-Document-qca-led-open-drai.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 924087c5c3d41553700b0eb83ca2a53b91643dca Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:14 +0200 -Subject: dt-bindings: net: dsa: qca8k: Document qca,led-open-drain binding - -Document new binding qca,ignore-power-on-sel used to ignore -power on strapping and use sw regs instead. -Document qca,led-open.drain to set led to open drain mode, the -qca,ignore-power-on-sel is mandatory with this enabled or an error will -be reported. - -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - Documentation/devicetree/bindings/net/dsa/qca8k.txt | 11 +++++++++++ - 1 file changed, 11 insertions(+) - ---- a/Documentation/devicetree/bindings/net/dsa/qca8k.txt -+++ b/Documentation/devicetree/bindings/net/dsa/qca8k.txt -@@ -13,6 +13,17 @@ Required properties: - Optional properties: - - - reset-gpios: GPIO to be used to reset the whole device -+- qca,ignore-power-on-sel: Ignore power on pin strapping to configure led open -+ drain or eeprom presence. This is needed for broken -+ devices that have wrong configuration or when the oem -+ decided to not use pin strapping and fallback to sw -+ regs. -+- qca,led-open-drain: Set leds to open-drain mode. This requires the -+ qca,ignore-power-on-sel to be set or the driver will fail -+ to probe. This is needed if the oem doesn't use pin -+ strapping to set this mode and prefers to set it using sw -+ regs. The pin strapping related to led open drain mode is -+ the pin B68 for QCA832x and B49 for QCA833x - - Subnodes: - diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-10-net-dsa-qca8k-add-support-for-pws-config-reg.patch b/root/target/linux/generic/backport-5.15/747-v5.16-10-net-dsa-qca8k-add-support-for-pws-config-reg.patch deleted file mode 100755 index aa5d92a4..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-10-net-dsa-qca8k-add-support-for-pws-config-reg.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 362bb238d8bf1470424214a8a5968d9c6cce68fa Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:15 +0200 -Subject: net: dsa: qca8k: add support for pws config reg - -Some qca8327 switch require to force the ignore of power on sel -strapping. Some switch require to set the led open drain mode in regs -instead of using strapping. While most of the device implements this -using the correct way using pin strapping, there are still some broken -device that require to be set using sw regs. -Introduce a new binding and support these special configuration. -As led open drain require to ignore pin strapping to work, the probe -fails with EINVAL error with incorrect configuration. - -Signed-off-by: Ansuel Smith -Reviewed-by: Florian Fainelli -Signed-off-by: David S. Miller ---- - drivers/net/dsa/qca8k.c | 39 +++++++++++++++++++++++++++++++++++++++ - drivers/net/dsa/qca8k.h | 6 ++++++ - 2 files changed, 45 insertions(+) - ---- a/drivers/net/dsa/qca8k.c -+++ b/drivers/net/dsa/qca8k.c -@@ -932,6 +932,41 @@ static int qca8k_find_cpu_port(struct ds - } - - static int -+qca8k_setup_of_pws_reg(struct qca8k_priv *priv) -+{ -+ struct device_node *node = priv->dev->of_node; -+ u32 val = 0; -+ int ret; -+ -+ /* QCA8327 require to set to the correct mode. -+ * His bigger brother QCA8328 have the 172 pin layout. -+ * Should be applied by default but we set this just to make sure. -+ */ -+ if (priv->switch_id == QCA8K_ID_QCA8327) { -+ ret = qca8k_rmw(priv, QCA8K_REG_PWS, QCA8327_PWS_PACKAGE148_EN, -+ QCA8327_PWS_PACKAGE148_EN); -+ if (ret) -+ return ret; -+ } -+ -+ if (of_property_read_bool(node, "qca,ignore-power-on-sel")) -+ val |= QCA8K_PWS_POWER_ON_SEL; -+ -+ if (of_property_read_bool(node, "qca,led-open-drain")) { -+ if (!(val & QCA8K_PWS_POWER_ON_SEL)) { -+ dev_err(priv->dev, "qca,led-open-drain require qca,ignore-power-on-sel to be set."); -+ return -EINVAL; -+ } -+ -+ val |= QCA8K_PWS_LED_OPEN_EN_CSR; -+ } -+ -+ return qca8k_rmw(priv, QCA8K_REG_PWS, -+ QCA8K_PWS_LED_OPEN_EN_CSR | QCA8K_PWS_POWER_ON_SEL, -+ val); -+} -+ -+static int - qca8k_parse_port_config(struct qca8k_priv *priv) - { - int port, cpu_port_index = 0, ret; -@@ -1053,6 +1088,10 @@ qca8k_setup(struct dsa_switch *ds) - if (ret) - return ret; - -+ ret = qca8k_setup_of_pws_reg(priv); -+ if (ret) -+ return ret; -+ - ret = qca8k_setup_mac_pwr_sel(priv); - if (ret) - return ret; ---- a/drivers/net/dsa/qca8k.h -+++ b/drivers/net/dsa/qca8k.h -@@ -46,6 +46,12 @@ - #define QCA8K_MAX_DELAY 3 - #define QCA8K_PORT_PAD_SGMII_EN BIT(7) - #define QCA8K_REG_PWS 0x010 -+#define QCA8K_PWS_POWER_ON_SEL BIT(31) -+/* This reg is only valid for QCA832x and toggle the package -+ * type from 176 pin (by default) to 148 pin used on QCA8327 -+ */ -+#define QCA8327_PWS_PACKAGE148_EN BIT(30) -+#define QCA8K_PWS_LED_OPEN_EN_CSR BIT(24) - #define QCA8K_PWS_SERDES_AEN_DIS BIT(7) - #define QCA8K_REG_MODULE_EN 0x030 - #define QCA8K_MODULE_EN_MIB BIT(0) diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-11-dt-bindings-net-dsa-qca8k-document-support-for-qca83.patch b/root/target/linux/generic/backport-5.15/747-v5.16-11-dt-bindings-net-dsa-qca8k-document-support-for-qca83.patch deleted file mode 100755 index 1bfb00c5..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-11-dt-bindings-net-dsa-qca8k-document-support-for-qca83.patch +++ /dev/null @@ -1,32 +0,0 @@ -From ed7988d77fbfb79366b68f9e7fa60a6080da23d4 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:16 +0200 -Subject: dt-bindings: net: dsa: qca8k: document support for qca8328 - -QCA8328 is the bigger brother of qca8327. Document the new compatible -binding and add some information to understand the various switch -compatible. - -Signed-off-by: Ansuel Smith -Reviewed-by: Florian Fainelli -Signed-off-by: David S. Miller ---- - Documentation/devicetree/bindings/net/dsa/qca8k.txt | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - ---- a/Documentation/devicetree/bindings/net/dsa/qca8k.txt -+++ b/Documentation/devicetree/bindings/net/dsa/qca8k.txt -@@ -3,9 +3,10 @@ - Required properties: - - - compatible: should be one of: -- "qca,qca8327" -- "qca,qca8334" -- "qca,qca8337" -+ "qca,qca8328": referenced as AR8328(N)-AK1(A/B) QFN 176 pin package -+ "qca,qca8327": referenced as AR8327(N)-AL1A DR-QFN 148 pin package -+ "qca,qca8334": referenced as QCA8334-AL3C QFN 88 pin package -+ "qca,qca8337": referenced as QCA8337N-AL3(B/C) DR-QFN 148 pin package - - - #size-cells: must be 0 - - #address-cells: must be 1 diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-12-net-dsa-qca8k-add-support-for-QCA8328.patch b/root/target/linux/generic/backport-5.15/747-v5.16-12-net-dsa-qca8k-add-support-for-QCA8328.patch deleted file mode 100755 index 70f227fb..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-12-net-dsa-qca8k-add-support-for-QCA8328.patch +++ /dev/null @@ -1,78 +0,0 @@ -From f477d1c8bdbef4f400718238e350f16f521d2a3e Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:17 +0200 -Subject: net: dsa: qca8k: add support for QCA8328 - -QCA8328 switch is the bigger brother of the qca8327. Same regs different -chip. Change the function to set the correct pin layout and introduce a -new match_data to differentiate the 2 switch as they have the same ID -and their internal PHY have the same ID. - -Signed-off-by: Ansuel Smith -Reviewed-by: Florian Fainelli -Signed-off-by: David S. Miller ---- - drivers/net/dsa/qca8k.c | 19 ++++++++++++++++--- - drivers/net/dsa/qca8k.h | 1 + - 2 files changed, 17 insertions(+), 3 deletions(-) - ---- a/drivers/net/dsa/qca8k.c -+++ b/drivers/net/dsa/qca8k.c -@@ -935,6 +935,7 @@ static int - qca8k_setup_of_pws_reg(struct qca8k_priv *priv) - { - struct device_node *node = priv->dev->of_node; -+ const struct qca8k_match_data *data; - u32 val = 0; - int ret; - -@@ -943,8 +944,14 @@ qca8k_setup_of_pws_reg(struct qca8k_priv - * Should be applied by default but we set this just to make sure. - */ - if (priv->switch_id == QCA8K_ID_QCA8327) { -+ data = of_device_get_match_data(priv->dev); -+ -+ /* Set the correct package of 148 pin for QCA8327 */ -+ if (data->reduced_package) -+ val |= QCA8327_PWS_PACKAGE148_EN; -+ - ret = qca8k_rmw(priv, QCA8K_REG_PWS, QCA8327_PWS_PACKAGE148_EN, -- QCA8327_PWS_PACKAGE148_EN); -+ val); - if (ret) - return ret; - } -@@ -2105,7 +2112,12 @@ static int qca8k_resume(struct device *d - static SIMPLE_DEV_PM_OPS(qca8k_pm_ops, - qca8k_suspend, qca8k_resume); - --static const struct qca8k_match_data qca832x = { -+static const struct qca8k_match_data qca8327 = { -+ .id = QCA8K_ID_QCA8327, -+ .reduced_package = true, -+}; -+ -+static const struct qca8k_match_data qca8328 = { - .id = QCA8K_ID_QCA8327, - }; - -@@ -2114,7 +2126,8 @@ static const struct qca8k_match_data qca - }; - - static const struct of_device_id qca8k_of_match[] = { -- { .compatible = "qca,qca8327", .data = &qca832x }, -+ { .compatible = "qca,qca8327", .data = &qca8327 }, -+ { .compatible = "qca,qca8328", .data = &qca8328 }, - { .compatible = "qca,qca8334", .data = &qca833x }, - { .compatible = "qca,qca8337", .data = &qca833x }, - { /* sentinel */ }, ---- a/drivers/net/dsa/qca8k.h -+++ b/drivers/net/dsa/qca8k.h -@@ -260,6 +260,7 @@ struct ar8xxx_port_status { - - struct qca8k_match_data { - u8 id; -+ bool reduced_package; - }; - - enum { diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-13-net-dsa-qca8k-set-internal-delay-also-for-sgmii.patch b/root/target/linux/generic/backport-5.15/747-v5.16-13-net-dsa-qca8k-set-internal-delay-also-for-sgmii.patch deleted file mode 100755 index 27f94dca..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-13-net-dsa-qca8k-set-internal-delay-also-for-sgmii.patch +++ /dev/null @@ -1,159 +0,0 @@ -From cef08115846e581f80ff99abf7bf218da1840616 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:18 +0200 -Subject: net: dsa: qca8k: set internal delay also for sgmii - -QCA original code report port instability and sa that SGMII also require -to set internal delay. Generalize the rgmii delay function and apply the -advised value if they are not defined in DT. - -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - drivers/net/dsa/qca8k.c | 88 +++++++++++++++++++++++++++++++++---------------- - drivers/net/dsa/qca8k.h | 2 ++ - 2 files changed, 62 insertions(+), 28 deletions(-) - ---- a/drivers/net/dsa/qca8k.c -+++ b/drivers/net/dsa/qca8k.c -@@ -1004,6 +1004,7 @@ qca8k_parse_port_config(struct qca8k_pri - case PHY_INTERFACE_MODE_RGMII_ID: - case PHY_INTERFACE_MODE_RGMII_TXID: - case PHY_INTERFACE_MODE_RGMII_RXID: -+ case PHY_INTERFACE_MODE_SGMII: - delay = 0; - - if (!of_property_read_u32(port_dn, "tx-internal-delay-ps", &delay)) -@@ -1036,8 +1037,13 @@ qca8k_parse_port_config(struct qca8k_pri - - priv->rgmii_rx_delay[cpu_port_index] = delay; - -- break; -- case PHY_INTERFACE_MODE_SGMII: -+ /* Skip sgmii parsing for rgmii* mode */ -+ if (mode == PHY_INTERFACE_MODE_RGMII || -+ mode == PHY_INTERFACE_MODE_RGMII_ID || -+ mode == PHY_INTERFACE_MODE_RGMII_TXID || -+ mode == PHY_INTERFACE_MODE_RGMII_RXID) -+ break; -+ - if (of_property_read_bool(port_dn, "qca,sgmii-txclk-falling-edge")) - priv->sgmii_tx_clk_falling_edge = true; - -@@ -1261,12 +1267,53 @@ qca8k_setup(struct dsa_switch *ds) - } - - static void -+qca8k_mac_config_setup_internal_delay(struct qca8k_priv *priv, int cpu_port_index, -+ u32 reg) -+{ -+ u32 delay, val = 0; -+ int ret; -+ -+ /* Delay can be declared in 3 different way. -+ * Mode to rgmii and internal-delay standard binding defined -+ * rgmii-id or rgmii-tx/rx phy mode set. -+ * The parse logic set a delay different than 0 only when one -+ * of the 3 different way is used. In all other case delay is -+ * not enabled. With ID or TX/RXID delay is enabled and set -+ * to the default and recommended value. -+ */ -+ if (priv->rgmii_tx_delay[cpu_port_index]) { -+ delay = priv->rgmii_tx_delay[cpu_port_index]; -+ -+ val |= QCA8K_PORT_PAD_RGMII_TX_DELAY(delay) | -+ QCA8K_PORT_PAD_RGMII_TX_DELAY_EN; -+ } -+ -+ if (priv->rgmii_rx_delay[cpu_port_index]) { -+ delay = priv->rgmii_rx_delay[cpu_port_index]; -+ -+ val |= QCA8K_PORT_PAD_RGMII_RX_DELAY(delay) | -+ QCA8K_PORT_PAD_RGMII_RX_DELAY_EN; -+ } -+ -+ /* Set RGMII delay based on the selected values */ -+ ret = qca8k_rmw(priv, reg, -+ QCA8K_PORT_PAD_RGMII_TX_DELAY_MASK | -+ QCA8K_PORT_PAD_RGMII_RX_DELAY_MASK | -+ QCA8K_PORT_PAD_RGMII_TX_DELAY_EN | -+ QCA8K_PORT_PAD_RGMII_RX_DELAY_EN, -+ val); -+ if (ret) -+ dev_err(priv->dev, "Failed to set internal delay for CPU port%d", -+ cpu_port_index == QCA8K_CPU_PORT0 ? 0 : 6); -+} -+ -+static void - qca8k_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode, - const struct phylink_link_state *state) - { - struct qca8k_priv *priv = ds->priv; - int cpu_port_index, ret; -- u32 reg, val, delay; -+ u32 reg, val; - - switch (port) { - case 0: /* 1st CPU port */ -@@ -1315,32 +1362,10 @@ qca8k_phylink_mac_config(struct dsa_swit - case PHY_INTERFACE_MODE_RGMII_ID: - case PHY_INTERFACE_MODE_RGMII_TXID: - case PHY_INTERFACE_MODE_RGMII_RXID: -- val = QCA8K_PORT_PAD_RGMII_EN; -- -- /* Delay can be declared in 3 different way. -- * Mode to rgmii and internal-delay standard binding defined -- * rgmii-id or rgmii-tx/rx phy mode set. -- * The parse logic set a delay different than 0 only when one -- * of the 3 different way is used. In all other case delay is -- * not enabled. With ID or TX/RXID delay is enabled and set -- * to the default and recommended value. -- */ -- if (priv->rgmii_tx_delay[cpu_port_index]) { -- delay = priv->rgmii_tx_delay[cpu_port_index]; -- -- val |= QCA8K_PORT_PAD_RGMII_TX_DELAY(delay) | -- QCA8K_PORT_PAD_RGMII_TX_DELAY_EN; -- } -- -- if (priv->rgmii_rx_delay[cpu_port_index]) { -- delay = priv->rgmii_rx_delay[cpu_port_index]; -- -- val |= QCA8K_PORT_PAD_RGMII_RX_DELAY(delay) | -- QCA8K_PORT_PAD_RGMII_RX_DELAY_EN; -- } -+ qca8k_write(priv, reg, QCA8K_PORT_PAD_RGMII_EN); - -- /* Set RGMII delay based on the selected values */ -- qca8k_write(priv, reg, val); -+ /* Configure rgmii delay */ -+ qca8k_mac_config_setup_internal_delay(priv, cpu_port_index, reg); - - /* QCA8337 requires to set rgmii rx delay for all ports. - * This is enabled through PORT5_PAD_CTRL for all ports, -@@ -1411,6 +1436,13 @@ qca8k_phylink_mac_config(struct dsa_swit - QCA8K_PORT0_PAD_SGMII_RXCLK_FALLING_EDGE | - QCA8K_PORT0_PAD_SGMII_TXCLK_FALLING_EDGE, - val); -+ -+ /* From original code is reported port instability as SGMII also -+ * require delay set. Apply advised values here or take them from DT. -+ */ -+ if (state->interface == PHY_INTERFACE_MODE_SGMII) -+ qca8k_mac_config_setup_internal_delay(priv, cpu_port_index, reg); -+ - break; - default: - dev_err(ds->dev, "xMII mode %s not supported for port %d\n", ---- a/drivers/net/dsa/qca8k.h -+++ b/drivers/net/dsa/qca8k.h -@@ -39,7 +39,9 @@ - #define QCA8K_REG_PORT5_PAD_CTRL 0x008 - #define QCA8K_REG_PORT6_PAD_CTRL 0x00c - #define QCA8K_PORT_PAD_RGMII_EN BIT(26) -+#define QCA8K_PORT_PAD_RGMII_TX_DELAY_MASK GENMASK(23, 22) - #define QCA8K_PORT_PAD_RGMII_TX_DELAY(x) ((x) << 22) -+#define QCA8K_PORT_PAD_RGMII_RX_DELAY_MASK GENMASK(21, 20) - #define QCA8K_PORT_PAD_RGMII_RX_DELAY(x) ((x) << 20) - #define QCA8K_PORT_PAD_RGMII_TX_DELAY_EN BIT(25) - #define QCA8K_PORT_PAD_RGMII_RX_DELAY_EN BIT(24) diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-14-net-dsa-qca8k-move-port-config-to-dedicated-struct.patch b/root/target/linux/generic/backport-5.15/747-v5.16-14-net-dsa-qca8k-move-port-config-to-dedicated-struct.patch deleted file mode 100755 index b991798c..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-14-net-dsa-qca8k-move-port-config-to-dedicated-struct.patch +++ /dev/null @@ -1,124 +0,0 @@ -From fd0bb28c547f7c8affb1691128cece38f5b626a1 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:19 +0200 -Subject: net: dsa: qca8k: move port config to dedicated struct - -Move ports related config to dedicated struct to keep things organized. - -Signed-off-by: Ansuel Smith -Reviewed-by: Florian Fainelli -Signed-off-by: David S. Miller ---- - drivers/net/dsa/qca8k.c | 26 +++++++++++++------------- - drivers/net/dsa/qca8k.h | 10 +++++++--- - 2 files changed, 20 insertions(+), 16 deletions(-) - ---- a/drivers/net/dsa/qca8k.c -+++ b/drivers/net/dsa/qca8k.c -@@ -1019,7 +1019,7 @@ qca8k_parse_port_config(struct qca8k_pri - delay = 3; - } - -- priv->rgmii_tx_delay[cpu_port_index] = delay; -+ priv->ports_config.rgmii_tx_delay[cpu_port_index] = delay; - - delay = 0; - -@@ -1035,7 +1035,7 @@ qca8k_parse_port_config(struct qca8k_pri - delay = 3; - } - -- priv->rgmii_rx_delay[cpu_port_index] = delay; -+ priv->ports_config.rgmii_rx_delay[cpu_port_index] = delay; - - /* Skip sgmii parsing for rgmii* mode */ - if (mode == PHY_INTERFACE_MODE_RGMII || -@@ -1045,17 +1045,17 @@ qca8k_parse_port_config(struct qca8k_pri - break; - - if (of_property_read_bool(port_dn, "qca,sgmii-txclk-falling-edge")) -- priv->sgmii_tx_clk_falling_edge = true; -+ priv->ports_config.sgmii_tx_clk_falling_edge = true; - - if (of_property_read_bool(port_dn, "qca,sgmii-rxclk-falling-edge")) -- priv->sgmii_rx_clk_falling_edge = true; -+ priv->ports_config.sgmii_rx_clk_falling_edge = true; - - if (of_property_read_bool(port_dn, "qca,sgmii-enable-pll")) { -- priv->sgmii_enable_pll = true; -+ priv->ports_config.sgmii_enable_pll = true; - - if (priv->switch_id == QCA8K_ID_QCA8327) { - dev_err(priv->dev, "SGMII PLL should NOT be enabled for qca8327. Aborting enabling"); -- priv->sgmii_enable_pll = false; -+ priv->ports_config.sgmii_enable_pll = false; - } - - if (priv->switch_revision < 2) -@@ -1281,15 +1281,15 @@ qca8k_mac_config_setup_internal_delay(st - * not enabled. With ID or TX/RXID delay is enabled and set - * to the default and recommended value. - */ -- if (priv->rgmii_tx_delay[cpu_port_index]) { -- delay = priv->rgmii_tx_delay[cpu_port_index]; -+ if (priv->ports_config.rgmii_tx_delay[cpu_port_index]) { -+ delay = priv->ports_config.rgmii_tx_delay[cpu_port_index]; - - val |= QCA8K_PORT_PAD_RGMII_TX_DELAY(delay) | - QCA8K_PORT_PAD_RGMII_TX_DELAY_EN; - } - -- if (priv->rgmii_rx_delay[cpu_port_index]) { -- delay = priv->rgmii_rx_delay[cpu_port_index]; -+ if (priv->ports_config.rgmii_rx_delay[cpu_port_index]) { -+ delay = priv->ports_config.rgmii_rx_delay[cpu_port_index]; - - val |= QCA8K_PORT_PAD_RGMII_RX_DELAY(delay) | - QCA8K_PORT_PAD_RGMII_RX_DELAY_EN; -@@ -1397,7 +1397,7 @@ qca8k_phylink_mac_config(struct dsa_swit - - val |= QCA8K_SGMII_EN_SD; - -- if (priv->sgmii_enable_pll) -+ if (priv->ports_config.sgmii_enable_pll) - val |= QCA8K_SGMII_EN_PLL | QCA8K_SGMII_EN_RX | - QCA8K_SGMII_EN_TX; - -@@ -1425,10 +1425,10 @@ qca8k_phylink_mac_config(struct dsa_swit - val = 0; - - /* SGMII Clock phase configuration */ -- if (priv->sgmii_rx_clk_falling_edge) -+ if (priv->ports_config.sgmii_rx_clk_falling_edge) - val |= QCA8K_PORT0_PAD_SGMII_RXCLK_FALLING_EDGE; - -- if (priv->sgmii_tx_clk_falling_edge) -+ if (priv->ports_config.sgmii_tx_clk_falling_edge) - val |= QCA8K_PORT0_PAD_SGMII_TXCLK_FALLING_EDGE; - - if (val) ---- a/drivers/net/dsa/qca8k.h -+++ b/drivers/net/dsa/qca8k.h -@@ -270,15 +270,19 @@ enum { - QCA8K_CPU_PORT6, - }; - --struct qca8k_priv { -- u8 switch_id; -- u8 switch_revision; -+struct qca8k_ports_config { - bool sgmii_rx_clk_falling_edge; - bool sgmii_tx_clk_falling_edge; - bool sgmii_enable_pll; - u8 rgmii_rx_delay[QCA8K_NUM_CPU_PORTS]; /* 0: CPU port0, 1: CPU port6 */ - u8 rgmii_tx_delay[QCA8K_NUM_CPU_PORTS]; /* 0: CPU port0, 1: CPU port6 */ -+}; -+ -+struct qca8k_priv { -+ u8 switch_id; -+ u8 switch_revision; - bool legacy_phy_port_mapping; -+ struct qca8k_ports_config ports_config; - struct regmap *regmap; - struct mii_bus *bus; - struct ar8xxx_port_status port_sts[QCA8K_NUM_PORTS]; diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-15-dt-bindings-net-ipq8064-mdio-fix-warning-with-new-qc.patch b/root/target/linux/generic/backport-5.15/747-v5.16-15-dt-bindings-net-ipq8064-mdio-fix-warning-with-new-qc.patch deleted file mode 100755 index f7cb5141..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-15-dt-bindings-net-ipq8064-mdio-fix-warning-with-new-qc.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e52073a8e3086046a098b8a7cbeb282ff0cdb424 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Thu, 14 Oct 2021 00:39:20 +0200 -Subject: dt-bindings: net: ipq8064-mdio: fix warning with new qca8k switch - -Fix warning now that we have qca8k switch Documentation using yaml. - -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - Documentation/devicetree/bindings/net/qcom,ipq8064-mdio.yaml | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/Documentation/devicetree/bindings/net/qcom,ipq8064-mdio.yaml -+++ b/Documentation/devicetree/bindings/net/qcom,ipq8064-mdio.yaml -@@ -51,6 +51,9 @@ examples: - switch@10 { - compatible = "qca,qca8337"; - reg = <0x10>; -- /* ... */ -+ -+ ports { -+ /* ... */ -+ }; - }; - }; diff --git a/root/target/linux/generic/backport-5.15/747-v5.16-16-dt-bindings-net-dsa-qca8k-convert-to-YAML-schema.patch b/root/target/linux/generic/backport-5.15/747-v5.16-16-dt-bindings-net-dsa-qca8k-convert-to-YAML-schema.patch deleted file mode 100755 index b9bce97d..00000000 --- a/root/target/linux/generic/backport-5.15/747-v5.16-16-dt-bindings-net-dsa-qca8k-convert-to-YAML-schema.patch +++ /dev/null @@ -1,631 +0,0 @@ -From d291fbb8245d5ba04979fed85575860a5cea7196 Mon Sep 17 00:00:00 2001 -From: Matthew Hagan -Date: Thu, 14 Oct 2021 00:39:21 +0200 -Subject: dt-bindings: net: dsa: qca8k: convert to YAML schema - -Convert the qca8k bindings to YAML format. - -Signed-off-by: Matthew Hagan -Co-developed-by: Ansuel Smith -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - .../devicetree/bindings/net/dsa/qca8k.txt | 245 -------------- - .../devicetree/bindings/net/dsa/qca8k.yaml | 362 +++++++++++++++++++++ - 2 files changed, 362 insertions(+), 245 deletions(-) - delete mode 100644 Documentation/devicetree/bindings/net/dsa/qca8k.txt - create mode 100644 Documentation/devicetree/bindings/net/dsa/qca8k.yaml - ---- a/Documentation/devicetree/bindings/net/dsa/qca8k.txt -+++ /dev/null -@@ -1,245 +0,0 @@ --* Qualcomm Atheros QCA8xxx switch family -- --Required properties: -- --- compatible: should be one of: -- "qca,qca8328": referenced as AR8328(N)-AK1(A/B) QFN 176 pin package -- "qca,qca8327": referenced as AR8327(N)-AL1A DR-QFN 148 pin package -- "qca,qca8334": referenced as QCA8334-AL3C QFN 88 pin package -- "qca,qca8337": referenced as QCA8337N-AL3(B/C) DR-QFN 148 pin package -- --- #size-cells: must be 0 --- #address-cells: must be 1 -- --Optional properties: -- --- reset-gpios: GPIO to be used to reset the whole device --- qca,ignore-power-on-sel: Ignore power on pin strapping to configure led open -- drain or eeprom presence. This is needed for broken -- devices that have wrong configuration or when the oem -- decided to not use pin strapping and fallback to sw -- regs. --- qca,led-open-drain: Set leds to open-drain mode. This requires the -- qca,ignore-power-on-sel to be set or the driver will fail -- to probe. This is needed if the oem doesn't use pin -- strapping to set this mode and prefers to set it using sw -- regs. The pin strapping related to led open drain mode is -- the pin B68 for QCA832x and B49 for QCA833x -- --Subnodes: -- --The integrated switch subnode should be specified according to the binding --described in dsa/dsa.txt. If the QCA8K switch is connect to a SoC's external --mdio-bus each subnode describing a port needs to have a valid phandle --referencing the internal PHY it is connected to. This is because there's no --N:N mapping of port and PHY id. --To declare the internal mdio-bus configuration, declare a mdio node in the --switch node and declare the phandle for the port referencing the internal --PHY is connected to. In this config a internal mdio-bus is registered and --the mdio MASTER is used as communication. -- --Don't use mixed external and internal mdio-bus configurations, as this is --not supported by the hardware. -- --This switch support 2 CPU port. Normally and advised configuration is with --CPU port set to port 0. It is also possible to set the CPU port to port 6 --if the device requires it. The driver will configure the switch to the defined --port. With both CPU port declared the first CPU port is selected as primary --and the secondary CPU ignored. -- --A CPU port node has the following optional node: -- --- fixed-link : Fixed-link subnode describing a link to a non-MDIO -- managed entity. See -- Documentation/devicetree/bindings/net/fixed-link.txt -- for details. --- qca,sgmii-rxclk-falling-edge: Set the receive clock phase to falling edge. -- Mostly used in qca8327 with CPU port 0 set to -- sgmii. --- qca,sgmii-txclk-falling-edge: Set the transmit clock phase to falling edge. --- qca,sgmii-enable-pll : For SGMII CPU port, explicitly enable PLL, TX and RX -- chain along with Signal Detection. -- This should NOT be enabled for qca8327. If enabled with -- qca8327 the sgmii port won't correctly init and an err -- is printed. -- This can be required for qca8337 switch with revision 2. -- A warning is displayed when used with revision greater -- 2. -- With CPU port set to sgmii and qca8337 it is advised -- to set this unless a communication problem is observed. -- --For QCA8K the 'fixed-link' sub-node supports only the following properties: -- --- 'speed' (integer, mandatory), to indicate the link speed. Accepted -- values are 10, 100 and 1000 --- 'full-duplex' (boolean, optional), to indicate that full duplex is -- used. When absent, half duplex is assumed. -- --Examples: -- --for the external mdio-bus configuration: -- -- &mdio0 { -- phy_port1: phy@0 { -- reg = <0>; -- }; -- -- phy_port2: phy@1 { -- reg = <1>; -- }; -- -- phy_port3: phy@2 { -- reg = <2>; -- }; -- -- phy_port4: phy@3 { -- reg = <3>; -- }; -- -- phy_port5: phy@4 { -- reg = <4>; -- }; -- -- switch@10 { -- compatible = "qca,qca8337"; -- #address-cells = <1>; -- #size-cells = <0>; -- -- reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>; -- reg = <0x10>; -- -- ports { -- #address-cells = <1>; -- #size-cells = <0>; -- port@0 { -- reg = <0>; -- label = "cpu"; -- ethernet = <&gmac1>; -- phy-mode = "rgmii"; -- fixed-link { -- speed = 1000; -- full-duplex; -- }; -- }; -- -- port@1 { -- reg = <1>; -- label = "lan1"; -- phy-handle = <&phy_port1>; -- }; -- -- port@2 { -- reg = <2>; -- label = "lan2"; -- phy-handle = <&phy_port2>; -- }; -- -- port@3 { -- reg = <3>; -- label = "lan3"; -- phy-handle = <&phy_port3>; -- }; -- -- port@4 { -- reg = <4>; -- label = "lan4"; -- phy-handle = <&phy_port4>; -- }; -- -- port@5 { -- reg = <5>; -- label = "wan"; -- phy-handle = <&phy_port5>; -- }; -- }; -- }; -- }; -- --for the internal master mdio-bus configuration: -- -- &mdio0 { -- switch@10 { -- compatible = "qca,qca8337"; -- #address-cells = <1>; -- #size-cells = <0>; -- -- reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>; -- reg = <0x10>; -- -- ports { -- #address-cells = <1>; -- #size-cells = <0>; -- -- port@0 { -- reg = <0>; -- label = "cpu"; -- ethernet = <&gmac1>; -- phy-mode = "rgmii"; -- fixed-link { -- speed = 1000; -- full-duplex; -- }; -- }; -- -- port@1 { -- reg = <1>; -- label = "lan1"; -- phy-mode = "internal"; -- phy-handle = <&phy_port1>; -- }; -- -- port@2 { -- reg = <2>; -- label = "lan2"; -- phy-mode = "internal"; -- phy-handle = <&phy_port2>; -- }; -- -- port@3 { -- reg = <3>; -- label = "lan3"; -- phy-mode = "internal"; -- phy-handle = <&phy_port3>; -- }; -- -- port@4 { -- reg = <4>; -- label = "lan4"; -- phy-mode = "internal"; -- phy-handle = <&phy_port4>; -- }; -- -- port@5 { -- reg = <5>; -- label = "wan"; -- phy-mode = "internal"; -- phy-handle = <&phy_port5>; -- }; -- }; -- -- mdio { -- #address-cells = <1>; -- #size-cells = <0>; -- -- phy_port1: phy@0 { -- reg = <0>; -- }; -- -- phy_port2: phy@1 { -- reg = <1>; -- }; -- -- phy_port3: phy@2 { -- reg = <2>; -- }; -- -- phy_port4: phy@3 { -- reg = <3>; -- }; -- -- phy_port5: phy@4 { -- reg = <4>; -- }; -- }; -- }; -- }; ---- /dev/null -+++ b/Documentation/devicetree/bindings/net/dsa/qca8k.yaml -@@ -0,0 +1,362 @@ -+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -+%YAML 1.2 -+--- -+$id: http://devicetree.org/schemas/net/dsa/qca8k.yaml# -+$schema: http://devicetree.org/meta-schemas/core.yaml# -+ -+title: Qualcomm Atheros QCA83xx switch family -+ -+maintainers: -+ - John Crispin -+ -+description: -+ If the QCA8K switch is connect to an SoC's external mdio-bus, each subnode -+ describing a port needs to have a valid phandle referencing the internal PHY -+ it is connected to. This is because there is no N:N mapping of port and PHY -+ ID. To declare the internal mdio-bus configuration, declare an MDIO node in -+ the switch node and declare the phandle for the port, referencing the internal -+ PHY it is connected to. In this config, an internal mdio-bus is registered and -+ the MDIO master is used for communication. Mixed external and internal -+ mdio-bus configurations are not supported by the hardware. -+ -+properties: -+ compatible: -+ oneOf: -+ - enum: -+ - qca,qca8327 -+ - qca,qca8328 -+ - qca,qca8334 -+ - qca,qca8337 -+ description: | -+ qca,qca8328: referenced as AR8328(N)-AK1(A/B) QFN 176 pin package -+ qca,qca8327: referenced as AR8327(N)-AL1A DR-QFN 148 pin package -+ qca,qca8334: referenced as QCA8334-AL3C QFN 88 pin package -+ qca,qca8337: referenced as QCA8337N-AL3(B/C) DR-QFN 148 pin package -+ -+ reg: -+ maxItems: 1 -+ -+ reset-gpios: -+ description: -+ GPIO to be used to reset the whole device -+ maxItems: 1 -+ -+ qca,ignore-power-on-sel: -+ $ref: /schemas/types.yaml#/definitions/flag -+ description: -+ Ignore power-on pin strapping to configure LED open-drain or EEPROM -+ presence. This is needed for devices with incorrect configuration or when -+ the OEM has decided not to use pin strapping and falls back to SW regs. -+ -+ qca,led-open-drain: -+ $ref: /schemas/types.yaml#/definitions/flag -+ description: -+ Set LEDs to open-drain mode. This requires the qca,ignore-power-on-sel to -+ be set, otherwise the driver will fail at probe. This is required if the -+ OEM does not use pin strapping to set this mode and prefers to set it -+ using SW regs. The pin strappings related to LED open-drain mode are -+ B68 on the QCA832x and B49 on the QCA833x. -+ -+ mdio: -+ type: object -+ description: Qca8k switch have an internal mdio to access switch port. -+ If this is not present, the legacy mapping is used and the -+ internal mdio access is used. -+ With the legacy mapping the reg corresponding to the internal -+ mdio is the switch reg with an offset of -1. -+ -+ properties: -+ '#address-cells': -+ const: 1 -+ '#size-cells': -+ const: 0 -+ -+ patternProperties: -+ "^(ethernet-)?phy@[0-4]$": -+ type: object -+ -+ allOf: -+ - $ref: "http://devicetree.org/schemas/net/mdio.yaml#" -+ -+ properties: -+ reg: -+ maxItems: 1 -+ -+ required: -+ - reg -+ -+patternProperties: -+ "^(ethernet-)?ports$": -+ type: object -+ properties: -+ '#address-cells': -+ const: 1 -+ '#size-cells': -+ const: 0 -+ -+ patternProperties: -+ "^(ethernet-)?port@[0-6]$": -+ type: object -+ description: Ethernet switch ports -+ -+ properties: -+ reg: -+ description: Port number -+ -+ label: -+ description: -+ Describes the label associated with this port, which will become -+ the netdev name -+ $ref: /schemas/types.yaml#/definitions/string -+ -+ link: -+ description: -+ Should be a list of phandles to other switch's DSA port. This -+ port is used as the outgoing port towards the phandle ports. The -+ full routing information must be given, not just the one hop -+ routes to neighbouring switches -+ $ref: /schemas/types.yaml#/definitions/phandle-array -+ -+ ethernet: -+ description: -+ Should be a phandle to a valid Ethernet device node. This host -+ device is what the switch port is connected to -+ $ref: /schemas/types.yaml#/definitions/phandle -+ -+ phy-handle: true -+ -+ phy-mode: true -+ -+ fixed-link: true -+ -+ mac-address: true -+ -+ sfp: true -+ -+ qca,sgmii-rxclk-falling-edge: -+ $ref: /schemas/types.yaml#/definitions/flag -+ description: -+ Set the receive clock phase to falling edge. Mostly commonly used on -+ the QCA8327 with CPU port 0 set to SGMII. -+ -+ qca,sgmii-txclk-falling-edge: -+ $ref: /schemas/types.yaml#/definitions/flag -+ description: -+ Set the transmit clock phase to falling edge. -+ -+ qca,sgmii-enable-pll: -+ $ref: /schemas/types.yaml#/definitions/flag -+ description: -+ For SGMII CPU port, explicitly enable PLL, TX and RX chain along with -+ Signal Detection. On the QCA8327 this should not be enabled, otherwise -+ the SGMII port will not initialize. When used on the QCA8337, revision 3 -+ or greater, a warning will be displayed. When the CPU port is set to -+ SGMII on the QCA8337, it is advised to set this unless a communication -+ issue is observed. -+ -+ required: -+ - reg -+ -+ additionalProperties: false -+ -+oneOf: -+ - required: -+ - ports -+ - required: -+ - ethernet-ports -+ -+required: -+ - compatible -+ - reg -+ -+additionalProperties: true -+ -+examples: -+ - | -+ #include -+ -+ mdio { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ external_phy_port1: ethernet-phy@0 { -+ reg = <0>; -+ }; -+ -+ external_phy_port2: ethernet-phy@1 { -+ reg = <1>; -+ }; -+ -+ external_phy_port3: ethernet-phy@2 { -+ reg = <2>; -+ }; -+ -+ external_phy_port4: ethernet-phy@3 { -+ reg = <3>; -+ }; -+ -+ external_phy_port5: ethernet-phy@4 { -+ reg = <4>; -+ }; -+ -+ switch@10 { -+ compatible = "qca,qca8337"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>; -+ reg = <0x10>; -+ -+ ports { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ port@0 { -+ reg = <0>; -+ label = "cpu"; -+ ethernet = <&gmac1>; -+ phy-mode = "rgmii"; -+ -+ fixed-link { -+ speed = <1000>; -+ full-duplex; -+ }; -+ }; -+ -+ port@1 { -+ reg = <1>; -+ label = "lan1"; -+ phy-handle = <&external_phy_port1>; -+ }; -+ -+ port@2 { -+ reg = <2>; -+ label = "lan2"; -+ phy-handle = <&external_phy_port2>; -+ }; -+ -+ port@3 { -+ reg = <3>; -+ label = "lan3"; -+ phy-handle = <&external_phy_port3>; -+ }; -+ -+ port@4 { -+ reg = <4>; -+ label = "lan4"; -+ phy-handle = <&external_phy_port4>; -+ }; -+ -+ port@5 { -+ reg = <5>; -+ label = "wan"; -+ phy-handle = <&external_phy_port5>; -+ }; -+ }; -+ }; -+ }; -+ - | -+ #include -+ -+ mdio { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ switch@10 { -+ compatible = "qca,qca8337"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>; -+ reg = <0x10>; -+ -+ ports { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ port@0 { -+ reg = <0>; -+ label = "cpu"; -+ ethernet = <&gmac1>; -+ phy-mode = "rgmii"; -+ -+ fixed-link { -+ speed = <1000>; -+ full-duplex; -+ }; -+ }; -+ -+ port@1 { -+ reg = <1>; -+ label = "lan1"; -+ phy-mode = "internal"; -+ phy-handle = <&internal_phy_port1>; -+ }; -+ -+ port@2 { -+ reg = <2>; -+ label = "lan2"; -+ phy-mode = "internal"; -+ phy-handle = <&internal_phy_port2>; -+ }; -+ -+ port@3 { -+ reg = <3>; -+ label = "lan3"; -+ phy-mode = "internal"; -+ phy-handle = <&internal_phy_port3>; -+ }; -+ -+ port@4 { -+ reg = <4>; -+ label = "lan4"; -+ phy-mode = "internal"; -+ phy-handle = <&internal_phy_port4>; -+ }; -+ -+ port@5 { -+ reg = <5>; -+ label = "wan"; -+ phy-mode = "internal"; -+ phy-handle = <&internal_phy_port5>; -+ }; -+ -+ port@6 { -+ reg = <0>; -+ label = "cpu"; -+ ethernet = <&gmac1>; -+ phy-mode = "sgmii"; -+ -+ qca,sgmii-rxclk-falling-edge; -+ -+ fixed-link { -+ speed = <1000>; -+ full-duplex; -+ }; -+ }; -+ }; -+ -+ mdio { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ internal_phy_port1: ethernet-phy@0 { -+ reg = <0>; -+ }; -+ -+ internal_phy_port2: ethernet-phy@1 { -+ reg = <1>; -+ }; -+ -+ internal_phy_port3: ethernet-phy@2 { -+ reg = <2>; -+ }; -+ -+ internal_phy_port4: ethernet-phy@3 { -+ reg = <3>; -+ }; -+ -+ internal_phy_port5: ethernet-phy@4 { -+ reg = <4>; -+ }; -+ }; -+ }; -+ }; diff --git a/root/target/linux/generic/backport-5.15/748-v5.16-net-dsa-qca8k-fix-delay-applied-to-wrong-cpu-in-parse-p.patch b/root/target/linux/generic/backport-5.15/748-v5.16-net-dsa-qca8k-fix-delay-applied-to-wrong-cpu-in-parse-p.patch deleted file mode 100755 index a510cfdc..00000000 --- a/root/target/linux/generic/backport-5.15/748-v5.16-net-dsa-qca8k-fix-delay-applied-to-wrong-cpu-in-parse-p.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 06dd34a628ae5b6a839b757e746de165d6789ca8 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Sun, 17 Oct 2021 16:56:46 +0200 -Subject: net: dsa: qca8k: fix delay applied to wrong cpu in parse_port_config - -Fix delay settings applied to wrong cpu in parse_port_config. The delay -values is set to the wrong index as the cpu_port_index is incremented -too early. Start the cpu_port_index to -1 so the correct value is -applied to address also the case with invalid phy mode and not available -port. - -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - drivers/net/dsa/qca8k.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/net/dsa/qca8k.c -+++ b/drivers/net/dsa/qca8k.c -@@ -976,7 +976,7 @@ qca8k_setup_of_pws_reg(struct qca8k_priv - static int - qca8k_parse_port_config(struct qca8k_priv *priv) - { -- int port, cpu_port_index = 0, ret; -+ int port, cpu_port_index = -1, ret; - struct device_node *port_dn; - phy_interface_t mode; - struct dsa_port *dp; diff --git a/root/target/linux/generic/backport-5.15/749-v5.16-net-dsa-qca8k-tidy-for-loop-in-setup-and-add-cpu-port-c.patch b/root/target/linux/generic/backport-5.15/749-v5.16-net-dsa-qca8k-tidy-for-loop-in-setup-and-add-cpu-port-c.patch deleted file mode 100755 index 71fa3022..00000000 --- a/root/target/linux/generic/backport-5.15/749-v5.16-net-dsa-qca8k-tidy-for-loop-in-setup-and-add-cpu-port-c.patch +++ /dev/null @@ -1,151 +0,0 @@ -From 040e926f5813a5f4cc18dbff7c942d1e52f368f2 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Tue, 19 Oct 2021 02:08:50 +0200 -Subject: net: dsa: qca8k: tidy for loop in setup and add cpu port check - -Tidy and organize qca8k setup function from multiple for loop. -Change for loop in bridge leave/join to scan all port and skip cpu port. -No functional change intended. - -Signed-off-by: Ansuel Smith -Signed-off-by: David S. Miller ---- - drivers/net/dsa/qca8k.c | 74 +++++++++++++++++++++++++++++-------------------- - 1 file changed, 44 insertions(+), 30 deletions(-) - ---- a/drivers/net/dsa/qca8k.c -+++ b/drivers/net/dsa/qca8k.c -@@ -1122,28 +1122,34 @@ qca8k_setup(struct dsa_switch *ds) - if (ret) - dev_warn(priv->dev, "mib init failed"); - -- /* Enable QCA header mode on the cpu port */ -- ret = qca8k_write(priv, QCA8K_REG_PORT_HDR_CTRL(cpu_port), -- QCA8K_PORT_HDR_CTRL_ALL << QCA8K_PORT_HDR_CTRL_TX_S | -- QCA8K_PORT_HDR_CTRL_ALL << QCA8K_PORT_HDR_CTRL_RX_S); -- if (ret) { -- dev_err(priv->dev, "failed enabling QCA header mode"); -- return ret; -- } -- -- /* Disable forwarding by default on all ports */ -+ /* Initial setup of all ports */ - for (i = 0; i < QCA8K_NUM_PORTS; i++) { -+ /* Disable forwarding by default on all ports */ - ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(i), - QCA8K_PORT_LOOKUP_MEMBER, 0); - if (ret) - return ret; -- } - -- /* Disable MAC by default on all ports */ -- for (i = 1; i < QCA8K_NUM_PORTS; i++) -- qca8k_port_set_status(priv, i, 0); -+ /* Enable QCA header mode on all cpu ports */ -+ if (dsa_is_cpu_port(ds, i)) { -+ ret = qca8k_write(priv, QCA8K_REG_PORT_HDR_CTRL(i), -+ QCA8K_PORT_HDR_CTRL_ALL << QCA8K_PORT_HDR_CTRL_TX_S | -+ QCA8K_PORT_HDR_CTRL_ALL << QCA8K_PORT_HDR_CTRL_RX_S); -+ if (ret) { -+ dev_err(priv->dev, "failed enabling QCA header mode"); -+ return ret; -+ } -+ } -+ -+ /* Disable MAC by default on all user ports */ -+ if (dsa_is_user_port(ds, i)) -+ qca8k_port_set_status(priv, i, 0); -+ } - -- /* Forward all unknown frames to CPU port for Linux processing */ -+ /* Forward all unknown frames to CPU port for Linux processing -+ * Notice that in multi-cpu config only one port should be set -+ * for igmp, unknown, multicast and broadcast packet -+ */ - ret = qca8k_write(priv, QCA8K_REG_GLOBAL_FW_CTRL1, - BIT(cpu_port) << QCA8K_GLOBAL_FW_CTRL1_IGMP_DP_S | - BIT(cpu_port) << QCA8K_GLOBAL_FW_CTRL1_BC_DP_S | -@@ -1152,11 +1158,13 @@ qca8k_setup(struct dsa_switch *ds) - if (ret) - return ret; - -- /* Setup connection between CPU port & user ports */ -+ /* Setup connection between CPU port & user ports -+ * Configure specific switch configuration for ports -+ */ - for (i = 0; i < QCA8K_NUM_PORTS; i++) { - /* CPU port gets connected to all user ports of the switch */ - if (dsa_is_cpu_port(ds, i)) { -- ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(cpu_port), -+ ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(i), - QCA8K_PORT_LOOKUP_MEMBER, dsa_user_ports(ds)); - if (ret) - return ret; -@@ -1193,16 +1201,14 @@ qca8k_setup(struct dsa_switch *ds) - if (ret) - return ret; - } -- } - -- /* The port 5 of the qca8337 have some problem in flood condition. The -- * original legacy driver had some specific buffer and priority settings -- * for the different port suggested by the QCA switch team. Add this -- * missing settings to improve switch stability under load condition. -- * This problem is limited to qca8337 and other qca8k switch are not affected. -- */ -- if (priv->switch_id == QCA8K_ID_QCA8337) { -- for (i = 0; i < QCA8K_NUM_PORTS; i++) { -+ /* The port 5 of the qca8337 have some problem in flood condition. The -+ * original legacy driver had some specific buffer and priority settings -+ * for the different port suggested by the QCA switch team. Add this -+ * missing settings to improve switch stability under load condition. -+ * This problem is limited to qca8337 and other qca8k switch are not affected. -+ */ -+ if (priv->switch_id == QCA8K_ID_QCA8337) { - switch (i) { - /* The 2 CPU port and port 5 requires some different - * priority than any other ports. -@@ -1238,6 +1244,12 @@ qca8k_setup(struct dsa_switch *ds) - QCA8K_PORT_HOL_CTRL1_WRED_EN, - mask); - } -+ -+ /* Set initial MTU for every port. -+ * We have only have a general MTU setting. So track -+ * every port and set the max across all port. -+ */ -+ priv->port_mtu[i] = ETH_FRAME_LEN + ETH_FCS_LEN; - } - - /* Special GLOBAL_FC_THRESH value are needed for ar8327 switch */ -@@ -1251,8 +1263,6 @@ qca8k_setup(struct dsa_switch *ds) - } - - /* Setup our port MTUs to match power on defaults */ -- for (i = 0; i < QCA8K_NUM_PORTS; i++) -- priv->port_mtu[i] = ETH_FRAME_LEN + ETH_FCS_LEN; - ret = qca8k_write(priv, QCA8K_MAX_FRAME_SIZE, ETH_FRAME_LEN + ETH_FCS_LEN); - if (ret) - dev_warn(priv->dev, "failed setting MTU settings"); -@@ -1728,7 +1738,9 @@ qca8k_port_bridge_join(struct dsa_switch - cpu_port = dsa_to_port(ds, port)->cpu_dp->index; - port_mask = BIT(cpu_port); - -- for (i = 1; i < QCA8K_NUM_PORTS; i++) { -+ for (i = 0; i < QCA8K_NUM_PORTS; i++) { -+ if (dsa_is_cpu_port(ds, i)) -+ continue; - if (dsa_to_port(ds, i)->bridge_dev != br) - continue; - /* Add this port to the portvlan mask of the other ports -@@ -1758,7 +1770,9 @@ qca8k_port_bridge_leave(struct dsa_switc - - cpu_port = dsa_to_port(ds, port)->cpu_dp->index; - -- for (i = 1; i < QCA8K_NUM_PORTS; i++) { -+ for (i = 0; i < QCA8K_NUM_PORTS; i++) { -+ if (dsa_is_cpu_port(ds, i)) -+ continue; - if (dsa_to_port(ds, i)->bridge_dev != br) - continue; - /* Remove this port to the portvlan mask of the other ports diff --git a/root/target/linux/generic/backport-5.15/750-v5.16-net-dsa-qca8k-make-sure-pad0-mac06-exchange-is-disabled.patch b/root/target/linux/generic/backport-5.15/750-v5.16-net-dsa-qca8k-make-sure-pad0-mac06-exchange-is-disabled.patch deleted file mode 100755 index 4a61703c..00000000 --- a/root/target/linux/generic/backport-5.15/750-v5.16-net-dsa-qca8k-make-sure-pad0-mac06-exchange-is-disabled.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 5f15d392dcb4aa250a63d6f2c5adfc26c0aedc78 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Tue, 2 Nov 2021 19:30:41 +0100 -Subject: net: dsa: qca8k: make sure PAD0 MAC06 exchange is disabled - -Some device set MAC06 exchange in the bootloader. This cause some -problem as we don't support this strange mode and we just set the port6 -as the primary CPU port. With MAC06 exchange, PAD0 reg configure port6 -instead of port0. Add an extra check and explicitly disable MAC06 exchange -to correctly configure the port PAD config. - -Signed-off-by: Ansuel Smith -Fixes: 3fcf734aa482 ("net: dsa: qca8k: add support for cpu port 6") -Reviewed-by: Vladimir Oltean -Signed-off-by: David S. Miller ---- - drivers/net/dsa/qca8k.c | 8 ++++++++ - drivers/net/dsa/qca8k.h | 1 + - 2 files changed, 9 insertions(+) - ---- a/drivers/net/dsa/qca8k.c -+++ b/drivers/net/dsa/qca8k.c -@@ -1109,6 +1109,14 @@ qca8k_setup(struct dsa_switch *ds) - if (ret) - return ret; - -+ /* Make sure MAC06 is disabled */ -+ ret = qca8k_reg_clear(priv, QCA8K_REG_PORT0_PAD_CTRL, -+ QCA8K_PORT0_PAD_MAC06_EXCHANGE_EN); -+ if (ret) { -+ dev_err(priv->dev, "failed disabling MAC06 exchange"); -+ return ret; -+ } -+ - /* Enable CPU Port */ - ret = qca8k_reg_set(priv, QCA8K_REG_GLOBAL_FW_CTRL0, - QCA8K_GLOBAL_FW_CTRL0_CPU_PORT_EN); ---- a/drivers/net/dsa/qca8k.h -+++ b/drivers/net/dsa/qca8k.h -@@ -34,6 +34,7 @@ - #define QCA8K_MASK_CTRL_DEVICE_ID_MASK GENMASK(15, 8) - #define QCA8K_MASK_CTRL_DEVICE_ID(x) ((x) >> 8) - #define QCA8K_REG_PORT0_PAD_CTRL 0x004 -+#define QCA8K_PORT0_PAD_MAC06_EXCHANGE_EN BIT(31) - #define QCA8K_PORT0_PAD_SGMII_RXCLK_FALLING_EDGE BIT(19) - #define QCA8K_PORT0_PAD_SGMII_TXCLK_FALLING_EDGE BIT(18) - #define QCA8K_REG_PORT5_PAD_CTRL 0x008 diff --git a/root/target/linux/generic/config-4.14 b/root/target/linux/generic/config-4.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/config-4.19 b/root/target/linux/generic/config-4.19 old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/config-4.9 b/root/target/linux/generic/config-4.9 old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/config-5.14 b/root/target/linux/generic/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/config-5.15 b/root/target/linux/generic/config-5.15 old mode 100755 new mode 100644 index 45ffe0f0..38fb2aca --- a/root/target/linux/generic/config-5.15 +++ b/root/target/linux/generic/config-5.15 @@ -22,8 +22,10 @@ CONFIG_64BIT_TIME=y # CONFIG_ACPI_CONFIGFS is not set # CONFIG_ACPI_CUSTOM_METHOD is not set # CONFIG_ACPI_EXTLOG is not set +# CONFIG_ACPI_FPDT is not set # CONFIG_ACPI_HED is not set # CONFIG_ACPI_NFIT is not set +# CONFIG_ACPI_PRMT is not set # CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set # CONFIG_ACPI_TABLE_UPGRADE is not set # CONFIG_ACPI_VIDEO is not set @@ -49,6 +51,7 @@ CONFIG_64BIT_TIME=y # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +# CONFIG_AD5766 is not set # CONFIG_AD5770R is not set # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set @@ -108,6 +111,7 @@ CONFIG_64BIT_TIME=y # CONFIG_ADM8211 is not set # CONFIG_ADT7316 is not set # CONFIG_ADUX1020 is not set +# CONFIG_ADV_SWBUTTON is not set CONFIG_ADVISE_SYSCALLS=y # CONFIG_ADXL345_I2C is not set # CONFIG_ADXL345_SPI is not set @@ -154,6 +158,8 @@ CONFIG_ALLOW_DEV_COREDUMP=y # CONFIG_AMD8111_ETH is not set # CONFIG_AMD_MEM_ENCRYPT is not set # CONFIG_AMD_PHY is not set +# CONFIG_AMD_PMC is not set +# CONFIG_AMD_SFH_HID is not set # CONFIG_AMD_XGBE is not set # CONFIG_AMD_XGBE_HAVE_ECC is not set # CONFIG_AMIGA_PARTITION is not set @@ -178,12 +184,14 @@ CONFIG_ANON_INODES=y # CONFIG_ARCH_ACTIONS is not set # CONFIG_ARCH_AGILEX is not set # CONFIG_ARCH_ALPINE is not set +# CONFIG_ARCH_APPLE is not set # CONFIG_ARCH_ARTPEC is not set # CONFIG_ARCH_ASPEED is not set # CONFIG_ARCH_AT91 is not set # CONFIG_ARCH_AXXIA is not set # CONFIG_ARCH_BCM is not set # CONFIG_ARCH_BCM2835 is not set +# CONFIG_ARCH_BCM4908 is not set # CONFIG_ARCH_BCM_21664 is not set # CONFIG_ARCH_BCM_23550 is not set # CONFIG_ARCH_BCM_281XX is not set @@ -313,6 +321,7 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 # CONFIG_ARM64_BTI is not set # CONFIG_ARM64_CRYPTO is not set # CONFIG_ARM64_E0PD is not set +# CONFIG_ARM64_EPAN is not set # CONFIG_ARM64_ERRATUM_1024718 is not set # CONFIG_ARM64_ERRATUM_1319367 is not set # CONFIG_ARM64_ERRATUM_1463225 is not set @@ -330,12 +339,13 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 # CONFIG_ARM64_ERRATUM_858921 is not set # CONFIG_ARM64_HW_AFDBM is not set # CONFIG_ARM64_LSE_ATOMICS is not set -# CONFIG_ARM64_MODULE_PLTS is not set +CONFIG_ARM64_MODULE_PLTS=y # CONFIG_ARM64_MTE is not set # CONFIG_ARM64_PAN is not set # CONFIG_ARM64_PMEM is not set # CONFIG_ARM64_PSEUDO_NMI is not set # CONFIG_ARM64_PTDUMP_DEBUGFS is not set +# CONFIG_ARM64_PTR_AUTH_KERNEL is not set # CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set # CONFIG_ARM64_RAS_EXTN is not set # CONFIG_ARM64_RELOC_TEST is not set @@ -386,19 +396,20 @@ CONFIG_ARM_DMA_MEM_BUFFERABLE=y # CONFIG_ARM_ERRATA_852423 is not set # CONFIG_ARM_ERRATA_857271 is not set # CONFIG_ARM_ERRATA_857272 is not set +# CONFIG_ARM_FFA_TRANSPORT is not set CONFIG_ARM_GIC_MAX_NR=1 # CONFIG_ARM_KIRKWOOD_CPUFREQ is not set # CONFIG_ARM_KPROBES_TEST is not set # CONFIG_ARM_LPAE is not set # CONFIG_ARM_MHU is not set -# CONFIG_ARM_MODULE_PLTS is not set +# CONFIG_ARM_MHU_V2 is not set +CONFIG_ARM_MODULE_PLTS=y # CONFIG_ARM_PATCH_PHYS_VIRT is not set # CONFIG_ARM_PSCI is not set # CONFIG_ARM_PSCI_CHECKER is not set # CONFIG_ARM_PSCI_CPUIDLE is not set # CONFIG_ARM_PTDUMP_DEBUGFS is not set # CONFIG_ARM_SBSA_WATCHDOG is not set -# CONFIG_ARM_SCMI_PROTOCOL is not set # CONFIG_ARM_SCPI_PROTOCOL is not set # CONFIG_ARM_SDE_INTERFACE is not set # CONFIG_ARM_SMCCC_SOC_ID is not set @@ -557,8 +568,8 @@ CONFIG_BCMA_POSSIBLE=y # CONFIG_BCM_IPROC_ADC is not set # CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_BCM_SBA_RAID is not set -# CONFIG_BCM_VK is not set # CONFIG_BDI_SWITCH is not set +# CONFIG_BCM_VK is not set # CONFIG_BE2ISCSI is not set # CONFIG_BE2NET is not set # CONFIG_BEFS_FS is not set @@ -673,6 +684,7 @@ CONFIG_BLOCK=y # CONFIG_BMC150_MAGN_SPI is not set # CONFIG_BME680 is not set # CONFIG_BMG160 is not set +# CONFIG_BMI088_ACCEL is not set # CONFIG_BMI160_I2C is not set # CONFIG_BMI160_SPI is not set # CONFIG_BMIPS_GENERIC is not set @@ -744,6 +756,7 @@ CONFIG_BROKEN_ON_SMP=y # CONFIG_BTRFS_FS_POSIX_ACL is not set # CONFIG_BTRFS_FS_REF_VERIFY is not set # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BT_AOSPEXT is not set # CONFIG_BT_ATH3K is not set # CONFIG_BT_BNEP is not set CONFIG_BT_BNEP_MC_FILTER=y @@ -784,6 +797,7 @@ CONFIG_BT_HCIUART_H4=y # CONFIG_BT_RFCOMM is not set CONFIG_BT_RFCOMM_TTY=y # CONFIG_BT_SELFTEST is not set +# CONFIG_BT_VIRTIO is not set CONFIG_BUG=y # CONFIG_BUG_ON_DATA_CORRUPTION is not set CONFIG_BUILDTIME_EXTABLE_SORT=y @@ -798,6 +812,7 @@ CONFIG_CACHE_L2X0_PMU=y # CONFIG_CAN_BCM is not set # CONFIG_CAN_DEBUG_DEVICES is not set # CONFIG_CAN_DEV is not set +# CONFIG_CAN_ETAS_ES58X is not set # CONFIG_CAN_GS_USB is not set # CONFIG_CAN_GW is not set # CONFIG_CAN_HI311X is not set @@ -894,13 +909,13 @@ CONFIG_CIFS_POSIX=y # CONFIG_CIFS_SMB2 is not set # CONFIG_CIFS_STATS is not set # CONFIG_CIFS_STATS2 is not set +# CONFIG_CIFS_SWN_UPCALL is not set # CONFIG_CIFS_WEAK_PW_HASH is not set CONFIG_CIFS_XATTR=y # CONFIG_CIO_DAC is not set CONFIG_CLANG_VERSION=0 # CONFIG_CLEANCACHE is not set # CONFIG_CLKSRC_VERSATILE is not set -# CONFIG_CLK_GFM_LPASS_SM8250 is not set # CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set # CONFIG_CLK_SP810 is not set @@ -913,6 +928,7 @@ CONFIG_CLS_U32_MARK=y # CONFIG_CM3605 is not set # CONFIG_CM36651 is not set # CONFIG_CMA is not set +# CONFIG_CMA_SYSFS is not set CONFIG_CMDLINE="" # CONFIG_CMDLINE_BOOL is not set # CONFIG_CMDLINE_EXTEND is not set @@ -924,6 +940,7 @@ CONFIG_CMDLINE="" # CONFIG_CODE_PATCHING_SELFTEST is not set # CONFIG_COMEDI is not set # CONFIG_COMMON_CLK_AXI_CLKGEN is not set +# CONFIG_CLK_BCM2711_DVP is not set # CONFIG_COMMON_CLK_CDCE706 is not set # CONFIG_COMMON_CLK_CDCE925 is not set # CONFIG_COMMON_CLK_CS2000_CP is not set @@ -953,6 +970,7 @@ CONFIG_CMDLINE="" CONFIG_COMPACTION=y # CONFIG_COMPAL_LAPTOP is not set # CONFIG_COMPAT is not set +# CONFIG_COMPAT_32BIT_TIME is not set # CONFIG_COMPAT_BRK is not set # CONFIG_COMPILE_TEST is not set # CONFIG_CONFIGFS_FS is not set @@ -1017,8 +1035,8 @@ CONFIG_CROSS_COMPILE="" # CONFIG_CROSS_MEMORY_ATTACH is not set CONFIG_CRYPTO=y # CONFIG_CRYPTO_842 is not set -CONFIG_CRYPTO_ACOMP2=y # CONFIG_CRYPTO_ADIANTUM is not set +CONFIG_CRYPTO_ACOMP2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y # CONFIG_CRYPTO_AEGIS128 is not set @@ -1100,6 +1118,7 @@ CONFIG_CRYPTO_CTR=y # CONFIG_CRYPTO_DEV_MXC_SCC is not set # CONFIG_CRYPTO_DEV_MXS_DCP is not set # CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set +# CONFIG_CRYPTO_DEV_QAT_4XXX is not set # CONFIG_CRYPTO_DEV_QAT_C3XXX is not set # CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set # CONFIG_CRYPTO_DEV_QAT_C62X is not set @@ -1119,7 +1138,6 @@ CONFIG_CRYPTO_CTR=y # CONFIG_CRYPTO_DRBG_MENU is not set # CONFIG_CRYPTO_ECB is not set # CONFIG_CRYPTO_ECDH is not set -# CONFIG_CRYPTO_ECDSA is not set # CONFIG_CRYPTO_ECHAINIV is not set # CONFIG_CRYPTO_ECRDSA is not set # CONFIG_CRYPTO_ESSIV is not set @@ -1137,9 +1155,9 @@ CONFIG_CRYPTO_HASH2=y # CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_JITTERENTROPY is not set # CONFIG_CRYPTO_KEYWRAP is not set -# CONFIG_CRYPTO_KHAZAD is not set CONFIG_CRYPTO_KPP=y CONFIG_CRYPTO_KPP2=y +# CONFIG_CRYPTO_KHAZAD is not set CONFIG_CRYPTO_LIB_AES=y CONFIG_CRYPTO_LIB_ARC4=y # CONFIG_CRYPTO_LIB_BLAKE2S is not set @@ -1236,7 +1254,6 @@ CONFIG_CRYPTO_SKCIPHER2=y # CONFIG_CRYPTO_ZSTD is not set # CONFIG_CS5535_MFGPT is not set # CONFIG_CS89x0 is not set -# CONFIG_CS89x0_PLATFORM is not set # CONFIG_CSD_LOCK_WAIT_DEBUG is not set # CONFIG_CUSE is not set # CONFIG_CW1200 is not set @@ -1250,7 +1267,6 @@ CONFIG_CRYPTO_SKCIPHER2=y # CONFIG_CYPRESS_FIRMWARE is not set # CONFIG_DA280 is not set # CONFIG_DA311 is not set -# CONFIG_DAMON is not set # CONFIG_DAVICOM_PHY is not set # CONFIG_DAX is not set # CONFIG_DCB is not set @@ -1264,7 +1280,6 @@ CONFIG_CRYPTO_SKCIPHER2=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_EFI is not set # CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set -# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set CONFIG_DEBUG_FS=y CONFIG_DEBUG_FS_ALLOW_ALL=y @@ -1277,13 +1292,9 @@ CONFIG_DEBUG_FS_ALLOW_ALL=y # CONFIG_DEBUG_INFO_BTF is not set # CONFIG_DEBUG_INFO_COMPRESSED is not set # CONFIG_DEBUG_INFO_DWARF4 is not set -# CONFIG_DEBUG_INFO_DWARF5 is not set -CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_REDUCED=y # CONFIG_DEBUG_INFO_SPLIT is not set -# CONFIG_DEBUG_IRQFLAGS is not set CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_KMAP_LOCAL is not set # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_KOBJECT_RELEASE is not set @@ -1379,6 +1390,7 @@ CONFIG_DEVPORT=y # CONFIG_DLHL60D is not set # CONFIG_DLM is not set # CONFIG_DM9000 is not set +# CONFIG_DMABUF_DEBUG is not set # CONFIG_DMABUF_HEAPS is not set # CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set @@ -1395,7 +1407,6 @@ CONFIG_DMA_DECLARE_COHERENT=y # CONFIG_DMA_ENGINE is not set # CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_JZ4780 is not set -# CONFIG_DMA_MAP_BENCHMARK is not set CONFIG_DMA_NONCOHERENT_MMAP=y # CONFIG_DMA_NOOP_OPS is not set # CONFIG_DMA_PERNUMA_CMA is not set @@ -1446,7 +1457,9 @@ CONFIG_DQL=y # CONFIG_DRM_AMD_DC_DCN3_0 is not set # CONFIG_DRM_AMD_DC_HDCP is not set # CONFIG_DRM_AMD_DC_SI is not set +# CONFIG_DRM_AMD_SECURE_DISPLAY is not set # CONFIG_DRM_ANALOGIX_ANX6345 is not set +# CONFIG_DRM_ANALOGIX_ANX7625 is not set # CONFIG_DRM_ANALOGIX_ANX78XX is not set # CONFIG_DRM_ARCPGU is not set # CONFIG_DRM_ARMADA is not set @@ -1454,6 +1467,7 @@ CONFIG_DQL=y # CONFIG_DRM_BOCHS is not set # CONFIG_DRM_CDNS_DSI is not set # CONFIG_DRM_CDNS_MHDP8546 is not set +# CONFIG_DRM_CHIPONE_ICN6211 is not set # CONFIG_DRM_CHRONTEL_CH7033 is not set # CONFIG_DRM_CIRRUS_QEMU is not set # CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set @@ -1471,6 +1485,7 @@ CONFIG_DQL=y # CONFIG_DRM_FSL_DCU is not set # CONFIG_DRM_GM12U320 is not set # CONFIG_DRM_GMA500 is not set +# CONFIG_DRM_GUD is not set # CONFIG_DRM_HDLCD is not set # CONFIG_DRM_HISI_HIBMC is not set # CONFIG_DRM_HISI_KIRIN is not set @@ -1480,12 +1495,16 @@ CONFIG_DQL=y # CONFIG_DRM_I2C_NXP_TDA998X is not set # CONFIG_DRM_I2C_SIL164 is not set # CONFIG_DRM_I915 is not set +# CONFIG_DRM_ITE_IT66121 is not set +DRM_I915_REQUEST_TIMEOUT=20000 # CONFIG_DRM_KOMEDA is not set # CONFIG_DRM_LEGACY is not set # CONFIG_DRM_LIB_RANDOM is not set # CONFIG_DRM_LIMA is not set # CONFIG_DRM_LOAD_EDID_FIRMWARE is not set +# CONFIG_DRM_LONTIUM_LT8912B is not set # CONFIG_DRM_LONTIUM_LT9611 is not set +# CONFIG_DRM_LONTIUM_LT9611UXC is not set # CONFIG_DRM_LVDS_CODEC is not set # CONFIG_DRM_LVDS_ENCODER is not set # CONFIG_DRM_MALI_DISPLAY is not set @@ -1497,13 +1516,16 @@ CONFIG_DQL=y # CONFIG_DRM_NWL_MIPI_DSI is not set # CONFIG_DRM_NXP_PTN3460 is not set # CONFIG_DRM_OMAP is not set -# CONFIG_DRM_PANEL_ARM_VERSATILE is not set +# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set # CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set +# CONFIG_DRM_PANEL_ARM_VERSATILE is not set # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set # CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set +# CONFIG_DRM_PANEL_DSI_CM is not set # CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set -# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set # CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set +# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set +# CONFIG_DRM_PANEL_KHADAS_TS050 is not set # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set # CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set @@ -1517,6 +1539,7 @@ CONFIG_DQL=y # CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set # CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set +# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set # CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set @@ -1528,6 +1551,7 @@ CONFIG_DQL=y # CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 is not set # CONFIG_DRM_PANEL_RONBO_RB070D30 is not set # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set @@ -1544,6 +1568,7 @@ CONFIG_DQL=y # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set +# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set @@ -1563,6 +1588,7 @@ CONFIG_DQL=y # CONFIG_DRM_SII9234 is not set # CONFIG_DRM_SIL_SII8620 is not set # CONFIG_DRM_SIMPLE_BRIDGE is not set +# CONFIG_DRM_SIMPLEDRM is not set # CONFIG_DRM_STI is not set # CONFIG_DRM_STM is not set # CONFIG_DRM_SUN4I is not set @@ -1573,6 +1599,7 @@ CONFIG_DQL=y # CONFIG_DRM_TI_SN65DSI86 is not set # CONFIG_DRM_TI_TFP410 is not set # CONFIG_DRM_TI_TPD12S015 is not set +# CONFIG_DRM_TI_SN65DSI83 is not set # CONFIG_DRM_TOSHIBA_TC358762 is not set # CONFIG_DRM_TOSHIBA_TC358764 is not set # CONFIG_DRM_TOSHIBA_TC358767 is not set @@ -1587,6 +1614,7 @@ CONFIG_DQL=y # CONFIG_DRM_VKMS is not set # CONFIG_DRM_VMWGFX is not set # CONFIG_DRM_XEN is not set +# CONFIG_DRM_XEN_FRONTEND is not set # CONFIG_DS1682 is not set # CONFIG_DS1803 is not set # CONFIG_DS4424 is not set @@ -1662,6 +1690,7 @@ CONFIG_DVB_MAX_ADAPTERS=16 # CONFIG_DVB_MT312 is not set # CONFIG_DVB_MT352 is not set # CONFIG_DVB_MXL5XX is not set +# CONFIG_DVB_MXL692 is not set # CONFIG_DVB_NET is not set # CONFIG_DVB_NXT200X is not set # CONFIG_DVB_NXT6000 is not set @@ -1729,7 +1758,6 @@ CONFIG_DVB_MAX_ADAPTERS=16 # CONFIG_DWMAC_DWC_QOS_ETH is not set # CONFIG_DWMAC_INTEL_PLAT is not set # CONFIG_DWMAC_IPQ806X is not set -# CONFIG_DWMAC_LOONGSON is not set # CONFIG_DWMAC_LPC18XX is not set # CONFIG_DWMAC_MESON is not set # CONFIG_DWMAC_ROCKCHIP is not set @@ -1790,7 +1818,7 @@ CONFIG_EPOLL=y # CONFIG_ET131X is not set CONFIG_ETHERNET=y # CONFIG_ETHOC is not set -CONFIG_ETHTOOL_NETLINK=y +# CONFIG_ETHTOOL_NETLINK is not set CONFIG_EVENTFD=y # CONFIG_EVM is not set # CONFIG_EXFAT_FS is not set @@ -1819,6 +1847,7 @@ CONFIG_EXT4_USE_FOR_EXT2=y # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set # CONFIG_EXTCON_USB_GPIO is not set +# CONFIG_EXTCON_USBC_TUSB320 is not set CONFIG_EXTRA_FIRMWARE="" CONFIG_EXTRA_TARGETS="" # CONFIG_EXYNOS_ADC is not set @@ -2026,12 +2055,15 @@ CONFIG_FSNOTIFY=y # CONFIG_FUSION_SPI is not set CONFIG_FUTEX=y CONFIG_FUTEX_PI=y +# CONFIG_FW_CACHE is not set # CONFIG_FW_CFG_SYSFS is not set CONFIG_FW_LOADER=y # CONFIG_FW_LOADER_COMPRESS is not set CONFIG_FW_LOADER_USER_HELPER=y CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y # CONFIG_FXAS21002C is not set +# CONFIG_FXLS8962AF_I2C is not set +# CONFIG_FXLS8962AF_SPI is not set # CONFIG_FXOS8700_I2C is not set # CONFIG_FXOS8700_SPI is not set CONFIG_GACT_PROB=y @@ -2158,7 +2190,6 @@ CONFIG_HARDENED_USERCOPY=y # CONFIG_HARDENED_USERCOPY_PAGESPAN is not set CONFIG_HARDEN_EL2_VECTORS=y # CONFIG_HARDLOCKUP_DETECTOR is not set -# CONFIG_HAVE_ARM_ARCH_TIMER is not set # CONFIG_HCALL_STATS is not set # CONFIG_HDC100X is not set # CONFIG_HDC2010 is not set @@ -2178,7 +2209,6 @@ CONFIG_HARDEN_EL2_VECTORS=y # CONFIG_HFSPLUS_FS_POSIX_ACL is not set # CONFIG_HFS_FS is not set # CONFIG_HFS_FS_POSIX_ACL is not set -# CONFIG_HI6421V600_IRQ is not set # CONFIG_HI8435 is not set # CONFIG_HIBERNATION is not set # CONFIG_HID is not set @@ -2210,6 +2240,7 @@ CONFIG_HARDEN_EL2_VECTORS=y # CONFIG_HID_ELO is not set # CONFIG_HID_EMS_FF is not set # CONFIG_HID_EZKEY is not set +# CONFIG_HID_FT260 is not set # CONFIG_HID_GEMBIRD is not set # CONFIG_HID_GENERIC is not set # CONFIG_HID_GFRM is not set @@ -2248,6 +2279,7 @@ CONFIG_HARDEN_EL2_VECTORS=y # CONFIG_HID_PICOLCD is not set # CONFIG_HID_PID is not set # CONFIG_HID_PLANTRONICS is not set +# CONFIG_HID_PLAYSTATION is not set # CONFIG_HID_PRIMAX is not set # CONFIG_HID_PRODIKEYS is not set # CONFIG_HID_REDRAGON is not set @@ -2257,6 +2289,7 @@ CONFIG_HARDEN_EL2_VECTORS=y # CONFIG_HID_SAITEK is not set # CONFIG_HID_SAMSUNG is not set # CONFIG_HID_SENSOR_HUB is not set +# CONFIG_HID_SEMITEK is not set # CONFIG_HID_SMARTJOYPLUS is not set # CONFIG_HID_SONY is not set # CONFIG_HID_SPEEDLINK is not set @@ -2397,6 +2430,9 @@ CONFIG_HZ_100=y # CONFIG_I2C_GPIO_FAULT_INJECTOR is not set # CONFIG_I2C_HELPER_AUTO is not set # CONFIG_I2C_HID is not set +# CONFIG_I2C_HID_ACPI is not set +# CONFIG_I2C_HID_OF is not set +# CONFIG_I2C_HID_OF_GOODIX is not set # CONFIG_I2C_I801 is not set # CONFIG_I2C_IBM_IIC is not set # CONFIG_I2C_IMG is not set @@ -2448,7 +2484,6 @@ CONFIG_HZ_100=y # CONFIG_I2C_VERSATILE is not set # CONFIG_I2C_VIA is not set # CONFIG_I2C_VIAPRO is not set -# CONFIG_I2C_VIRTIO is not set # CONFIG_I2C_XILINX is not set # CONFIG_I3C is not set # CONFIG_I40E is not set @@ -2470,7 +2505,7 @@ CONFIG_HZ_100=y # CONFIG_ICP10100 is not set # CONFIG_ICPLUS_PHY is not set # CONFIG_ICS932S401 is not set -# CONFIG_ICST is not set +♯ CONFIG_ICST is not set # CONFIG_IDE is not set # CONFIG_IDEAPAD_LAPTOP is not set # CONFIG_IDE_GD is not set @@ -2506,6 +2541,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_IIO_ST_ACCEL_3AXIS is not set # CONFIG_IIO_ST_GYRO_3AXIS is not set # CONFIG_IIO_ST_LSM6DSX is not set +# CONFIG_IIO_ST_LSM9DS0 is not set # CONFIG_IIO_ST_MAGN_3AXIS is not set # CONFIG_IIO_ST_PRESS is not set # CONFIG_IIO_SW_DEVICE is not set @@ -2579,6 +2615,7 @@ CONFIG_INOTIFY_USER=y # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_CM109 is not set # CONFIG_INPUT_CMA3000 is not set +# CONFIG_INPUT_DA7280_HAPTICS is not set # CONFIG_INPUT_DRV260X_HAPTICS is not set # CONFIG_INPUT_DRV2665_HAPTICS is not set # CONFIG_INPUT_DRV2667_HAPTICS is not set @@ -2595,6 +2632,7 @@ CONFIG_INOTIFY_USER=y # CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set # CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_IQS269A is not set +# CONFIG_INPUT_IQS626A is not set # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_KEYBOARD is not set @@ -2700,7 +2738,6 @@ CONFIG_IO_WQ=y # CONFIG_IPV6_FOU is not set # CONFIG_IPV6_FOU_TUNNEL is not set # CONFIG_IPV6_ILA is not set -# CONFIG_IPV6_IOAM6_LWTUNNEL is not set # CONFIG_IPV6_MIP6 is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_IPV6_MROUTE_MULTIPLE_TABLES is not set @@ -2767,6 +2804,7 @@ CONFIG_IP_ROUTE_VERBOSE=y # CONFIG_IP_VS is not set # CONFIG_IP_VS_MH is not set CONFIG_IP_VS_MH_TAB_INDEX=10 +# CONFIG_IP_VS_TWOS is not set # CONFIG_IRDA is not set # CONFIG_IRQSOFF_TRACER is not set # CONFIG_IRQ_ALL_CPUS is not set @@ -2914,7 +2952,6 @@ CONFIG_KERNFS=y # CONFIG_KGDB is not set # CONFIG_KMEMCHECK is not set # CONFIG_KMX61 is not set -# CONFIG_KPC2000 is not set # CONFIG_KPROBES is not set # CONFIG_KPROBES_SANITY_TEST is not set # CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set @@ -2932,6 +2969,7 @@ CONFIG_KUSER_HELPERS=y # CONFIG_KVM_GUEST is not set # CONFIG_KVM_INTEL is not set # CONFIG_KVM_WERROR is not set +# CONFIG_KVM_XEN is not set # CONFIG_KXCJK1013 is not set # CONFIG_KXSD9 is not set # CONFIG_L2TP is not set @@ -3052,7 +3090,6 @@ CONFIG_LINEAR_RANGES=y # CONFIG_LIQUIDIO is not set # CONFIG_LIQUIDIO_VF is not set # CONFIG_LIS3L02DQ is not set -# CONFIG_LITEX_LITEETH is not set # CONFIG_LITEX_SOC_CONTROLLER is not set # CONFIG_LKDTM is not set CONFIG_LLC=y @@ -3140,8 +3177,8 @@ CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" # CONFIG_MANAGER_SBS is not set # CONFIG_MANDATORY_FILE_LOCKING is not set # CONFIG_MANGLE_BOOTARGS is not set -# CONFIG_MARVELL_10G_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set +# CONFIG_MARVELL_10G_PHY is not set # CONFIG_MARVELL_PHY is not set # CONFIG_MAX1027 is not set # CONFIG_MAX11100 is not set @@ -3161,7 +3198,6 @@ CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" # CONFIG_MAX63XX_WATCHDOG is not set # CONFIG_MAX9611 is not set # CONFIG_MAXIM_THERMOCOUPLE is not set -# CONFIG_MAXLINEAR_GPHY is not set CONFIG_MAY_USE_DEVLINK=y # CONFIG_MB1232 is not set # CONFIG_MC3230 is not set @@ -3176,7 +3212,6 @@ CONFIG_MAY_USE_DEVLINK=y # CONFIG_MCP4725 is not set # CONFIG_MCP4922 is not set # CONFIG_MCPM is not set -# CONFIG_MCTP is not set # CONFIG_MD is not set # CONFIG_MDIO_BCM_UNIMAC is not set # CONFIG_MDIO_BITBANG is not set @@ -3193,7 +3228,6 @@ CONFIG_MAY_USE_DEVLINK=y # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set # CONFIG_MDIO_XPCS is not set -# CONFIG_MDM_GCC_9607 is not set # CONFIG_MD_FAULTY is not set # CONFIG_MEDIATEK_GE_PHY is not set # CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set @@ -3294,8 +3328,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_EXYNOS_LPASS is not set # CONFIG_MFD_GATEWORKS_GSC is not set # CONFIG_MFD_HI6421_PMIC is not set -# CONFIG_MFD_INTEL_M10_BMC is not set # CONFIG_MFD_INTEL_PMT is not set +# CONFIG_MFD_INTEL_M10_BMC is not set # CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set # CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set @@ -3338,8 +3372,6 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_ROHM_BD71828 is not set # CONFIG_MFD_ROHM_BD718XX is not set # CONFIG_MFD_ROHM_BD957XMUF is not set -# CONFIG_MFD_RSMU_I2C is not set -# CONFIG_MFD_RSMU_SPI is not set # CONFIG_MFD_RT4831 is not set # CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RTSX_PCI is not set @@ -3429,6 +3461,7 @@ CONFIG_MISC_FILESYSTEMS=y # CONFIG_MLX4_CORE is not set # CONFIG_MLX4_EN is not set # CONFIG_MLX5_CORE is not set +# CONFIG_MLX5_SF is not set # CONFIG_MLX90614 is not set # CONFIG_MLX90632 is not set # CONFIG_MLXFW is not set @@ -3492,20 +3525,20 @@ CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMU=y CONFIG_MMU_GATHER_RCU_TABLE_FREE=y CONFIG_MMU_GATHER_TABLE_FREE=y -CONFIG_MODPROBE_PATH="/sbin/modprobe" CONFIG_MODULES=y # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set # CONFIG_MODULE_COMPRESS is not set # CONFIG_MODULE_COMPRESS_GZIP is not set -CONFIG_MODULE_COMPRESS_NONE=y # CONFIG_MODULE_COMPRESS_XZ is not set # CONFIG_MODULE_COMPRESS_ZSTD is not set +CONFIG_MODULE_COMPRESS_NONE=y # CONFIG_MODULE_FORCE_LOAD is not set # CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_MODULE_STRIPPED=y CONFIG_MODULE_UNLOAD=y +CONFIG_MODPROBE_PATH="/sbin/modprobe" # CONFIG_MODVERSIONS is not set # CONFIG_MOST is not set # CONFIG_MOTORCOMM_PHY is not set @@ -3537,8 +3570,6 @@ CONFIG_MPTCP_IPV6=y CONFIG_MSDOS_PARTITION=y # CONFIG_MSI_BITMAP_SELFTEST is not set # CONFIG_MSI_LAPTOP is not set -# CONFIG_MSM_GCC_8953 is not set -# CONFIG_MSM_MMCC_8994 is not set # CONFIG_MST_IRQ is not set CONFIG_MTD=y # CONFIG_MTD_ABSENT is not set @@ -3581,7 +3612,6 @@ CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set # CONFIG_MTD_MCHP23K256 is not set -# CONFIG_MTD_MCHP48L640 is not set # CONFIG_MTD_MT81xx_NOR is not set # CONFIG_MTD_MTDRAM is not set # CONFIG_MTD_MYLOADER_PARTS is not set @@ -3619,7 +3649,6 @@ CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xff108018 # CONFIG_MTD_NAND_GPMI_NAND is not set # CONFIG_MTD_NAND_HISI504 is not set CONFIG_MTD_NAND_IDS=y -# CONFIG_MTD_NAND_INTEL_LGM is not set # CONFIG_MTD_NAND_JZ4740 is not set # CONFIG_MTD_NAND_MPC5121_NFC is not set # CONFIG_MTD_NAND_MTK is not set @@ -3636,7 +3665,6 @@ CONFIG_MTD_NAND_IDS=y # CONFIG_MTD_NAND_PXA3xx is not set # CONFIG_MTD_NAND_RB4XX is not set # CONFIG_MTD_NAND_RB750 is not set -# CONFIG_MTD_NAND_RB91X is not set # CONFIG_MTD_NAND_RICOH is not set # CONFIG_MTD_NAND_S3C2410 is not set # CONFIG_MTD_NAND_SHARPSL is not set @@ -3677,9 +3705,6 @@ CONFIG_MTD_ROOTFS_ROOT_DEV=y # CONFIG_MTD_SPINAND_MT29F is not set # CONFIG_MTD_SPI_NAND is not set # CONFIG_MTD_SPI_NOR is not set -# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set -CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y -# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set # CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set CONFIG_MTD_SPI_NOR_USE_4K_SECTORS_LIMIT=4096 CONFIG_MTD_SPLIT=y @@ -3744,6 +3769,7 @@ CONFIG_NETDEVICES=y # CONFIG_NETFILTER_NETLINK is not set # CONFIG_NETFILTER_NETLINK_ACCT is not set # CONFIG_NETFILTER_NETLINK_GLUE_CT is not set +# CONFIG_NETFILTER_NETLINK_HOOK is not set # CONFIG_NETFILTER_NETLINK_LOG is not set # CONFIG_NETFILTER_NETLINK_OSF is not set # CONFIG_NETFILTER_NETLINK_QUEUE is not set @@ -3819,6 +3845,7 @@ CONFIG_NETDEVICES=y # CONFIG_NETFILTER_XT_TARGET_TEE is not set # CONFIG_NETFILTER_XT_TARGET_TPROXY is not set # CONFIG_NETFILTER_XT_TARGET_TRACE is not set +# CONFIG_NETFS_STATS is not set # CONFIG_NETLABEL is not set # CONFIG_NETLINK_DIAG is not set # CONFIG_NETLINK_MMAP is not set @@ -3892,27 +3919,21 @@ CONFIG_NET_CORE=y # CONFIG_NET_DSA_TAG_8021Q is not set # CONFIG_NET_DSA_TAG_AR9331 is not set # CONFIG_NET_DSA_TAG_BRCM is not set -# CONFIG_NET_DSA_TAG_BRCM_LEGACY is not set # CONFIG_NET_DSA_TAG_BRCM_PREPEND is not set # CONFIG_NET_DSA_TAG_DSA is not set # CONFIG_NET_DSA_TAG_EDSA is not set # CONFIG_NET_DSA_TAG_GSWIP is not set -# CONFIG_NET_DSA_TAG_HELLCREEK is not set # CONFIG_NET_DSA_TAG_KSZ is not set # CONFIG_NET_DSA_TAG_LAN9303 is not set # CONFIG_NET_DSA_TAG_MTK is not set # CONFIG_NET_DSA_TAG_OCELOT is not set -# CONFIG_NET_DSA_TAG_OCELOT_8021Q is not set # CONFIG_NET_DSA_TAG_QCA is not set # CONFIG_NET_DSA_TAG_RTL4_A is not set # CONFIG_NET_DSA_TAG_SJA1105 is not set # CONFIG_NET_DSA_TAG_TRAILER is not set -# CONFIG_NET_DSA_TAG_XRS700X is not set # CONFIG_NET_DSA_VITESSE_VSC73XX is not set # CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM is not set # CONFIG_NET_DSA_VITESSE_VSC73XX_SPI is not set -# CONFIG_NET_DSA_XRS700X_I2C is not set -# CONFIG_NET_DSA_XRS700X_MDIO is not set # CONFIG_NET_EMATCH is not set # CONFIG_NET_EMATCH_CANID is not set # CONFIG_NET_EMATCH_CMP is not set @@ -4023,13 +4044,12 @@ CONFIG_NET_VENDOR_HUAWEI=y CONFIG_NET_VENDOR_I825XX=y CONFIG_NET_VENDOR_IBM=y CONFIG_NET_VENDOR_INTEL=y -# CONFIG_NET_VENDOR_LITEX is not set CONFIG_NET_VENDOR_MARVELL=y CONFIG_NET_VENDOR_MELLANOX=y CONFIG_NET_VENDOR_MICREL=y CONFIG_NET_VENDOR_MICROCHIP=y CONFIG_NET_VENDOR_MICROSEMI=y -# CONFIG_NET_VENDOR_MICROSOFT is not set +CONFIG_NET_VENDOR_MICROSOFT=y CONFIG_NET_VENDOR_MYRI=y CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NET_VENDOR_NETERION=y @@ -4095,6 +4115,7 @@ CONFIG_NFS_V3=y # CONFIG_NFT_FLOW_OFFLOAD is not set # CONFIG_NFT_OBJREF is not set # CONFIG_NFT_OSF is not set +# CONFIG_NFT_REJECT_NETDEV is not set # CONFIG_NFT_RT is not set # CONFIG_NFT_SET_BITMAP is not set # CONFIG_NFT_SOCKET is not set @@ -4137,6 +4158,7 @@ CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_LOG_ARP is not set # CONFIG_NF_LOG_BRIDGE is not set # CONFIG_NF_LOG_IPV4 is not set +# CONFIG_NF_LOG_IPV6 is not set # CONFIG_NF_LOG_NETDEV is not set # CONFIG_NF_LOG_SYSLOG is not set # CONFIG_NF_NAT is not set @@ -4241,13 +4263,13 @@ CONFIG_NMI_LOG_BUF_SHIFT=13 # CONFIG_NO_HZ_IDLE is not set # CONFIG_NS83820 is not set # CONFIG_NTB is not set -# CONFIG_NTFS3_FS is not set # CONFIG_NTFS_DEBUG is not set # CONFIG_NTFS_FS is not set # CONFIG_NTFS_RW is not set # CONFIG_NTP_PPS is not set # CONFIG_NULL_TTY is not set # CONFIG_NUMA is not set +# CONFIG_NVIDIA_CARMEL_CNP_ERRATUM is not set # CONFIG_NVM is not set # CONFIG_NVMEM is not set # CONFIG_NVMEM_BCM_OCOTP is not set @@ -4406,7 +4428,6 @@ CONFIG_PCIE_BUS_DEFAULT=y # CONFIG_PCIE_IPROC is not set # CONFIG_PCIE_KIRIN is not set # CONFIG_PCIE_LAYERSCAPE_GEN4 is not set -# CONFIG_PCIE_MICROCHIP_HOST is not set # CONFIG_PCIE_PTM is not set # CONFIG_PCIE_XILINX is not set # CONFIG_PCIPCWATCHDOG is not set @@ -4426,6 +4447,7 @@ CONFIG_PCIE_BUS_DEFAULT=y # CONFIG_PCI_J721E_HOST is not set # CONFIG_PCI_LAYERSCAPE is not set # CONFIG_PCI_MESON is not set +# CONFIG_PCIE_MICROCHIP_HOST is not set # CONFIG_PCI_MSI is not set # CONFIG_PCI_PASID is not set # CONFIG_PCI_PF_STUB is not set @@ -4480,7 +4502,6 @@ CONFIG_PCI_SYSCALL=y # CONFIG_PHY_CADENCE_SALVO is not set # CONFIG_PHY_CADENCE_SIERRA is not set # CONFIG_PHY_CADENCE_TORRENT is not set -# CONFIG_PHY_CAN_TRANSCEIVER is not set # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_EXYNOS_DP_VIDEO is not set # CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set @@ -4503,31 +4524,25 @@ CONFIG_PCI_SYSCALL=y # CONFIG_PID_NS is not set CONFIG_PINCONF=y # CONFIG_PINCTRL is not set +# CONFIG_PINCTRL_ALDERLAKE is not set # CONFIG_PINCTRL_AMD is not set # CONFIG_PINCTRL_AXP209 is not set # CONFIG_PINCTRL_CEDARFORK is not set +# CONFIG_PINCTRL_ELKHARTLAKE is not set # CONFIG_PINCTRL_EXYNOS is not set # CONFIG_PINCTRL_EXYNOS5440 is not set # CONFIG_PINCTRL_ICELAKE is not set # CONFIG_PINCTRL_INGENIC is not set -# CONFIG_PINCTRL_LPASS_LPI is not set +# CONFIG_PINCTRL_LAKEFIELD is not set # CONFIG_PINCTRL_MCP23S08 is not set -# CONFIG_PINCTRL_MDM9607 is not set # CONFIG_PINCTRL_MICROCHIP_SGPIO is not set -# CONFIG_PINCTRL_MSM8953 is not set # CONFIG_PINCTRL_MSM8X74 is not set # CONFIG_PINCTRL_MT6779 is not set # CONFIG_PINCTRL_MT8167 is not set # CONFIG_PINCTRL_MT8192 is not set # CONFIG_PINCTRL_MTK_V2 is not set # CONFIG_PINCTRL_OCELOT is not set -# CONFIG_PINCTRL_SC7280 is not set -# CONFIG_PINCTRL_SC8180X is not set -# CONFIG_PINCTRL_SDX55 is not set CONFIG_PINCTRL_SINGLE=y -# CONFIG_PINCTRL_SM6115 is not set -# CONFIG_PINCTRL_SM6125 is not set -# CONFIG_PINCTRL_SM8350 is not set # CONFIG_PINCTRL_STMFX is not set # CONFIG_PINCTRL_SX150X is not set # CONFIG_PING is not set @@ -4612,7 +4627,6 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y # CONFIG_PRIME_NUMBERS is not set CONFIG_PRINTK=y # CONFIG_PRINTK_CALLER is not set -# CONFIG_PRINTK_INDEX is not set CONFIG_PRINTK_NMI=y CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 # CONFIG_PRINTK_TIME is not set @@ -4650,26 +4664,25 @@ CONFIG_PROC_SYSCTL=y # CONFIG_PUBLIC_KEY_ALGO_RSA is not set # CONFIG_PVPANIC is not set # CONFIG_PWM is not set +# CONFIG_PWM_ATMEL_TCB is not set # CONFIG_PWM_DEBUG is not set +# CONFIG_PWM_DWC is not set # CONFIG_PWM_FSL_FTM is not set # CONFIG_PWM_PCA9685 is not set +# CONFIG_PWM_RASPBERRYPI_POE is not set CONFIG_PWRSEQ_EMMC=y # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=y # CONFIG_QCA7000 is not set # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set -# CONFIG_QCOM_A7PLL is not set # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set # CONFIG_QCOM_FALKOR_ERRATUM_1009 is not set # CONFIG_QCOM_FALKOR_ERRATUM_E1041 is not set -# CONFIG_QCOM_GPI_DMA is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set -# CONFIG_QCOM_LMH is not set # CONFIG_QCOM_QDF2400_ERRATUM_0065 is not set -# CONFIG_QCOM_QMI_HELPERS is not set # CONFIG_QCOM_SPMI_ADC5 is not set # CONFIG_QCOM_SPMI_IADC is not set # CONFIG_QCOM_SPMI_TEMP_ALARM is not set @@ -4713,6 +4726,7 @@ CONFIG_PWRSEQ_SIMPLE=y # CONFIG_RALINK is not set # CONFIG_RANDOM32_SELFTEST is not set # CONFIG_RANDOMIZE_BASE is not set +# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set # CONFIG_RANDOM_TRUST_BOOTLOADER is not set # CONFIG_RANDOM_TRUST_CPU is not set # CONFIG_RAPIDIO is not set @@ -4723,13 +4737,15 @@ CONFIG_PWRSEQ_SIMPLE=y CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_RCU_EQS_DEBUG is not set # CONFIG_RCU_EXPEDITE_BOOT is not set -# CONFIG_RCU_EXPERT is not set +CONFIG_RCU_EXPERT=y +CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FANOUT_LEAF=16 +# CONFIG_RCU_FAST_NO_HZ is not set CONFIG_RCU_KTHREAD_PRIO=0 -CONFIG_RCU_NEED_SEGCBLIST=y +# CONFIG_RCU_NOCB_CPU is not set # CONFIG_RCU_PERF_TEST is not set # CONFIG_RCU_REF_SCALE_TEST is not set # CONFIG_RCU_SCALE_TEST is not set -CONFIG_RCU_STALL_COMMON=y # CONFIG_RCU_STRICT_GRACE_PERIOD is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3 @@ -4791,7 +4807,6 @@ CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3 # CONFIG_REGULATOR_MP886X is not set # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set -# CONFIG_REGULATOR_MT6315 is not set # CONFIG_REGULATOR_PCA9450 is not set # CONFIG_REGULATOR_PF8X00 is not set # CONFIG_REGULATOR_PFUZE100 is not set @@ -4804,8 +4819,6 @@ CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3 # CONFIG_REGULATOR_RT6160 is not set # CONFIG_REGULATOR_RT6245 is not set # CONFIG_REGULATOR_RTMV20 is not set -# CONFIG_REGULATOR_RTQ2134 is not set -# CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_SY8824X is not set @@ -4840,6 +4853,7 @@ CONFIG_REISERFS_FS_XATTR=y # CONFIG_RESET_LPC18XX is not set # CONFIG_RESET_MESON is not set # CONFIG_RESET_PISTACHIO is not set +# CONFIG_RESET_RASPBERRYPI is not set # CONFIG_RESET_SOCFPGA is not set # CONFIG_RESET_STM32 is not set # CONFIG_RESET_SUNXI is not set @@ -4863,6 +4877,7 @@ CONFIG_RFKILL=y # CONFIG_ROMFS_FS is not set # CONFIG_ROSE is not set # CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPI_POE_POWER is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # CONFIG_RPR0521 is not set @@ -4902,7 +4917,6 @@ CONFIG_RTC_DRV_CMOS=y # CONFIG_RTC_DRV_FM3130 is not set # CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_GENERIC is not set -# CONFIG_RTC_DRV_GOLDFISH is not set # CONFIG_RTC_DRV_HID_SENSOR_TIME is not set # CONFIG_RTC_DRV_HYM8563 is not set # CONFIG_RTC_DRV_ISL12022 is not set @@ -5020,12 +5034,14 @@ CONFIG_SATA_MOBILE_LPM_POLICY=0 CONFIG_SBITMAP=y # CONFIG_SC92031 is not set # CONFIG_SCA3000 is not set +# CONFIG_SCA3300 is not set # CONFIG_SCACHE_DEBUGFS is not set # CONFIG_SCC is not set # CONFIG_SCD30_CORE is not set # CONFIG_SCF_TORTURE_TEST is not set # CONFIG_SCHEDSTATS is not set # CONFIG_SCHED_AUTOGROUP is not set +# CONFIG_SCHED_CORE is not set # CONFIG_SCHED_DEBUG is not set CONFIG_SCHED_HRTICK=y # CONFIG_SCHED_MC is not set @@ -5123,19 +5139,10 @@ CONFIG_SCSI_PROC_FS=y # CONFIG_SCSI_ULTRASTOR is not set # CONFIG_SCSI_VIRTIO is not set # CONFIG_SCSI_WD719X is not set -# CONFIG_SC_CAMCC_7180 is not set -# CONFIG_SC_DISPCC_7280 is not set -# CONFIG_SC_GCC_7280 is not set -# CONFIG_SC_GCC_8180X is not set -# CONFIG_SC_GPUCC_7280 is not set -# CONFIG_SC_VIDEOCC_7280 is not set # CONFIG_SCx200_ACB is not set # CONFIG_SDIO_UART is not set -# CONFIG_SDM_GPUCC_660 is not set -# CONFIG_SDM_MMCC_660 is not set # CONFIG_SDR_MAX2175 is not set # CONFIG_SDR_PLATFORM_DRIVERS is not set -# CONFIG_SDX_GCC_55 is not set # CONFIG_SD_ADC_MODULATOR is not set # CONFIG_SECCOMP is not set # CONFIG_SECCOMP_CACHE_DEBUG is not set @@ -5146,7 +5153,6 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_SECURITY_DMESG_RESTRICT=y # CONFIG_SECURITY_LOADPIN is not set # CONFIG_SECURITY_LOCKDOWN_LSM is not set -# CONFIG_SECURITY_NETWORK_XFRM is not set # CONFIG_SECURITY_PATH is not set # CONFIG_SECURITY_SAFESETID is not set # CONFIG_SECURITY_SELINUX_AVC_STATS is not set @@ -5199,10 +5205,13 @@ CONFIG_SELECT_MEMORY_MODEL=y # CONFIG_SENSORS_BEL_PFE is not set # CONFIG_SENSORS_BH1770 is not set # CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BPA_RS600 is not set # CONFIG_SENSORS_CORETEMP is not set # CONFIG_SENSORS_CORSAIR_CPRO is not set +# CONFIG_SENSORS_CORSAIR_PSU is not set # CONFIG_SENSORS_DELL_SMM is not set # CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_DPS920AB is not set # CONFIG_SENSORS_DRIVETEMP is not set # CONFIG_SENSORS_DS1621 is not set # CONFIG_SENSORS_DS620 is not set @@ -5214,6 +5223,7 @@ CONFIG_SELECT_MEMORY_MODEL=y # CONFIG_SENSORS_F75375S is not set # CONFIG_SENSORS_FAM15H_POWER is not set # CONFIG_SENSORS_FSCHMD is not set +# CONFIG_SENSORS_FSP_3Y is not set # CONFIG_SENSORS_FTSTEUTATES is not set # CONFIG_SENSORS_G760A is not set # CONFIG_SENSORS_G762 is not set @@ -5236,6 +5246,7 @@ CONFIG_SELECT_MEMORY_MODEL=y # CONFIG_SENSORS_INA3221 is not set # CONFIG_SENSORS_INSPUR_IPSPS is not set # CONFIG_SENSORS_IR35221 is not set +# CONFIG_SENSORS_IR36021 is not set # CONFIG_SENSORS_IR38064 is not set # CONFIG_SENSORS_IRPS5401 is not set # CONFIG_SENSORS_ISL29018 is not set @@ -5282,6 +5293,7 @@ CONFIG_SELECT_MEMORY_MODEL=y # CONFIG_SENSORS_LTQ_CPUTEMP is not set # CONFIG_SENSORS_MAX1111 is not set # CONFIG_SENSORS_MAX127 is not set +# CONFIG_SENSORS_MAX15301 is not set # CONFIG_SENSORS_MAX16064 is not set # CONFIG_SENSORS_MAX16065 is not set # CONFIG_SENSORS_MAX1619 is not set @@ -5302,6 +5314,7 @@ CONFIG_SELECT_MEMORY_MODEL=y # CONFIG_SENSORS_MAX6697 is not set # CONFIG_SENSORS_MAX8688 is not set # CONFIG_SENSORS_MCP3021 is not set +# CONFIG_SENSORS_MP2888 is not set # CONFIG_SENSORS_MP2975 is not set # CONFIG_SENSORS_MR75203 is not set # CONFIG_SENSORS_NCT6683 is not set @@ -5310,18 +5323,21 @@ CONFIG_SELECT_MEMORY_MODEL=y # CONFIG_SENSORS_NCT7904 is not set # CONFIG_SENSORS_NPCM7XX is not set # CONFIG_SENSORS_NSA320 is not set +# CONFIG_SENSORS_NZXT_KRAKEN2 is not set # CONFIG_SENSORS_NTC_THERMISTOR is not set # CONFIG_SENSORS_OCC_P8_I2C is not set # CONFIG_SENSORS_PC87360 is not set # CONFIG_SENSORS_PC87427 is not set # CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_PIM4328 is not set +# CONFIG_SENSORS_PM6764TR is not set # CONFIG_SENSORS_PMBUS is not set # CONFIG_SENSORS_POWR1220 is not set # CONFIG_SENSORS_PWM_FAN is not set # CONFIG_SENSORS_PXE1610 is not set +# CONFIG_SENSORS_Q54SJ108A2 is not set # CONFIG_SENSORS_RM3100_I2C is not set # CONFIG_SENSORS_RM3100_SPI is not set -# CONFIG_SENSORS_SBRMI is not set # CONFIG_SENSORS_SBTSI is not set # CONFIG_SENSORS_SCH5627 is not set # CONFIG_SENSORS_SCH5636 is not set @@ -5336,6 +5352,7 @@ CONFIG_SELECT_MEMORY_MODEL=y # CONFIG_SENSORS_SMSC47B397 is not set # CONFIG_SENSORS_SMSC47M1 is not set # CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_STPDDC60 is not set # CONFIG_SENSORS_STTS751 is not set # CONFIG_SENSORS_TC654 is not set # CONFIG_SENSORS_TC74 is not set @@ -5509,7 +5526,6 @@ CONFIG_SLUB_CPU_PARTIAL=y # CONFIG_SLUB_MEMCG_SYSFS_ON is not set # CONFIG_SLUB_STATS is not set # CONFIG_SMARTJOYPLUS_FF is not set -# CONFIG_SMB_SERVER is not set # CONFIG_SMC911X is not set # CONFIG_SMC9194 is not set # CONFIG_SMC91X is not set @@ -5519,12 +5535,7 @@ CONFIG_SLUB_CPU_PARTIAL=y # CONFIG_SMSC_PHY is not set # CONFIG_SMS_SDIO_DRV is not set # CONFIG_SMS_USB_DRV is not set -# CONFIG_SM_CAMCC_8250 is not set # CONFIG_SM_FTL is not set -# CONFIG_SM_GCC_6115 is not set -# CONFIG_SM_GCC_6125 is not set -# CONFIG_SM_GCC_6350 is not set -# CONFIG_SM_GCC_8350 is not set # CONFIG_SND is not set # CONFIG_SND_AC97_POWER_SAVE is not set # CONFIG_SND_AD1816A is not set @@ -5671,6 +5682,8 @@ CONFIG_SND_PROC_FS=y # CONFIG_SND_SIS7019 is not set # CONFIG_SND_SOC is not set # CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_ADAU1372_I2C is not set +# CONFIG_SND_SOC_ADAU1372_SPI is not set # CONFIG_SND_SOC_ADAU1701 is not set # CONFIG_SND_SOC_ADAU1761_I2C is not set # CONFIG_SND_SOC_ADAU1761_SPI is not set @@ -5733,6 +5746,7 @@ CONFIG_SND_PROC_FS=y # CONFIG_SND_SOC_FSL_SAI is not set # CONFIG_SND_SOC_FSL_SPDIF is not set # CONFIG_SND_SOC_FSL_SSI is not set +# CONFIG_SND_SOC_FSL_XCVR is not set # CONFIG_SND_SOC_GTM601 is not set # CONFIG_SND_SOC_ICS43432 is not set # CONFIG_SND_SOC_IMG is not set @@ -5780,6 +5794,10 @@ CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y # CONFIG_SND_SOC_JZ4725B_CODEC is not set # CONFIG_SND_SOC_JZ4740_CODEC is not set # CONFIG_SND_SOC_JZ4770_CODEC is not set +# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set +# CONFIG_SND_SOC_LPASS_VA_MACRO is not set +# CONFIG_SND_SOC_LPASS_RX_MACRO is not set +# CONFIG_SND_SOC_LPASS_TX_MACRO is not set # CONFIG_SND_SOC_MA120X0P is not set # CONFIG_SND_SOC_MAX9759 is not set # CONFIG_SND_SOC_MAX98088 is not set @@ -5804,6 +5822,7 @@ CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y # CONFIG_SND_SOC_MT8173 is not set # CONFIG_SND_SOC_MT8183 is not set # CONFIG_SND_SOC_MTK_BTCVSD is not set +# CONFIG_SND_SOC_NAU8315 is not set # CONFIG_SND_SOC_NAU8540 is not set # CONFIG_SND_SOC_NAU8810 is not set # CONFIG_SND_SOC_NAU8822 is not set @@ -5825,13 +5844,17 @@ CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y # CONFIG_SND_SOC_RK3328 is not set # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set +# CONFIG_SND_SOC_RT5640 is not set +# CONFIG_SND_SOC_RT5659 is not set # CONFIG_SND_SOC_RT5677_SPI is not set # CONFIG_SND_SOC_SGTL5000 is not set # CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set +# CONFIG_SND_SOC_SIMPLE_MUX is not set # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set # CONFIG_SND_SOC_SOF_TOPLEVEL is not set # CONFIG_SND_SOC_SPDIF is not set # CONFIG_SND_SOC_SSM2305 is not set +# CONFIG_SND_SOC_SSM2518 is not set # CONFIG_SND_SOC_SSM2602_I2C is not set # CONFIG_SND_SOC_SSM2602_SPI is not set # CONFIG_SND_SOC_SSM4567 is not set @@ -5848,6 +5871,7 @@ CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y # CONFIG_SND_SOC_TAS6424 is not set # CONFIG_SND_SOC_TDA7419 is not set # CONFIG_SND_SOC_TFA9879 is not set +# CONFIG_SND_SOC_TFA989X is not set # CONFIG_SND_SOC_TLV320ADCX140 is not set # CONFIG_SND_SOC_TLV320AIC23_I2C is not set # CONFIG_SND_SOC_TLV320AIC23_SPI is not set @@ -5855,6 +5879,8 @@ CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y # CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set # CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set # CONFIG_SND_SOC_TLV320AIC3X is not set +# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set +# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TS3A227E is not set # CONFIG_SND_SOC_TSCS42XX is not set @@ -5914,6 +5940,7 @@ CONFIG_SND_USB=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VIA82XX is not set # CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VIRTIO is not set # CONFIG_SND_VIRTUOSO is not set # CONFIG_SND_VX222 is not set # CONFIG_SND_VXPOCKET is not set @@ -6005,6 +6032,8 @@ CONFIG_SND_X86=y CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_SPMI is not set # CONFIG_SPS30 is not set +# CONFIG_SPS30_I2C is not set +# CONFIG_SPS30_SERIAL is not set CONFIG_SQUASHFS=y # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set # CONFIG_SQUASHFS_DECOMP_MULTI is not set @@ -6035,7 +6064,6 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_STACKPROTECTOR is not set # CONFIG_STACKPROTECTOR_STRONG is not set # CONFIG_STACKTRACE is not set -# CONFIG_STACKTRACE_BUILD_ID is not set CONFIG_STACKTRACE_SUPPORT=y # CONFIG_STACK_TRACER is not set # CONFIG_STACK_VALIDATION is not set @@ -6079,6 +6107,7 @@ CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y # CONFIG_SUNXI_SRAM is not set # CONFIG_SUN_PARTITION is not set # CONFIG_SURFACE_3_BUTTON is not set +# CONFIG_SURFACE_PLATFORMS is not set # CONFIG_SUSPEND is not set # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_SWAP=y @@ -6120,6 +6149,7 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_TARGET_CORE is not set # CONFIG_TASKSTATS is not set # CONFIG_TASKS_RCU is not set +CONFIG_TASKS_TRACE_RCU_READ_MB=y # CONFIG_TASK_XACCT is not set # CONFIG_TC35815 is not set # CONFIG_TCG_ATMEL is not set @@ -6130,10 +6160,10 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_TCG_ST33_I2C is not set # CONFIG_TCG_TIS is not set # CONFIG_TCG_TIS_I2C_ATMEL is not set +# CONFIG_TCG_TIS_I2C_CR50 is not set # CONFIG_TCG_TIS_I2C_INFINEON is not set # CONFIG_TCG_TIS_I2C_NUVOTON is not set # CONFIG_TCG_TIS_SPI is not set -# CONFIG_TCG_TIS_I2C_CR50 is not set # CONFIG_TCG_TIS_ST33ZP24_I2C is not set # CONFIG_TCG_TIS_ST33ZP24_SPI is not set # CONFIG_TCG_TPM is not set @@ -6171,7 +6201,6 @@ CONFIG_TCP_CONG_CUBIC=y # CONFIG_TEST_BITOPS is not set # CONFIG_TEST_BLACKHOLE_DEV is not set # CONFIG_TEST_BPF is not set -# CONFIG_TEST_DIV64 is not set # CONFIG_TEST_FIRMWARE is not set # CONFIG_TEST_FREE_PAGES is not set # CONFIG_TEST_HASH is not set @@ -6189,7 +6218,6 @@ CONFIG_TCP_CONG_CUBIC=y # CONFIG_TEST_POWER is not set # CONFIG_TEST_PRINTF is not set # CONFIG_TEST_RHASHTABLE is not set -# CONFIG_TEST_SCANF is not set # CONFIG_TEST_SORT is not set # CONFIG_TEST_STACKINIT is not set # CONFIG_TEST_STATIC_KEYS is not set @@ -6255,6 +6283,7 @@ CONFIG_TINY_RCU=y # CONFIG_TI_ADC161S626 is not set # CONFIG_TI_ADS1015 is not set # CONFIG_TI_ADS124S08 is not set +# CONFIG_TI_ADS131E08 is not set # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8344 is not set # CONFIG_TI_ADS8688 is not set @@ -6273,11 +6302,13 @@ CONFIG_TINY_RCU=y # CONFIG_TI_ST is not set # CONFIG_TI_SYSCON_RESET is not set # CONFIG_TI_TLC4541 is not set +# CONFIG_TI_TSC2046 is not set # CONFIG_TLAN is not set # CONFIG_TLS is not set # CONFIG_TMD_HERMES is not set # CONFIG_TMP006 is not set # CONFIG_TMP007 is not set +# CONFIG_TMP117 is not set CONFIG_TMPFS=y # CONFIG_TMPFS_INODE64 is not set # CONFIG_TMPFS_POSIX_ACL is not set @@ -6328,7 +6359,9 @@ CONFIG_TMPFS_XATTR=y # CONFIG_TOUCHSCREEN_HP600 is not set # CONFIG_TOUCHSCREEN_HP7XX is not set # CONFIG_TOUCHSCREEN_HTCPEN is not set +# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set # CONFIG_TOUCHSCREEN_ILI210X is not set +# CONFIG_TOUCHSCREEN_ILITEK is not set # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_IPAQ_MICRO is not set @@ -6342,6 +6375,7 @@ CONFIG_TMPFS_XATTR=y # CONFIG_TOUCHSCREEN_MIGOR is not set # CONFIG_TOUCHSCREEN_MK712 is not set # CONFIG_TOUCHSCREEN_MMS114 is not set +# CONFIG_TOUCHSCREEN_MSG2638 is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_MX25 is not set # CONFIG_TOUCHSCREEN_MXS_LRADC is not set @@ -6432,6 +6466,7 @@ CONFIG_TRAD_SIGNALS=y # CONFIG_TRUSTED_FOUNDATIONS is not set # CONFIG_TRUSTED_KEYS is not set # CONFIG_TSL2583 is not set +# CONFIG_TSL2591 is not set # CONFIG_TSL2772 is not set # CONFIG_TSL2x7x is not set # CONFIG_TSL4531 is not set @@ -6741,6 +6776,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y # CONFIG_USB_ROLE_SWITCH is not set # CONFIG_USB_RTL8150 is not set # CONFIG_USB_RTL8152 is not set +# CONFIG_USB_RTL8153_ECM is not set # CONFIG_USB_S2255 is not set # CONFIG_USB_SERIAL is not set # CONFIG_USB_SERIAL_AIRCABLE is not set @@ -6808,6 +6844,7 @@ CONFIG_USB_SERIAL_SAFE_PADDED=y # CONFIG_USB_SERIAL_WHITEHEAT is not set # CONFIG_USB_SERIAL_WISHBONE is not set # CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_XR is not set # CONFIG_USB_SERIAL_XSENS_MT is not set # CONFIG_USB_SEVSEG is not set # CONFIG_USB_SIERRA_NET is not set @@ -6917,6 +6954,7 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_BT866 is not set # CONFIG_VIDEO_CADENCE is not set # CONFIG_VIDEO_CAFE_CCIC is not set +# CONFIG_VIDEO_CCS is not set # CONFIG_VIDEO_CS3308 is not set # CONFIG_VIDEO_CS5345 is not set # CONFIG_VIDEO_CS53L32A is not set @@ -6946,9 +6984,8 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_IMX274 is not set # CONFIG_VIDEO_IMX290 is not set # CONFIG_VIDEO_IMX319 is not set +# CONFIG_VIDEO_IMX334 is not set # CONFIG_VIDEO_IMX355 is not set -# CONFIG_VIDEO_IMX477 is not set -# CONFIG_VIDEO_IRS1125 is not set # CONFIG_VIDEO_IR_I2C is not set # CONFIG_VIDEO_IVTV is not set # CONFIG_VIDEO_KS0127 is not set @@ -6972,6 +7009,7 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_NOON010PC30 is not set # CONFIG_VIDEO_OMAP2_VOUT is not set +# CONFIG_VIDEO_OV02A10 is not set # CONFIG_VIDEO_OV13858 is not set # CONFIG_VIDEO_OV2640 is not set # CONFIG_VIDEO_OV2659 is not set @@ -6981,6 +7019,7 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_OV5640 is not set # CONFIG_VIDEO_OV5645 is not set # CONFIG_VIDEO_OV5647 is not set +# CONFIG_VIDEO_OV5648 is not set # CONFIG_VIDEO_OV5670 is not set # CONFIG_VIDEO_OV5675 is not set # CONFIG_VIDEO_OV5695 is not set @@ -6991,11 +7030,14 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_OV772X is not set # CONFIG_VIDEO_OV7740 is not set # CONFIG_VIDEO_OV8856 is not set +# CONFIG_VIDEO_OV8865 is not set # CONFIG_VIDEO_OV9281 is not set # CONFIG_VIDEO_OV9640 is not set # CONFIG_VIDEO_OV9650 is not set +# CONFIG_VIDEO_OV9734 is not set # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_RDACM20 is not set +# CONFIG_VIDEO_RDACM21 is not set # CONFIG_VIDEO_RJ54N1 is not set # CONFIG_VIDEO_S5C73M3 is not set # CONFIG_VIDEO_S5K4ECGX is not set @@ -7068,7 +7110,6 @@ CONFIG_VLAN_8021Q=y # CONFIG_VLAN_8021Q_GVRP is not set # CONFIG_VLAN_8021Q_MVRP is not set # CONFIG_VME_BUS is not set -# CONFIG_VMLINUX_MAP is not set # CONFIG_VMSPLIT_1G is not set # CONFIG_VMSPLIT_2G is not set # CONFIG_VMSPLIT_2G_OPT is not set @@ -7131,7 +7172,6 @@ CONFIG_WATCHDOG_OPEN_TIMEOUT=0 # CONFIG_WD80x3 is not set # CONFIG_WDAT_WDT is not set # CONFIG_WDTPCI is not set -# CONFIG_WERROR is not set CONFIG_WEXT_CORE=y CONFIG_WEXT_PRIV=y CONFIG_WEXT_PROC=y @@ -7141,6 +7181,7 @@ CONFIG_WILINK_PLATFORM_DATA=y # CONFIG_WIREGUARD is not set CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y +# CONFIG_WIRELESS_HOTKEY is not set # CONFIG_WIRELESS_WDS is not set # CONFIG_WIZNET_W5100 is not set # CONFIG_WIZNET_W5300 is not set @@ -7178,6 +7219,7 @@ CONFIG_X86_SYSFB=y # CONFIG_XEN is not set # CONFIG_XEN_GRANT_DMA_ALLOC is not set # CONFIG_XEN_PVCALLS_FRONTEND is not set +CONFIG_XEN_PVHVM_GUEST=y CONFIG_XEN_SCRUB_PAGES_DEFAULT=y CONFIG_XFRM=y # CONFIG_XFRM_INTERFACE is not set @@ -7220,6 +7262,7 @@ CONFIG_XZ_DEC=y # CONFIG_XZ_DEC_TEST is not set # CONFIG_XZ_DEC_X86 is not set # CONFIG_YAM is not set +# CONFIG_YAMAHA_YAS530 is not set # CONFIG_YELLOWFIN is not set # CONFIG_YENTA is not set # CONFIG_YENTA_O2 is not set @@ -7230,7 +7273,6 @@ CONFIG_XZ_DEC=y # CONFIG_ZD1211RW is not set # CONFIG_ZD1211RW_DEBUG is not set # CONFIG_ZEROPLUS_FF is not set -# CONFIG_ZERO_CALL_USED_REGS is not set # CONFIG_ZIIRAVE_WATCHDOG is not set # CONFIG_ZISOFS is not set # CONFIG_ZLIB_DEFLATE is not set @@ -7240,9 +7282,10 @@ CONFIG_ZONE_DMA=y # CONFIG_ZPA2326 is not set # CONFIG_ZPOOL is not set # CONFIG_ZRAM is not set -# CONFIG_ZRAM_MEMORY_TRACKING is not set -# CONFIG_ZRAM_DEF_COMP_LZORLE is not set +ZRAM_DEF_COMP_LZORLE=y # CONFIG_ZRAM_DEF_COMP_ZSTD is not set +# CONFIG_ZRAM_DEF_COMP_LZ4 is not set # CONFIG_ZRAM_DEF_COMP_LZO is not set +# CONFIG_ZRAM_MEMORY_TRACKING is not set # CONFIG_ZSMALLOC is not set # CONFIG_ZX_TDM is not set diff --git a/root/target/linux/generic/config-5.4 b/root/target/linux/generic/config-5.4 old mode 100755 new mode 100644 index f6991753..c9b968d2 --- a/root/target/linux/generic/config-5.4 +++ b/root/target/linux/generic/config-5.4 @@ -297,9 +297,6 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 # CONFIG_ARM64_64K_PAGES is not set # CONFIG_ARM64_CRYPTO is not set # CONFIG_ARM64_ERRATUM_1024718 is not set -# CONFIG_ARM64_ERRATUM_1165522 is not set -# CONFIG_ARM64_ERRATUM_1286807 is not set -# CONFIG_ARM64_ERRATUM_1418040 is not set # CONFIG_ARM64_ERRATUM_1463225 is not set # CONFIG_ARM64_ERRATUM_1542419 is not set # CONFIG_ARM64_ERRATUM_819472 is not set @@ -311,6 +308,7 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 # CONFIG_ARM64_ERRATUM_843419 is not set # CONFIG_ARM64_ERRATUM_845719 is not set # CONFIG_ARM64_ERRATUM_858921 is not set +# CONFIG_ARM64_ERRATUM_1542419 is not set # CONFIG_ARM64_HW_AFDBM is not set # CONFIG_ARM64_LSE_ATOMICS is not set CONFIG_ARM64_MODULE_PLTS=y @@ -469,11 +467,6 @@ CONFIG_ATM_CLIP_NO_ICMP=y # CONFIG_B43LEGACY is not set # CONFIG_B44 is not set # CONFIG_B53 is not set -# 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_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # CONFIG_BACKLIGHT_APPLE is not set @@ -790,7 +783,6 @@ CONFIG_CARDBUS=y # CONFIG_CAVIUM_ERRATUM_30115 is not set # CONFIG_CAVIUM_OCTEON_SOC is not set # CONFIG_CAVIUM_PTP is not set -# CONFIG_CAVIUM_TX2_ERRATUM_219 is not set # CONFIG_CB710_CORE is not set # CONFIG_CC10001_ADC is not set # CONFIG_CCS811 is not set @@ -807,6 +799,12 @@ CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CFG80211 is not set # CONFIG_CFG80211_CERTIFICATION_ONUS is not set # CONFIG_CGROUPS is not set +# CONFIG_CGROUP_BPF is not set +# CONFIG_CGROUP_DEBUG is not set +# CONFIG_CGROUP_HUGETLB is not set +# CONFIG_CGROUP_NET_CLASSID is not set +# CONFIG_CGROUP_NET_PRIO is not set +# CONFIG_CGROUP_RDMA is not set # CONFIG_CHARGER_ADP5061 is not set # CONFIG_CHARGER_BQ2415X is not set # CONFIG_CHARGER_BQ24190 is not set @@ -848,11 +846,12 @@ CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y # CONFIG_CIFS_NFSD_EXPORT is not set CONFIG_CIFS_POSIX=y # CONFIG_CIFS_SMB2 is not set -# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_STATS=y # CONFIG_CIFS_STATS2 is not set # CONFIG_CIFS_WEAK_PW_HASH is not set -CONFIG_CIFS_XATTR=y +# CONFIG_CIFS_XATTR is not set # CONFIG_CIO_DAC is not set +CONFIG_CLANG_VERSION=0 # CONFIG_CLEANCACHE is not set # CONFIG_CLKSRC_VERSATILE is not set # CONFIG_CLK_HSDK is not set @@ -902,6 +901,7 @@ CONFIG_COMPACTION=y # CONFIG_COMPAT_BRK is not set # CONFIG_COMPILE_TEST is not set # CONFIG_CONFIGFS_FS is not set +# CONFIG_CONFIG_KVM_AMD_SEV is not set # CONFIG_CONNECTOR is not set CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_QUIET=4 @@ -1759,7 +1759,6 @@ CONFIG_FSNOTIFY=y # CONFIG_FTRACE_STARTUP_TEST is not set # CONFIG_FTR_FIXUP_SELFTEST is not set # CONFIG_FTWDT010_WATCHDOG is not set -# CONFIG_FUJITSU_ERRATUM_010001 is not set # CONFIG_FUJITSU_ES is not set # CONFIG_FUJITSU_LAPTOP is not set # CONFIG_FUJITSU_TABLET is not set @@ -2081,6 +2080,7 @@ CONFIG_HW_PERF_EVENTS=y # CONFIG_HW_RANDOM_GEODE is not set # CONFIG_HW_RANDOM_INTEL is not set # CONFIG_HW_RANDOM_IPROC_RNG200 is not set +# CONFIG_HW_RANDOM_MTK is not set # CONFIG_HW_RANDOM_OMAP is not set # CONFIG_HW_RANDOM_OMAP3_ROM is not set # CONFIG_HW_RANDOM_PPC4XX is not set @@ -2145,6 +2145,7 @@ CONFIG_HZ_100=y # CONFIG_I2C_JZ4780 is not set # CONFIG_I2C_MLXCPLD is not set # CONFIG_I2C_MPC is not set +# CONFIG_I2C_MT65XX is not set # CONFIG_I2C_MUX is not set # CONFIG_I2C_MUX_GPIO is not set # CONFIG_I2C_MUX_GPMUX is not set @@ -2459,6 +2460,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_ROUTE_INFO is not set # CONFIG_IPV6_SEG6_HMAC is not set +# CONFIG_IPV6_SEG6_LWTUNNEL is not set # CONFIG_IPV6_SIT is not set # CONFIG_IPV6_SIT_6RD is not set # CONFIG_IPV6_TUNNEL is not set @@ -2631,6 +2633,7 @@ CONFIG_KERNFS=y # CONFIG_KEYBOARD_MAX7359 is not set # CONFIG_KEYBOARD_MCS is not set # CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_MTK_PMIC is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set @@ -2761,6 +2764,7 @@ CONFIG_LEDS_TRIGGER_NETDEV=y # CONFIG_LEDS_TRIGGER_PATTERN is not set CONFIG_LEDS_TRIGGER_TIMER=y # CONFIG_LEDS_TRIGGER_TRANSIENT is not set +# CONFIG_LEDS_UBNT_LEDBAR is not set # CONFIG_LEDS_USER is not set # CONFIG_LED_TRIGGER_PHY is not set # CONFIG_LEGACY_PTYS is not set @@ -2835,7 +2839,6 @@ CONFIG_LZMA_DECOMPRESS=y # CONFIG_MAC80211_MESSAGE_TRACING is not set CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 # CONFIG_MACB is not set -# CONFIG_MACB_USE_HWSTAMP is not set # CONFIG_MACH_ASM9260 is not set # CONFIG_MACH_DECSTATION is not set # CONFIG_MACH_INGENIC is not set @@ -3258,6 +3261,7 @@ CONFIG_MTD_NAND_IDS=y # CONFIG_MTD_NAND_JZ4740 is not set # CONFIG_MTD_NAND_MPC5121_NFC is not set # CONFIG_MTD_NAND_MTK is not set +# CONFIG_MTD_NAND_MTK_BMT is not set # CONFIG_MTD_NAND_MXC is not set # CONFIG_MTD_NAND_MXIC is not set # CONFIG_MTD_NAND_NANDSIM is not set @@ -3282,6 +3286,7 @@ CONFIG_MTD_OF_PARTS=y # CONFIG_MTD_ONENAND is not set # CONFIG_MTD_OOPS is not set # CONFIG_MTD_OTP is not set +# CONFIG_MTD_PARSER_TRX is not set # CONFIG_MTD_PARTITIONED_MASTER is not set # CONFIG_MTD_PCI is not set # CONFIG_MTD_PCMCIA is not set @@ -3345,6 +3350,8 @@ CONFIG_MULTIUSER=y # CONFIG_MV643XX_ETH is not set # CONFIG_MVMDIO is not set # CONFIG_MVNETA_BM is not set +# CONFIG_MVSW61XX_PHY is not set +# CONFIG_MVSWITCH_PHY is not set # CONFIG_MV_XOR_V2 is not set # CONFIG_MWAVE is not set # CONFIG_MWL8K is not set @@ -3719,6 +3726,8 @@ CONFIG_NFS_V3=y # CONFIG_NF_CONNTRACK_EVENTS is not set # CONFIG_NF_CONNTRACK_FTP is not set # CONFIG_NF_CONNTRACK_H323 is not set +# CONFIG_NF_CONNTRACK_IPV4 is not set +# CONFIG_NF_CONNTRACK_IPV6 is not set # CONFIG_NF_CONNTRACK_IRC is not set # CONFIG_NF_CONNTRACK_LABELS is not set # CONFIG_NF_CONNTRACK_MARK is not set @@ -3745,14 +3754,17 @@ CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_DUP_IPV4 is not set # CONFIG_NF_DUP_IPV6 is not set # CONFIG_NF_FLOW_TABLE is not set +# CONFIG_NF_FLOW_TABLE_HW is not set # CONFIG_NF_LOG_ARP is not set # CONFIG_NF_LOG_BRIDGE is not set # CONFIG_NF_LOG_IPV4 is not set +# CONFIG_NF_LOG_IPV6 is not set # CONFIG_NF_LOG_NETDEV is not set # CONFIG_NF_NAT is not set # CONFIG_NF_NAT_AMANDA is not set # CONFIG_NF_NAT_FTP is not set # CONFIG_NF_NAT_H323 is not set +# CONFIG_NF_NAT_IPV6 is not set # CONFIG_NF_NAT_IRC is not set CONFIG_NF_NAT_MASQUERADE_IPV4=y CONFIG_NF_NAT_MASQUERADE_IPV6=y @@ -4115,6 +4127,7 @@ CONFIG_PINMUX=y # CONFIG_PLATFORM_MHU is not set # CONFIG_PLAT_SPEAR is not set # CONFIG_PLIP is not set +CONFIG_PLUGIN_HOSTCC="" # CONFIG_PLX_HERMES is not set # CONFIG_PM is not set # CONFIG_PMBUS is not set @@ -4135,8 +4148,8 @@ CONFIG_POSIX_TIMERS=y # CONFIG_POWER_RESET_BRCMSTB is not set # CONFIG_POWER_RESET_GPIO is not set # CONFIG_POWER_RESET_GPIO_RESTART is not set -# CONFIG_POWER_RESET_LINKSTATION is not set # CONFIG_POWER_RESET_LTC2952 is not set +# CONFIG_POWER_RESET_MT6323 is not set # CONFIG_POWER_RESET_PIIX4_POWEROFF is not set # CONFIG_POWER_RESET_RESTART is not set # CONFIG_POWER_RESET_SYSCON is not set @@ -4510,6 +4523,7 @@ CONFIG_RTC_SYSTOHC_DEVICE="rtc0" # CONFIG_RTL8366_SMI_DEBUG_FS is not set # CONFIG_RTL8367B_PHY is not set # CONFIG_RTL8367_PHY is not set +# CONFIG_RTL8367S_GSW is not set # CONFIG_RTLLIB is not set # CONFIG_RTL_CARDS is not set # CONFIG_RTS5208 is not set @@ -4950,6 +4964,7 @@ CONFIG_SERIAL_EARLYCON=y # CONFIG_SG_POOL is not set # CONFIG_SG_SPLIT is not set CONFIG_SHMEM=y +# CONFIG_SHORTCUT_FE is not set # CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set # CONFIG_SH_ETH is not set # CONFIG_SH_TIMER_CMT is not set @@ -5263,7 +5278,9 @@ CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y # CONFIG_SND_SOC_MT2701 is not set # CONFIG_SND_SOC_MT6351 is not set # CONFIG_SND_SOC_MT6358 is not set +# CONFIG_SND_SOC_MT6797 is not set # CONFIG_SND_SOC_MT8173 is not set +# CONFIG_SND_SOC_MT8183 is not set # CONFIG_SND_SOC_MTK_BTCVSD is not set # CONFIG_SND_SOC_NAU8540 is not set # CONFIG_SND_SOC_NAU8810 is not set @@ -5431,7 +5448,9 @@ CONFIG_SND_X86=y # CONFIG_SPI_MPC52xx is not set # CONFIG_SPI_MPC52xx_PSC is not set # CONFIG_SPI_MTK_QUADSPI is not set +# CONFIG_SPI_MTK_SNFI is not set # CONFIG_SPI_MXIC is not set +# CONFIG_SPI_MTK_NOR is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OCTEON is not set # CONFIG_SPI_OC_TINY is not set @@ -5590,6 +5609,7 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_TCIC is not set CONFIG_TCP_CONG_ADVANCED=y # CONFIG_TCP_CONG_BBR is not set +# CONFIG_TCP_CONG_BBR2 is not set # CONFIG_TCP_CONG_BIC is not set # CONFIG_TCP_CONG_CDG is not set CONFIG_TCP_CONG_CUBIC=y @@ -5638,7 +5658,6 @@ 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 @@ -6316,8 +6335,6 @@ CONFIG_VDSO=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_AK881X is not set # CONFIG_VIDEO_ASPEED is not set -# CONFIG_VIDEO_ATMEL_ISC is not set -# CONFIG_VIDEO_ATMEL_ISI is not set # CONFIG_VIDEO_BT819 is not set # CONFIG_VIDEO_BT848 is not set # CONFIG_VIDEO_BT856 is not set diff --git a/root/target/linux/generic/files/drivers/net/phy/b53/b53_common.c b/root/target/linux/generic/files/drivers/net/phy/b53/b53_common.c old mode 100755 new mode 100644 index a6dab255..87d731ec --- a/root/target/linux/generic/files/drivers/net/phy/b53/b53_common.c +++ b/root/target/linux/generic/files/drivers/net/phy/b53/b53_common.c @@ -529,7 +529,7 @@ static int b53_configure_ports_of(struct b53_device *dev) po |= PORT_OVERRIDE_SPEED_2000M; else po |= GMII_PO_SPEED_2000M; - __attribute__((__fallthrough__)); + fallthrough; case 1000: po |= GMII_PO_SPEED_1000M; break; diff --git a/root/target/linux/generic/hack-4.14/690-mptcp_v0.94.patch b/root/target/linux/generic/hack-4.14/690-mptcp_v0.94.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-4.14/998-ndpi-netfilter.patch b/root/target/linux/generic/hack-4.14/998-ndpi-netfilter.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-4.14/999-stop-promiscuous-info.patch b/root/target/linux/generic/hack-4.14/999-stop-promiscuous-info.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-4.19/690-mptcp_v0.95.patch b/root/target/linux/generic/hack-4.19/690-mptcp_v0.95.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-4.19/691-mptcp_ecf.patch b/root/target/linux/generic/hack-4.19/691-mptcp_ecf.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-4.19/692-tcp_nanqinlang.patch b/root/target/linux/generic/hack-4.19/692-tcp_nanqinlang.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-4.19/998-ndpi-netfilter.patch b/root/target/linux/generic/hack-4.19/998-ndpi-netfilter.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-4.19/999-f2fs-ioerrorfix.patch b/root/target/linux/generic/hack-4.19/999-f2fs-ioerrorfix.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-4.19/999-stop-promiscuous-info.patch b/root/target/linux/generic/hack-4.19/999-stop-promiscuous-info.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-4.9/690-mptcp_v0.93.patch b/root/target/linux/generic/hack-4.9/690-mptcp_v0.93.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/204-module_strip.patch b/root/target/linux/generic/hack-5.14/204-module_strip.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/210-darwin_scripts_include.patch b/root/target/linux/generic/hack-5.14/210-darwin_scripts_include.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/211-darwin-uuid-typedef-clash.patch b/root/target/linux/generic/hack-5.14/211-darwin-uuid-typedef-clash.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/212-tools_portability.patch b/root/target/linux/generic/hack-5.14/212-tools_portability.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/214-spidev_h_portability.patch b/root/target/linux/generic/hack-5.14/214-spidev_h_portability.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/220-gc_sections.patch b/root/target/linux/generic/hack-5.14/220-gc_sections.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/221-module_exports.patch b/root/target/linux/generic/hack-5.14/221-module_exports.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/230-openwrt_lzma_options.patch b/root/target/linux/generic/hack-5.14/230-openwrt_lzma_options.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/249-udp-tunnel-selection.patch b/root/target/linux/generic/hack-5.14/249-udp-tunnel-selection.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/250-netfilter_depends.patch b/root/target/linux/generic/hack-5.14/250-netfilter_depends.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/251-kconfig.patch b/root/target/linux/generic/hack-5.14/251-kconfig.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/260-crypto_test_dependencies.patch b/root/target/linux/generic/hack-5.14/260-crypto_test_dependencies.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/261-lib-arc4-unhide.patch b/root/target/linux/generic/hack-5.14/261-lib-arc4-unhide.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/280-rfkill-stubs.patch b/root/target/linux/generic/hack-5.14/280-rfkill-stubs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch b/root/target/linux/generic/hack-5.14/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/301-mips_image_cmdline_hack.patch b/root/target/linux/generic/hack-5.14/301-mips_image_cmdline_hack.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/321-powerpc_crtsavres_prereq.patch b/root/target/linux/generic/hack-5.14/321-powerpc_crtsavres_prereq.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/420-mtd-set-rootfs-to-be-root-dev.patch b/root/target/linux/generic/hack-5.14/420-mtd-set-rootfs-to-be-root-dev.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/531-debloat_lzma.patch b/root/target/linux/generic/hack-5.14/531-debloat_lzma.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/640-bridge-only-accept-EAP-locally.patch b/root/target/linux/generic/hack-5.14/640-bridge-only-accept-EAP-locally.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/645-netfilter-connmark-introduce-set-dscpmark.patch b/root/target/linux/generic/hack-5.14/645-netfilter-connmark-introduce-set-dscpmark.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/650-netfilter-add-xt_FLOWOFFLOAD-target.patch b/root/target/linux/generic/hack-5.14/650-netfilter-add-xt_FLOWOFFLOAD-target.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/651-wireless_mesh_header.patch b/root/target/linux/generic/hack-5.14/651-wireless_mesh_header.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/660-fq_codel_defaults.patch b/root/target/linux/generic/hack-5.14/660-fq_codel_defaults.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/661-use_fq_codel_by_default.patch b/root/target/linux/generic/hack-5.14/661-use_fq_codel_by_default.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/700-swconfig_switch_drivers.patch b/root/target/linux/generic/hack-5.14/700-swconfig_switch_drivers.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/710-net-dsa-mv88e6xxx-default-VID-1.patch b/root/target/linux/generic/hack-5.14/710-net-dsa-mv88e6xxx-default-VID-1.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch b/root/target/linux/generic/hack-5.14/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/773-bgmac-add-srab-switch.patch b/root/target/linux/generic/hack-5.14/773-bgmac-add-srab-switch.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/780-net-ipheth-fix-RX-EOVERFLOW.patch b/root/target/linux/generic/hack-5.14/780-net-ipheth-fix-RX-EOVERFLOW.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/800-GPIO-add-named-gpio-exports.patch b/root/target/linux/generic/hack-5.14/800-GPIO-add-named-gpio-exports.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/901-debloat_sock_diag.patch b/root/target/linux/generic/hack-5.14/901-debloat_sock_diag.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/902-debloat_proc.patch b/root/target/linux/generic/hack-5.14/902-debloat_proc.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/904-debloat_dma_buf.patch b/root/target/linux/generic/hack-5.14/904-debloat_dma_buf.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/910-kobject_uevent.patch b/root/target/linux/generic/hack-5.14/910-kobject_uevent.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.14/911-kobject_add_broadcast_uevent.patch b/root/target/linux/generic/hack-5.14/911-kobject_add_broadcast_uevent.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/204-module_strip.patch b/root/target/linux/generic/hack-5.15/204-module_strip.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/210-darwin_scripts_include.patch b/root/target/linux/generic/hack-5.15/210-darwin_scripts_include.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/211-darwin-uuid-typedef-clash.patch b/root/target/linux/generic/hack-5.15/211-darwin-uuid-typedef-clash.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/212-tools_portability.patch b/root/target/linux/generic/hack-5.15/212-tools_portability.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/214-spidev_h_portability.patch b/root/target/linux/generic/hack-5.15/214-spidev_h_portability.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/220-gc_sections.patch b/root/target/linux/generic/hack-5.15/220-gc_sections.patch deleted file mode 100755 index 21a0d5d7..00000000 --- a/root/target/linux/generic/hack-5.15/220-gc_sections.patch +++ /dev/null @@ -1,120 +0,0 @@ -From e3d8676f5722b7622685581e06e8f53e6138e3ab Mon Sep 17 00:00:00 2001 -From: Felix Fietkau -Date: Sat, 15 Jul 2017 23:42:36 +0200 -Subject: use -ffunction-sections, -fdata-sections and --gc-sections - -In combination with kernel symbol export stripping this significantly reduces -the kernel image size. Used on both ARM and MIPS architectures. - -Signed-off-by: Felix Fietkau -Signed-off-by: Jonas Gorski -Signed-off-by: Gabor Juhos ---- ---- a/arch/arm/Kconfig -+++ b/arch/arm/Kconfig -@@ -117,6 +117,7 @@ config ARM - select HAVE_UID16 - select HAVE_VIRT_CPU_ACCOUNTING_GEN - select IRQ_FORCED_THREADING -+ select HAVE_LD_DEAD_CODE_DATA_ELIMINATION - select MODULES_USE_ELF_REL - select NEED_DMA_MAP_STATE - select OF_EARLY_FLATTREE if OF ---- a/arch/arm/boot/compressed/Makefile -+++ b/arch/arm/boot/compressed/Makefile -@@ -92,6 +92,7 @@ endif - ifeq ($(CONFIG_USE_OF),y) - OBJS += $(libfdt_objs) fdt_check_mem_start.o - endif -+KBUILD_CFLAGS_KERNEL := $(patsubst -f%-sections,,$(KBUILD_CFLAGS_KERNEL)) - - # -fstack-protector-strong triggers protection checks in this code, - # but it is being used too early to link to meaningful stack_chk logic. ---- a/arch/arm/kernel/vmlinux.lds.S -+++ b/arch/arm/kernel/vmlinux.lds.S -@@ -100,24 +100,24 @@ SECTIONS - } - .init.arch.info : { - __arch_info_begin = .; -- *(.arch.info.init) -+ KEEP(*(.arch.info.init)) - __arch_info_end = .; - } - .init.tagtable : { - __tagtable_begin = .; -- *(.taglist.init) -+ KEEP(*(.taglist.init)) - __tagtable_end = .; - } - #ifdef CONFIG_SMP_ON_UP - .init.smpalt : { - __smpalt_begin = .; -- *(.alt.smp.init) -+ KEEP(*(.alt.smp.init)) - __smpalt_end = .; - } - #endif - .init.pv_table : { - __pv_table_begin = .; -- *(.pv_table) -+ KEEP(*(.pv_table)) - __pv_table_end = .; - } - ---- a/arch/arm/include/asm/vmlinux.lds.h -+++ b/arch/arm/include/asm/vmlinux.lds.h -@@ -23,19 +23,19 @@ - #define ARM_MMU_DISCARD(x) - #else - #define ARM_MMU_KEEP(x) --#define ARM_MMU_DISCARD(x) x -+#define ARM_MMU_DISCARD(x) KEEP(x) - #endif - - #define PROC_INFO \ - . = ALIGN(4); \ - __proc_info_begin = .; \ -- *(.proc.info.init) \ -+ KEEP(*(.proc.info.init)) \ - __proc_info_end = .; - - #define IDMAP_TEXT \ - ALIGN_FUNCTION(); \ - __idmap_text_start = .; \ -- *(.idmap.text) \ -+ KEEP(*(.idmap.text)) \ - __idmap_text_end = .; \ - - #define ARM_DISCARD \ -@@ -96,12 +96,12 @@ - . = ALIGN(8); \ - .ARM.unwind_idx : { \ - __start_unwind_idx = .; \ -- *(.ARM.exidx*) \ -+ KEEP(*(.ARM.exidx*)) \ - __stop_unwind_idx = .; \ - } \ - .ARM.unwind_tab : { \ - __start_unwind_tab = .; \ -- *(.ARM.extab*) \ -+ KEEP(*(.ARM.extab*)) \ - __stop_unwind_tab = .; \ - } - -@@ -112,14 +112,14 @@ - #define ARM_VECTORS \ - __vectors_start = .; \ - .vectors 0xffff0000 : AT(__vectors_start) { \ -- *(.vectors) \ -+ KEEP(*(.vectors)) \ - } \ - . = __vectors_start + SIZEOF(.vectors); \ - __vectors_end = .; \ - \ - __stubs_start = .; \ - .stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) { \ -- *(.stubs) \ -+ KEEP(*(.stubs)) \ - } \ - . = __stubs_start + SIZEOF(.stubs); \ - __stubs_end = .; \ diff --git a/root/target/linux/generic/hack-5.15/221-module_exports.patch b/root/target/linux/generic/hack-5.15/221-module_exports.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/230-openwrt_lzma_options.patch b/root/target/linux/generic/hack-5.15/230-openwrt_lzma_options.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/249-udp-tunnel-selection.patch b/root/target/linux/generic/hack-5.15/249-udp-tunnel-selection.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/250-netfilter_depends.patch b/root/target/linux/generic/hack-5.15/250-netfilter_depends.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/251-kconfig.patch b/root/target/linux/generic/hack-5.15/251-kconfig.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/260-crypto_test_dependencies.patch b/root/target/linux/generic/hack-5.15/260-crypto_test_dependencies.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/261-lib-arc4-unhide.patch b/root/target/linux/generic/hack-5.15/261-lib-arc4-unhide.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/280-rfkill-stubs.patch b/root/target/linux/generic/hack-5.15/280-rfkill-stubs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch b/root/target/linux/generic/hack-5.15/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/301-mips_image_cmdline_hack.patch b/root/target/linux/generic/hack-5.15/301-mips_image_cmdline_hack.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/321-powerpc_crtsavres_prereq.patch b/root/target/linux/generic/hack-5.15/321-powerpc_crtsavres_prereq.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/420-mtd-set-rootfs-to-be-root-dev.patch b/root/target/linux/generic/hack-5.15/420-mtd-set-rootfs-to-be-root-dev.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/531-debloat_lzma.patch b/root/target/linux/generic/hack-5.15/531-debloat_lzma.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/640-bridge-only-accept-EAP-locally.patch b/root/target/linux/generic/hack-5.15/640-bridge-only-accept-EAP-locally.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/645-netfilter-connmark-introduce-set-dscpmark.patch b/root/target/linux/generic/hack-5.15/645-netfilter-connmark-introduce-set-dscpmark.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch b/root/target/linux/generic/hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/651-wireless_mesh_header.patch b/root/target/linux/generic/hack-5.15/651-wireless_mesh_header.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/660-fq_codel_defaults.patch b/root/target/linux/generic/hack-5.15/660-fq_codel_defaults.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/661-use_fq_codel_by_default.patch b/root/target/linux/generic/hack-5.15/661-use_fq_codel_by_default.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/700-swconfig_switch_drivers.patch b/root/target/linux/generic/hack-5.15/700-swconfig_switch_drivers.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/710-net-dsa-mv88e6xxx-default-VID-1.patch b/root/target/linux/generic/hack-5.15/710-net-dsa-mv88e6xxx-default-VID-1.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch b/root/target/linux/generic/hack-5.15/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/773-bgmac-add-srab-switch.patch b/root/target/linux/generic/hack-5.15/773-bgmac-add-srab-switch.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/800-GPIO-add-named-gpio-exports.patch b/root/target/linux/generic/hack-5.15/800-GPIO-add-named-gpio-exports.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch b/root/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/902-debloat_proc.patch b/root/target/linux/generic/hack-5.15/902-debloat_proc.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/910-kobject_uevent.patch b/root/target/linux/generic/hack-5.15/910-kobject_uevent.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.15/911-kobject_add_broadcast_uevent.patch b/root/target/linux/generic/hack-5.15/911-kobject_add_broadcast_uevent.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.4/690-mptcp_v0.96.patch b/root/target/linux/generic/hack-5.4/690-mptcp_v0.96.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.4/692-tcp_nanqinlang.patch b/root/target/linux/generic/hack-5.4/692-tcp_nanqinlang.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.4/693-tcp_bbr2.patch b/root/target/linux/generic/hack-5.4/693-tcp_bbr2.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/hack-5.4/952-net-conntrack-events-support-multiple-registrant.patch b/root/target/linux/generic/hack-5.4/952-net-conntrack-events-support-multiple-registrant.patch new file mode 100644 index 00000000..e7ff0d46 --- /dev/null +++ b/root/target/linux/generic/hack-5.4/952-net-conntrack-events-support-multiple-registrant.patch @@ -0,0 +1,319 @@ +diff --git a/include/net/netfilter/nf_conntrack_ecache.h b/include/net/netfilter/nf_conntrack_ecache.h +index 12d967b..c2b98b6 100644 +--- a/include/net/netfilter/nf_conntrack_ecache.h ++++ b/include/net/netfilter/nf_conntrack_ecache.h +@@ -72,6 +72,10 @@ struct nf_ct_event { + int report; + }; + ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++extern int nf_conntrack_register_notifier(struct net *net, struct notifier_block *nb); ++extern int nf_conntrack_unregister_notifier(struct net *net, struct notifier_block *nb); ++#else + struct nf_ct_event_notifier { + int (*fcn)(unsigned int events, struct nf_ct_event *item); + }; +@@ -80,6 +84,7 @@ int nf_conntrack_register_notifier(struc + struct nf_ct_event_notifier *nb); + void nf_conntrack_unregister_notifier(struct net *net, + struct nf_ct_event_notifier *nb); ++#endif + + void nf_ct_deliver_cached_events(struct nf_conn *ct); + int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, +@@ -105,11 +110,13 @@ int nf_conntrack_eventmask_report(unsign + nf_conntrack_event_cache(enum ip_conntrack_events event, struct nf_conn *ct) + { + #ifdef CONFIG_NF_CONNTRACK_EVENTS +- struct net *net = nf_ct_net(ct); + struct nf_conntrack_ecache *e; ++#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++ struct net *net = nf_ct_net(ct); + + if (!rcu_access_pointer(net->ct.nf_conntrack_event_cb)) + return; ++#endif + + e = nf_ct_ecache_find(ct); + if (e == NULL) +@@ -124,10 +131,12 @@ static inline int + u32 portid, int report) + { + #ifdef CONFIG_NF_CONNTRACK_EVENTS ++#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS + const struct net *net = nf_ct_net(ct); + + if (!rcu_access_pointer(net->ct.nf_conntrack_event_cb)) + return 0; ++#endif + + return nf_conntrack_eventmask_report(1 << event, ct, portid, report); + #else +@@ -139,10 +148,12 @@ nf_conntrack_event_report(enum ip_conntr + nf_conntrack_event(enum ip_conntrack_events event, struct nf_conn *ct) + { + #ifdef CONFIG_NF_CONNTRACK_EVENTS ++#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS + const struct net *net = nf_ct_net(ct); + + if (!rcu_access_pointer(net->ct.nf_conntrack_event_cb)) + return 0; ++#endif + + return nf_conntrack_eventmask_report(1 << event, ct, 0, 0); + #else +diff --git a/include/net/netns/conntrack.h b/include/net/netns/conntrack.h +index e469e85..1d31db8 100644 +--- a/include/net/netns/conntrack.h ++++ b/include/net/netns/conntrack.h +@@ -112,7 +112,11 @@ struct netns_ct { + + struct ct_pcpu __percpu *pcpu_lists; + struct ip_conntrack_stat __percpu *stat; ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++ struct atomic_notifier_head nf_conntrack_chain; ++#else + struct nf_ct_event_notifier __rcu *nf_conntrack_event_cb; ++#endif + struct nf_exp_event_notifier __rcu *nf_expect_event_cb; + struct nf_ip_net nf_ct_proto; + #if defined(CONFIG_NF_CONNTRACK_LABELS) +diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig +index 63073be..08d7aab 100644 +--- a/net/netfilter/Kconfig ++++ b/net/netfilter/Kconfig +@@ -148,6 +148,14 @@ config NF_CONNTRACK_RTCACHE + To compile it as a module, choose M here. If unsure, say N. + The module will be called nf_conntrack_rtcache. + ++config NF_CONNTRACK_CHAIN_EVENTS ++ bool "Register multiple callbacks to ct events" ++ depends on NF_CONNTRACK_EVENTS ++ help ++ Support multiple registrations. ++ ++ If unsure, say `N'. ++ + config NF_CONNTRACK_TIMEOUT + bool 'Connection tracking timeout' + depends on NETFILTER_ADVANCED +diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c +index 6bd1508..9b81c7c 100644 +--- a/net/netfilter/nf_conntrack_core.c ++++ b/net/netfilter/nf_conntrack_core.c +@@ -2592,6 +2592,9 @@ int nf_conntrack_init_net(struct net *ne + nf_conntrack_helper_pernet_init(net); + nf_conntrack_proto_pernet_init(net); + ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++ ATOMIC_INIT_NOTIFIER_HEAD(&net->ct.nf_conntrack_chain); ++#endif + return 0; + + err_expect: +diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c +index da9df2d..e0e2a8f 100644 +--- a/net/netfilter/nf_conntrack_ecache.c ++++ b/net/netfilter/nf_conntrack_ecache.c +@@ -17,6 +17,9 @@ + #include + #include + #include ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++#include ++#endif + #include + #include + #include +@@ -117,6 +120,38 @@ static void ecache_work(struct work_stru + schedule_delayed_work(&ctnet->ecache_dwork, delay); + } + ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++int ++nf_conntrack_eventmask_report(unsigned int eventmask, ++ struct nf_conn *ct, ++ u32 portid, ++ int report) ++{ ++ struct nf_conntrack_ecache *e; ++ struct net *net = nf_ct_net(ct); ++ ++ e = nf_ct_ecache_find(ct); ++ if (e == NULL) ++ return 0; ++ ++ if (nf_ct_is_confirmed(ct)) { ++ struct nf_ct_event item = { ++ .ct = ct, ++ .portid = e->portid ? e->portid : portid, ++ .report = report ++ }; ++ /* This is a resent of a destroy event? If so, skip missed */ ++ unsigned long missed = e->portid ? 0 : e->missed; ++ ++ if (!((eventmask | missed) & e->ctmask)) ++ return 0; ++ ++ atomic_notifier_call_chain(&net->ct.nf_conntrack_chain, eventmask | missed, &item); ++ } ++ ++ return 0; ++} ++#else + int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, + u32 portid, int report) + { +@@ -171,10 +206,52 @@ out_unlock: + rcu_read_unlock(); + return ret; + } ++#endif + EXPORT_SYMBOL_GPL(nf_conntrack_eventmask_report); + + /* deliver cached events and clear cache entry - must be called with locally + * disabled softirqs */ ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++void nf_ct_deliver_cached_events(struct nf_conn *ct) ++{ ++ unsigned long events, missed; ++ struct nf_conntrack_ecache *e; ++ struct nf_ct_event item; ++ struct net *net = nf_ct_net(ct); ++ ++ e = nf_ct_ecache_find(ct); ++ if (e == NULL) ++ return; ++ ++ events = xchg(&e->cache, 0); ++ ++ if (!nf_ct_is_confirmed(ct) || nf_ct_is_dying(ct) || !events) ++ return; ++ ++ /* We make a copy of the missed event cache without taking ++ * the lock, thus we may send missed events twice. However, ++ * this does not harm and it happens very rarely. */ ++ missed = e->missed; ++ ++ if (!((events | missed) & e->ctmask)) ++ return; ++ ++ item.ct = ct; ++ item.portid = 0; ++ item.report = 0; ++ ++ atomic_notifier_call_chain(&net->ct.nf_conntrack_chain, ++ events | missed, ++ &item); ++ ++ if (likely(!missed)) ++ return; ++ ++ spin_lock_bh(&ct->lock); ++ e->missed &= ~missed; ++ spin_unlock_bh(&ct->lock); ++} ++#else + void nf_ct_deliver_cached_events(struct nf_conn *ct) + { + struct net *net = nf_ct_net(ct); +@@ -225,6 +302,7 @@ void nf_ct_deliver_cached_events(struct + out_unlock: + rcu_read_unlock(); + } ++#endif + EXPORT_SYMBOL_GPL(nf_ct_deliver_cached_events); + + void nf_ct_expect_event_report(enum ip_conntrack_expect_events event, +@@ -257,6 +335,12 @@ out_unlock: + rcu_read_unlock(); + } + ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++int nf_conntrack_register_notifier(struct net *net, struct notifier_block *nb) ++{ ++ return atomic_notifier_chain_register(&net->ct.nf_conntrack_chain, nb); ++} ++#else + int nf_conntrack_register_notifier(struct net *net, + struct nf_ct_event_notifier *new) + { +@@ -277,8 +361,15 @@ out_unlock: + mutex_unlock(&nf_ct_ecache_mutex); + return ret; + } ++#endif + EXPORT_SYMBOL_GPL(nf_conntrack_register_notifier); + ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++int nf_conntrack_unregister_notifier(struct net *net, struct notifier_block *nb) ++{ ++ return atomic_notifier_chain_unregister(&net->ct.nf_conntrack_chain, nb); ++} ++#else + void nf_conntrack_unregister_notifier(struct net *net, + struct nf_ct_event_notifier *new) + { +@@ -292,6 +383,7 @@ void nf_conntrack_unregister_notifier(st + mutex_unlock(&nf_ct_ecache_mutex); + /* synchronize_rcu() is called from ctnetlink_exit. */ + } ++#endif + EXPORT_SYMBOL_GPL(nf_conntrack_unregister_notifier); + + int nf_ct_expect_register_notifier(struct net *net, +diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c +index 04111c1..8c741f7 100644 +--- a/net/netfilter/nf_conntrack_netlink.c ++++ b/net/netfilter/nf_conntrack_netlink.c +@@ -32,6 +32,11 @@ + #include + + #include ++ ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++#include ++#endif ++ + #include + #include + #include +@@ -676,14 +681,22 @@ static size_t ctnetlink_nlmsg_size(const + ; + } + ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++static int ctnetlink_conntrack_event(struct notifier_block *this, ++ unsigned long events, void *ptr) ++#else + static int + ctnetlink_conntrack_event(unsigned int events, struct nf_ct_event *item) ++#endif + { + const struct nf_conntrack_zone *zone; + struct net *net; + struct nlmsghdr *nlh; + struct nfgenmsg *nfmsg; + struct nlattr *nest_parms; ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++ struct nf_ct_event *item = (struct nf_ct_event *)ptr; ++#endif + struct nf_conn *ct = item->ct; + struct sk_buff *skb; + unsigned int type; +@@ -3504,9 +3517,15 @@ static int ctnetlink_stat_exp_cpu(struct + } + + #ifdef CONFIG_NF_CONNTRACK_EVENTS ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++static struct notifier_block ctnl_notifier = { ++ .notifier_call = ctnetlink_conntrack_event, ++}; ++#else + static struct nf_ct_event_notifier ctnl_notifier = { + .fcn = ctnetlink_conntrack_event, + }; ++#endif + + static struct nf_exp_event_notifier ctnl_notifier_exp = { + .fcn = ctnetlink_expect_event, diff --git a/root/target/linux/generic/hack-5.4/953-net-patch-linux-kernel-to-support-shortcut-fe.patch b/root/target/linux/generic/hack-5.4/953-net-patch-linux-kernel-to-support-shortcut-fe.patch new file mode 100644 index 00000000..23e3b66a --- /dev/null +++ b/root/target/linux/generic/hack-5.4/953-net-patch-linux-kernel-to-support-shortcut-fe.patch @@ -0,0 +1,253 @@ +--- a/include/linux/if_bridge.h ++++ b/include/linux/if_bridge.h +@@ -52,6 +52,9 @@ struct br_ip_list { + + extern void brioctl_set(int (*ioctl_hook)(struct net *, unsigned int, void __user *)); + ++extern void br_dev_update_stats(struct net_device *dev, ++ struct rtnl_link_stats64 *nlstats); ++ + #if IS_ENABLED(CONFIG_BRIDGE) && IS_ENABLED(CONFIG_BRIDGE_IGMP_SNOOPING) + int br_multicast_list_adjacent(struct net_device *dev, + struct list_head *br_ip_list); +--- a/include/linux/skbuff.h ++++ b/include/linux/skbuff.h +@@ -826,6 +826,10 @@ struct sk_buff { + #endif + __u8 gro_skip:1; + ++#ifdef CONFIG_SHORTCUT_FE ++ __u16 fast_forwarded:1; ++#endif ++ + #ifdef CONFIG_NET_SCHED + __u16 tc_index; /* traffic control index */ + #endif +--- a/include/linux/timer.h ++++ b/include/linux/timer.h +@@ -18,6 +18,10 @@ struct timer_list { + void (*function)(struct timer_list *); + u32 flags; + ++#ifdef CONFIG_SHORTCUT_FE ++ unsigned long cust_data; ++#endif ++ + #ifdef CONFIG_LOCKDEP + struct lockdep_map lockdep_map; + #endif +--- a/include/net/netfilter/nf_conntrack_ecache.h ++++ b/include/net/netfilter/nf_conntrack_ecache.h +@@ -75,6 +75,8 @@ struct nf_ct_event { + #ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS + extern int nf_conntrack_register_notifier(struct net *net, struct notifier_block *nb); + extern int nf_conntrack_unregister_notifier(struct net *net, struct notifier_block *nb); ++extern int nf_conntrack_register_chain_notifier(struct net *net, struct notifier_block *nb); ++extern int nf_conntrack_unregister_chain_notifier(struct net *net, struct notifier_block *nb); + #else + struct nf_ct_event_notifier { + int (*fcn)(unsigned int events, struct nf_ct_event *item); +--- a/net/bridge/br_if.c ++++ b/net/bridge/br_if.c +@@ -746,6 +746,28 @@ void br_port_flags_change(struct net_bri + br_recalculate_neigh_suppress_enabled(br); + } + ++void br_dev_update_stats(struct net_device *dev, ++ struct rtnl_link_stats64 *nlstats) ++{ ++ struct net_bridge *br; ++ struct pcpu_sw_netstats *stats; ++ ++ /* Is this a bridge? */ ++ if (!(dev->priv_flags & IFF_EBRIDGE)) ++ return; ++ ++ br = netdev_priv(dev); ++ stats = this_cpu_ptr(br->stats); ++ ++ u64_stats_update_begin(&stats->syncp); ++ stats->rx_packets += nlstats->rx_packets; ++ stats->rx_bytes += nlstats->rx_bytes; ++ stats->tx_packets += nlstats->tx_packets; ++ stats->tx_bytes += nlstats->tx_bytes; ++ u64_stats_update_end(&stats->syncp); ++} ++EXPORT_SYMBOL_GPL(br_dev_update_stats); ++ + bool br_port_flag_is_set(const struct net_device *dev, unsigned long flag) + { + struct net_bridge_port *p; + +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -3189,8 +3189,17 @@ static int xmit_one(struct sk_buff *skb, struct net_device *dev, + unsigned int len; + int rc; + ++#ifdef CONFIG_SHORTCUT_FE ++ /* If this skb has been fast forwarded then we don't want it to ++ * go to any taps (by definition we're trying to bypass them). ++ */ ++ if (!skb->fast_forwarded) { ++#endif + if (dev_nit_active(dev)) + dev_queue_xmit_nit(skb, dev); ++#ifdef CONFIG_SHORTCUT_FE ++ } ++#endif + + #ifdef CONFIG_ETHERNET_PACKET_MANGLE + if (!dev->eth_mangle_tx || +@@ -4683,6 +4691,11 @@ void netdev_rx_handler_unregister(struct + } + EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister); + ++#ifdef CONFIG_SHORTCUT_FE ++int (*athrs_fast_nat_recv)(struct sk_buff *skb) __rcu __read_mostly; ++EXPORT_SYMBOL_GPL(athrs_fast_nat_recv); ++#endif ++ + /* + * Limit the use of PFMEMALLOC reserves to those protocols that implement + * the special handling of PFMEMALLOC skbs. +@@ -4733,6 +4746,10 @@ static int __netif_receive_skb_core(stru + int ret = NET_RX_DROP; + __be16 type; + ++#ifdef CONFIG_SHORTCUT_FE ++ int (*fast_recv)(struct sk_buff *skb); ++#endif ++ + net_timestamp_check(!netdev_tstamp_prequeue, skb); + + trace_netif_receive_skb(skb); +@@ -4772,6 +4789,16 @@ another_round: + goto out; + } + ++#ifdef CONFIG_SHORTCUT_FE ++ fast_recv = rcu_dereference(athrs_fast_nat_recv); ++ if (fast_recv) { ++ if (fast_recv(skb)) { ++ ret = NET_RX_SUCCESS; ++ goto out; ++ } ++ } ++#endif ++ + if (skb_skip_tc_classify(skb)) + goto skip_classify; + +--- a/net/Kconfig ++++ b/net/Kconfig +@@ -473,3 +473,6 @@ config HAVE_CBPF_JIT + # Extended BPF JIT (eBPF) + config HAVE_EBPF_JIT + bool ++ ++config SHORTCUT_FE ++ bool "Enables kernel network stack path for Shortcut Forwarding Engine +--- a/net/netfilter/nf_conntrack_proto_tcp.c ++++ b/net/netfilter/nf_conntrack_proto_tcp.c +@@ -34,11 +34,19 @@ + /* Do not check the TCP window for incoming packets */ + static int nf_ct_tcp_no_window_check __read_mostly = 1; + ++#ifdef CONFIG_SHORTCUT_FE ++EXPORT_SYMBOL_GPL(nf_ct_tcp_no_window_check); ++#endif ++ + /* "Be conservative in what you do, + be liberal in what you accept from others." + If it's non-zero, we mark only out of window RST segments as INVALID. */ + static int nf_ct_tcp_be_liberal __read_mostly = 0; + ++#ifdef CONFIG_SHORTCUT_FE ++EXPORT_SYMBOL_GPL(nf_ct_tcp_be_liberal); ++#endif ++ + /* If it is set to zero, we disable picking up already established + connections. */ + static int nf_ct_tcp_loose __read_mostly = 1; +--- a/net/netfilter/nf_conntrack_ecache.c ++++ b/net/netfilter/nf_conntrack_ecache.c +@@ -162,7 +162,11 @@ int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, + + rcu_read_lock(); + notify = rcu_dereference(net->ct.nf_conntrack_event_cb); ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++ if (!notify && !rcu_dereference_raw(net->ct.nf_conntrack_chain.head)) ++#else + if (!notify) ++#endif + goto out_unlock; + + e = nf_ct_ecache_find(ct); +@@ -181,7 +185,14 @@ int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, + if (!((eventmask | missed) & e->ctmask)) + goto out_unlock; + ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++ ret = atomic_notifier_call_chain(&net->ct.nf_conntrack_chain, ++ eventmask | missed, &item); ++ if (notify) ++ ret = notify->fcn(eventmask | missed, &item); ++#else + ret = notify->fcn(eventmask | missed, &item); ++#endif + if (unlikely(ret < 0 || missed)) { + spin_lock_bh(&ct->lock); + if (ret < 0) { +@@ -263,7 +274,11 @@ void nf_ct_deliver_cached_events(struct nf_conn *ct) + + rcu_read_lock(); + notify = rcu_dereference(net->ct.nf_conntrack_event_cb); ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++ if ((notify == NULL) && !rcu_dereference_raw(net->ct.nf_conntrack_chain.head)) ++#else + if (notify == NULL) ++#endif + goto out_unlock; + + e = nf_ct_ecache_find(ct); +@@ -287,7 +302,15 @@ void nf_ct_deliver_cached_events(struct nf_conn *ct) + item.portid = 0; + item.report = 0; + ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++ ret = atomic_notifier_call_chain(&net->ct.nf_conntrack_chain, ++ events | missed, ++ &item); ++ if (notify != NULL) ++ ret = notify->fcn(events | missed, &item); ++#else + ret = notify->fcn(events | missed, &item); ++#endif + + if (likely(ret == 0 && !missed)) + goto out_unlock; +@@ -340,6 +363,11 @@ int nf_conntrack_register_notifier(struct net *net, struct notifier_block *nb) + { + return atomic_notifier_chain_register(&net->ct.nf_conntrack_chain, nb); + } ++int nf_conntrack_register_chain_notifier(struct net *net, struct notifier_block *nb) ++{ ++ return atomic_notifier_chain_register(&net->ct.nf_conntrack_chain, nb); ++} ++EXPORT_SYMBOL_GPL(nf_conntrack_register_chain_notifier); + #else + int nf_conntrack_register_notifier(struct net *net, + struct nf_ct_event_notifier *new) +@@ -369,6 +397,11 @@ int nf_conntrack_unregister_notifier(struct net *net, struct notifier_block *nb) + { + return atomic_notifier_chain_unregister(&net->ct.nf_conntrack_chain, nb); + } ++int nf_conntrack_unregister_chain_notifier(struct net *net, struct notifier_block *nb) ++{ ++ return atomic_notifier_chain_unregister(&net->ct.nf_conntrack_chain, nb); ++} ++EXPORT_SYMBOL_GPL(nf_conntrack_unregister_chain_notifier); + #else + void nf_conntrack_unregister_notifier(struct net *net, + struct nf_ct_event_notifier *new) diff --git a/root/target/linux/generic/hack-5.4/999-stop-promiscuous-info.patch b/root/target/linux/generic/hack-5.4/999-stop-promiscuous-info.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch b/root/target/linux/generic/pending-5.14/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/101-Use-stddefs.h-instead-of-compiler.h.patch b/root/target/linux/generic/pending-5.14/101-Use-stddefs.h-instead-of-compiler.h.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch b/root/target/linux/generic/pending-5.14/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch b/root/target/linux/generic/pending-5.14/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/130-add-linux-spidev-compatible-si3210.patch b/root/target/linux/generic/pending-5.14/130-add-linux-spidev-compatible-si3210.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/150-bridge_allow_receiption_on_disabled_port.patch b/root/target/linux/generic/pending-5.14/150-bridge_allow_receiption_on_disabled_port.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/190-rtc-rs5c372-support_alarms_up_to_1_week.patch b/root/target/linux/generic/pending-5.14/190-rtc-rs5c372-support_alarms_up_to_1_week.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch b/root/target/linux/generic/pending-5.14/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/201-extra_optimization.patch b/root/target/linux/generic/pending-5.14/201-extra_optimization.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/203-kallsyms_uncompressed.patch b/root/target/linux/generic/pending-5.14/203-kallsyms_uncompressed.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/205-backtrace_module_info.patch b/root/target/linux/generic/pending-5.14/205-backtrace_module_info.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/240-remove-unsane-filenames-from-deps_initramfs-list.patch b/root/target/linux/generic/pending-5.14/240-remove-unsane-filenames-from-deps_initramfs-list.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/261-enable_wilink_platform_without_drivers.patch b/root/target/linux/generic/pending-5.14/261-enable_wilink_platform_without_drivers.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/270-platform-mikrotik-build-bits.patch b/root/target/linux/generic/pending-5.14/270-platform-mikrotik-build-bits.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/300-mips_expose_boot_raw.patch b/root/target/linux/generic/pending-5.14/300-mips_expose_boot_raw.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/302-mips_no_branch_likely.patch b/root/target/linux/generic/pending-5.14/302-mips_no_branch_likely.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/305-mips_module_reloc.patch b/root/target/linux/generic/pending-5.14/305-mips_module_reloc.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/307-mips_highmem_offset.patch b/root/target/linux/generic/pending-5.14/307-mips_highmem_offset.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/308-mips32r2_tune.patch b/root/target/linux/generic/pending-5.14/308-mips32r2_tune.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/309-MIPS-Add-CPU-option-reporting-to-proc-cpuinfo.patch b/root/target/linux/generic/pending-5.14/309-MIPS-Add-CPU-option-reporting-to-proc-cpuinfo.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/310-arm_module_unresolved_weak_sym.patch b/root/target/linux/generic/pending-5.14/310-arm_module_unresolved_weak_sym.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch b/root/target/linux/generic/pending-5.14/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/332-arc-add-OWRTDTB-section.patch b/root/target/linux/generic/pending-5.14/332-arc-add-OWRTDTB-section.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/333-arc-enable-unaligned-access-in-kernel-mode.patch b/root/target/linux/generic/pending-5.14/333-arc-enable-unaligned-access-in-kernel-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch b/root/target/linux/generic/pending-5.14/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/400-mtd-mtdsplit-support.patch b/root/target/linux/generic/pending-5.14/400-mtd-mtdsplit-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/419-mtd-redboot-add-of_match_table-with-DT-binding.patch b/root/target/linux/generic/pending-5.14/419-mtd-redboot-add-of_match_table-with-DT-binding.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/430-mtd-add-myloader-partition-parser.patch b/root/target/linux/generic/pending-5.14/430-mtd-add-myloader-partition-parser.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch b/root/target/linux/generic/pending-5.14/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch b/root/target/linux/generic/pending-5.14/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/435-mtd-add-routerbootpart-parser-config.patch b/root/target/linux/generic/pending-5.14/435-mtd-add-routerbootpart-parser-config.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch b/root/target/linux/generic/pending-5.14/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch b/root/target/linux/generic/pending-5.14/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/465-m25p80-mx-disable-software-protection.patch b/root/target/linux/generic/pending-5.14/465-m25p80-mx-disable-software-protection.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch b/root/target/linux/generic/pending-5.14/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/476-mtd-spi-nor-add-eon-en25q128.patch b/root/target/linux/generic/pending-5.14/476-mtd-spi-nor-add-eon-en25q128.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/479-mtd-spi-nor-add-xtx-xt25f128b.patch b/root/target/linux/generic/pending-5.14/479-mtd-spi-nor-add-xtx-xt25f128b.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/482-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch b/root/target/linux/generic/pending-5.14/482-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/483-mtd-spi-nor-add-gd25q512.patch b/root/target/linux/generic/pending-5.14/483-mtd-spi-nor-add-gd25q512.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch b/root/target/linux/generic/pending-5.14/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/491-ubi-auto-create-ubiblock-device-for-rootfs.patch b/root/target/linux/generic/pending-5.14/491-ubi-auto-create-ubiblock-device-for-rootfs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch b/root/target/linux/generic/pending-5.14/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch b/root/target/linux/generic/pending-5.14/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/494-mtd-ubi-add-EOF-marker-support.patch b/root/target/linux/generic/pending-5.14/494-mtd-ubi-add-EOF-marker-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/495-mtd-core-add-get_mtd_device_by_node.patch b/root/target/linux/generic/pending-5.14/495-mtd-core-add-get_mtd_device_by_node.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/496-dt-bindings-add-bindings-for-mtd-concat-devices.patch b/root/target/linux/generic/pending-5.14/496-dt-bindings-add-bindings-for-mtd-concat-devices.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch b/root/target/linux/generic/pending-5.14/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/500-fs_cdrom_dependencies.patch b/root/target/linux/generic/pending-5.14/500-fs_cdrom_dependencies.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/530-jffs2_make_lzma_available.patch b/root/target/linux/generic/pending-5.14/530-jffs2_make_lzma_available.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/532-jffs2_eofdetect.patch b/root/target/linux/generic/pending-5.14/532-jffs2_eofdetect.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/600-netfilter_conntrack_flush.patch b/root/target/linux/generic/pending-5.14/600-netfilter_conntrack_flush.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/610-netfilter_match_bypass_default_checks.patch b/root/target/linux/generic/pending-5.14/610-netfilter_match_bypass_default_checks.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/611-netfilter_match_bypass_default_table.patch b/root/target/linux/generic/pending-5.14/611-netfilter_match_bypass_default_table.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/612-netfilter_match_reduce_memory_access.patch b/root/target/linux/generic/pending-5.14/612-netfilter_match_reduce_memory_access.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/613-netfilter_optional_tcp_window_check.patch b/root/target/linux/generic/pending-5.14/613-netfilter_optional_tcp_window_check.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/620-net_sched-codel-do-not-defer-queue-length-update.patch b/root/target/linux/generic/pending-5.14/620-net_sched-codel-do-not-defer-queue-length-update.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/630-packet_socket_type.patch b/root/target/linux/generic/pending-5.14/630-packet_socket_type.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/655-increase_skb_pad.patch b/root/target/linux/generic/pending-5.14/655-increase_skb_pad.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/root/target/linux/generic/pending-5.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/root/target/linux/generic/pending-5.14/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch b/root/target/linux/generic/pending-5.14/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/root/target/linux/generic/pending-5.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/681-NET-add-mtd-mac-address-support-to-of_get_mac_addres.patch b/root/target/linux/generic/pending-5.14/681-NET-add-mtd-mac-address-support-to-of_get_mac_addres.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/682-of_net-add-mac-address-increment-support.patch b/root/target/linux/generic/pending-5.14/682-of_net-add-mac-address-increment-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/683-of_net-add-mac-address-to-of-tree.patch b/root/target/linux/generic/pending-5.14/683-of_net-add-mac-address-to-of-tree.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/700-net-ethernet-mtk_eth_soc-avoid-creating-duplicate-of.patch b/root/target/linux/generic/pending-5.14/700-net-ethernet-mtk_eth_soc-avoid-creating-duplicate-of.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/703-phy-add-detach-callback-to-struct-phy_driver.patch b/root/target/linux/generic/pending-5.14/703-phy-add-detach-callback-to-struct-phy_driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/735-net-phy-at803x-fix-at8033-sgmii-mode.patch b/root/target/linux/generic/pending-5.14/735-net-phy-at803x-fix-at8033-sgmii-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/760-net-dsa-mv88e6xxx-fix-vlan-setup.patch b/root/target/linux/generic/pending-5.14/760-net-dsa-mv88e6xxx-fix-vlan-setup.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/761-net-dsa-mt7530-Support-EEE-features.patch b/root/target/linux/generic/pending-5.14/761-net-dsa-mt7530-Support-EEE-features.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch b/root/target/linux/generic/pending-5.14/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch b/root/target/linux/generic/pending-5.14/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/810-pci_disable_common_quirks.patch b/root/target/linux/generic/pending-5.14/810-pci_disable_common_quirks.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/811-pci_disable_usb_common_quirks.patch b/root/target/linux/generic/pending-5.14/811-pci_disable_usb_common_quirks.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/820-w1-gpio-fix-problem-with-platfom-data-in-w1-gpio.patch b/root/target/linux/generic/pending-5.14/820-w1-gpio-fix-problem-with-platfom-data-in-w1-gpio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/834-ledtrig-libata.patch b/root/target/linux/generic/pending-5.14/834-ledtrig-libata.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/840-hwrng-bcm2835-set-quality-to-1000.patch b/root/target/linux/generic/pending-5.14/840-hwrng-bcm2835-set-quality-to-1000.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.14/920-mangle_bootargs.patch b/root/target/linux/generic/pending-5.14/920-mangle_bootargs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/050-dtc-checks-Drop-interrupt-provider-address-cells-check.patch b/root/target/linux/generic/pending-5.15/050-dtc-checks-Drop-interrupt-provider-address-cells-check.patch deleted file mode 100755 index 75f63728..00000000 --- a/root/target/linux/generic/pending-5.15/050-dtc-checks-Drop-interrupt-provider-address-cells-check.patch +++ /dev/null @@ -1,28 +0,0 @@ -From d8d1a9a77863a8c7031ae82a1d461aa78eb72a7b Mon Sep 17 00:00:00 2001 -From: Rob Herring -Date: Mon, 11 Oct 2021 14:12:43 -0500 -Subject: [PATCH] checks: Drop interrupt provider '#address-cells' check - -'#address-cells' is only needed when parsing 'interrupt-map' properties, so -remove it from the common interrupt-provider test. - -Cc: Andre Przywara -Reviewed-by: David Gibson -Signed-off-by: Rob Herring -Message-Id: <20211011191245.1009682-3-robh@kernel.org> -Signed-off-by: David Gibson ---- ---- a/scripts/dtc/checks.c -+++ b/scripts/dtc/checks.c -@@ -1569,11 +1569,6 @@ static void check_interrupt_provider(str - if (!prop) - FAIL(c, dti, node, - "Missing #interrupt-cells in interrupt provider"); -- -- prop = get_property(node, "#address-cells"); -- if (!prop) -- FAIL(c, dti, node, -- "Missing #address-cells in interrupt provider"); - } - WARNING(interrupt_provider, check_interrupt_provider, NULL); - diff --git a/root/target/linux/generic/pending-5.15/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch b/root/target/linux/generic/pending-5.15/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/101-Use-stddefs.h-instead-of-compiler.h.patch b/root/target/linux/generic/pending-5.15/101-Use-stddefs.h-instead-of-compiler.h.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch b/root/target/linux/generic/pending-5.15/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch b/root/target/linux/generic/pending-5.15/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch old mode 100755 new mode 100644 index f18b4c87..bf4ef8c7 --- a/root/target/linux/generic/pending-5.15/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch +++ b/root/target/linux/generic/pending-5.15/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch @@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -7550,7 +7550,7 @@ static void __init alloc_node_mem_map(st +@@ -7544,7 +7544,7 @@ static void __ref alloc_node_mem_map(str if (pgdat == NODE_DATA(0)) { mem_map = NODE_DATA(0)->node_mem_map; if (page_to_pfn(mem_map) != pgdat->node_start_pfn) diff --git a/root/target/linux/generic/pending-5.15/130-add-linux-spidev-compatible-si3210.patch b/root/target/linux/generic/pending-5.15/130-add-linux-spidev-compatible-si3210.patch old mode 100755 new mode 100644 index d260cf1f..986149f4 --- a/root/target/linux/generic/pending-5.15/130-add-linux-spidev-compatible-si3210.patch +++ b/root/target/linux/generic/pending-5.15/130-add-linux-spidev-compatible-si3210.patch @@ -8,11 +8,11 @@ Signed-off-by: Giuseppe Lippolis --- a/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c -@@ -696,6 +696,7 @@ static const struct of_device_id spidev_ +@@ -682,6 +682,7 @@ static const struct of_device_id spidev_ + { .compatible = "lwn,bk4" }, + { .compatible = "dh,dhcom-board" }, { .compatible = "menlo,m53cpld" }, ++ { .compatible = "siliconlabs,si3210" }, { .compatible = "cisco,spi-petra" }, { .compatible = "micron,spi-authenta" }, -+ { .compatible = "siliconlabs,si3210" }, {}, - }; - MODULE_DEVICE_TABLE(of, spidev_dt_ids); diff --git a/root/target/linux/generic/pending-5.15/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch b/root/target/linux/generic/pending-5.15/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch deleted file mode 100755 index 8f40ae3b..00000000 --- a/root/target/linux/generic/pending-5.15/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch +++ /dev/null @@ -1,81 +0,0 @@ -From: Felix Fietkau -Subject: jffs2: use .rename2 and add RENAME_WHITEOUT support - -It is required for renames on overlayfs - -Signed-off-by: Felix Fietkau ---- - ---- a/fs/jffs2/dir.c -+++ b/fs/jffs2/dir.c -@@ -614,8 +614,8 @@ static int jffs2_rmdir (struct inode *di - return ret; - } - --static int jffs2_mknod (struct user_namespace *mnt_userns, struct inode *dir_i, -- struct dentry *dentry, umode_t mode, dev_t rdev) -+static int __jffs2_mknod (struct user_namespace *mnt_userns, struct inode *dir_i, -+ struct dentry *dentry, umode_t mode, dev_t rdev, bool whiteout) - { - struct jffs2_inode_info *f, *dir_f; - struct jffs2_sb_info *c; -@@ -754,7 +754,11 @@ static int jffs2_mknod (struct user_name - mutex_unlock(&dir_f->sem); - jffs2_complete_reservation(c); - -- d_instantiate_new(dentry, inode); -+ if (!whiteout) -+ d_instantiate_new(dentry, inode); -+ else -+ unlock_new_inode(inode); -+ - return 0; - - fail: -@@ -762,6 +766,19 @@ static int jffs2_mknod (struct user_name - return ret; - } - -+static int jffs2_mknod (struct user_namespace *mnt_userns, struct inode *dir_i, -+ struct dentry *dentry, umode_t mode, dev_t rdev) -+{ -+ return __jffs2_mknod(mnt_userns, dir_i, dentry, mode, rdev, false); -+} -+ -+static int jffs2_whiteout (struct user_namespace *mnt_userns, struct inode *old_dir, -+ struct dentry *old_dentry) -+{ -+ return __jffs2_mknod(mnt_userns, old_dir, old_dentry, S_IFCHR | WHITEOUT_MODE, -+ WHITEOUT_DEV, true); -+} -+ - static int jffs2_rename (struct user_namespace *mnt_userns, - struct inode *old_dir_i, struct dentry *old_dentry, - struct inode *new_dir_i, struct dentry *new_dentry, -@@ -773,7 +790,7 @@ static int jffs2_rename (struct user_nam - uint8_t type; - uint32_t now; - -- if (flags & ~RENAME_NOREPLACE) -+ if (flags & ~(RENAME_NOREPLACE|RENAME_WHITEOUT)) - return -EINVAL; - - /* The VFS will check for us and prevent trying to rename a -@@ -839,9 +856,14 @@ static int jffs2_rename (struct user_nam - if (d_is_dir(old_dentry) && !victim_f) - inc_nlink(new_dir_i); - -- /* Unlink the original */ -- ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i), -- old_dentry->d_name.name, old_dentry->d_name.len, NULL, now); -+ if (flags & RENAME_WHITEOUT) -+ /* Replace with whiteout */ -+ ret = jffs2_whiteout(mnt_userns, old_dir_i, old_dentry); -+ else -+ /* Unlink the original */ -+ ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i), -+ old_dentry->d_name.name, -+ old_dentry->d_name.len, NULL, now); - - /* We don't touch inode->i_nlink */ - diff --git a/root/target/linux/generic/pending-5.15/141-jffs2-add-RENAME_EXCHANGE-support.patch b/root/target/linux/generic/pending-5.15/141-jffs2-add-RENAME_EXCHANGE-support.patch deleted file mode 100755 index f58fc791..00000000 --- a/root/target/linux/generic/pending-5.15/141-jffs2-add-RENAME_EXCHANGE-support.patch +++ /dev/null @@ -1,73 +0,0 @@ -From: Felix Fietkau -Subject: jffs2: add RENAME_EXCHANGE support - -Signed-off-by: Felix Fietkau ---- - ---- a/fs/jffs2/dir.c -+++ b/fs/jffs2/dir.c -@@ -787,18 +787,31 @@ static int jffs2_rename (struct user_nam - int ret; - struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb); - struct jffs2_inode_info *victim_f = NULL; -+ struct inode *fst_inode = d_inode(old_dentry); -+ struct inode *snd_inode = d_inode(new_dentry); - uint8_t type; - uint32_t now; - -- if (flags & ~(RENAME_NOREPLACE|RENAME_WHITEOUT)) -+ if (flags & ~(RENAME_NOREPLACE|RENAME_WHITEOUT|RENAME_EXCHANGE)) - return -EINVAL; - -+ if ((flags & RENAME_EXCHANGE) && (old_dir_i != new_dir_i)) { -+ if (S_ISDIR(fst_inode->i_mode) && !S_ISDIR(snd_inode->i_mode)) { -+ inc_nlink(new_dir_i); -+ drop_nlink(old_dir_i); -+ } -+ else if (!S_ISDIR(fst_inode->i_mode) && S_ISDIR(snd_inode->i_mode)) { -+ drop_nlink(new_dir_i); -+ inc_nlink(old_dir_i); -+ } -+ } -+ - /* The VFS will check for us and prevent trying to rename a - * file over a directory and vice versa, but if it's a directory, - * the VFS can't check whether the victim is empty. The filesystem - * needs to do that for itself. - */ -- if (d_really_is_positive(new_dentry)) { -+ if (d_really_is_positive(new_dentry) && !(flags & RENAME_EXCHANGE)) { - victim_f = JFFS2_INODE_INFO(d_inode(new_dentry)); - if (d_is_dir(new_dentry)) { - struct jffs2_full_dirent *fd; -@@ -833,7 +846,7 @@ static int jffs2_rename (struct user_nam - if (ret) - return ret; - -- if (victim_f) { -+ if (victim_f && !(flags & RENAME_EXCHANGE)) { - /* There was a victim. Kill it off nicely */ - if (d_is_dir(new_dentry)) - clear_nlink(d_inode(new_dentry)); -@@ -859,6 +872,12 @@ static int jffs2_rename (struct user_nam - if (flags & RENAME_WHITEOUT) - /* Replace with whiteout */ - ret = jffs2_whiteout(mnt_userns, old_dir_i, old_dentry); -+ else if (flags & RENAME_EXCHANGE) -+ /* Replace the original */ -+ ret = jffs2_do_link(c, JFFS2_INODE_INFO(old_dir_i), -+ d_inode(new_dentry)->i_ino, type, -+ old_dentry->d_name.name, old_dentry->d_name.len, -+ now); - else - /* Unlink the original */ - ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i), -@@ -890,7 +909,7 @@ static int jffs2_rename (struct user_nam - return ret; - } - -- if (d_is_dir(old_dentry)) -+ if (d_is_dir(old_dentry) && !(flags & RENAME_EXCHANGE)) - drop_nlink(old_dir_i); - - new_dir_i->i_mtime = new_dir_i->i_ctime = old_dir_i->i_mtime = old_dir_i->i_ctime = ITIME(now); diff --git a/root/target/linux/generic/pending-5.15/142-jffs2-add-splice-ops.patch b/root/target/linux/generic/pending-5.15/142-jffs2-add-splice-ops.patch deleted file mode 100755 index de847a1f..00000000 --- a/root/target/linux/generic/pending-5.15/142-jffs2-add-splice-ops.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Felix Fietkau -Subject: jffs2: add splice ops - -Add splice_read using generic_file_splice_read. -Add splice_write using iter_file_splice_write - -Signed-off-by: Felix Fietkau ---- - ---- a/fs/jffs2/file.c -+++ b/fs/jffs2/file.c -@@ -53,6 +53,8 @@ const struct file_operations jffs2_file_ - .open = generic_file_open, - .read_iter = generic_file_read_iter, - .write_iter = generic_file_write_iter, -+ .splice_read = generic_file_splice_read, -+ .splice_write = iter_file_splice_write, - .unlocked_ioctl=jffs2_ioctl, - .mmap = generic_file_readonly_mmap, - .fsync = jffs2_fsync, diff --git a/root/target/linux/generic/pending-5.15/150-bridge_allow_receiption_on_disabled_port.patch b/root/target/linux/generic/pending-5.15/150-bridge_allow_receiption_on_disabled_port.patch old mode 100755 new mode 100644 index 2b9570e9..bf97e987 --- a/root/target/linux/generic/pending-5.15/150-bridge_allow_receiption_on_disabled_port.patch +++ b/root/target/linux/generic/pending-5.15/150-bridge_allow_receiption_on_disabled_port.patch @@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c -@@ -197,6 +197,9 @@ static void __br_handle_local_finish(str +@@ -192,6 +192,9 @@ static void __br_handle_local_finish(str /* note: already called with rcu_read_lock */ static int br_handle_local_finish(struct net *net, struct sock *sk, struct sk_buff *skb) { @@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau __br_handle_local_finish(skb); /* return 1 to signal the okfn() was called so it's ok to use the skb */ -@@ -362,6 +365,17 @@ static rx_handler_result_t br_handle_fra +@@ -360,6 +363,17 @@ static rx_handler_result_t br_handle_fra forward: switch (p->state) { diff --git a/root/target/linux/generic/pending-5.15/190-rtc-rs5c372-support_alarms_up_to_1_week.patch b/root/target/linux/generic/pending-5.15/190-rtc-rs5c372-support_alarms_up_to_1_week.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch b/root/target/linux/generic/pending-5.15/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/201-extra_optimization.patch b/root/target/linux/generic/pending-5.15/201-extra_optimization.patch old mode 100755 new mode 100644 index 5300a5c4..8ca487f6 --- a/root/target/linux/generic/pending-5.15/201-extra_optimization.patch +++ b/root/target/linux/generic/pending-5.15/201-extra_optimization.patch @@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau --- a/Makefile +++ b/Makefile -@@ -752,11 +752,11 @@ KBUILD_CFLAGS += $(call cc-disable-warni +@@ -763,11 +763,11 @@ KBUILD_CFLAGS += $(call cc-disable-warni KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member) ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE diff --git a/root/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch b/root/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch old mode 100755 new mode 100644 index 370fc97e..6e8dea3e --- a/root/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch +++ b/root/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch @@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau --- a/init/Kconfig +++ b/init/Kconfig -@@ -1438,6 +1438,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW +@@ -1410,6 +1410,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW the unaligned access emulation. see arch/parisc/kernel/unaligned.c for reference @@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau } --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh -@@ -260,6 +260,10 @@ kallsyms() +@@ -273,6 +273,10 @@ kallsyms() kallsymopt="${kallsymopt} --base-relative" fi diff --git a/root/target/linux/generic/pending-5.15/205-backtrace_module_info.patch b/root/target/linux/generic/pending-5.15/205-backtrace_module_info.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/240-remove-unsane-filenames-from-deps_initramfs-list.patch b/root/target/linux/generic/pending-5.15/240-remove-unsane-filenames-from-deps_initramfs-list.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/261-enable_wilink_platform_without_drivers.patch b/root/target/linux/generic/pending-5.15/261-enable_wilink_platform_without_drivers.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/270-platform-mikrotik-build-bits.patch b/root/target/linux/generic/pending-5.15/270-platform-mikrotik-build-bits.patch old mode 100755 new mode 100644 index 99f83bb2..31f86f4a --- a/root/target/linux/generic/pending-5.15/270-platform-mikrotik-build-bits.patch +++ b/root/target/linux/generic/pending-5.15/270-platform-mikrotik-build-bits.patch @@ -16,16 +16,20 @@ Signed-off-by: Thibaut VARÈNE --- a/drivers/platform/Kconfig +++ b/drivers/platform/Kconfig -@@ -15,3 +15,5 @@ source "drivers/platform/mellanox/Kconfi +@@ -12,6 +12,8 @@ source "drivers/platform/chrome/Kconfig" + + source "drivers/platform/mellanox/Kconfig" + ++source "drivers/platform/mikrotik/Kconfig" ++ source "drivers/platform/olpc/Kconfig" source "drivers/platform/surface/Kconfig" -+ -+source "drivers/platform/mikrotik/Kconfig" --- a/drivers/platform/Makefile +++ b/drivers/platform/Makefile -@@ -10,3 +10,4 @@ obj-$(CONFIG_OLPC_EC) += olpc/ +@@ -9,4 +9,5 @@ obj-$(CONFIG_MIPS) += mips/ + obj-$(CONFIG_OLPC_EC) += olpc/ obj-$(CONFIG_GOLDFISH) += goldfish/ obj-$(CONFIG_CHROME_PLATFORMS) += chrome/ - obj-$(CONFIG_SURFACE_PLATFORMS) += surface/ +obj-$(CONFIG_MIKROTIK) += mikrotik/ + obj-$(CONFIG_SURFACE_PLATFORMS) += surface/ diff --git a/root/target/linux/generic/pending-5.15/300-mips_expose_boot_raw.patch b/root/target/linux/generic/pending-5.15/300-mips_expose_boot_raw.patch old mode 100755 new mode 100644 index 092f00b5..c94f40d1 --- a/root/target/linux/generic/pending-5.15/300-mips_expose_boot_raw.patch +++ b/root/target/linux/generic/pending-5.15/300-mips_expose_boot_raw.patch @@ -9,7 +9,7 @@ Acked-by: Rob Landley --- --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -1100,9 +1100,6 @@ config FW_ARC +@@ -1122,9 +1122,6 @@ config FW_ARC config ARCH_MAY_HAVE_PC_FDC bool @@ -19,7 +19,7 @@ Acked-by: Rob Landley config CEVT_BCM1480 bool -@@ -3178,6 +3175,18 @@ choice +@@ -3199,6 +3196,18 @@ choice bool "Extend builtin kernel arguments with bootloader arguments" endchoice diff --git a/root/target/linux/generic/pending-5.15/302-mips_no_branch_likely.patch b/root/target/linux/generic/pending-5.15/302-mips_no_branch_likely.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/305-mips_module_reloc.patch b/root/target/linux/generic/pending-5.15/305-mips_module_reloc.patch old mode 100755 new mode 100644 index bbea1f61..13cd2d77 --- a/root/target/linux/generic/pending-5.15/305-mips_module_reloc.patch +++ b/root/target/linux/generic/pending-5.15/305-mips_module_reloc.patch @@ -165,7 +165,6 @@ Signed-off-by: Felix Fietkau + page++; + } while (free); +} -+ + void *module_alloc(unsigned long size) { @@ -300,6 +299,7 @@ Signed-off-by: Felix Fietkau + me->arch.virt_plt_tbl, v); + +} ++ + static int apply_r_mips_26(struct module *me, u32 *location, u32 base, Elf_Addr v) diff --git a/root/target/linux/generic/pending-5.15/307-mips_highmem_offset.patch b/root/target/linux/generic/pending-5.15/307-mips_highmem_offset.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/308-mips32r2_tune.patch b/root/target/linux/generic/pending-5.15/308-mips32r2_tune.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/309-MIPS-Add-CPU-option-reporting-to-proc-cpuinfo.patch b/root/target/linux/generic/pending-5.15/309-MIPS-Add-CPU-option-reporting-to-proc-cpuinfo.patch deleted file mode 100755 index 318c0b1b..00000000 --- a/root/target/linux/generic/pending-5.15/309-MIPS-Add-CPU-option-reporting-to-proc-cpuinfo.patch +++ /dev/null @@ -1,136 +0,0 @@ -From 87ec87c2ad615c1a177cd08ef5fa29fc739f6e50 Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens -Date: Sun, 23 Dec 2018 18:06:53 +0100 -Subject: [PATCH] MIPS: Add CPU option reporting to /proc/cpuinfo - -Many MIPS CPUs have optional CPU features which are not activates for -all CPU cores. Print the CPU options which are implemented in the core -in /proc/cpuinfo. This makes it possible to see what features are -supported and which are not supported. This should cover all standard -MIPS extensions, before it only printed information about the main MIPS -ASEs. - -Signed-off-by: Hauke Mehrtens ---- - arch/mips/kernel/proc.c | 116 ++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 116 insertions(+) - ---- a/arch/mips/kernel/proc.c -+++ b/arch/mips/kernel/proc.c -@@ -138,6 +138,116 @@ static int show_cpuinfo(struct seq_file - seq_printf(m, "micromips kernel\t: %s\n", - (read_c0_config3() & MIPS_CONF3_ISA_OE) ? "yes" : "no"); - } -+ -+ seq_printf(m, "Options implemented\t:"); -+ if (cpu_has_tlb) -+ seq_printf(m, "%s", " tlb"); -+ if (cpu_has_ftlb) -+ seq_printf(m, "%s", " ftlb"); -+ if (cpu_has_tlbinv) -+ seq_printf(m, "%s", " tlbinv"); -+ if (cpu_has_segments) -+ seq_printf(m, "%s", " segments"); -+ if (cpu_has_rixiex) -+ seq_printf(m, "%s", " rixiex"); -+ if (cpu_has_ldpte) -+ seq_printf(m, "%s", " ldpte"); -+ if (cpu_has_maar) -+ seq_printf(m, "%s", " maar"); -+ if (cpu_has_rw_llb) -+ seq_printf(m, "%s", " rw_llb"); -+ if (cpu_has_4kex) -+ seq_printf(m, "%s", " 4kex"); -+ if (cpu_has_3k_cache) -+ seq_printf(m, "%s", " 3k_cache"); -+ if (cpu_has_4k_cache) -+ seq_printf(m, "%s", " 4k_cache"); -+ if (cpu_has_tx39_cache) -+ seq_printf(m, "%s", " tx39_cache"); -+ if (cpu_has_octeon_cache) -+ seq_printf(m, "%s", " octeon_cache"); -+ if (cpu_has_fpu) -+ seq_printf(m, "%s", " fpu"); -+ if (cpu_has_32fpr) -+ seq_printf(m, "%s", " 32fpr"); -+ if (cpu_has_cache_cdex_p) -+ seq_printf(m, "%s", " cache_cdex_p"); -+ if (cpu_has_cache_cdex_s) -+ seq_printf(m, "%s", " cache_cdex_s"); -+ if (cpu_has_prefetch) -+ seq_printf(m, "%s", " prefetch"); -+ if (cpu_has_mcheck) -+ seq_printf(m, "%s", " mcheck"); -+ if (cpu_has_ejtag) -+ seq_printf(m, "%s", " ejtag"); -+ if (cpu_has_llsc) -+ seq_printf(m, "%s", " llsc"); -+ if (cpu_has_guestctl0ext) -+ seq_printf(m, "%s", " guestctl0ext"); -+ if (cpu_has_guestctl1) -+ seq_printf(m, "%s", " guestctl1"); -+ if (cpu_has_guestctl2) -+ seq_printf(m, "%s", " guestctl2"); -+ if (cpu_has_guestid) -+ seq_printf(m, "%s", " guestid"); -+ if (cpu_has_drg) -+ seq_printf(m, "%s", " drg"); -+ if (cpu_has_rixi) -+ seq_printf(m, "%s", " rixi"); -+ if (cpu_has_lpa) -+ seq_printf(m, "%s", " lpa"); -+ if (cpu_has_mvh) -+ seq_printf(m, "%s", " mvh"); -+ if (cpu_has_vtag_icache) -+ seq_printf(m, "%s", " vtag_icache"); -+ if (cpu_has_dc_aliases) -+ seq_printf(m, "%s", " dc_aliases"); -+ if (cpu_has_ic_fills_f_dc) -+ seq_printf(m, "%s", " ic_fills_f_dc"); -+ if (cpu_has_pindexed_dcache) -+ seq_printf(m, "%s", " pindexed_dcache"); -+ if (cpu_has_userlocal) -+ seq_printf(m, "%s", " userlocal"); -+ if (cpu_has_nofpuex) -+ seq_printf(m, "%s", " nofpuex"); -+ if (cpu_has_vint) -+ seq_printf(m, "%s", " vint"); -+ if (cpu_has_veic) -+ seq_printf(m, "%s", " veic"); -+ if (cpu_has_inclusive_pcaches) -+ seq_printf(m, "%s", " inclusive_pcaches"); -+ if (cpu_has_perf_cntr_intr_bit) -+ seq_printf(m, "%s", " perf_cntr_intr_bit"); -+ if (cpu_has_ufr) -+ seq_printf(m, "%s", " ufr"); -+ if (cpu_has_fre) -+ seq_printf(m, "%s", " fre"); -+ if (cpu_has_cdmm) -+ seq_printf(m, "%s", " cdmm"); -+ if (cpu_has_small_pages) -+ seq_printf(m, "%s", " small_pages"); -+ if (cpu_has_nan_legacy) -+ seq_printf(m, "%s", " nan_legacy"); -+ if (cpu_has_nan_2008) -+ seq_printf(m, "%s", " nan_2008"); -+ if (cpu_has_ebase_wg) -+ seq_printf(m, "%s", " ebase_wg"); -+ if (cpu_has_badinstr) -+ seq_printf(m, "%s", " badinstr"); -+ if (cpu_has_badinstrp) -+ seq_printf(m, "%s", " badinstrp"); -+ if (cpu_has_contextconfig) -+ seq_printf(m, "%s", " contextconfig"); -+ if (cpu_has_perf) -+ seq_printf(m, "%s", " perf"); -+ if (cpu_has_shared_ftlb_ram) -+ seq_printf(m, "%s", " shared_ftlb_ram"); -+ if (cpu_has_shared_ftlb_entries) -+ seq_printf(m, "%s", " shared_ftlb_entries"); -+ if (cpu_has_mipsmt_pertccounters) -+ seq_printf(m, "%s", " mipsmt_pertccounters"); -+ seq_printf(m, "\n"); -+ - seq_printf(m, "shadow register sets\t: %d\n", - cpu_data[n].srsets); - seq_printf(m, "kscratch registers\t: %d\n", diff --git a/root/target/linux/generic/pending-5.15/310-arm_module_unresolved_weak_sym.patch b/root/target/linux/generic/pending-5.15/310-arm_module_unresolved_weak_sym.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch b/root/target/linux/generic/pending-5.15/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch old mode 100755 new mode 100644 index 2880d3ee..8d2a9b14 --- a/root/target/linux/generic/pending-5.15/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch +++ b/root/target/linux/generic/pending-5.15/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch @@ -238,7 +238,7 @@ Signed-off-by: Yousong Zhou +#endif --- a/arch/mips/kernel/relocate_kernel.S +++ b/arch/mips/kernel/relocate_kernel.S -@@ -10,10 +10,11 @@ +@@ -10,10 +10,12 @@ #include #include #include @@ -248,10 +248,11 @@ Signed-off-by: Yousong Zhou -LEAF(relocate_new_kernel) +LEAF(kexec_relocate_new_kernel) ++ PTR_L a0, arg0 PTR_L a1, arg1 PTR_L a2, arg2 -@@ -98,7 +99,7 @@ done: +@@ -98,7 +100,7 @@ done: #endif /* jump to kexec_start_address */ j s1 @@ -260,8 +261,8 @@ Signed-off-by: Yousong Zhou #ifdef CONFIG_SMP /* -@@ -181,9 +182,15 @@ kexec_indirection_page: - PTR 0 +@@ -181,9 +183,15 @@ kexec_indirection_page: + PTR_WD 0 .size kexec_indirection_page, PTRSIZE -relocate_new_kernel_end: @@ -277,7 +278,7 @@ Signed-off-by: Yousong Zhou -relocate_new_kernel_size: - EXPORT(relocate_new_kernel_size) -- PTR relocate_new_kernel_end - relocate_new_kernel +- PTR_WD relocate_new_kernel_end - relocate_new_kernel - .size relocate_new_kernel_size, PTRSIZE +kexec_relocate_new_kernel_end: + EXPORT(kexec_relocate_new_kernel_end) diff --git a/root/target/linux/generic/pending-5.15/332-arc-add-OWRTDTB-section.patch b/root/target/linux/generic/pending-5.15/332-arc-add-OWRTDTB-section.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/333-arc-enable-unaligned-access-in-kernel-mode.patch b/root/target/linux/generic/pending-5.15/333-arc-enable-unaligned-access-in-kernel-mode.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch b/root/target/linux/generic/pending-5.15/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch old mode 100755 new mode 100644 index cb9f2952..de1e0fc1 --- a/root/target/linux/generic/pending-5.15/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch +++ b/root/target/linux/generic/pending-5.15/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch @@ -14,7 +14,7 @@ Signed-off-by: Pawel Dembicki --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig -@@ -222,7 +222,7 @@ config PPC +@@ -226,7 +226,7 @@ config PPC select HAVE_KERNEL_GZIP select HAVE_KERNEL_LZMA if DEFAULT_UIMAGE select HAVE_KERNEL_LZO if DEFAULT_UIMAGE diff --git a/root/target/linux/generic/pending-5.15/400-mtd-mtdsplit-support.patch b/root/target/linux/generic/pending-5.15/400-mtd-mtdsplit-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/419-mtd-redboot-add-of_match_table-with-DT-binding.patch b/root/target/linux/generic/pending-5.15/419-mtd-redboot-add-of_match_table-with-DT-binding.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/420-mtd-redboot_space.patch b/root/target/linux/generic/pending-5.15/420-mtd-redboot_space.patch deleted file mode 100755 index fee19365..00000000 --- a/root/target/linux/generic/pending-5.15/420-mtd-redboot_space.patch +++ /dev/null @@ -1,41 +0,0 @@ -From: Felix Fietkau -Subject: add patch for including unpartitioned space in the rootfs partition for redboot devices (if applicable) - -[john@phrozen.org: used by ixp and others] - -lede-commit: 394918851f84e4d00fa16eb900e7700e95091f00 -Signed-off-by: Felix Fietkau ---- - drivers/mtd/redboot.c | 19 +++++++++++++------ - 1 file changed, 13 insertions(+), 6 deletions(-) - ---- a/drivers/mtd/parsers/redboot.c -+++ b/drivers/mtd/parsers/redboot.c -@@ -277,14 +277,21 @@ nogood: - #endif - names += strlen(names) + 1; - --#ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED - if (fl->next && fl->img->flash_base + fl->img->size + master->erasesize <= fl->next->img->flash_base) { -- i++; -- parts[i].offset = parts[i - 1].size + parts[i - 1].offset; -- parts[i].size = fl->next->img->flash_base - parts[i].offset; -- parts[i].name = nullname; -- } -+ if (!strcmp(parts[i].name, "rootfs")) { -+ parts[i].size = fl->next->img->flash_base; -+ parts[i].size &= ~(master->erasesize - 1); -+ parts[i].size -= parts[i].offset; -+#ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED -+ nrparts--; -+ } else { -+ i++; -+ parts[i].offset = parts[i-1].size + parts[i-1].offset; -+ parts[i].size = fl->next->img->flash_base - parts[i].offset; -+ parts[i].name = nullname; - #endif -+ } -+ } - tmp_fl = fl; - fl = fl->next; - kfree(tmp_fl); diff --git a/root/target/linux/generic/pending-5.15/430-mtd-add-myloader-partition-parser.patch b/root/target/linux/generic/pending-5.15/430-mtd-add-myloader-partition-parser.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch b/root/target/linux/generic/pending-5.15/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch b/root/target/linux/generic/pending-5.15/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/435-mtd-add-routerbootpart-parser-config.patch b/root/target/linux/generic/pending-5.15/435-mtd-add-routerbootpart-parser-config.patch old mode 100755 new mode 100644 index 721a4d3a..b5384673 --- a/root/target/linux/generic/pending-5.15/435-mtd-add-routerbootpart-parser-config.patch +++ b/root/target/linux/generic/pending-5.15/435-mtd-add-routerbootpart-parser-config.patch @@ -16,11 +16,10 @@ Signed-off-by: Thibaut VARÈNE --- a/drivers/mtd/parsers/Kconfig +++ b/drivers/mtd/parsers/Kconfig -@@ -202,3 +202,12 @@ config MTD_QCOMSMEM_PARTS - help - This provides support for parsing partitions from Shared Memory (SMEM) - for NAND and SPI flash on Qualcomm platforms. -+ +@@ -196,6 +196,15 @@ config MTD_REDBOOT_PARTS_READONLY + + endif # MTD_REDBOOT_PARTS + +config MTD_ROUTERBOOT_PARTS + tristate "RouterBoot flash partition parser" + depends on MTD && OF @@ -29,10 +28,15 @@ Signed-off-by: Thibaut VARÈNE + flash, some of which are fixed and some of which are located at + variable offsets. This parser handles both cases via properly + formatted DTS. ++ + config MTD_QCOMSMEM_PARTS + tristate "Qualcomm SMEM flash partition parser" + depends on QCOM_SMEM --- a/drivers/mtd/parsers/Makefile +++ b/drivers/mtd/parsers/Makefile -@@ -14,3 +14,4 @@ obj-$(CONFIG_MTD_PARSER_TRX) += parser_ +@@ -13,4 +13,5 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o + obj-$(CONFIG_MTD_PARSER_TRX) += parser_trx.o obj-$(CONFIG_MTD_SHARPSL_PARTS) += sharpslpart.o obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o - obj-$(CONFIG_MTD_QCOMSMEM_PARTS) += qcomsmempart.o +obj-$(CONFIG_MTD_ROUTERBOOT_PARTS) += routerbootpart.o + obj-$(CONFIG_MTD_QCOMSMEM_PARTS) += qcomsmempart.o diff --git a/root/target/linux/generic/pending-5.15/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch b/root/target/linux/generic/pending-5.15/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch b/root/target/linux/generic/pending-5.15/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/465-m25p80-mx-disable-software-protection.patch b/root/target/linux/generic/pending-5.15/465-m25p80-mx-disable-software-protection.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch b/root/target/linux/generic/pending-5.15/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/476-mtd-spi-nor-add-eon-en25q128.patch b/root/target/linux/generic/pending-5.15/476-mtd-spi-nor-add-eon-en25q128.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/479-mtd-spi-nor-add-xtx-xt25f128b.patch b/root/target/linux/generic/pending-5.15/479-mtd-spi-nor-add-xtx-xt25f128b.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/481-mtd-spi-nor-rework-broken-flash-reset-support.patch b/root/target/linux/generic/pending-5.15/481-mtd-spi-nor-rework-broken-flash-reset-support.patch deleted file mode 100755 index 8fb46b90..00000000 --- a/root/target/linux/generic/pending-5.15/481-mtd-spi-nor-rework-broken-flash-reset-support.patch +++ /dev/null @@ -1,182 +0,0 @@ -From ea92cbb50a78404e29de2cc3999a240615ffb1c8 Mon Sep 17 00:00:00 2001 -From: Chuanhong Guo -Date: Mon, 6 Apr 2020 17:58:48 +0800 -Subject: [PATCH] mtd: spi-nor: rework broken-flash-reset support - -Instead of resetting flash to 3B address on remove hook, this -implementation only enters 4B mode when needed, which prevents -more unexpected reboot stuck. This implementation makes it only -break when a kernel panic happens during flash operation on 16M+ -areas. -*OpenWrt only*: silent broken-flash-reset warning. We are not dealing -with vendors and it's unpleasant for users to se that unnecessary -and long WARN_ON print. - -Signed-off-by: Chuanhong Guo ---- - drivers/mtd/spi-nor/spi-nor.c | 52 +++++++++++++++++++++++++++++++++-- - 1 file changed, 49 insertions(+), 3 deletions(-) - ---- a/drivers/mtd/spi-nor/core.c -+++ b/drivers/mtd/spi-nor/core.c -@@ -1637,6 +1637,23 @@ destroy_erase_cmd_list: - return ret; - } - -+int spi_nor_check_set_addr_width(struct spi_nor *nor, loff_t addr) -+{ -+ u8 addr_width; -+ -+ if ((nor->flags & (SNOR_F_4B_OPCODES | SNOR_F_BROKEN_RESET)) != -+ SNOR_F_BROKEN_RESET) -+ return 0; -+ -+ addr_width = addr & 0xff000000 ? 4 : 3; -+ if (nor->addr_width == addr_width) -+ return 0; -+ -+ nor->addr_width = addr_width; -+ -+ return nor->params->set_4byte_addr_mode(nor, addr_width == 4); -+} -+ - /* - * Erase an address range on the nor chip. The address range may extend - * one or more erase sectors. Return an error if there is a problem erasing. -@@ -1664,6 +1681,10 @@ static int spi_nor_erase(struct mtd_info - if (ret) - return ret; - -+ ret = spi_nor_check_set_addr_width(nor, instr->addr + instr->len); -+ if (ret < 0) -+ return ret; -+ - /* whole-chip erase? */ - if (len == mtd->size && !(nor->flags & SNOR_F_NO_OP_CHIP_ERASE)) { - unsigned long timeout; -@@ -1723,6 +1744,7 @@ static int spi_nor_erase(struct mtd_info - ret = spi_nor_write_disable(nor); - - erase_err: -+ spi_nor_check_set_addr_width(nor, 0); - spi_nor_unlock_and_unprep(nor); - - return ret; -@@ -1915,6 +1937,10 @@ static int spi_nor_read(struct mtd_info - if (ret) - return ret; - -+ ret = spi_nor_check_set_addr_width(nor, from + len); -+ if (ret < 0) -+ return ret; -+ - while (len) { - loff_t addr = from; - -@@ -1938,6 +1964,7 @@ static int spi_nor_read(struct mtd_info - ret = 0; - - read_err: -+ spi_nor_check_set_addr_width(nor, 0); - spi_nor_unlock_and_unprep(nor); - return ret; - } -@@ -1960,6 +1987,10 @@ static int spi_nor_write(struct mtd_info - if (ret) - return ret; - -+ ret = spi_nor_check_set_addr_width(nor, to + len); -+ if (ret < 0) -+ return ret; -+ - for (i = 0; i < len; ) { - ssize_t written; - loff_t addr = to + i; -@@ -1999,6 +2030,7 @@ static int spi_nor_write(struct mtd_info - } - - write_err: -+ spi_nor_check_set_addr_width(nor, 0); - spi_nor_unlock_and_unprep(nor); - return ret; - } -@@ -2846,9 +2878,13 @@ static int spi_nor_init(struct spi_nor * - * reboots (e.g., crashes). Warn the user (or hopefully, system - * designer) that this is bad. - */ -- WARN_ONCE(nor->flags & SNOR_F_BROKEN_RESET, -- "enabling reset hack; may not recover from unexpected reboots\n"); -- nor->params->set_4byte_addr_mode(nor, true); -+ if (nor->flags & SNOR_F_BROKEN_RESET) { -+ dev_warn(nor->dev, -+ "enabling reset hack; may not recover from unexpected reboots\n"); -+ nor->addr_width = 3; -+ } else { -+ nor->params->set_4byte_addr_mode(nor, true); -+ } - } - - return 0; ---- a/drivers/mtd/spi-nor/swp.c -+++ b/drivers/mtd/spi-nor/swp.c -@@ -352,7 +352,9 @@ static int spi_nor_lock(struct mtd_info - if (ret) - return ret; - -+ spi_nor_check_set_addr_width(nor, ofs + len); - ret = nor->params->locking_ops->lock(nor, ofs, len); -+ spi_nor_check_set_addr_width(nor, 0); - - spi_nor_unlock_and_unprep(nor); - return ret; -@@ -367,7 +369,9 @@ static int spi_nor_unlock(struct mtd_inf - if (ret) - return ret; - -+ spi_nor_check_set_addr_width(nor, ofs + len); - ret = nor->params->locking_ops->unlock(nor, ofs, len); -+ spi_nor_check_set_addr_width(nor, 0); - - spi_nor_unlock_and_unprep(nor); - return ret; -@@ -382,7 +386,9 @@ static int spi_nor_is_locked(struct mtd_ - if (ret) - return ret; - -+ spi_nor_check_set_addr_width(nor, ofs + len); - ret = nor->params->locking_ops->is_locked(nor, ofs, len); -+ spi_nor_check_set_addr_width(nor, 0); - - spi_nor_unlock_and_unprep(nor); - return ret; ---- a/drivers/mtd/spi-nor/core.h -+++ b/drivers/mtd/spi-nor/core.h -@@ -496,6 +496,7 @@ extern const struct attribute_group *spi - void spi_nor_spimem_setup_op(const struct spi_nor *nor, - struct spi_mem_op *op, - const enum spi_nor_protocol proto); -+int spi_nor_check_set_addr_width(struct spi_nor *nor, loff_t addr); - int spi_nor_write_enable(struct spi_nor *nor); - int spi_nor_write_disable(struct spi_nor *nor); - int spi_nor_set_4byte_addr_mode(struct spi_nor *nor, bool enable); ---- a/drivers/mtd/spi-nor/sst.c -+++ b/drivers/mtd/spi-nor/sst.c -@@ -104,6 +104,10 @@ static int sst_write(struct mtd_info *mt - if (ret) - return ret; - -+ ret = spi_nor_check_set_addr_width(nor, to + len); -+ if (ret < 0) -+ return ret; -+ - ret = spi_nor_write_enable(nor); - if (ret) - goto out; -@@ -173,6 +177,7 @@ static int sst_write(struct mtd_info *mt - } - out: - *retlen += actual; -+ spi_nor_check_set_addr_width(nor, 0); - spi_nor_unlock_and_unprep(nor); - return ret; - } diff --git a/root/target/linux/generic/pending-5.15/482-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch b/root/target/linux/generic/pending-5.15/482-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/483-mtd-spi-nor-add-gd25q512.patch b/root/target/linux/generic/pending-5.15/483-mtd-spi-nor-add-gd25q512.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/483-mtd-spinand-add-support-for-xtx-xt26g0xa.patch b/root/target/linux/generic/pending-5.15/483-mtd-spinand-add-support-for-xtx-xt26g0xa.patch deleted file mode 100755 index 4672f8c8..00000000 --- a/root/target/linux/generic/pending-5.15/483-mtd-spinand-add-support-for-xtx-xt26g0xa.patch +++ /dev/null @@ -1,178 +0,0 @@ -From a07e31adf2753cad2fd9790db5bfc047c81e8152 Mon Sep 17 00:00:00 2001 -From: Felix Matouschek -Date: Fri, 2 Jul 2021 20:31:23 +0200 -Subject: [PATCH] mtd: spinand: Add support for XTX XT26G0xA - -Add support for XTX Technology XT26G01AXXXXX, XTX26G02AXXXXX and -XTX26G04AXXXXX SPI NAND. - -These are 3V, 1G/2G/4Gbit serial SLC NAND flash devices with on-die ECC -(8bit strength per 512bytes). - -Tested on Teltonika RUTX10 flashed with OpenWrt. - -Datasheets available at -http://www.xtxtech.com/download/?AId=225 -https://datasheet.lcsc.com/szlcsc/2005251034_XTX-XT26G01AWSEGA_C558841.pdf - -Signed-off-by: Felix Matouschek ---- - drivers/mtd/nand/spi/Makefile | 2 +- - drivers/mtd/nand/spi/core.c | 1 + - drivers/mtd/nand/spi/xtx.c | 122 ++++++++++++++++++++++++++++++++++ - include/linux/mtd/spinand.h | 1 + - 4 files changed, 125 insertions(+), 1 deletion(-) - create mode 100644 drivers/mtd/nand/spi/xtx.c - ---- a/drivers/mtd/nand/spi/Makefile -+++ b/drivers/mtd/nand/spi/Makefile -@@ -1,3 +1,3 @@ - # SPDX-License-Identifier: GPL-2.0 --spinand-objs := core.o gigadevice.o macronix.o micron.o paragon.o toshiba.o winbond.o -+spinand-objs := core.o gigadevice.o macronix.o micron.o paragon.o toshiba.o winbond.o xtx.o - obj-$(CONFIG_MTD_SPI_NAND) += spinand.o ---- a/drivers/mtd/nand/spi/core.c -+++ b/drivers/mtd/nand/spi/core.c -@@ -902,6 +902,7 @@ static const struct spinand_manufacturer - ¶gon_spinand_manufacturer, - &toshiba_spinand_manufacturer, - &winbond_spinand_manufacturer, -+ &xtx_spinand_manufacturer, - }; - - static int spinand_manufacturer_match(struct spinand_device *spinand, ---- /dev/null -+++ b/drivers/mtd/nand/spi/xtx.c -@@ -0,0 +1,122 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* -+ * Author: -+ * Felix Matouschek -+ */ -+ -+#include -+#include -+#include -+ -+#define SPINAND_MFR_XTX 0x0B -+ -+#define XT26G0XA_STATUS_ECC_MASK GENMASK(5, 2) -+#define XT26G0XA_STATUS_ECC_NO_DETECTED (0 << 2) -+#define XT26G0XA_STATUS_ECC_8_CORRECTED (3 << 4) -+#define XT26G0XA_STATUS_ECC_UNCOR_ERROR (2 << 4) -+ -+static SPINAND_OP_VARIANTS(read_cache_variants, -+ SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 1, NULL, 0), -+ SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0), -+ SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0), -+ SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0), -+ SPINAND_PAGE_READ_FROM_CACHE_OP(true, 0, 1, NULL, 0), -+ SPINAND_PAGE_READ_FROM_CACHE_OP(false, 0, 1, NULL, 0)); -+ -+static SPINAND_OP_VARIANTS(write_cache_variants, -+ SPINAND_PROG_LOAD_X4(true, 0, NULL, 0), -+ SPINAND_PROG_LOAD(true, 0, NULL, 0)); -+ -+static SPINAND_OP_VARIANTS(update_cache_variants, -+ SPINAND_PROG_LOAD_X4(false, 0, NULL, 0), -+ SPINAND_PROG_LOAD(false, 0, NULL, 0)); -+ -+static int xt26g0xa_ooblayout_ecc(struct mtd_info *mtd, int section, -+ struct mtd_oob_region *region) -+{ -+ if (section) -+ return -ERANGE; -+ -+ region->offset = 8; -+ region->length = 40; -+ -+ return 0; -+} -+ -+static int xt26g0xa_ooblayout_free(struct mtd_info *mtd, int section, -+ struct mtd_oob_region *region) -+{ -+ if (section) -+ return -ERANGE; -+ -+ region->offset = 1; -+ region->length = 7; -+ -+ return 0; -+} -+ -+static const struct mtd_ooblayout_ops xt26g0xa_ooblayout = { -+ .ecc = xt26g0xa_ooblayout_ecc, -+ .free = xt26g0xa_ooblayout_free, -+}; -+ -+static int xt26g0xa_ecc_get_status(struct spinand_device *spinand, -+ u8 status) -+{ -+ switch (status & XT26G0XA_STATUS_ECC_MASK) { -+ case XT26G0XA_STATUS_ECC_NO_DETECTED: -+ return 0; -+ case XT26G0XA_STATUS_ECC_8_CORRECTED: -+ return 8; -+ case XT26G0XA_STATUS_ECC_UNCOR_ERROR: -+ return -EBADMSG; -+ default: /* (1 << 2) through (7 << 2) are 1-7 corrected errors */ -+ return (status & XT26G0XA_STATUS_ECC_MASK) >> 2; -+ } -+ -+ return -EINVAL; -+} -+ -+static const struct spinand_info xtx_spinand_table[] = { -+ SPINAND_INFO("XT26G01A", -+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xE1), -+ NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), -+ NAND_ECCREQ(8, 512), -+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants, -+ &write_cache_variants, -+ &update_cache_variants), -+ SPINAND_HAS_QE_BIT, -+ SPINAND_ECCINFO(&xt26g0xa_ooblayout, -+ xt26g0xa_ecc_get_status)), -+ SPINAND_INFO("XT26G02A", -+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xE2), -+ NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), -+ NAND_ECCREQ(8, 512), -+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants, -+ &write_cache_variants, -+ &update_cache_variants), -+ SPINAND_HAS_QE_BIT, -+ SPINAND_ECCINFO(&xt26g0xa_ooblayout, -+ xt26g0xa_ecc_get_status)), -+ SPINAND_INFO("XT26G04A", -+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xE3), -+ NAND_MEMORG(1, 2048, 64, 128, 2048, 40, 1, 1, 1), -+ NAND_ECCREQ(8, 512), -+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants, -+ &write_cache_variants, -+ &update_cache_variants), -+ SPINAND_HAS_QE_BIT, -+ SPINAND_ECCINFO(&xt26g0xa_ooblayout, -+ xt26g0xa_ecc_get_status)), -+}; -+ -+static const struct spinand_manufacturer_ops xtx_spinand_manuf_ops = { -+}; -+ -+const struct spinand_manufacturer xtx_spinand_manufacturer = { -+ .id = SPINAND_MFR_XTX, -+ .name = "XTX", -+ .chips = xtx_spinand_table, -+ .nchips = ARRAY_SIZE(xtx_spinand_table), -+ .ops = &xtx_spinand_manuf_ops, -+}; ---- a/include/linux/mtd/spinand.h -+++ b/include/linux/mtd/spinand.h -@@ -266,6 +266,7 @@ extern const struct spinand_manufacturer - extern const struct spinand_manufacturer paragon_spinand_manufacturer; - extern const struct spinand_manufacturer toshiba_spinand_manufacturer; - extern const struct spinand_manufacturer winbond_spinand_manufacturer; -+extern const struct spinand_manufacturer xtx_spinand_manufacturer; - - /** - * struct spinand_op_variants - SPI NAND operation variants diff --git a/root/target/linux/generic/pending-5.15/484-mtd-spi-nor-add-esmt-f25l16pa.patch b/root/target/linux/generic/pending-5.15/484-mtd-spi-nor-add-esmt-f25l16pa.patch deleted file mode 100755 index b2f0b92a..00000000 --- a/root/target/linux/generic/pending-5.15/484-mtd-spi-nor-add-esmt-f25l16pa.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/drivers/mtd/spi-nor/esmt.c -+++ b/drivers/mtd/spi-nor/esmt.c -@@ -10,6 +10,8 @@ - - static const struct flash_info esmt_parts[] = { - /* ESMT */ -+ { "f25l16pa-2s", INFO(0x8c2115, 0, 64 * 1024, 32, -+ SECT_4K | SPI_NOR_HAS_LOCK) }, - { "f25l32pa", INFO(0x8c2016, 0, 64 * 1024, 64, - SECT_4K | SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE) }, - { "f25l32qa", INFO(0x8c4116, 0, 64 * 1024, 64, diff --git a/root/target/linux/generic/pending-5.15/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch b/root/target/linux/generic/pending-5.15/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/491-ubi-auto-create-ubiblock-device-for-rootfs.patch b/root/target/linux/generic/pending-5.15/491-ubi-auto-create-ubiblock-device-for-rootfs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch b/root/target/linux/generic/pending-5.15/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch deleted file mode 100755 index c27aee8f..00000000 --- a/root/target/linux/generic/pending-5.15/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch +++ /dev/null @@ -1,51 +0,0 @@ -From: Daniel Golle -Subject: try auto-mounting ubi0:rootfs in init/do_mounts.c - -Signed-off-by: Daniel Golle ---- - init/do_mounts.c | 26 +++++++++++++++++++++++++- - 1 file changed, 25 insertions(+), 1 deletion(-) - ---- a/init/do_mounts.c -+++ b/init/do_mounts.c -@@ -447,7 +447,28 @@ retry: - out: - put_page(page); - } -- -+ -+static int __init mount_ubi_rootfs(void) -+{ -+ int flags = MS_SILENT; -+ int err, tried = 0; -+ -+ while (tried < 2) { -+ err = do_mount_root("ubi0:rootfs", "ubifs", flags, \ -+ root_mount_data); -+ switch (err) { -+ case -EACCES: -+ flags |= MS_RDONLY; -+ tried++; -+ break; -+ default: -+ return err; -+ } -+ } -+ -+ return -EINVAL; -+} -+ - #ifdef CONFIG_ROOT_NFS - - #define NFSROOT_TIMEOUT_MIN 5 -@@ -580,6 +601,10 @@ void __init mount_root(void) - return; - } - #endif -+#ifdef CONFIG_MTD_ROOTFS_ROOT_DEV -+ if (!mount_ubi_rootfs()) -+ return; -+#endif - if (ROOT_DEV == 0 && root_device_name && root_fs_names) { - if (mount_nodev_root() == 0) - return; diff --git a/root/target/linux/generic/pending-5.15/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch b/root/target/linux/generic/pending-5.15/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/494-mtd-ubi-add-EOF-marker-support.patch b/root/target/linux/generic/pending-5.15/494-mtd-ubi-add-EOF-marker-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/495-mtd-core-add-get_mtd_device_by_node.patch b/root/target/linux/generic/pending-5.15/495-mtd-core-add-get_mtd_device_by_node.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/496-dt-bindings-add-bindings-for-mtd-concat-devices.patch b/root/target/linux/generic/pending-5.15/496-dt-bindings-add-bindings-for-mtd-concat-devices.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch b/root/target/linux/generic/pending-5.15/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch old mode 100755 new mode 100644 index 32168015..3f236228 --- a/root/target/linux/generic/pending-5.15/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch +++ b/root/target/linux/generic/pending-5.15/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch @@ -43,7 +43,7 @@ Signed-off-by: Bernhard Frauendienst --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig -@@ -241,4 +241,6 @@ source "drivers/mtd/ubi/Kconfig" +@@ -239,4 +239,6 @@ source "drivers/mtd/ubi/Kconfig" source "drivers/mtd/hyperbus/Kconfig" diff --git a/root/target/linux/generic/pending-5.15/500-fs_cdrom_dependencies.patch b/root/target/linux/generic/pending-5.15/500-fs_cdrom_dependencies.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/530-jffs2_make_lzma_available.patch b/root/target/linux/generic/pending-5.15/530-jffs2_make_lzma_available.patch old mode 100755 new mode 100644 index 01aba80e..cf2ab71d --- a/root/target/linux/generic/pending-5.15/530-jffs2_make_lzma_available.patch +++ b/root/target/linux/generic/pending-5.15/530-jffs2_make_lzma_available.patch @@ -1087,7 +1087,7 @@ Signed-off-by: Alexandros C. Couloumbis #define JFFS2_NODE_ACCURATE 0x2000 --- a/lib/Kconfig +++ b/lib/Kconfig -@@ -336,6 +336,12 @@ config ZSTD_DECOMPRESS +@@ -330,6 +330,12 @@ config ZSTD_DECOMPRESS source "lib/xz/Kconfig" diff --git a/root/target/linux/generic/pending-5.15/532-jffs2_eofdetect.patch b/root/target/linux/generic/pending-5.15/532-jffs2_eofdetect.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/600-netfilter_conntrack_flush.patch b/root/target/linux/generic/pending-5.15/600-netfilter_conntrack_flush.patch old mode 100755 new mode 100644 index a88e3d7d..f4b815c8 --- a/root/target/linux/generic/pending-5.15/600-netfilter_conntrack_flush.patch +++ b/root/target/linux/generic/pending-5.15/600-netfilter_conntrack_flush.patch @@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau #include #ifdef CONFIG_SYSCTL #include -@@ -462,6 +463,56 @@ static int ct_cpu_seq_show(struct seq_fi +@@ -459,6 +460,56 @@ static int ct_cpu_seq_show(struct seq_fi return 0; } @@ -74,7 +74,7 @@ Signed-off-by: Felix Fietkau static const struct seq_operations ct_cpu_seq_ops = { .start = ct_cpu_seq_start, .next = ct_cpu_seq_next, -@@ -475,8 +526,9 @@ static int nf_conntrack_standalone_init_ +@@ -472,8 +523,9 @@ static int nf_conntrack_standalone_init_ kuid_t root_uid; kgid_t root_gid; diff --git a/root/target/linux/generic/pending-5.15/610-netfilter_match_bypass_default_checks.patch b/root/target/linux/generic/pending-5.15/610-netfilter_match_bypass_default_checks.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/611-netfilter_match_bypass_default_table.patch b/root/target/linux/generic/pending-5.15/611-netfilter_match_bypass_default_table.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/612-netfilter_match_reduce_memory_access.patch b/root/target/linux/generic/pending-5.15/612-netfilter_match_reduce_memory_access.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/613-netfilter_optional_tcp_window_check.patch b/root/target/linux/generic/pending-5.15/613-netfilter_optional_tcp_window_check.patch old mode 100755 new mode 100644 index 249c3c8a..53abd9f7 --- a/root/target/linux/generic/pending-5.15/613-netfilter_optional_tcp_window_check.patch +++ b/root/target/linux/generic/pending-5.15/613-netfilter_optional_tcp_window_check.patch @@ -8,42 +8,62 @@ Signed-off-by: Felix Fietkau --- a/net/netfilter/nf_conntrack_proto_tcp.c +++ b/net/netfilter/nf_conntrack_proto_tcp.c -@@ -465,6 +465,9 @@ static bool tcp_in_window(struct nf_conn +@@ -31,6 +31,9 @@ + #include + #include + ++/* Do not check the TCP window for incoming packets */ ++static int nf_ct_tcp_no_window_check __read_mostly = 1; ++ + /* FIXME: Examine ipfilter's timeouts and conntrack transitions more + closely. They're more complex. --RR */ + +@@ -465,6 +468,9 @@ static bool tcp_in_window(struct nf_conn s32 receiver_offset; bool res, in_recv_win; -+ if (net->ct.sysctl_no_window_check) ++ if (nf_ct_tcp_no_window_check) + return true; + /* * Get the required data from the packet. */ -@@ -1151,7 +1154,7 @@ int nf_conntrack_tcp_packet(struct nf_co +@@ -1151,7 +1157,7 @@ int nf_conntrack_tcp_packet(struct nf_co IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED && timeouts[new_state] > timeouts[TCP_CONNTRACK_UNACK]) timeout = timeouts[TCP_CONNTRACK_UNACK]; - else if (ct->proto.tcp.last_win == 0 && -+ else if (!net->ct.sysctl_no_window_check && ct->proto.tcp.last_win == 0 && ++ else if (!nf_ct_tcp_no_window_check && ct->proto.tcp.last_win == 0 && timeouts[new_state] > timeouts[TCP_CONNTRACK_RETRANS]) timeout = timeouts[TCP_CONNTRACK_RETRANS]; else --- a/net/netfilter/nf_conntrack_standalone.c +++ b/net/netfilter/nf_conntrack_standalone.c -@@ -671,6 +671,7 @@ enum nf_ct_sysctl_index { - NF_SYSCTL_CT_LWTUNNEL, +@@ -25,6 +25,9 @@ + #include + #include + ++/* Do not check the TCP window for incoming packets */ ++static int nf_ct_tcp_no_window_check __read_mostly = 1; ++ + static bool enable_hooks __read_mostly; + MODULE_PARM_DESC(enable_hooks, "Always enable conntrack hooks"); + module_param(enable_hooks, bool, 0000); +@@ -665,6 +668,7 @@ enum nf_ct_sysctl_index { + NF_SYSCTL_CT_PROTO_TIMEOUT_GRE_STREAM, #endif + NF_SYSCTL_CT_PROTO_TCP_NO_WINDOW_CHECK, __NF_SYSCTL_CT_LAST_SYSCTL, }; -@@ -1026,6 +1027,13 @@ static struct ctl_table nf_ct_sysctl_tab - .proc_handler = nf_hooks_lwtunnel_sysctl_handler, +@@ -1011,6 +1015,13 @@ static struct ctl_table nf_ct_sysctl_tab + .proc_handler = proc_dointvec_jiffies, }, #endif + [NF_SYSCTL_CT_PROTO_TCP_NO_WINDOW_CHECK] = { + .procname = "nf_conntrack_tcp_no_window_check", -+ .data = &init_net.ct.sysctl_no_window_check, ++ .data = &nf_ct_tcp_no_window_check, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = proc_dointvec, @@ -51,29 +71,3 @@ Signed-off-by: Felix Fietkau {} }; -@@ -1153,6 +1161,7 @@ static int nf_conntrack_standalone_init_ - #ifdef CONFIG_NF_CONNTRACK_EVENTS - table[NF_SYSCTL_CT_EVENTS].data = &net->ct.sysctl_events; - #endif -+ table[NF_SYSCTL_CT_PROTO_TCP_NO_WINDOW_CHECK].data = &net->ct.sysctl_no_window_check; - #ifdef CONFIG_NF_CONNTRACK_TIMESTAMP - table[NF_SYSCTL_CT_TIMESTAMP].data = &net->ct.sysctl_tstamp; - #endif -@@ -1222,6 +1231,7 @@ static int nf_conntrack_pernet_init(stru - int ret; - - net->ct.sysctl_checksum = 1; -+ net->ct.sysctl_no_window_check = 1; - - ret = nf_conntrack_standalone_init_sysctl(net); - if (ret < 0) ---- a/include/net/netns/conntrack.h -+++ b/include/net/netns/conntrack.h -@@ -109,6 +109,7 @@ struct netns_ct { - u8 sysctl_auto_assign_helper; - u8 sysctl_tstamp; - u8 sysctl_checksum; -+ u8 sysctl_no_window_check; - - struct ct_pcpu __percpu *pcpu_lists; - struct ip_conntrack_stat __percpu *stat; diff --git a/root/target/linux/generic/pending-5.15/620-net_sched-codel-do-not-defer-queue-length-update.patch b/root/target/linux/generic/pending-5.15/620-net_sched-codel-do-not-defer-queue-length-update.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/630-packet_socket_type.patch b/root/target/linux/generic/pending-5.15/630-packet_socket_type.patch old mode 100755 new mode 100644 index 7f646b5a..92db60b8 --- a/root/target/linux/generic/pending-5.15/630-packet_socket_type.patch +++ b/root/target/linux/generic/pending-5.15/630-packet_socket_type.patch @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau #define PACKET_FANOUT_LB 1 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -1821,6 +1821,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1820,6 +1820,7 @@ static int packet_rcv_spkt(struct sk_buf { struct sock *sk; struct sockaddr_pkt *spkt; @@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau /* * When we registered the protocol we saved the socket in the data -@@ -1828,6 +1829,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1827,6 +1828,7 @@ static int packet_rcv_spkt(struct sk_buf */ sk = pt->af_packet_priv; @@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau /* * Yank back the headers [hope the device set this -@@ -1840,7 +1842,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1839,7 +1841,7 @@ static int packet_rcv_spkt(struct sk_buf * so that this procedure is noop. */ @@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau goto out; if (!net_eq(dev_net(dev), sock_net(sk))) -@@ -2078,12 +2080,12 @@ static int packet_rcv(struct sk_buff *sk +@@ -2077,12 +2079,12 @@ static int packet_rcv(struct sk_buff *sk unsigned int snaplen, res; bool is_drop_n_account = false; @@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -2209,12 +2211,12 @@ static int tpacket_rcv(struct sk_buff *s +@@ -2208,12 +2210,12 @@ static int tpacket_rcv(struct sk_buff *s BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48); @@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3318,6 +3320,7 @@ static int packet_create(struct net *net +@@ -3320,6 +3322,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3951,6 +3954,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3953,6 +3956,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -4007,6 +4020,13 @@ static int packet_getsockopt(struct sock +@@ -4009,6 +4022,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/root/target/linux/generic/pending-5.15/655-increase_skb_pad.patch b/root/target/linux/generic/pending-5.15/655-increase_skb_pad.patch old mode 100755 new mode 100644 index 98d9afb6..c7d35f20 --- a/root/target/linux/generic/pending-5.15/655-increase_skb_pad.patch +++ b/root/target/linux/generic/pending-5.15/655-increase_skb_pad.patch @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2724,7 +2724,7 @@ static inline int pskb_network_may_pull( +@@ -2703,7 +2703,7 @@ static inline int pskb_network_may_pull( * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8) */ #ifndef NET_SKB_PAD diff --git a/root/target/linux/generic/pending-5.15/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/root/target/linux/generic/pending-5.15/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch old mode 100755 new mode 100644 index 09efa1e7..45c95c21 --- a/root/target/linux/generic/pending-5.15/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch +++ b/root/target/linux/generic/pending-5.15/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch @@ -361,7 +361,7 @@ Signed-off-by: Steven Barth memcpy(p->name, u->name, sizeof(u->name)); } -@@ -1949,6 +2119,15 @@ static int ip6_tnl_validate(struct nlatt +@@ -1948,6 +2118,15 @@ static int ip6_tnl_validate(struct nlatt return 0; } @@ -377,7 +377,7 @@ Signed-off-by: Steven Barth static void ip6_tnl_netlink_parms(struct nlattr *data[], struct __ip6_tnl_parm *parms) { -@@ -1986,6 +2165,46 @@ static void ip6_tnl_netlink_parms(struct +@@ -1985,6 +2164,46 @@ static void ip6_tnl_netlink_parms(struct if (data[IFLA_IPTUN_FWMARK]) parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]); @@ -424,7 +424,7 @@ Signed-off-by: Steven Barth } static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[], -@@ -2101,6 +2320,12 @@ static void ip6_tnl_dellink(struct net_d +@@ -2100,6 +2319,12 @@ static void ip6_tnl_dellink(struct net_d static size_t ip6_tnl_get_size(const struct net_device *dev) { @@ -437,7 +437,7 @@ Signed-off-by: Steven Barth return /* IFLA_IPTUN_LINK */ nla_total_size(4) + -@@ -2130,6 +2355,24 @@ static size_t ip6_tnl_get_size(const str +@@ -2129,6 +2354,24 @@ static size_t ip6_tnl_get_size(const str nla_total_size(0) + /* IFLA_IPTUN_FWMARK */ nla_total_size(4) + @@ -462,7 +462,7 @@ Signed-off-by: Steven Barth 0; } -@@ -2137,6 +2380,9 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -2136,6 +2379,9 @@ static int ip6_tnl_fill_info(struct sk_b { struct ip6_tnl *tunnel = netdev_priv(dev); struct __ip6_tnl_parm *parm = &tunnel->parms; @@ -472,7 +472,7 @@ Signed-off-by: Steven Barth if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) || nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) || -@@ -2146,9 +2392,27 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -2145,9 +2391,27 @@ static int ip6_tnl_fill_info(struct sk_b nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) || nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) || nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) || @@ -501,7 +501,7 @@ Signed-off-by: Steven Barth if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) || nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) || nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) || -@@ -2188,6 +2452,7 @@ static const struct nla_policy ip6_tnl_p +@@ -2187,6 +2451,7 @@ static const struct nla_policy ip6_tnl_p [IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 }, [IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG }, [IFLA_IPTUN_FWMARK] = { .type = NLA_U32 }, diff --git a/root/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/root/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch old mode 100755 new mode 100644 index 81a9b38e..9a398de6 --- a/root/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/root/target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -20,7 +20,7 @@ Signed-off-by: Jonas Gorski --- a/include/net/netns/ipv6.h +++ b/include/net/netns/ipv6.h -@@ -84,6 +84,7 @@ struct netns_ipv6 { +@@ -82,6 +82,7 @@ struct netns_ipv6 { unsigned int fib6_routes_require_src; #endif struct rt6_info *ip6_prohibit_entry; diff --git a/root/target/linux/generic/pending-5.15/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch b/root/target/linux/generic/pending-5.15/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/root/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch old mode 100755 new mode 100644 index 2fcfce82..e621bb90 --- a/root/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/root/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -2068,6 +2068,8 @@ struct net_device { +@@ -2051,6 +2051,8 @@ struct net_device { struct netdev_hw_addr_list mc; struct netdev_hw_addr_list dev_addrs; @@ -22,17 +22,17 @@ Signed-off-by: Felix Fietkau #endif --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -852,6 +852,7 @@ struct sk_buff { - #ifdef CONFIG_IPV6_NDISC_NODETYPE - __u8 ndisc_nodetype:2; +@@ -870,6 +870,7 @@ struct sk_buff { + #ifdef CONFIG_TLS_DEVICE + __u8 decrypted:1; #endif + __u8 gro_skip:1; - __u8 ipvs_property:1; - __u8 inner_protocol_type:1; + #ifdef CONFIG_NET_SCHED + __u16 tc_index; /* traffic control index */ --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -6051,6 +6051,9 @@ static enum gro_result dev_gro_receive(s +@@ -6108,6 +6108,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; -@@ -8065,6 +8068,48 @@ static void __netdev_adjacent_dev_unlink +@@ -8118,6 +8121,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, -@@ -8116,6 +8161,7 @@ static int __netdev_upper_dev_link(struc +@@ -8169,6 +8214,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); -@@ -8212,6 +8258,7 @@ static void __netdev_upper_dev_unlink(st +@@ -8265,6 +8311,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); -@@ -9031,6 +9078,7 @@ int dev_set_mac_address(struct net_devic +@@ -9084,6 +9131,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; @@ -117,7 +117,7 @@ Signed-off-by: Felix Fietkau return 0; --- a/net/ethernet/eth.c +++ b/net/ethernet/eth.c -@@ -142,6 +142,18 @@ u32 eth_get_headlen(const struct net_dev +@@ -144,6 +144,18 @@ u32 eth_get_headlen(const struct net_dev } EXPORT_SYMBOL(eth_get_headlen); @@ -136,7 +136,7 @@ Signed-off-by: Felix Fietkau /** * eth_type_trans - determine the packet's protocol ID. * @skb: received socket data -@@ -173,6 +185,10 @@ __be16 eth_type_trans(struct sk_buff *sk +@@ -175,6 +187,10 @@ __be16 eth_type_trans(struct sk_buff *sk } else { skb->pkt_type = PACKET_OTHERHOST; } diff --git a/root/target/linux/generic/pending-5.15/682-of_net-add-mac-address-increment-support.patch b/root/target/linux/generic/pending-5.15/682-of_net-add-mac-address-increment-support.patch deleted file mode 100755 index 43a06a23..00000000 --- a/root/target/linux/generic/pending-5.15/682-of_net-add-mac-address-increment-support.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 844c273286f328acf0dab5fbd5d864366b4904dc Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Tue, 30 Mar 2021 18:21:14 +0200 -Subject: [PATCH] of_net: add mac-address-increment support - -Lots of embedded devices use the mac-address of other interface -extracted from nvmem cells and increments it by one or two. Add two -bindings to integrate this and directly use the right mac-address for -the interface. Some example are some routers that use the gmac -mac-address stored in the art partition and increments it by one for the -wifi. mac-address-increment-byte bindings is used to tell what byte of -the mac-address has to be increased (if not defined the last byte is -increased) and mac-address-increment tells how much the byte decided -early has to be increased. - -Signed-off-by: Ansuel Smith ---- - drivers/of/of_net.c | 43 +++++++++++++++++++++++++++++++++++++++---- - 1 file changed, 39 insertions(+), 4 deletions(-) - ---- a/drivers/of/of_net.c -+++ b/drivers/of/of_net.c -@@ -119,27 +119,62 @@ static int of_get_mac_addr_nvmem(struct - * this case, the real MAC is in 'local-mac-address', and 'mac-address' exists - * but is all zeros. - * -+ * DT can tell the system to increment the mac-address after is extracted by -+ * using: -+ * - mac-address-increment-byte to decide what byte to increase -+ * (if not defined is increased the last byte) -+ * - mac-address-increment to decide how much to increase. The value WILL -+ * overflow to other bytes if the increment is over 255 or the total -+ * increment will exceed 255 of the current byte. -+ * (example 00:01:02:03:04:ff + 1 == 00:01:02:03:05:00) -+ * (example 00:01:02:03:04:fe + 5 == 00:01:02:03:05:03) -+ * - * Return: 0 on success and errno in case of error. - */ - int of_get_mac_address(struct device_node *np, u8 *addr) - { -+ u32 inc_idx, mac_inc, mac_val; - int ret; - -+ /* Check first if the increment byte is present and valid. -+ * If not set assume to increment the last byte if found. -+ */ -+ if (of_property_read_u32(np, "mac-address-increment-byte", &inc_idx)) -+ inc_idx = 5; -+ if (inc_idx < 3 || inc_idx > 5) -+ return -EINVAL; -+ - if (!np) - return -ENODEV; - - ret = of_get_mac_addr(np, "mac-address", addr); - if (!ret) -- return 0; -+ goto found; - - ret = of_get_mac_addr(np, "local-mac-address", addr); - if (!ret) -- return 0; -+ goto found; - - ret = of_get_mac_addr(np, "address", addr); - if (!ret) -- return 0; -+ goto found; -+ -+ ret = of_get_mac_addr_nvmem(np, addr); -+ if (ret) -+ return ret; -+ -+found: -+ if (!of_property_read_u32(np, "mac-address-increment", &mac_inc)) { -+ /* Convert to a contiguous value */ -+ mac_val = (addr[3] << 16) + (addr[4] << 8) + addr[5]; -+ mac_val += mac_inc << 8 * (5-inc_idx); -+ -+ /* Apply the incremented value handling overflow case */ -+ addr[3] = (mac_val >> 16) & 0xff; -+ addr[4] = (mac_val >> 8) & 0xff; -+ addr[5] = (mac_val >> 0) & 0xff; -+ } - -- return of_get_mac_addr_nvmem(np, addr); -+ return ret; - } - EXPORT_SYMBOL(of_get_mac_address); diff --git a/root/target/linux/generic/pending-5.15/683-of_net-add-mac-address-to-of-tree.patch b/root/target/linux/generic/pending-5.15/683-of_net-add-mac-address-to-of-tree.patch deleted file mode 100755 index 50bcf73c..00000000 --- a/root/target/linux/generic/pending-5.15/683-of_net-add-mac-address-to-of-tree.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- a/drivers/of/of_net.c -+++ b/drivers/of/of_net.c -@@ -95,6 +95,27 @@ static int of_get_mac_addr_nvmem(struct - return 0; - } - -+static int of_add_mac_address(struct device_node *np, u8* addr) -+{ -+ struct property *prop; -+ -+ prop = kzalloc(sizeof(*prop), GFP_KERNEL); -+ if (!prop) -+ return -ENOMEM; -+ -+ prop->name = "mac-address"; -+ prop->length = ETH_ALEN; -+ prop->value = kmemdup(addr, ETH_ALEN, GFP_KERNEL); -+ if (!prop->value || of_update_property(np, prop)) -+ goto free; -+ -+ return 0; -+free: -+ kfree(prop->value); -+ kfree(prop); -+ return -ENOMEM; -+} -+ - /** - * of_get_mac_address() - * @np: Caller's Device Node -@@ -175,6 +196,7 @@ found: - addr[5] = (mac_val >> 0) & 0xff; - } - -+ of_add_mac_address(np, addr); - return ret; - } - EXPORT_SYMBOL(of_get_mac_address); diff --git a/root/target/linux/generic/pending-5.15/700-net-ethernet-mtk_eth_soc-avoid-creating-duplicate-of.patch b/root/target/linux/generic/pending-5.15/700-net-ethernet-mtk_eth_soc-avoid-creating-duplicate-of.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/703-phy-add-detach-callback-to-struct-phy_driver.patch b/root/target/linux/generic/pending-5.15/703-phy-add-detach-callback-to-struct-phy_driver.patch old mode 100755 new mode 100644 index 723dbacd..016ed94a --- a/root/target/linux/generic/pending-5.15/703-phy-add-detach-callback-to-struct-phy_driver.patch +++ b/root/target/linux/generic/pending-5.15/703-phy-add-detach-callback-to-struct-phy_driver.patch @@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1715,6 +1715,9 @@ void phy_detach(struct phy_device *phyde +@@ -1701,6 +1701,9 @@ void phy_detach(struct phy_device *phyde struct module *ndev_owner = NULL; struct mii_bus *bus; diff --git a/root/target/linux/generic/pending-5.15/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch b/root/target/linux/generic/pending-5.15/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch deleted file mode 100755 index 70e45d13..00000000 --- a/root/target/linux/generic/pending-5.15/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch +++ /dev/null @@ -1,174 +0,0 @@ -From: Felix Fietkau -Date: Fri, 27 Aug 2021 12:22:32 +0200 -Subject: [PATCH] bridge: add knob for filtering rx/tx BPDU packets on a port - -Some devices (e.g. wireless APs) can't have devices behind them be part of -a bridge topology with redundant links, due to address limitations. -Additionally, broadcast traffic on these devices is somewhat expensive, due to -the low data rate and wakeups of clients in powersave mode. -This knob can be used to ensure that BPDU packets are never sent or forwarded -to/from these devices - -Signed-off-by: Felix Fietkau ---- - ---- a/include/linux/if_bridge.h -+++ b/include/linux/if_bridge.h -@@ -58,6 +58,7 @@ struct br_ip_list { - #define BR_MRP_LOST_CONT BIT(18) - #define BR_MRP_LOST_IN_CONT BIT(19) - #define BR_TX_FWD_OFFLOAD BIT(20) -+#define BR_BPDU_FILTER BIT(21) - - #define BR_DEFAULT_AGEING_TIME (300 * HZ) - ---- a/net/bridge/br_forward.c -+++ b/net/bridge/br_forward.c -@@ -199,6 +199,7 @@ out: - void br_flood(struct net_bridge *br, struct sk_buff *skb, - enum br_pkt_type pkt_type, bool local_rcv, bool local_orig) - { -+ const unsigned char *dest = eth_hdr(skb)->h_dest; - struct net_bridge_port *prev = NULL; - struct net_bridge_port *p; - -@@ -214,6 +215,10 @@ void br_flood(struct net_bridge *br, str - case BR_PKT_MULTICAST: - if (!(p->flags & BR_MCAST_FLOOD) && skb->dev != br->dev) - continue; -+ if ((p->flags & BR_BPDU_FILTER) && -+ unlikely(is_link_local_ether_addr(dest) && -+ dest[5] == 0)) -+ continue; - break; - case BR_PKT_BROADCAST: - if (!(p->flags & BR_BCAST_FLOOD) && skb->dev != br->dev) ---- a/net/bridge/br_input.c -+++ b/net/bridge/br_input.c -@@ -319,6 +319,8 @@ static rx_handler_result_t br_handle_fra - fwd_mask |= p->group_fwd_mask; - switch (dest[5]) { - case 0x00: /* Bridge Group Address */ -+ if (p->flags & BR_BPDU_FILTER) -+ goto drop; - /* If STP is turned off, - then must forward to keep loop detection */ - if (p->br->stp_enabled == BR_NO_STP || ---- a/net/bridge/br_sysfs_if.c -+++ b/net/bridge/br_sysfs_if.c -@@ -240,6 +240,7 @@ BRPORT_ATTR_FLAG(multicast_flood, BR_MCA - BRPORT_ATTR_FLAG(broadcast_flood, BR_BCAST_FLOOD); - BRPORT_ATTR_FLAG(neigh_suppress, BR_NEIGH_SUPPRESS); - BRPORT_ATTR_FLAG(isolated, BR_ISOLATED); -+BRPORT_ATTR_FLAG(bpdu_filter, BR_BPDU_FILTER); - - #ifdef CONFIG_BRIDGE_IGMP_SNOOPING - static ssize_t show_multicast_router(struct net_bridge_port *p, char *buf) -@@ -292,6 +293,7 @@ static const struct brport_attribute *br - &brport_attr_group_fwd_mask, - &brport_attr_neigh_suppress, - &brport_attr_isolated, -+ &brport_attr_bpdu_filter, - &brport_attr_backup_port, - NULL - }; ---- a/net/bridge/br_stp_bpdu.c -+++ b/net/bridge/br_stp_bpdu.c -@@ -80,7 +80,8 @@ void br_send_config_bpdu(struct net_brid - { - unsigned char buf[35]; - -- if (p->br->stp_enabled != BR_KERNEL_STP) -+ if (p->br->stp_enabled != BR_KERNEL_STP || -+ (p->flags & BR_BPDU_FILTER)) - return; - - buf[0] = 0; -@@ -127,7 +128,8 @@ void br_send_tcn_bpdu(struct net_bridge_ - { - unsigned char buf[4]; - -- if (p->br->stp_enabled != BR_KERNEL_STP) -+ if (p->br->stp_enabled != BR_KERNEL_STP || -+ (p->flags & BR_BPDU_FILTER)) - return; - - buf[0] = 0; -@@ -172,6 +174,9 @@ void br_stp_rcv(const struct stp_proto * - if (!(br->dev->flags & IFF_UP)) - goto out; - -+ if (p->flags & BR_BPDU_FILTER) -+ goto out; -+ - if (p->state == BR_STATE_DISABLED) - goto out; - ---- a/include/uapi/linux/if_link.h -+++ b/include/uapi/linux/if_link.h -@@ -536,6 +536,7 @@ enum { - IFLA_BRPORT_MRP_IN_OPEN, - IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, - IFLA_BRPORT_MCAST_EHT_HOSTS_CNT, -+ IFLA_BRPORT_BPDU_FILTER, - __IFLA_BRPORT_MAX - }; - #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) ---- a/net/bridge/br_netlink.c -+++ b/net/bridge/br_netlink.c -@@ -184,6 +184,7 @@ static inline size_t br_port_info_size(v - + nla_total_size(1) /* IFLA_BRPORT_VLAN_TUNNEL */ - + nla_total_size(1) /* IFLA_BRPORT_NEIGH_SUPPRESS */ - + nla_total_size(1) /* IFLA_BRPORT_ISOLATED */ -+ + nla_total_size(1) /* IFLA_BRPORT_BPDU_FILTER */ - + nla_total_size(sizeof(struct ifla_bridge_id)) /* IFLA_BRPORT_ROOT_ID */ - + nla_total_size(sizeof(struct ifla_bridge_id)) /* IFLA_BRPORT_BRIDGE_ID */ - + nla_total_size(sizeof(u16)) /* IFLA_BRPORT_DESIGNATED_PORT */ -@@ -269,7 +270,8 @@ static int br_port_fill_attrs(struct sk_ - BR_MRP_LOST_CONT)) || - nla_put_u8(skb, IFLA_BRPORT_MRP_IN_OPEN, - !!(p->flags & BR_MRP_LOST_IN_CONT)) || -- nla_put_u8(skb, IFLA_BRPORT_ISOLATED, !!(p->flags & BR_ISOLATED))) -+ nla_put_u8(skb, IFLA_BRPORT_ISOLATED, !!(p->flags & BR_ISOLATED)) || -+ nla_put_u8(skb, IFLA_BRPORT_BPDU_FILTER, !!(p->flags & BR_BPDU_FILTER))) - return -EMSGSIZE; - - timerval = br_timer_value(&p->message_age_timer); -@@ -829,6 +831,7 @@ static const struct nla_policy br_port_p - [IFLA_BRPORT_ISOLATED] = { .type = NLA_U8 }, - [IFLA_BRPORT_BACKUP_PORT] = { .type = NLA_U32 }, - [IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT] = { .type = NLA_U32 }, -+ [IFLA_BRPORT_BPDU_FILTER] = { .type = NLA_U8 }, - }; - - /* Change the state of the port and notify spanning tree */ -@@ -893,6 +896,7 @@ static int br_setport(struct net_bridge_ - br_set_port_flag(p, tb, IFLA_BRPORT_VLAN_TUNNEL, BR_VLAN_TUNNEL); - br_set_port_flag(p, tb, IFLA_BRPORT_NEIGH_SUPPRESS, BR_NEIGH_SUPPRESS); - br_set_port_flag(p, tb, IFLA_BRPORT_ISOLATED, BR_ISOLATED); -+ br_set_port_flag(p, tb, IFLA_BRPORT_BPDU_FILTER, BR_BPDU_FILTER); - - changed_mask = old_flags ^ p->flags; - ---- a/net/core/rtnetlink.c -+++ b/net/core/rtnetlink.c -@@ -55,7 +55,7 @@ - #include - - #define RTNL_MAX_TYPE 50 --#define RTNL_SLAVE_MAX_TYPE 40 -+#define RTNL_SLAVE_MAX_TYPE 41 - - struct rtnl_link { - rtnl_doit_func doit; -@@ -4685,7 +4685,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu - brport_nla_put_flag(skb, flags, mask, - IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) || - brport_nla_put_flag(skb, flags, mask, -- IFLA_BRPORT_BCAST_FLOOD, BR_BCAST_FLOOD)) { -+ IFLA_BRPORT_BCAST_FLOOD, BR_BCAST_FLOOD) || -+ brport_nla_put_flag(skb, flags, mask, -+ IFLA_BRPORT_BPDU_FILTER, BR_BPDU_FILTER)) { - nla_nest_cancel(skb, protinfo); - goto nla_put_failure; - } diff --git a/root/target/linux/generic/pending-5.15/735-net-phy-at803x-fix-at8033-sgmii-mode.patch b/root/target/linux/generic/pending-5.15/735-net-phy-at803x-fix-at8033-sgmii-mode.patch new file mode 100644 index 00000000..33a994a9 --- /dev/null +++ b/root/target/linux/generic/pending-5.15/735-net-phy-at803x-fix-at8033-sgmii-mode.patch @@ -0,0 +1,51 @@ +From: Roman Yeryomin +Subject: kernel: add at803x fix for sgmii mode + +Some (possibly broken) bootloaders incorreclty initialize at8033 +phy. This patch enables sgmii autonegotiation mode. + +[john@phrozen.org: felix added this to his upstream queue] + +Signed-off-by: Roman Yeryomin +--- + drivers/net/phy/at803x.c | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +--- a/drivers/net/phy/at803x.c ++++ b/drivers/net/phy/at803x.c +@@ -76,6 +76,7 @@ + #define AT803X_LOC_MAC_ADDR_32_47_OFFSET 0x804A + #define AT803X_REG_CHIP_CONFIG 0x1f + #define AT803X_BT_BX_REG_SEL 0x8000 ++#define AT803X_SGMII_ANEG_EN 0x1000 + + #define AT803X_DEBUG_ADDR 0x1D + #define AT803X_DEBUG_DATA 0x1E +@@ -790,6 +791,27 @@ static int at8031_pll_config(struct phy_ + static int at803x_config_init(struct phy_device *phydev) + { + int ret; ++ u32 v; ++ ++ if (phydev->drv->phy_id == ATH8031_PHY_ID && ++ phydev->interface == PHY_INTERFACE_MODE_SGMII) ++ { ++ v = phy_read(phydev, AT803X_REG_CHIP_CONFIG); ++ /* select SGMII/fiber page */ ++ ret = phy_write(phydev, AT803X_REG_CHIP_CONFIG, ++ v & ~AT803X_BT_BX_REG_SEL); ++ if (ret) ++ return ret; ++ /* enable SGMII autonegotiation */ ++ ret = phy_write(phydev, MII_BMCR, AT803X_SGMII_ANEG_EN); ++ if (ret) ++ return ret; ++ /* select copper page */ ++ ret = phy_write(phydev, AT803X_REG_CHIP_CONFIG, ++ v | AT803X_BT_BX_REG_SEL); ++ if (ret) ++ return ret; ++ } + + /* The RX and TX delay default is: + * after HW reset: RX delay enabled and TX delay disabled diff --git a/root/target/linux/generic/pending-5.15/760-net-dsa-mv88e6xxx-fix-vlan-setup.patch b/root/target/linux/generic/pending-5.15/760-net-dsa-mv88e6xxx-fix-vlan-setup.patch old mode 100755 new mode 100644 index 6287d202..ecc3a384 --- a/root/target/linux/generic/pending-5.15/760-net-dsa-mv88e6xxx-fix-vlan-setup.patch +++ b/root/target/linux/generic/pending-5.15/760-net-dsa-mv88e6xxx-fix-vlan-setup.patch @@ -17,11 +17,11 @@ Signed-off-by: DENG Qingfang --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c -@@ -3189,6 +3189,7 @@ static int mv88e6xxx_setup(struct dsa_sw +@@ -3027,6 +3027,7 @@ static int mv88e6xxx_setup(struct dsa_sw chip->ds = ds; ds->slave_mii_bus = mv88e6xxx_default_mdio_bus(chip); + ds->configure_vlan_while_not_filtering = true; - /* Since virtual bridges are mapped in the PVT, the number we support - * depends on the physical switch topology. We need to let DSA figure + mv88e6xxx_reg_lock(chip); + diff --git a/root/target/linux/generic/pending-5.15/761-net-dsa-mt7530-Support-EEE-features.patch b/root/target/linux/generic/pending-5.15/761-net-dsa-mt7530-Support-EEE-features.patch new file mode 100644 index 00000000..405f87ff --- /dev/null +++ b/root/target/linux/generic/pending-5.15/761-net-dsa-mt7530-Support-EEE-features.patch @@ -0,0 +1,103 @@ +From 9cfb2d426c38272f245e9e6f62b3552d1ed5852b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ren=C3=A9=20van=20Dorst?= +Date: Tue, 21 Apr 2020 00:18:08 +0200 +Subject: [PATCH] net: dsa: mt7530: Support EEE features +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: René van Dorst +--- a/drivers/net/dsa/mt7530.c ++++ b/drivers/net/dsa/mt7530.c +@@ -2752,9 +2752,13 @@ static void mt753x_phylink_mac_link_up(s + switch (speed) { + case SPEED_1000: + mcr |= PMCR_FORCE_SPEED_1000; ++ if (priv->eee_enable & BIT(port)) ++ mcr |= PMCR_FORCE_EEE1G; + break; + case SPEED_100: + mcr |= PMCR_FORCE_SPEED_100; ++ if (priv->eee_enable & BIT(port)) ++ mcr |= PMCR_FORCE_EEE100; + break; + } + if (duplex == DUPLEX_FULL) { +@@ -3031,6 +3035,54 @@ static int mt753x_set_mac_eee(struct dsa + + return 0; + } ++ ++static int mt7530_get_mac_eee(struct dsa_switch *ds, int port, ++ struct ethtool_eee *e) ++{ ++ struct mt7530_priv *priv = ds->priv; ++ u32 eeecr, pmsr; ++ ++ e->eee_enabled = !!(priv->eee_enable & BIT(port)); ++ ++ if (e->eee_enabled) { ++ eeecr = mt7530_read(priv, MT7530_PMEEECR_P(port)); ++ e->tx_lpi_enabled = !(eeecr & LPI_MODE_EN); ++ e->tx_lpi_timer = (eeecr >> 4) & 0xFFF; ++ pmsr = mt7530_read(priv, MT7530_PMSR_P(port)); ++ e->eee_active = e->eee_enabled && !!(pmsr & PMSR_EEE1G); ++ } else { ++ e->tx_lpi_enabled = 0; ++ e->tx_lpi_timer = 0; ++ e->eee_active = 0; ++ } ++ ++ return 0; ++} ++ ++static int mt7530_set_mac_eee(struct dsa_switch *ds, int port, ++ struct ethtool_eee *e) ++{ ++ struct mt7530_priv *priv = ds->priv; ++ u32 eeecr; ++ ++ if (e->tx_lpi_enabled && e->tx_lpi_timer > 0xFFF) ++ return -EINVAL; ++ ++ if (e->eee_enabled) { ++ priv->eee_enable |= BIT(port); ++ //MT7530_PMEEECR_P ++ eeecr = mt7530_read(priv, MT7530_PMEEECR_P(port)); ++ eeecr &= 0xFFFF0000; ++ if (!e->tx_lpi_enabled) ++ eeecr |= LPI_MODE_EN; ++ eeecr = LPI_THRESH(e->tx_lpi_timer); ++ mt7530_write(priv, MT7530_PMEEECR_P(port), eeecr); ++ } else { ++ priv->eee_enable &= ~(BIT(port)); ++ } ++ ++ return 0; ++} + + static const struct dsa_switch_ops mt7530_switch_ops = { + .get_tag_protocol = mtk_get_tag_protocol, +--- a/drivers/net/dsa/mt7530.h ++++ b/drivers/net/dsa/mt7530.h +@@ -329,6 +329,12 @@ enum mt7530_vlan_port_attr { + #define MAX_RX_PKT_LEN_1552 0x2 + #define MAX_RX_PKT_LEN_JUMBO 0x3 + ++#define MT7530_PMEEECR_P(x) (0x3004 + (x) * 0x100) ++#define WAKEUP_TIME_1000(x) ((x & 0xFF) << 24) ++#define WAKEUP_TIME_100(x) ((x & 0xFF) << 16) ++#define LPI_THRESH(x) ((x & 0xFFF) << 4) ++#define LPI_MODE_EN BIT(0) ++ + /* Register for MIB */ + #define MT7530_PORT_MIB_COUNTER(x) (0x4000 + (x) * 0x100) + #define MT7530_MIB_CCR 0x4fe0 +@@ -804,6 +810,7 @@ struct mt7530_priv { + unsigned int p5_intf_sel; + u8 mirror_rx; + u8 mirror_tx; ++ u8 eee_enable; + + struct mt7530_port ports[MT7530_NUM_PORTS]; + /* protect among processes for registers access*/ diff --git a/root/target/linux/generic/pending-5.15/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch b/root/target/linux/generic/pending-5.15/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch old mode 100755 new mode 100644 index 6ad9b449..83171f24 --- a/root/target/linux/generic/pending-5.15/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch +++ b/root/target/linux/generic/pending-5.15/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch @@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c -@@ -6310,6 +6310,7 @@ static int mv88e6xxx_register_switch(str +@@ -6144,6 +6144,7 @@ static int mv88e6xxx_register_switch(str ds->ops = &mv88e6xxx_switch_ops; ds->ageing_time_min = chip->info->age_time_coeff; ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX; diff --git a/root/target/linux/generic/pending-5.15/780-ARM-kirkwood-add-missing-linux-if_ether.h-for-ETH_AL.patch b/root/target/linux/generic/pending-5.15/780-ARM-kirkwood-add-missing-linux-if_ether.h-for-ETH_AL.patch deleted file mode 100755 index fcf7892c..00000000 --- a/root/target/linux/generic/pending-5.15/780-ARM-kirkwood-add-missing-linux-if_ether.h-for-ETH_AL.patch +++ /dev/null @@ -1,61 +0,0 @@ -From patchwork Thu Aug 5 22:23:30 2021 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Daniel Golle -X-Patchwork-Id: 12422209 -Date: Thu, 5 Aug 2021 23:23:30 +0100 -From: Daniel Golle -To: linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org, - linux-kernel@vger.kernel.org -Cc: "David S. Miller" , Andrew Lunn , - Michael Walle -Subject: [PATCH] ARM: kirkwood: add missing for ETH_ALEN -Message-ID: -MIME-Version: 1.0 -Content-Disposition: inline -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.34 -Precedence: list -List-Id: -List-Archive: -Sender: "linux-arm-kernel" - -After commit 83216e3988cd1 ("of: net: pass the dst buffer to -of_get_mac_address()") build fails for kirkwood as ETH_ALEN is not -defined. - -arch/arm/mach-mvebu/kirkwood.c: In function 'kirkwood_dt_eth_fixup': -arch/arm/mach-mvebu/kirkwood.c:87:13: error: 'ETH_ALEN' undeclared (first use in this function); did you mean 'ESTALE'? - u8 tmpmac[ETH_ALEN]; - ^~~~~~~~ - ESTALE -arch/arm/mach-mvebu/kirkwood.c:87:13: note: each undeclared identifier is reported only once for each function it appears in -arch/arm/mach-mvebu/kirkwood.c:87:6: warning: unused variable 'tmpmac' [-Wunused-variable] - u8 tmpmac[ETH_ALEN]; - ^~~~~~ -make[5]: *** [scripts/Makefile.build:262: arch/arm/mach-mvebu/kirkwood.o] Error 1 -make[5]: *** Waiting for unfinished jobs.... - -Add missing #include to fix this. - -Cc: David S. Miller -Cc: Andrew Lunn -Cc: Michael Walle -Reported-by: https://buildbot.openwrt.org/master/images/#/builders/56/builds/220/steps/44/logs/stdio -Fixes: 83216e3988cd1 ("of: net: pass the dst buffer to of_get_mac_address()") -Signed-off-by: Daniel Golle ---- - arch/arm/mach-mvebu/kirkwood.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/arch/arm/mach-mvebu/kirkwood.c -+++ b/arch/arm/mach-mvebu/kirkwood.c -@@ -14,6 +14,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/root/target/linux/generic/pending-5.15/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch b/root/target/linux/generic/pending-5.15/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch old mode 100755 new mode 100644 index 478a2cb2..8ea307ea --- a/root/target/linux/generic/pending-5.15/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch +++ b/root/target/linux/generic/pending-5.15/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch @@ -54,14 +54,12 @@ Signed-off-by: RafaÅ‚ MiÅ‚ecki void bcma_prepare_core(struct bcma_bus *bus, struct bcma_device *core) { -- device_initialize(&core->dev); + struct device *dev = &core->dev; + -+ device_initialize(dev); + device_initialize(&core->dev); core->dev.release = bcma_release_core_dev; core->dev.bus = &bcma_bus_type; -- dev_set_name(&core->dev, "bcma%d:%d", bus->num, core->core_index); -+ dev_set_name(dev, "bcma%d:%d", bus->num, core->core_index); + dev_set_name(&core->dev, "bcma%d:%d", bus->num, core->core_index); core->dev.parent = bus->dev; - if (bus->dev) + if (bus->dev) { diff --git a/root/target/linux/generic/pending-5.15/810-pci_disable_common_quirks.patch b/root/target/linux/generic/pending-5.15/810-pci_disable_common_quirks.patch old mode 100755 new mode 100644 index 165ae672..deddd188 --- a/root/target/linux/generic/pending-5.15/810-pci_disable_common_quirks.patch +++ b/root/target/linux/generic/pending-5.15/810-pci_disable_common_quirks.patch @@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos /* * The Mellanox Tavor device gives false positive parity errors. Disable * parity error reporting. -@@ -3351,6 +3352,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I +@@ -3312,6 +3313,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata); @@ -42,7 +42,7 @@ Signed-off-by: Gabor Juhos /* * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. * To work around this, query the size it should be configured to by the -@@ -3376,6 +3379,8 @@ static void quirk_intel_ntb(struct pci_d +@@ -3337,6 +3340,8 @@ static void quirk_intel_ntb(struct pci_d DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb); @@ -51,7 +51,7 @@ Signed-off-by: Gabor Juhos /* * Some BIOS implementations leave the Intel GPU interrupts enabled, even * though no one is handling them (e.g., if the i915 driver is never -@@ -3414,6 +3419,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN +@@ -3375,6 +3380,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); diff --git a/root/target/linux/generic/pending-5.15/811-pci_disable_usb_common_quirks.patch b/root/target/linux/generic/pending-5.15/811-pci_disable_usb_common_quirks.patch old mode 100755 new mode 100644 index 9b0ce710..67406bac --- a/root/target/linux/generic/pending-5.15/811-pci_disable_usb_common_quirks.patch +++ b/root/target/linux/generic/pending-5.15/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 -@@ -495,7 +495,14 @@ extern int usb_hcd_pci_probe(struct pci_ +@@ -497,7 +497,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/root/target/linux/generic/pending-5.15/820-w1-gpio-fix-problem-with-platfom-data-in-w1-gpio.patch b/root/target/linux/generic/pending-5.15/820-w1-gpio-fix-problem-with-platfom-data-in-w1-gpio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/834-ledtrig-libata.patch b/root/target/linux/generic/pending-5.15/834-ledtrig-libata.patch old mode 100755 new mode 100644 index ee911e3c..fddec74d --- a/root/target/linux/generic/pending-5.15/834-ledtrig-libata.patch +++ b/root/target/linux/generic/pending-5.15/834-ledtrig-libata.patch @@ -45,7 +45,7 @@ Signed-off-by: Daniel Golle depends on ACPI --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c -@@ -656,6 +656,19 @@ u64 ata_tf_read_block(const struct ata_t +@@ -650,6 +650,19 @@ u64 ata_tf_read_block(const struct ata_t return block; } @@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle /** * ata_build_rw_tf - Build ATA taskfile for given read/write request * @tf: Target ATA taskfile -@@ -4572,6 +4585,9 @@ struct ata_queued_cmd *ata_qc_new_init(s +@@ -4545,6 +4558,9 @@ struct ata_queued_cmd *ata_qc_new_init(s if (tag < 0) return NULL; } @@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle qc = __ata_qc_from_tag(ap, tag); qc->tag = qc->hw_tag = tag; -@@ -5350,6 +5366,9 @@ struct ata_port *ata_port_alloc(struct a +@@ -5323,6 +5339,9 @@ struct ata_port *ata_port_alloc(struct a ap->stats.unhandled_irq = 1; ap->stats.idle_irq = 1; #endif @@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle ata_sff_port_init(ap); return ap; -@@ -5385,6 +5404,12 @@ static void ata_host_release(struct kref +@@ -5358,6 +5377,12 @@ static void ata_host_release(struct kref kfree(ap->pmp_link); kfree(ap->slave_link); @@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle kfree(ap); host->ports[i] = NULL; } -@@ -5791,7 +5816,23 @@ int ata_host_register(struct ata_host *h +@@ -5764,7 +5789,23 @@ int ata_host_register(struct ata_host *h host->ports[i]->print_id = atomic_inc_return(&ata_print_id); host->ports[i]->local_port_no = i + 1; } @@ -134,7 +134,7 @@ Signed-off-by: Daniel Golle /* * Define if arch has non-standard setup. This is a _PCI_ standard -@@ -888,6 +891,12 @@ struct ata_port { +@@ -883,6 +886,12 @@ struct ata_port { #ifdef CONFIG_ATA_ACPI struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */ #endif diff --git a/root/target/linux/generic/pending-5.15/840-hwrng-bcm2835-set-quality-to-1000.patch b/root/target/linux/generic/pending-5.15/840-hwrng-bcm2835-set-quality-to-1000.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/generic/pending-5.15/920-mangle_bootargs.patch b/root/target/linux/generic/pending-5.15/920-mangle_bootargs.patch old mode 100755 new mode 100644 index d3f3a1c6..3299151e --- a/root/target/linux/generic/pending-5.15/920-mangle_bootargs.patch +++ b/root/target/linux/generic/pending-5.15/920-mangle_bootargs.patch @@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz --- a/init/Kconfig +++ b/init/Kconfig -@@ -1805,6 +1805,15 @@ config EMBEDDED +@@ -1782,6 +1782,15 @@ config EMBEDDED an embedded system so certain expert options are available for configuration. @@ -31,7 +31,7 @@ Signed-off-by: Imre Kaloz help --- a/init/main.c +++ b/init/main.c -@@ -614,6 +614,29 @@ static inline void setup_nr_cpu_ids(void +@@ -604,6 +604,29 @@ static inline void setup_nr_cpu_ids(void static inline void smp_prepare_cpus(unsigned int maxcpus) { } #endif @@ -61,7 +61,7 @@ Signed-off-by: Imre Kaloz /* * We need to store the untouched command line for future reference. * We also need to store the touched command line since the parameter -@@ -954,6 +977,7 @@ asmlinkage __visible void __init __no_sa +@@ -935,6 +958,7 @@ asmlinkage __visible void __init __no_sa pr_notice("%s", linux_banner); early_security_init(); setup_arch(&command_line); diff --git a/root/target/linux/generic/pending-5.15/930-qcom-qmi-helpers.patch b/root/target/linux/generic/pending-5.15/930-qcom-qmi-helpers.patch deleted file mode 100755 index 2f427742..00000000 --- a/root/target/linux/generic/pending-5.15/930-qcom-qmi-helpers.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/drivers/soc/qcom/Kconfig -+++ b/drivers/soc/qcom/Kconfig -@@ -92,7 +92,7 @@ config QCOM_PDR_HELPERS - select QCOM_QMI_HELPERS - - config QCOM_QMI_HELPERS -- tristate -+ tristate "Qualcomm QMI Helpers" - depends on NET - - config QCOM_RMTFS_MEM diff --git a/root/target/linux/ipq40xx/config-5.4 b/root/target/linux/ipq40xx/config-5.4 index f23e8b47..ed4f5ee1 100644 --- a/root/target/linux/ipq40xx/config-5.4 +++ b/root/target/linux/ipq40xx/config-5.4 @@ -1,8 +1,6 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_APQ_GCC_8084 is not set # CONFIG_APQ_MMCC_8084 is not set -CONFIG_ARM_MODULE_PLTS=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_AR40XX_PHY=y CONFIG_ARCH_32BIT_OFF_T=y CONFIG_ARCH_CLOCKSOURCE_DATA=y @@ -49,6 +47,7 @@ CONFIG_BCH=y CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_MQ_PCI=y +CONFIG_BOOTCONFIG_PARTITION=y CONFIG_BOUNCE=y # CONFIG_CACHE_L2X0 is not set CONFIG_CLKDEV_LOOKUP=y @@ -132,11 +131,16 @@ CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_ARM=y +CONFIG_CRYPTO_SHA1_ARM_NEON=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA256_ARM=y +CONFIG_CRYPTO_SHA512_ARM=y CONFIG_CRYPTO_SIMD=y CONFIG_CRYPTO_XTS=y CONFIG_CRYPTO_ZSTD=y +CONFIG_CRYPTO_USER=y CONFIG_DCACHE_WORD_ACCESS=y CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" CONFIG_DEBUG_MISC=y @@ -347,6 +351,7 @@ CONFIG_PINCTRL_MSM=y # CONFIG_PINCTRL_SDM660 is not set # CONFIG_PINCTRL_SDM845 is not set # CONFIG_PINCTRL_SM8150 is not set +CONFIG_PLUGIN_HOSTCC="g++" CONFIG_PM_OPP=y CONFIG_POWER_RESET=y CONFIG_POWER_RESET_MSM=y diff --git a/root/target/linux/mediatek/base-files/etc/inittab b/root/target/linux/mediatek/base-files/etc/inittab old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/base-files/lib/preinit/05_set_preinit_iface b/root/target/linux/mediatek/base-files/lib/preinit/05_set_preinit_iface old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/leds/leds-ubnt-ledbar.c b/root/target/linux/mediatek/files-5.14/drivers/leds/leds-ubnt-ledbar.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/Kconfig b/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/Kconfig old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/Makefile b/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/Makefile old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand-def.h b/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand-def.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand-ecc.c b/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand-ecc.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand-ids.c b/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand-ids.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand-mtd.c b/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand-mtd.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand-os.c b/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand-os.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand-os.h b/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand-os.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand.c b/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand.h b/root/target/linux/mediatek/files-5.14/drivers/mtd/mtk-snand/mtk-snand.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/Kconfig b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/Kconfig old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/Makefile b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/Makefile old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt7530.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt7530.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt7530.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt7530.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt7531.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt7531.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt7531.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt7531.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_common.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_common.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_mdio.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_mdio.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_nl.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_nl.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_nl.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_nl.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_regs.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_regs.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_swconfig.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_swconfig.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_swconfig.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_swconfig.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_vlan.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_vlan.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_vlan.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/mtk/mt753x/mt753x_vlan.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/Makefile b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/Makefile old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/modules.builtin b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/modules.builtin old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/acl.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/acl.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/cpu.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/cpu.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/dot1x.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/dot1x.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/eee.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/eee.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/i2c.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/i2c.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/igmp.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/igmp.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/acl.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/acl.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/cpu.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/cpu.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/dot1x.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/dot1x.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/eee.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/eee.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/i2c.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/i2c.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/igmp.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/igmp.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/interrupt.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/interrupt.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/l2.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/l2.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/leaky.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/leaky.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/led.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/led.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/mirror.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/mirror.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/oam.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/oam.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/port.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/port.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/ptp.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/ptp.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/qos.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/qos.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rate.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rate.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rldp.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rldp.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtk_error.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtk_error.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtk_hal.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtk_hal.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtk_switch.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtk_switch.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtk_types.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtk_types.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_acl.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_acl.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_cputag.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_cputag.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_dot1x.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_dot1x.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_eav.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_eav.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_eee.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_eee.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_fc.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_fc.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_green.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_green.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_hsb.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_hsb.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_i2c.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_i2c.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_igmp.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_igmp.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_inbwctrl.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_inbwctrl.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_interrupt.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_interrupt.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_led.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_led.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_lut.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_lut.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_meter.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_meter.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_mib.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_mib.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_mirror.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_mirror.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_misc.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_misc.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_oam.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_oam.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_phy.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_phy.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_port.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_port.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_portIsolation.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_portIsolation.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_qos.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_qos.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_rldp.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_rldp.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_rma.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_rma.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_scheduling.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_scheduling.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_storm.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_storm.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_svlan.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_svlan.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_trunking.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_trunking.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_unknownMulticast.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_unknownMulticast.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_vlan.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_vlan.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_base.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_base.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_reg.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_reg.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/smi.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/smi.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/stat.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/stat.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/storm.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/storm.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/svlan.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/svlan.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/trap.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/trap.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/trunk.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/trunk.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/vlan.h b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/include/vlan.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/interrupt.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/interrupt.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/l2.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/l2.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/leaky.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/leaky.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/led.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/led.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/mirror.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/mirror.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/oam.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/oam.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/port.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/port.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/ptp.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/ptp.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/qos.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/qos.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rate.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rate.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rldp.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rldp.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtk_hal.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtk_hal.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtk_switch.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtk_switch.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_acl.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_acl.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_cputag.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_cputag.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_dot1x.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_dot1x.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_eav.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_eav.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_eee.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_eee.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_fc.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_fc.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_green.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_green.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_hsb.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_hsb.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_i2c.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_i2c.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_igmp.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_igmp.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_inbwctrl.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_inbwctrl.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_interrupt.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_interrupt.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_led.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_led.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_lut.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_lut.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_meter.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_meter.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_mib.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_mib.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_mirror.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_mirror.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_misc.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_misc.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_oam.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_oam.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_phy.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_phy.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_port.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_port.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_portIsolation.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_portIsolation.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_qos.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_qos.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_rldp.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_rldp.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_rma.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_rma.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_scheduling.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_scheduling.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_storm.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_storm.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_svlan.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_svlan.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_trunking.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_trunking.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_unknownMulticast.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_unknownMulticast.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_vlan.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_vlan.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/smi.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/smi.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/stat.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/stat.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/storm.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/storm.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/svlan.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/svlan.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/trap.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/trap.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/trunk.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/trunk.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/vlan.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367c/vlan.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367s.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367s.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367s_dbg.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367s_dbg.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367s_mdio.c b/root/target/linux/mediatek/files-5.14/drivers/net/phy/rtk/rtl8367s_mdio.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/leds/leds-ubnt-ledbar.c b/root/target/linux/mediatek/files-5.15/drivers/leds/leds-ubnt-ledbar.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/Kconfig b/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/Kconfig old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/Makefile b/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/Makefile old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand-def.h b/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand-def.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand-ecc.c b/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand-ecc.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand-ids.c b/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand-ids.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand-mtd.c b/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand-mtd.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand-os.c b/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand-os.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand-os.h b/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand-os.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand.c b/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand.h b/root/target/linux/mediatek/files-5.15/drivers/mtd/mtk-snand/mtk-snand.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/Kconfig b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/Kconfig old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/Makefile b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/Makefile old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt7530.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt7530.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt7530.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt7530.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt7531.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt7531.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt7531.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt7531.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_common.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_common.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_mdio.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_mdio.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_nl.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_nl.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_nl.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_nl.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_regs.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_regs.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_swconfig.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_swconfig.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_swconfig.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_swconfig.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_vlan.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_vlan.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_vlan.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/mtk/mt753x/mt753x_vlan.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/Makefile b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/Makefile old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/modules.builtin b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/modules.builtin old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/acl.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/acl.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/cpu.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/cpu.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/dot1x.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/dot1x.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/eee.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/eee.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/i2c.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/i2c.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/igmp.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/igmp.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/acl.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/acl.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/cpu.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/cpu.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/dot1x.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/dot1x.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/eee.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/eee.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/i2c.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/i2c.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/igmp.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/igmp.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/interrupt.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/interrupt.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/l2.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/l2.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/leaky.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/leaky.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/led.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/led.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/mirror.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/mirror.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/oam.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/oam.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/port.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/port.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/ptp.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/ptp.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/qos.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/qos.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rate.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rate.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rldp.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rldp.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtk_error.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtk_error.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtk_hal.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtk_hal.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtk_switch.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtk_switch.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtk_types.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtk_types.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_acl.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_acl.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_cputag.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_cputag.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_dot1x.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_dot1x.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_eav.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_eav.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_eee.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_eee.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_fc.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_fc.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_green.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_green.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_hsb.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_hsb.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_i2c.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_i2c.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_igmp.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_igmp.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_inbwctrl.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_inbwctrl.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_interrupt.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_interrupt.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_led.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_led.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_lut.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_lut.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_meter.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_meter.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_mib.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_mib.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_mirror.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_mirror.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_misc.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_misc.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_oam.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_oam.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_phy.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_phy.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_port.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_port.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_portIsolation.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_portIsolation.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_qos.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_qos.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_rldp.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_rldp.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_rma.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_rma.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_scheduling.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_scheduling.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_storm.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_storm.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_svlan.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_svlan.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_trunking.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_trunking.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_unknownMulticast.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_unknownMulticast.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_vlan.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_asicdrv_vlan.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_base.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_base.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_reg.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/rtl8367c_reg.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/smi.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/smi.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/stat.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/stat.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/storm.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/storm.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/svlan.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/svlan.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/trap.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/trap.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/trunk.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/trunk.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/vlan.h b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/include/vlan.h old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/interrupt.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/interrupt.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/l2.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/l2.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/leaky.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/leaky.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/led.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/led.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/mirror.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/mirror.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/oam.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/oam.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/port.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/port.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/ptp.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/ptp.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/qos.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/qos.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rate.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rate.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rldp.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rldp.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtk_hal.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtk_hal.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtk_switch.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtk_switch.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_acl.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_acl.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_cputag.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_cputag.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_dot1x.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_dot1x.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_eav.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_eav.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_eee.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_eee.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_fc.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_fc.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_green.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_green.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_hsb.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_hsb.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_i2c.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_i2c.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_igmp.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_igmp.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_inbwctrl.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_inbwctrl.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_interrupt.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_interrupt.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_led.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_led.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_lut.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_lut.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_meter.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_meter.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_mib.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_mib.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_mirror.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_mirror.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_misc.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_misc.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_oam.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_oam.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_phy.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_phy.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_port.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_port.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_portIsolation.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_portIsolation.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_qos.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_qos.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_rldp.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_rldp.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_rma.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_rma.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_scheduling.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_scheduling.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_storm.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_storm.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_svlan.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_svlan.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_trunking.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_trunking.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_unknownMulticast.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_unknownMulticast.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_vlan.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv_vlan.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/smi.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/smi.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/stat.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/stat.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/storm.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/storm.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/svlan.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/svlan.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/trap.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/trap.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/trunk.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/trunk.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/vlan.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367c/vlan.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367s.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367s.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367s_dbg.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367s_dbg.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367s_mdio.c b/root/target/linux/mediatek/files-5.15/drivers/net/phy/rtk/rtl8367s_mdio.c old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/modules.mk b/root/target/linux/mediatek/modules.mk old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/mt7622/config-5.14 b/root/target/linux/mediatek/mt7622/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/mt7622/config-5.15 b/root/target/linux/mediatek/mt7622/config-5.15 old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/mt7622/config-5.4 b/root/target/linux/mediatek/mt7622/config-5.4 old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/mt7622/target.mk b/root/target/linux/mediatek/mt7622/target.mk old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/mt7623/base-files/lib/preinit/07_set_iface_mac b/root/target/linux/mediatek/mt7623/base-files/lib/preinit/07_set_iface_mac old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/mt7623/base-files/lib/preinit/79_move_config b/root/target/linux/mediatek/mt7623/base-files/lib/preinit/79_move_config old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/mt7623/config-4.14 b/root/target/linux/mediatek/mt7623/config-4.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/mt7623/config-4.19 b/root/target/linux/mediatek/mt7623/config-4.19 old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/mt7623/config-5.14 b/root/target/linux/mediatek/mt7623/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/mt7623/config-5.15 b/root/target/linux/mediatek/mt7623/config-5.15 old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/mt7623/config-5.4 b/root/target/linux/mediatek/mt7623/config-5.4 old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.14/0229-fix-memory-size-for-bpi-r2.patch b/root/target/linux/mediatek/patches-4.14/0229-fix-memory-size-for-bpi-r2.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.14/0229-update-gpio-leds-for-bpi-r2.patch b/root/target/linux/mediatek/patches-4.14/0229-update-gpio-leds-for-bpi-r2.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.14/0230-update-pcie-for-bpi-r2.patch b/root/target/linux/mediatek/patches-4.14/0230-update-pcie-for-bpi-r2.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.14/0231-enable-trgmii-on-bpi-r2.patch b/root/target/linux/mediatek/patches-4.14/0231-enable-trgmii-on-bpi-r2.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.14/0232-merge-mt6625l-wifi-driver.patch b/root/target/linux/mediatek/patches-4.14/0232-merge-mt6625l-wifi-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.14/0233-revert-unexport-vfs_read-write.patch b/root/target/linux/mediatek/patches-4.14/0233-revert-unexport-vfs_read-write.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.14/0234-fix-mtk-wlan_gen2-module.patch b/root/target/linux/mediatek/patches-4.14/0234-fix-mtk-wlan_gen2-module.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.14/0235-mtk_wdt-remove-debug-printk.patch b/root/target/linux/mediatek/patches-4.14/0235-mtk_wdt-remove-debug-printk.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.14/0236-mt6625l-rename-wlan.patch b/root/target/linux/mediatek/patches-4.14/0236-mt6625l-rename-wlan.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.14/0237-mt7623-add-HNAT-support.patch b/root/target/linux/mediatek/patches-4.14/0237-mt7623-add-HNAT-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0001-adding-defconfig-and-build-script-change-gitignore-m.patch b/root/target/linux/mediatek/patches-4.19/0001-adding-defconfig-and-build-script-change-gitignore-m.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0006-wifi-adding-driver-folder.patch b/root/target/linux/mediatek/patches-4.19/0006-wifi-adding-driver-folder.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0007-wifi-adding-wifi-related-changes-outside-driver-dire.patch b/root/target/linux/mediatek/patches-4.19/0007-wifi-adding-wifi-related-changes-outside-driver-dire.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0008-gcc-gcc8-fixes-by-Dominik-Koch-nic_rx-patch-from-htt.patch b/root/target/linux/mediatek/patches-4.19/0008-gcc-gcc8-fixes-by-Dominik-Koch-nic_rx-patch-from-htt.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0009-wifi-activated-wifi-options.patch b/root/target/linux/mediatek/patches-4.19/0009-wifi-activated-wifi-options.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0012-defconfig-add-missing-CONFIG_PCI_MSI-needed-for-pcie.patch b/root/target/linux/mediatek/patches-4.19/0012-defconfig-add-missing-CONFIG_PCI_MSI-needed-for-pcie.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0014-dts-set-mac-address-eth0.patch b/root/target/linux/mediatek/patches-4.19/0014-dts-set-mac-address-eth0.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0016-build.sh-dts-added-devicetree-Overlay.patch b/root/target/linux/mediatek/patches-4.19/0016-build.sh-dts-added-devicetree-Overlay.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0019-net-dsa-adding-fields-for-holding-information-about-.patch b/root/target/linux/mediatek/patches-4.19/0019-net-dsa-adding-fields-for-holding-information-about-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0020-net-dsa-add-helper-functions.patch b/root/target/linux/mediatek/patches-4.19/0020-net-dsa-add-helper-functions.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0021-net-dsa-adding-handling-of-second-CPU-Port.patch b/root/target/linux/mediatek/patches-4.19/0021-net-dsa-adding-handling-of-second-CPU-Port.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0022-net-dsa-add-support-for-GMAC2-wired-to-ext.patch b/root/target/linux/mediatek/patches-4.19/0022-net-dsa-add-support-for-GMAC2-wired-to-ext.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0023-net-dsa-dsa-multi-cpu-mt7530.c.patch b/root/target/linux/mediatek/patches-4.19/0023-net-dsa-dsa-multi-cpu-mt7530.c.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0024-net-dsa-tell-GDMA-when-we-are-turning-on-the-special.patch b/root/target/linux/mediatek/patches-4.19/0024-net-dsa-tell-GDMA-when-we-are-turning-on-the-special.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0025-net-dsa-mt7530-add-linking-to-mdio.patch b/root/target/linux/mediatek/patches-4.19/0025-net-dsa-mt7530-add-linking-to-mdio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0026-net-dsa-changes-to-dts.patch b/root/target/linux/mediatek/patches-4.19/0026-net-dsa-changes-to-dts.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0027-drm-mediatek-add-refcount-for-DPI-power-on-off.patch b/root/target/linux/mediatek/patches-4.19/0027-drm-mediatek-add-refcount-for-DPI-power-on-off.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0028-drm-mediatek-move-hardware-register-to-node-data.patch b/root/target/linux/mediatek/patches-4.19/0028-drm-mediatek-move-hardware-register-to-node-data.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0029-drm-mediatek-adjust-EDGE-to-match-clock-and-data.patch b/root/target/linux/mediatek/patches-4.19/0029-drm-mediatek-adjust-EDGE-to-match-clock-and-data.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0030-drm-mediatek-add-clock-factor-for-different-IC.patch b/root/target/linux/mediatek/patches-4.19/0030-drm-mediatek-add-clock-factor-for-different-IC.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0031-drm-mediatek-convert-dpi-driver-to-use-drm_of_find_p.patch b/root/target/linux/mediatek/patches-4.19/0031-drm-mediatek-convert-dpi-driver-to-use-drm_of_find_p.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0032-drm-mediatek-add-dpi-driver-for-mt2701-and-mt7623.patch b/root/target/linux/mediatek/patches-4.19/0032-drm-mediatek-add-dpi-driver-for-mt2701-and-mt7623.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0033-drm-mediatek-separate-hdmi-phy-to-different-file.patch b/root/target/linux/mediatek/patches-4.19/0033-drm-mediatek-separate-hdmi-phy-to-different-file.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0034-drm-mediatek-add-support-for-SPDIF-audio-in-HDMI.patch b/root/target/linux/mediatek/patches-4.19/0034-drm-mediatek-add-support-for-SPDIF-audio-in-HDMI.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0035-drm-mediatek-add-hdmi-driver-for-MT2701-and-MT7623.patch b/root/target/linux/mediatek/patches-4.19/0035-drm-mediatek-add-hdmi-driver-for-MT2701-and-MT7623.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0036-drm-mediatek-implement-connection-from-BLS-to-DPI0.patch b/root/target/linux/mediatek/patches-4.19/0036-drm-mediatek-implement-connection-from-BLS-to-DPI0.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0037-drm-mediatek-add-a-error-return-value-when-clock-dri.patch b/root/target/linux/mediatek/patches-4.19/0037-drm-mediatek-add-a-error-return-value-when-clock-dri.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0038-drm-mediatek-config-component-output-by-device-node-.patch b/root/target/linux/mediatek/patches-4.19/0038-drm-mediatek-config-component-output-by-device-node-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0039-arm-dts-mt7623-add-a-performance-counter-unit-device.patch b/root/target/linux/mediatek/patches-4.19/0039-arm-dts-mt7623-add-a-performance-counter-unit-device.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0040-arm-dts-mt7623-update-subsystem-clock-controller-dev.patch b/root/target/linux/mediatek/patches-4.19/0040-arm-dts-mt7623-update-subsystem-clock-controller-dev.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0041-arm-dts-mt7623-add-iommu-smi-device-nodes.patch b/root/target/linux/mediatek/patches-4.19/0041-arm-dts-mt7623-add-iommu-smi-device-nodes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0042-arm-dts-mt7623-add-jpeg-decoder-device-node.patch b/root/target/linux/mediatek/patches-4.19/0042-arm-dts-mt7623-add-jpeg-decoder-device-node.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0043-arm-dts-mt7623-add-display-subsystem-related-device-.patch b/root/target/linux/mediatek/patches-4.19/0043-arm-dts-mt7623-add-display-subsystem-related-device-.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0044-fix-boot-up-for-720-and-480-but-1080.patch b/root/target/linux/mediatek/patches-4.19/0044-fix-boot-up-for-720-and-480-but-1080.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0045-using-different-round-rate-for-mt7623.patch b/root/target/linux/mediatek/patches-4.19/0045-using-different-round-rate-for-mt7623.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0046-hdmi-fix-possible_crtcs.patch b/root/target/linux/mediatek/patches-4.19/0046-hdmi-fix-possible_crtcs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0047-hdmi-added-options-to-defconfig.patch b/root/target/linux/mediatek/patches-4.19/0047-hdmi-added-options-to-defconfig.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0049-hdmi-added-fbdev-options.patch b/root/target/linux/mediatek/patches-4.19/0049-hdmi-added-fbdev-options.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0050-BT-fix-Bluetooth.patch b/root/target/linux/mediatek/patches-4.19/0050-BT-fix-Bluetooth.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0053-defconfig-disable-some-debug-messages-evbug-gpio.patch b/root/target/linux/mediatek/patches-4.19/0053-defconfig-disable-some-debug-messages-evbug-gpio.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0058-defconfig-add-multiple-routing-tables-for-IPv4.patch b/root/target/linux/mediatek/patches-4.19/0058-defconfig-add-multiple-routing-tables-for-IPv4.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0059-defconfig-added-options-for-Traffic-Shaping.patch b/root/target/linux/mediatek/patches-4.19/0059-defconfig-added-options-for-Traffic-Shaping.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0061-defconfig-add-nftables.patch b/root/target/linux/mediatek/patches-4.19/0061-defconfig-add-nftables.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0063-defconfig-add-all-XT-matches-targets.patch b/root/target/linux/mediatek/patches-4.19/0063-defconfig-add-all-XT-matches-targets.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0064-dsa-fix-oops-in-br_vlan_enabled.patch b/root/target/linux/mediatek/patches-4.19/0064-dsa-fix-oops-in-br_vlan_enabled.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0066-defconfig-enable-mt76x2.patch b/root/target/linux/mediatek/patches-4.19/0066-defconfig-enable-mt76x2.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0067-dsa-fix-from-florian.patch b/root/target/linux/mediatek/patches-4.19/0067-dsa-fix-from-florian.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0068-defconfig-add-atheros-wireless-lan-9k-10k-support.patch b/root/target/linux/mediatek/patches-4.19/0068-defconfig-add-atheros-wireless-lan-9k-10k-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0072-defconfig-add-ebtables.patch b/root/target/linux/mediatek/patches-4.19/0072-defconfig-add-ebtables.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0074-add-compiler-gcc8.h.patch b/root/target/linux/mediatek/patches-4.19/0074-add-compiler-gcc8.h.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0076-defconfig-add-mqueue-and-seccomp-for-docker.patch b/root/target/linux/mediatek/patches-4.19/0076-defconfig-add-mqueue-and-seccomp-for-docker.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0227-arm-dts-Add-Unielec-U7623-DTS.patch b/root/target/linux/mediatek/patches-4.19/0227-arm-dts-Add-Unielec-U7623-DTS.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0233-revert-unexport-vfs_read-write.patch b/root/target/linux/mediatek/patches-4.19/0233-revert-unexport-vfs_read-write.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0234-fix-mtk-wlan_gen2-module.patch b/root/target/linux/mediatek/patches-4.19/0234-fix-mtk-wlan_gen2-module.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0235-mtk_wdt-remove-debug-printk.patch b/root/target/linux/mediatek/patches-4.19/0235-mtk_wdt-remove-debug-printk.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0236-mt6625l-rename-wlan.patch b/root/target/linux/mediatek/patches-4.19/0236-mt6625l-rename-wlan.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-4.19/0999-wlan-memcpy-fix.patch b/root/target/linux/mediatek/patches-4.19/0999-wlan-memcpy-fix.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/100-dts-update-mt7622-rfb1.patch b/root/target/linux/mediatek/patches-5.14/100-dts-update-mt7622-rfb1.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/101-dts-update-mt7629-rfb.patch b/root/target/linux/mediatek/patches-5.14/101-dts-update-mt7629-rfb.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/105-dts-mt7622-enable-pstore.patch b/root/target/linux/mediatek/patches-5.14/105-dts-mt7622-enable-pstore.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/110-dts-fix-bpi2-console.patch b/root/target/linux/mediatek/patches-5.14/110-dts-fix-bpi2-console.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/111-dts-fix-bpi64-console.patch b/root/target/linux/mediatek/patches-5.14/111-dts-fix-bpi64-console.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/112-dts-fix-bpi64-lan-names.patch b/root/target/linux/mediatek/patches-5.14/112-dts-fix-bpi64-lan-names.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/113-dts-fix-bpi64-leds-and-buttons.patch b/root/target/linux/mediatek/patches-5.14/113-dts-fix-bpi64-leds-and-buttons.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/114-dts-bpi64-disable-rtc.patch b/root/target/linux/mediatek/patches-5.14/114-dts-bpi64-disable-rtc.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/115-dts-bpi64-add-snand-support.patch b/root/target/linux/mediatek/patches-5.14/115-dts-bpi64-add-snand-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/130-dts-mt7629-add-snand-support.patch b/root/target/linux/mediatek/patches-5.14/130-dts-mt7629-add-snand-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/131-dts-mt7622-add-snand-support.patch b/root/target/linux/mediatek/patches-5.14/131-dts-mt7622-add-snand-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/150-dts-mt7623-eip97-inside-secure-support.patch b/root/target/linux/mediatek/patches-5.14/150-dts-mt7623-eip97-inside-secure-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/160-dts-mt7623-bpi-r2-earlycon.patch b/root/target/linux/mediatek/patches-5.14/160-dts-mt7623-bpi-r2-earlycon.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/161-dts-mt7623-bpi-r2-mmc-device-order.patch b/root/target/linux/mediatek/patches-5.14/161-dts-mt7623-bpi-r2-mmc-device-order.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/172-dt-bindings-usb-mtk-musb-add-MT7623-compatible.patch b/root/target/linux/mediatek/patches-5.14/172-dt-bindings-usb-mtk-musb-add-MT7623-compatible.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/173-arm-dts-mt7623-add-musb-device-nodes.patch b/root/target/linux/mediatek/patches-5.14/173-arm-dts-mt7623-add-musb-device-nodes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/200-phy-phy-mtk-tphy-Add-hifsys-support.patch b/root/target/linux/mediatek/patches-5.14/200-phy-phy-mtk-tphy-Add-hifsys-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/330-mtk-bmt-support.patch b/root/target/linux/mediatek/patches-5.14/330-mtk-bmt-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/350-dt-bindings-mtd-brcm-trx-Add-brcm-trx-magic.patch b/root/target/linux/mediatek/patches-5.14/350-dt-bindings-mtd-brcm-trx-Add-brcm-trx-magic.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/400-crypto-add-eip97-inside-secure-support.patch b/root/target/linux/mediatek/patches-5.14/400-crypto-add-eip97-inside-secure-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/401-crypto-fix-eip97-cache-incoherent.patch b/root/target/linux/mediatek/patches-5.14/401-crypto-fix-eip97-cache-incoherent.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/410-bt-mtk-serial-fix.patch b/root/target/linux/mediatek/patches-5.14/410-bt-mtk-serial-fix.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/420-mtd-spi-nor-add-support-for-Winbond-W25Q512JV.patch b/root/target/linux/mediatek/patches-5.14/420-mtd-spi-nor-add-support-for-Winbond-W25Q512JV.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/500-gsw-rtl8367s-mt7622-support.patch b/root/target/linux/mediatek/patches-5.14/500-gsw-rtl8367s-mt7622-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/510-net-mediatek-add-flow-offload-for-mt7623.patch b/root/target/linux/mediatek/patches-5.14/510-net-mediatek-add-flow-offload-for-mt7623.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/600-dt-bindings-PCI-Mediatek-Update-PCIe-binding.patch b/root/target/linux/mediatek/patches-5.14/600-dt-bindings-PCI-Mediatek-Update-PCIe-binding.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/601-PCI-mediatek-Use-regmap-to-get-shared-pcie-cfg-base.patch b/root/target/linux/mediatek/patches-5.14/601-PCI-mediatek-Use-regmap-to-get-shared-pcie-cfg-base.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/602-arm64-dts-mediatek-Split-PCIe-node-for-MT2712-MT7622.patch b/root/target/linux/mediatek/patches-5.14/602-arm64-dts-mediatek-Split-PCIe-node-for-MT2712-MT7622.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/603-ARM-dts-mediatek-Update-mt7629-PCIe-node.patch b/root/target/linux/mediatek/patches-5.14/603-ARM-dts-mediatek-Update-mt7629-PCIe-node.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/610-pcie-mediatek-fix-clearing-interrupt-status.patch b/root/target/linux/mediatek/patches-5.14/610-pcie-mediatek-fix-clearing-interrupt-status.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/700-net-ethernet-mtk_eth_soc-add-support-for-coherent-DM.patch b/root/target/linux/mediatek/patches-5.14/700-net-ethernet-mtk_eth_soc-add-support-for-coherent-DM.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/710-pci-pcie-mediatek-add-support-for-coherent-DMA.patch b/root/target/linux/mediatek/patches-5.14/710-pci-pcie-mediatek-add-support-for-coherent-DMA.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/800-ubnt-ledbar-driver.patch b/root/target/linux/mediatek/patches-5.14/800-ubnt-ledbar-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.14/900-dts-mt7622-bpi-r64-aliases-for-dtoverlay.patch b/root/target/linux/mediatek/patches-5.14/900-dts-mt7622-bpi-r64-aliases-for-dtoverlay.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/100-dts-update-mt7622-rfb1.patch b/root/target/linux/mediatek/patches-5.15/100-dts-update-mt7622-rfb1.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/101-dts-update-mt7629-rfb.patch b/root/target/linux/mediatek/patches-5.15/101-dts-update-mt7629-rfb.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/105-dts-mt7622-enable-pstore.patch b/root/target/linux/mediatek/patches-5.15/105-dts-mt7622-enable-pstore.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/110-dts-fix-bpi2-console.patch b/root/target/linux/mediatek/patches-5.15/110-dts-fix-bpi2-console.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/111-dts-fix-bpi64-console.patch b/root/target/linux/mediatek/patches-5.15/111-dts-fix-bpi64-console.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/112-dts-fix-bpi64-lan-names.patch b/root/target/linux/mediatek/patches-5.15/112-dts-fix-bpi64-lan-names.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/113-dts-fix-bpi64-leds-and-buttons.patch b/root/target/linux/mediatek/patches-5.15/113-dts-fix-bpi64-leds-and-buttons.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/114-dts-bpi64-disable-rtc.patch b/root/target/linux/mediatek/patches-5.15/114-dts-bpi64-disable-rtc.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/115-dts-bpi64-add-snand-support.patch b/root/target/linux/mediatek/patches-5.15/115-dts-bpi64-add-snand-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/130-dts-mt7629-add-snand-support.patch b/root/target/linux/mediatek/patches-5.15/130-dts-mt7629-add-snand-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/131-dts-mt7622-add-snand-support.patch b/root/target/linux/mediatek/patches-5.15/131-dts-mt7622-add-snand-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/150-dts-mt7623-eip97-inside-secure-support.patch b/root/target/linux/mediatek/patches-5.15/150-dts-mt7623-eip97-inside-secure-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/160-dts-mt7623-bpi-r2-earlycon.patch b/root/target/linux/mediatek/patches-5.15/160-dts-mt7623-bpi-r2-earlycon.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/161-dts-mt7623-bpi-r2-mmc-device-order.patch b/root/target/linux/mediatek/patches-5.15/161-dts-mt7623-bpi-r2-mmc-device-order.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/173-arm-dts-mt7623-add-musb-device-nodes.patch b/root/target/linux/mediatek/patches-5.15/173-arm-dts-mt7623-add-musb-device-nodes.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/350-dt-bindings-mtd-brcm-trx-Add-brcm-trx-magic.patch b/root/target/linux/mediatek/patches-5.15/350-dt-bindings-mtd-brcm-trx-Add-brcm-trx-magic.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/400-crypto-add-eip97-inside-secure-support.patch b/root/target/linux/mediatek/patches-5.15/400-crypto-add-eip97-inside-secure-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/401-crypto-fix-eip97-cache-incoherent.patch b/root/target/linux/mediatek/patches-5.15/401-crypto-fix-eip97-cache-incoherent.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/410-bt-mtk-serial-fix.patch b/root/target/linux/mediatek/patches-5.15/410-bt-mtk-serial-fix.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/420-mtd-spi-nor-add-support-for-Winbond-W25Q512JV.patch b/root/target/linux/mediatek/patches-5.15/420-mtd-spi-nor-add-support-for-Winbond-W25Q512JV.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/500-gsw-rtl8367s-mt7622-support.patch b/root/target/linux/mediatek/patches-5.15/500-gsw-rtl8367s-mt7622-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/510-net-mediatek-add-flow-offload-for-mt7623.patch b/root/target/linux/mediatek/patches-5.15/510-net-mediatek-add-flow-offload-for-mt7623.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/602-arm64-dts-mediatek-Split-PCIe-node-for-MT2712-MT7622.patch b/root/target/linux/mediatek/patches-5.15/602-arm64-dts-mediatek-Split-PCIe-node-for-MT2712-MT7622.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/603-ARM-dts-mediatek-Update-mt7629-PCIe-node.patch b/root/target/linux/mediatek/patches-5.15/603-ARM-dts-mediatek-Update-mt7629-PCIe-node.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/700-net-ethernet-mtk_eth_soc-add-support-for-coherent-DM.patch b/root/target/linux/mediatek/patches-5.15/700-net-ethernet-mtk_eth_soc-add-support-for-coherent-DM.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/800-ubnt-ledbar-driver.patch b/root/target/linux/mediatek/patches-5.15/800-ubnt-ledbar-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.15/900-dts-mt7622-bpi-r64-aliases-for-dtoverlay.patch b/root/target/linux/mediatek/patches-5.15/900-dts-mt7622-bpi-r64-aliases-for-dtoverlay.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0004-mediatek-fix-packet-corruption-on-bridged-interface.patch b/root/target/linux/mediatek/patches-5.4/0004-mediatek-fix-packet-corruption-on-bridged-interface.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0006-dts-fix-bpi2-console.patch b/root/target/linux/mediatek/patches-5.4/0006-dts-fix-bpi2-console.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0103-net-support-net-labels.patch b/root/target/linux/mediatek/patches-5.4/0103-net-support-net-labels.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0110-rtc-mt6397.patch b/root/target/linux/mediatek/patches-5.4/0110-rtc-mt6397.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0111-mt6323-poweroff.patch b/root/target/linux/mediatek/patches-5.4/0111-mt6323-poweroff.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0112-dts-mt6323-add-key-rtc-power.patch b/root/target/linux/mediatek/patches-5.4/0112-dts-mt6323-add-key-rtc-power.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0170-dts-mt7623-add-display.patch b/root/target/linux/mediatek/patches-5.4/0170-dts-mt7623-add-display.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0171-dts-mt7623-add-mali450.patch b/root/target/linux/mediatek/patches-5.4/0171-dts-mt7623-add-mali450.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0180-lima-power-on-off.patch b/root/target/linux/mediatek/patches-5.4/0180-lima-power-on-off.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0181-drm-Add-get_possible_crtc.patch b/root/target/linux/mediatek/patches-5.4/0181-drm-Add-get_possible_crtc.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0182-drm-change-possible_crtc.patch b/root/target/linux/mediatek/patches-5.4/0182-drm-change-possible_crtc.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0183-drm-fix-DRM_INFO.patch b/root/target/linux/mediatek/patches-5.4/0183-drm-fix-DRM_INFO.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0184-drm-config-component-output.patch b/root/target/linux/mediatek/patches-5.4/0184-drm-config-component-output.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0185-drm-fix-boot-up.patch b/root/target/linux/mediatek/patches-5.4/0185-drm-fix-boot-up.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0190-thermal-add-sensor.patch b/root/target/linux/mediatek/patches-5.4/0190-thermal-add-sensor.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0191-thermal.patch b/root/target/linux/mediatek/patches-5.4/0191-thermal.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/0999-lan-to-wan.patch b/root/target/linux/mediatek/patches-5.4/0999-lan-to-wan.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mediatek/patches-5.4/900-dts-mt7622-bpi-r64-aliases-for-dtoverlay.patch b/root/target/linux/mediatek/patches-5.4/900-dts-mt7622-bpi-r64-aliases-for-dtoverlay.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/config-4.14 b/root/target/linux/mvebu/config-4.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/config-4.19 b/root/target/linux/mvebu/config-4.19 old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/config-5.14 b/root/target/linux/mvebu/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/config-5.15 b/root/target/linux/mvebu/config-5.15 old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/cortexa53/config-5.14 b/root/target/linux/mvebu/cortexa53/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/cortexa53/config-5.15 b/root/target/linux/mvebu/cortexa53/config-5.15 old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/cortexa72/config-5.14 b/root/target/linux/mvebu/cortexa72/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/cortexa72/config-5.15 b/root/target/linux/mvebu/cortexa72/config-5.15 old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch b/root/target/linux/mvebu/patches-5.14/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/301-mvebu-armada-38x-enable-libata-leds.patch b/root/target/linux/mvebu/patches-5.14/301-mvebu-armada-38x-enable-libata-leds.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/302-add_powertables.patch b/root/target/linux/mvebu/patches-5.14/302-add_powertables.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/304-revert_i2c_delay.patch b/root/target/linux/mvebu/patches-5.14/304-revert_i2c_delay.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/305-armada-385-rd-mtd-partitions.patch b/root/target/linux/mvebu/patches-5.14/305-armada-385-rd-mtd-partitions.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/306-ARM-mvebu-385-ap-Add-partitions.patch b/root/target/linux/mvebu/patches-5.14/306-ARM-mvebu-385-ap-Add-partitions.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/307-armada-xp-linksys-mamba-broken-idle.patch b/root/target/linux/mvebu/patches-5.14/307-armada-xp-linksys-mamba-broken-idle.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/308-armada-xp-linksys-mamba-wan.patch b/root/target/linux/mvebu/patches-5.14/308-armada-xp-linksys-mamba-wan.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/309-linksys-status-led.patch b/root/target/linux/mvebu/patches-5.14/309-linksys-status-led.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/310-linksys-use-eth0-as-cpu-port.patch b/root/target/linux/mvebu/patches-5.14/310-linksys-use-eth0-as-cpu-port.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/311-adjust-compatible-for-linksys.patch b/root/target/linux/mvebu/patches-5.14/311-adjust-compatible-for-linksys.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/312-ARM-dts-armada388-clearfog-emmc-on-clearfog-base.patch b/root/target/linux/mvebu/patches-5.14/312-ARM-dts-armada388-clearfog-emmc-on-clearfog-base.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/313-helios4-dts-status-led-alias.patch b/root/target/linux/mvebu/patches-5.14/313-helios4-dts-status-led-alias.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/314-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch b/root/target/linux/mvebu/patches-5.14/314-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/315-armada-xp-linksys-mamba-resize-kernel.patch b/root/target/linux/mvebu/patches-5.14/315-armada-xp-linksys-mamba-resize-kernel.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/316-armada-370-dts-fix-crypto-engine.patch b/root/target/linux/mvebu/patches-5.14/316-armada-370-dts-fix-crypto-engine.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/400-find_active_root.patch b/root/target/linux/mvebu/patches-5.14/400-find_active_root.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/700-mvneta-tx-queue-workaround.patch b/root/target/linux/mvebu/patches-5.14/700-mvneta-tx-queue-workaround.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/800-cpuidle-mvebu-indicate-failure-to-enter-deeper-sleep.patch b/root/target/linux/mvebu/patches-5.14/800-cpuidle-mvebu-indicate-failure-to-enter-deeper-sleep.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.14/801-pci-mvebu-time-out-reset-on-link-up.patch b/root/target/linux/mvebu/patches-5.14/801-pci-mvebu-time-out-reset-on-link-up.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch b/root/target/linux/mvebu/patches-5.15/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/301-mvebu-armada-38x-enable-libata-leds.patch b/root/target/linux/mvebu/patches-5.15/301-mvebu-armada-38x-enable-libata-leds.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/302-add_powertables.patch b/root/target/linux/mvebu/patches-5.15/302-add_powertables.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/304-revert_i2c_delay.patch b/root/target/linux/mvebu/patches-5.15/304-revert_i2c_delay.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/305-armada-385-rd-mtd-partitions.patch b/root/target/linux/mvebu/patches-5.15/305-armada-385-rd-mtd-partitions.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/306-ARM-mvebu-385-ap-Add-partitions.patch b/root/target/linux/mvebu/patches-5.15/306-ARM-mvebu-385-ap-Add-partitions.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/307-armada-xp-linksys-mamba-broken-idle.patch b/root/target/linux/mvebu/patches-5.15/307-armada-xp-linksys-mamba-broken-idle.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/308-armada-xp-linksys-mamba-wan.patch b/root/target/linux/mvebu/patches-5.15/308-armada-xp-linksys-mamba-wan.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/309-linksys-status-led.patch b/root/target/linux/mvebu/patches-5.15/309-linksys-status-led.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/310-linksys-use-eth0-as-cpu-port.patch b/root/target/linux/mvebu/patches-5.15/310-linksys-use-eth0-as-cpu-port.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/311-adjust-compatible-for-linksys.patch b/root/target/linux/mvebu/patches-5.15/311-adjust-compatible-for-linksys.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/312-ARM-dts-armada388-clearfog-emmc-on-clearfog-base.patch b/root/target/linux/mvebu/patches-5.15/312-ARM-dts-armada388-clearfog-emmc-on-clearfog-base.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/313-helios4-dts-status-led-alias.patch b/root/target/linux/mvebu/patches-5.15/313-helios4-dts-status-led-alias.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/314-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch b/root/target/linux/mvebu/patches-5.15/314-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/315-armada-xp-linksys-mamba-resize-kernel.patch b/root/target/linux/mvebu/patches-5.15/315-armada-xp-linksys-mamba-resize-kernel.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/316-armada-370-dts-fix-crypto-engine.patch b/root/target/linux/mvebu/patches-5.15/316-armada-370-dts-fix-crypto-engine.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/400-find_active_root.patch b/root/target/linux/mvebu/patches-5.15/400-find_active_root.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/800-cpuidle-mvebu-indicate-failure-to-enter-deeper-sleep.patch b/root/target/linux/mvebu/patches-5.15/800-cpuidle-mvebu-indicate-failure-to-enter-deeper-sleep.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/mvebu/patches-5.15/801-pci-mvebu-time-out-reset-on-link-up.patch b/root/target/linux/mvebu/patches-5.15/801-pci-mvebu-time-out-reset-on-link-up.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/modules.mk b/root/target/linux/ramips/modules.mk old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/mt7621/config-5.14 b/root/target/linux/ramips/mt7621/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/mt7621/config-5.15 b/root/target/linux/ramips/mt7621/config-5.15 old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/200-add-ralink-eth.patch b/root/target/linux/ramips/patches-5.14/200-add-ralink-eth.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/300-mt7620-export-chip-version-and-pkg.patch b/root/target/linux/ramips/patches-5.14/300-mt7620-export-chip-version-and-pkg.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch b/root/target/linux/ramips/patches-5.14/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/312-MIPS-ralink-add-cpu-frequency-scaling.patch b/root/target/linux/ramips/patches-5.14/312-MIPS-ralink-add-cpu-frequency-scaling.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/314-MIPS-add-bootargs-override-property.patch b/root/target/linux/ramips/patches-5.14/314-MIPS-add-bootargs-override-property.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/316-arch-mips-do-not-select-illegal-access-driver-by-def.patch b/root/target/linux/ramips/patches-5.14/316-arch-mips-do-not-select-illegal-access-driver-by-def.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/324-mt7621-perfctr-fix.patch b/root/target/linux/ramips/patches-5.14/324-mt7621-perfctr-fix.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/400-mtd-cfi-cmdset-0002-force-word-write.patch b/root/target/linux/ramips/patches-5.14/400-mtd-cfi-cmdset-0002-force-word-write.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/405-mtd-spi-nor-Add-support-for-BoHong-bh25q128as.patch b/root/target/linux/ramips/patches-5.14/405-mtd-spi-nor-Add-support-for-BoHong-bh25q128as.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/410-mtd-rawnand-add-driver-support-for-MT7621-nand-flash.patch b/root/target/linux/ramips/patches-5.14/410-mtd-rawnand-add-driver-support-for-MT7621-nand-flash.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/411-dt-bindings-add-documentation-for-mt7621-nand-driver.patch b/root/target/linux/ramips/patches-5.14/411-dt-bindings-add-documentation-for-mt7621-nand-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/700-net-ethernet-mediatek-support-net-labels.patch b/root/target/linux/ramips/patches-5.14/700-net-ethernet-mediatek-support-net-labels.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/720-Revert-net-phy-simplify-phy_link_change-arguments.patch b/root/target/linux/ramips/patches-5.14/720-Revert-net-phy-simplify-phy_link_change-arguments.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/801-DT-Add-documentation-for-gpio-ralink.patch b/root/target/linux/ramips/patches-5.14/801-DT-Add-documentation-for-gpio-ralink.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/802-GPIO-MIPS-ralink-add-gpio-driver-for-ralink-SoC.patch b/root/target/linux/ramips/patches-5.14/802-GPIO-MIPS-ralink-add-gpio-driver-for-ralink-SoC.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/803-gpio-ralink-Add-support-for-GPIO-as-interrupt-contro.patch b/root/target/linux/ramips/patches-5.14/803-gpio-ralink-Add-support-for-GPIO-as-interrupt-contro.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/805-pinctrl-AW9523.patch b/root/target/linux/ramips/patches-5.14/805-pinctrl-AW9523.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/810-uvc-add-iPassion-iP2970-support.patch b/root/target/linux/ramips/patches-5.14/810-uvc-add-iPassion-iP2970-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/820-DT-Add-documentation-for-spi-rt2880.patch b/root/target/linux/ramips/patches-5.14/820-DT-Add-documentation-for-spi-rt2880.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/821-SPI-ralink-add-Ralink-SoC-spi-driver.patch b/root/target/linux/ramips/patches-5.14/821-SPI-ralink-add-Ralink-SoC-spi-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/825-i2c-MIPS-adds-ralink-I2C-driver.patch b/root/target/linux/ramips/patches-5.14/825-i2c-MIPS-adds-ralink-I2C-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/830-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch b/root/target/linux/ramips/patches-5.14/830-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/835-asoc-add-mt7620-support.patch b/root/target/linux/ramips/patches-5.14/835-asoc-add-mt7620-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/840-serial-add-ugly-custom-baud-rate-hack.patch b/root/target/linux/ramips/patches-5.14/840-serial-add-ugly-custom-baud-rate-hack.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/845-pwm-add-mediatek-support.patch b/root/target/linux/ramips/patches-5.14/845-pwm-add-mediatek-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/850-awake-rt305x-dwc2-controller.patch b/root/target/linux/ramips/patches-5.14/850-awake-rt305x-dwc2-controller.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.14/855-linkit_bootstrap.patch b/root/target/linux/ramips/patches-5.14/855-linkit_bootstrap.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/200-add-ralink-eth.patch b/root/target/linux/ramips/patches-5.15/200-add-ralink-eth.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/300-mt7620-export-chip-version-and-pkg.patch b/root/target/linux/ramips/patches-5.15/300-mt7620-export-chip-version-and-pkg.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch b/root/target/linux/ramips/patches-5.15/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/312-MIPS-ralink-add-cpu-frequency-scaling.patch b/root/target/linux/ramips/patches-5.15/312-MIPS-ralink-add-cpu-frequency-scaling.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/314-MIPS-add-bootargs-override-property.patch b/root/target/linux/ramips/patches-5.15/314-MIPS-add-bootargs-override-property.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/316-arch-mips-do-not-select-illegal-access-driver-by-def.patch b/root/target/linux/ramips/patches-5.15/316-arch-mips-do-not-select-illegal-access-driver-by-def.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/324-mt7621-perfctr-fix.patch b/root/target/linux/ramips/patches-5.15/324-mt7621-perfctr-fix.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/400-mtd-cfi-cmdset-0002-force-word-write.patch b/root/target/linux/ramips/patches-5.15/400-mtd-cfi-cmdset-0002-force-word-write.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/405-mtd-spi-nor-Add-support-for-BoHong-bh25q128as.patch b/root/target/linux/ramips/patches-5.15/405-mtd-spi-nor-Add-support-for-BoHong-bh25q128as.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/410-mtd-rawnand-add-driver-support-for-MT7621-nand-flash.patch b/root/target/linux/ramips/patches-5.15/410-mtd-rawnand-add-driver-support-for-MT7621-nand-flash.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/411-dt-bindings-add-documentation-for-mt7621-nand-driver.patch b/root/target/linux/ramips/patches-5.15/411-dt-bindings-add-documentation-for-mt7621-nand-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/700-net-ethernet-mediatek-support-net-labels.patch b/root/target/linux/ramips/patches-5.15/700-net-ethernet-mediatek-support-net-labels.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/720-Revert-net-phy-simplify-phy_link_change-arguments.patch b/root/target/linux/ramips/patches-5.15/720-Revert-net-phy-simplify-phy_link_change-arguments.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/801-DT-Add-documentation-for-gpio-ralink.patch b/root/target/linux/ramips/patches-5.15/801-DT-Add-documentation-for-gpio-ralink.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/802-GPIO-MIPS-ralink-add-gpio-driver-for-ralink-SoC.patch b/root/target/linux/ramips/patches-5.15/802-GPIO-MIPS-ralink-add-gpio-driver-for-ralink-SoC.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/803-gpio-ralink-Add-support-for-GPIO-as-interrupt-contro.patch b/root/target/linux/ramips/patches-5.15/803-gpio-ralink-Add-support-for-GPIO-as-interrupt-contro.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/805-pinctrl-AW9523.patch b/root/target/linux/ramips/patches-5.15/805-pinctrl-AW9523.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/810-uvc-add-iPassion-iP2970-support.patch b/root/target/linux/ramips/patches-5.15/810-uvc-add-iPassion-iP2970-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/820-DT-Add-documentation-for-spi-rt2880.patch b/root/target/linux/ramips/patches-5.15/820-DT-Add-documentation-for-spi-rt2880.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/821-SPI-ralink-add-Ralink-SoC-spi-driver.patch b/root/target/linux/ramips/patches-5.15/821-SPI-ralink-add-Ralink-SoC-spi-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/825-i2c-MIPS-adds-ralink-I2C-driver.patch b/root/target/linux/ramips/patches-5.15/825-i2c-MIPS-adds-ralink-I2C-driver.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/830-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch b/root/target/linux/ramips/patches-5.15/830-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/835-asoc-add-mt7620-support.patch b/root/target/linux/ramips/patches-5.15/835-asoc-add-mt7620-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/840-serial-add-ugly-custom-baud-rate-hack.patch b/root/target/linux/ramips/patches-5.15/840-serial-add-ugly-custom-baud-rate-hack.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/845-pwm-add-mediatek-support.patch b/root/target/linux/ramips/patches-5.15/845-pwm-add-mediatek-support.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/850-awake-rt305x-dwc2-controller.patch b/root/target/linux/ramips/patches-5.15/850-awake-rt305x-dwc2-controller.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/ramips/patches-5.15/855-linkit_bootstrap.patch b/root/target/linux/ramips/patches-5.15/855-linkit_bootstrap.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/Makefile b/root/target/linux/rockchip/Makefile old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/root/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/root/target/linux/rockchip/armv8/base-files/etc/board.d/02_network old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity b/root/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/armv8/config-5.14 b/root/target/linux/rockchip/armv8/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/armv8/config-5.15 b/root/target/linux/rockchip/armv8/config-5.15 old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/files-5.14/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dts b/root/target/linux/rockchip/files-5.14/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dts old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/files-5.15/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dts b/root/target/linux/rockchip/files-5.15/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dts old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/image/armv8.mk b/root/target/linux/rockchip/image/armv8.mk old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/image/nanopi-r4s.bootscript b/root/target/linux/rockchip/image/nanopi-r4s.bootscript old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.10/004-v5.13-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch b/root/target/linux/rockchip/patches-5.10/004-v5.13-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.14/002-net-usb-r8152-add-LED-configuration-from-OF.patch b/root/target/linux/rockchip/patches-5.14/002-net-usb-r8152-add-LED-configuration-from-OF.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.14/003-dt-bindings-net-add-RTL8152-binding-documentation.patch b/root/target/linux/rockchip/patches-5.14/003-dt-bindings-net-add-RTL8152-binding-documentation.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.14/005-arm64-dts-rockchip-add-EEPROM-node-for-NanoPi-R4S.patch b/root/target/linux/rockchip/patches-5.14/005-arm64-dts-rockchip-add-EEPROM-node-for-NanoPi-R4S.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.14/100-rockchip-use-system-LED-for-OpenWrt.patch b/root/target/linux/rockchip/patches-5.14/100-rockchip-use-system-LED-for-OpenWrt.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.14/101-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.patch b/root/target/linux/rockchip/patches-5.14/101-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.14/102-rockchip-enable-LAN-port-on-NanoPi-R2S.patch b/root/target/linux/rockchip/patches-5.14/102-rockchip-enable-LAN-port-on-NanoPi-R2S.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.14/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch b/root/target/linux/rockchip/patches-5.14/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.14/105-rockchip-rock-pi-4.patch b/root/target/linux/rockchip/patches-5.14/105-rockchip-rock-pi-4.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.15/002-net-usb-r8152-add-LED-configuration-from-OF.patch b/root/target/linux/rockchip/patches-5.15/002-net-usb-r8152-add-LED-configuration-from-OF.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.15/003-dt-bindings-net-add-RTL8152-binding-documentation.patch b/root/target/linux/rockchip/patches-5.15/003-dt-bindings-net-add-RTL8152-binding-documentation.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.15/005-arm64-dts-rockchip-add-EEPROM-node-for-NanoPi-R4S.patch b/root/target/linux/rockchip/patches-5.15/005-arm64-dts-rockchip-add-EEPROM-node-for-NanoPi-R4S.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.15/100-rockchip-use-system-LED-for-OpenWrt.patch b/root/target/linux/rockchip/patches-5.15/100-rockchip-use-system-LED-for-OpenWrt.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.15/101-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.patch b/root/target/linux/rockchip/patches-5.15/101-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.15/102-rockchip-enable-LAN-port-on-NanoPi-R2S.patch b/root/target/linux/rockchip/patches-5.15/102-rockchip-enable-LAN-port-on-NanoPi-R2S.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.15/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch b/root/target/linux/rockchip/patches-5.15/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.15/105-rockchip-rock-pi-4.patch b/root/target/linux/rockchip/patches-5.15/105-rockchip-rock-pi-4.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/rockchip/patches-5.4/007-v5.13-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch b/root/target/linux/rockchip/patches-5.4/007-v5.13-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/sunxi/base-files/etc/uci-defaults/99-switch-config b/root/target/linux/sunxi/base-files/etc/uci-defaults/99-switch-config old mode 100755 new mode 100644 diff --git a/root/target/linux/sunxi/config-5.14 b/root/target/linux/sunxi/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/x86/64/config-5.14 b/root/target/linux/x86/64/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/x86/64/config-5.15 b/root/target/linux/x86/64/config-5.15 old mode 100755 new mode 100644 diff --git a/root/target/linux/x86/config-4.19 b/root/target/linux/x86/config-4.19 old mode 100755 new mode 100644 diff --git a/root/target/linux/x86/config-5.14 b/root/target/linux/x86/config-5.14 old mode 100755 new mode 100644 diff --git a/root/target/linux/x86/config-5.15 b/root/target/linux/x86/config-5.15 old mode 100755 new mode 100644 diff --git a/root/target/linux/x86/patches-5.14/012-pcengines-apu2-detect-apuv4-board.patch b/root/target/linux/x86/patches-5.14/012-pcengines-apu2-detect-apuv4-board.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/x86/patches-5.14/100-fix_cs5535_clockevt.patch b/root/target/linux/x86/patches-5.14/100-fix_cs5535_clockevt.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/x86/patches-5.15/012-pcengines-apu2-detect-apuv4-board.patch b/root/target/linux/x86/patches-5.15/012-pcengines-apu2-detect-apuv4-board.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/x86/patches-5.15/100-fix_cs5535_clockevt.patch b/root/target/linux/x86/patches-5.15/100-fix_cs5535_clockevt.patch old mode 100755 new mode 100644 diff --git a/root/target/linux/x86/patches-5.4/990-mptcp-fullmesh-raise-addresses-limit.patch b/root/target/linux/x86/patches-5.4/990-mptcp-fullmesh-raise-addresses-limit.patch old mode 100755 new mode 100644