diff --git a/include/image.mk b/include/image.mk index b23e192c5d..bdcf20d30c 100644 --- a/include/image.mk +++ b/include/image.mk @@ -137,14 +137,6 @@ define Image/BuildKernel/MkuImage -n '$(call toupper,$(ARCH)) $(VERSION_DIST) Linux-$(LINUX_VERSION)' -d $(4) $(5) endef -define Image/BuildKernel/MkFIT - $(TOPDIR)/scripts/mkits.sh \ - -D $(1) -o $(KDIR)/fit-$(1).its -k $(2) $(if $(3),-d $(3)) -C $(4) -a $(5) -e $(6) \ - -c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config-1") \ - -A $(LINUX_KARCH) -v $(LINUX_VERSION) - PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/fit-$(1).its $(KDIR)/fit-$(1)$(7).itb -endef - ifdef CONFIG_TARGET_IMAGES_GZIP define Image/Gzip rm -f $(1).gz diff --git a/include/kernel-5.10 b/include/kernel-5.10 index eff17db834..405640f695 100644 --- a/include/kernel-5.10 +++ b/include/kernel-5.10 @@ -1,2 +1,2 @@ -LINUX_VERSION-5.10 = .113 -LINUX_KERNEL_HASH-5.10.113 = 82516a02bb52456f6e8057217dde6e02b78003b1e058117557c2ae9661696dfc +LINUX_VERSION-5.10 = .115 +LINUX_KERNEL_HASH-5.10.115 = f5e417b32f89318b6d0a230109a592ffd68997817463dc4692fa49ec7fe42f71 diff --git a/include/kernel-5.15 b/include/kernel-5.15 index 1575a9ad0e..fed7f9dbfa 100644 --- a/include/kernel-5.15 +++ b/include/kernel-5.15 @@ -1,2 +1,2 @@ -LINUX_VERSION-5.15 = .38 -LINUX_KERNEL_HASH-5.15.38 = 7e415d420990b88bfec038d56e920b9b28f99d54f31dbbd7aa82e66acca11052 +LINUX_VERSION-5.15 = .40 +LINUX_KERNEL_HASH-5.15.40 = c787f7eecbabbfca4dd3224827292a5fb98e3370c6e04b859714fba25bb8c33b diff --git a/package/boot/uboot-fritz4040/Makefile b/package/boot/uboot-fritz4040/Makefile index d7cde938ce..3aa08081bf 100644 --- a/package/boot/uboot-fritz4040/Makefile +++ b/package/boot/uboot-fritz4040/Makefile @@ -10,9 +10,9 @@ include $(INCLUDE_DIR)/kernel.mk PKG_SOURCE_URL:=https://github.com/chunkeey/FritzBox-4040-UBOOT PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=f92be9d783b1210c020d5d6129e210a94bb7e290 -PKG_SOURCE_DATE:=2019-10-19 -PKG_MIRROR_HASH:=e40a7f624b1758b276f81c765ef1da568c595b8bd54568b9cceca7d170ebc612 +PKG_SOURCE_VERSION:=9d89013f9cc963eca25856c61fa066091d35f8de +PKG_SOURCE_DATE:=2022-05-01 +PKG_MIRROR_HASH:=4f2a3782ba359e6d901b536d1d685026913c14426f8e58ba9673281f20675050 PKG_RELEASE:=$(AUTORELEASE) diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index b3b04c6abf..732fc5ee47 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -25,40 +25,21 @@ endef # ALLWIFIBOARDS:= \ - 8dev_habanero-dvk \ - aruba_ap-303 \ - asus_rt-ac42u \ - avm_fritzrepeater-1200 \ - buffalo_wtr-m2133hp \ - cellc_rtl30vw \ devolo_magic-2-wifi-next \ - dlink_dap2610 \ edgecore_ecw5410 \ edgecore_oap100 \ - engenius_eap2200 \ - engenius_emd1 \ - engenius_emr3500 \ - ezviz_cs-w3-wd1200g-eup \ glinet_gl-ap1300 \ glinet_gl-b2200 \ glinet_gl-s1300 \ - google_wifi \ linksys_ea8300 \ - linksys_mr8300-v0 \ - luma_wrtq-329acn \ mikrotik_cap-ac \ mikrotik_hap-ac2 \ mikrotik_hap-ac3 \ mikrotik_sxtsq-5-ac \ - mobipromo_cm520-79f \ - nec_wg2600hp3 \ p2w_r619ac \ - plasmacloud_pa1200 \ - plasmacloud_pa2200 \ qxwlan_e2600ac-c1 \ qxwlan_e2600ac-c2 \ - teltonika_rutx \ - zte_mf286d + teltonika_rutx ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) @@ -119,39 +100,20 @@ endef # Place files in this directory as board-. # Add $(eval $(call generate-ipq-wifi-package,,)) -$(eval $(call generate-ipq-wifi-package,8dev_habanero-dvk,8devices Habanero DVK)) -$(eval $(call generate-ipq-wifi-package,aruba_ap-303,Aruba AP-303)) -$(eval $(call generate-ipq-wifi-package,asus_rt-ac42u,ASUS RT-AC42U)) -$(eval $(call generate-ipq-wifi-package,avm_fritzrepeater-1200,AVM FRITZRepeater 1200)) -$(eval $(call generate-ipq-wifi-package,buffalo_wtr-m2133hp,Buffalo WTR-M2133HP)) -$(eval $(call generate-ipq-wifi-package,cellc_rtl30vw, Cell C RTL30VW)) $(eval $(call generate-ipq-wifi-package,devolo_magic-2-wifi-next,devolo Magic 2 WiFi next)) -$(eval $(call generate-ipq-wifi-package,dlink_dap2610,D-Link DAP-2610)) $(eval $(call generate-ipq-wifi-package,edgecore_ecw5410,Edgecore ECW5410)) $(eval $(call generate-ipq-wifi-package,edgecore_oap100,Edgecore OAP100)) -$(eval $(call generate-ipq-wifi-package,engenius_eap2200,EnGenius EAP2200)) -$(eval $(call generate-ipq-wifi-package,engenius_emd1,EnGenius EMD1)) -$(eval $(call generate-ipq-wifi-package,engenius_emr3500,EnGenius EMR3500)) -$(eval $(call generate-ipq-wifi-package,ezviz_cs-w3-wd1200g-eup,EZVIZ CS-W3-WD1200G EUP)) $(eval $(call generate-ipq-wifi-package,glinet_gl-ap1300,GL.iNet GL-AP1300)) $(eval $(call generate-ipq-wifi-package,glinet_gl-b2200,GL.iNet GL-B2200)) $(eval $(call generate-ipq-wifi-package,glinet_gl-s1300,GL.iNet GL-S1300)) -$(eval $(call generate-ipq-wifi-package,google_wifi,Google WiFi)) $(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300)) -$(eval $(call generate-ipq-wifi-package,linksys_mr8300-v0,Linksys MR8300)) -$(eval $(call generate-ipq-wifi-package,luma_wrtq-329acn,Luma WRTQ-329ACN)) $(eval $(call generate-ipq-wifi-package,mikrotik_cap-ac,Mikrotik cAP ac)) $(eval $(call generate-ipq-wifi-package,mikrotik_hap-ac2,Mikrotik hAP ac2)) $(eval $(call generate-ipq-wifi-package,mikrotik_hap-ac3,Mikrotik hAP ac3)) $(eval $(call generate-ipq-wifi-package,mikrotik_sxtsq-5-ac,MikroTik SXTsq 5 ac)) -$(eval $(call generate-ipq-wifi-package,mobipromo_cm520-79f,MobiPromo CM520-79F)) -$(eval $(call generate-ipq-wifi-package,nec_wg2600hp3,NEC Platforms WG2600HP3)) $(eval $(call generate-ipq-wifi-package,p2w_r619ac,P&W R619AC)) -$(eval $(call generate-ipq-wifi-package,plasmacloud_pa1200,Plasma Cloud PA1200)) -$(eval $(call generate-ipq-wifi-package,plasmacloud_pa2200,Plasma Cloud PA2200)) $(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac-c1,Qxwlan E2600AC C1)) $(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac-c2,Qxwlan E2600AC C2)) $(eval $(call generate-ipq-wifi-package,teltonika_rutx,Teltonika RUTX)) -$(eval $(call generate-ipq-wifi-package,zte_mf286d,ZTE MF286D)) $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) diff --git a/package/firmware/ipq-wifi/board-8dev_habanero-dvk.qca4019 b/package/firmware/ipq-wifi/board-8dev_habanero-dvk.qca4019 deleted file mode 100644 index 9048239cf9..0000000000 Binary files a/package/firmware/ipq-wifi/board-8dev_habanero-dvk.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-aruba_ap-303.qca4019 b/package/firmware/ipq-wifi/board-aruba_ap-303.qca4019 deleted file mode 100644 index 4848115cfb..0000000000 Binary files a/package/firmware/ipq-wifi/board-aruba_ap-303.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-asus_rt-ac42u.qca4019 b/package/firmware/ipq-wifi/board-asus_rt-ac42u.qca4019 deleted file mode 100644 index cf6b9e0538..0000000000 Binary files a/package/firmware/ipq-wifi/board-asus_rt-ac42u.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-asus_rt-ac42u.qca9984 b/package/firmware/ipq-wifi/board-asus_rt-ac42u.qca9984 deleted file mode 100644 index ea123a3a63..0000000000 Binary files a/package/firmware/ipq-wifi/board-asus_rt-ac42u.qca9984 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-avm_fritzrepeater-1200.qca4019 b/package/firmware/ipq-wifi/board-avm_fritzrepeater-1200.qca4019 deleted file mode 100644 index d78a49d4db..0000000000 Binary files a/package/firmware/ipq-wifi/board-avm_fritzrepeater-1200.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-buffalo_wtr-m2133hp.qca4019 b/package/firmware/ipq-wifi/board-buffalo_wtr-m2133hp.qca4019 deleted file mode 100644 index 8305ba0166..0000000000 Binary files a/package/firmware/ipq-wifi/board-buffalo_wtr-m2133hp.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-buffalo_wtr-m2133hp.qca9984 b/package/firmware/ipq-wifi/board-buffalo_wtr-m2133hp.qca9984 deleted file mode 100644 index 656cb99cbb..0000000000 Binary files a/package/firmware/ipq-wifi/board-buffalo_wtr-m2133hp.qca9984 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-cellc_rtl30vw.qca4019 b/package/firmware/ipq-wifi/board-cellc_rtl30vw.qca4019 deleted file mode 100644 index 2fff2bf5fc..0000000000 Binary files a/package/firmware/ipq-wifi/board-cellc_rtl30vw.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-dlink_dap2610.qca4019 b/package/firmware/ipq-wifi/board-dlink_dap2610.qca4019 deleted file mode 100644 index 08ed731a4c..0000000000 Binary files a/package/firmware/ipq-wifi/board-dlink_dap2610.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-engenius_eap2200.qca4019 b/package/firmware/ipq-wifi/board-engenius_eap2200.qca4019 deleted file mode 100644 index 337d896d1e..0000000000 Binary files a/package/firmware/ipq-wifi/board-engenius_eap2200.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-engenius_eap2200.qca9888 b/package/firmware/ipq-wifi/board-engenius_eap2200.qca9888 deleted file mode 100644 index 2e938f4785..0000000000 Binary files a/package/firmware/ipq-wifi/board-engenius_eap2200.qca9888 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-engenius_emd1.qca4019 b/package/firmware/ipq-wifi/board-engenius_emd1.qca4019 deleted file mode 100644 index 3a2d77597d..0000000000 Binary files a/package/firmware/ipq-wifi/board-engenius_emd1.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-engenius_emr3500.qca4019 b/package/firmware/ipq-wifi/board-engenius_emr3500.qca4019 deleted file mode 100644 index 9f7ecfb708..0000000000 Binary files a/package/firmware/ipq-wifi/board-engenius_emr3500.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-ezviz_cs-w3-wd1200g-eup.qca4019 b/package/firmware/ipq-wifi/board-ezviz_cs-w3-wd1200g-eup.qca4019 deleted file mode 100644 index 987e34c640..0000000000 Binary files a/package/firmware/ipq-wifi/board-ezviz_cs-w3-wd1200g-eup.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-google_wifi.qca4019 b/package/firmware/ipq-wifi/board-google_wifi.qca4019 deleted file mode 100644 index 1c10731f0d..0000000000 Binary files a/package/firmware/ipq-wifi/board-google_wifi.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-linksys_mr8300-v0.qca4019 b/package/firmware/ipq-wifi/board-linksys_mr8300-v0.qca4019 deleted file mode 100644 index 689d9c481d..0000000000 Binary files a/package/firmware/ipq-wifi/board-linksys_mr8300-v0.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-linksys_mr8300-v0.qca9888 b/package/firmware/ipq-wifi/board-linksys_mr8300-v0.qca9888 deleted file mode 100644 index 90b6bac08c..0000000000 Binary files a/package/firmware/ipq-wifi/board-linksys_mr8300-v0.qca9888 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-luma_wrtq-329acn.qca4019 b/package/firmware/ipq-wifi/board-luma_wrtq-329acn.qca4019 deleted file mode 100644 index 4e52602713..0000000000 Binary files a/package/firmware/ipq-wifi/board-luma_wrtq-329acn.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-mobipromo_cm520-79f.qca4019 b/package/firmware/ipq-wifi/board-mobipromo_cm520-79f.qca4019 deleted file mode 100644 index d717af12fe..0000000000 Binary files a/package/firmware/ipq-wifi/board-mobipromo_cm520-79f.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-nec_wg2600hp3.qca9984 b/package/firmware/ipq-wifi/board-nec_wg2600hp3.qca9984 deleted file mode 100644 index f95ccd251e..0000000000 Binary files a/package/firmware/ipq-wifi/board-nec_wg2600hp3.qca9984 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-plasmacloud_pa1200.qca4019 b/package/firmware/ipq-wifi/board-plasmacloud_pa1200.qca4019 deleted file mode 100644 index 27bfcfecc6..0000000000 Binary files a/package/firmware/ipq-wifi/board-plasmacloud_pa1200.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-plasmacloud_pa2200.qca4019 b/package/firmware/ipq-wifi/board-plasmacloud_pa2200.qca4019 deleted file mode 100644 index d1db0f5f4b..0000000000 Binary files a/package/firmware/ipq-wifi/board-plasmacloud_pa2200.qca4019 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-plasmacloud_pa2200.qca9888 b/package/firmware/ipq-wifi/board-plasmacloud_pa2200.qca9888 deleted file mode 100644 index 6c3f083eb2..0000000000 Binary files a/package/firmware/ipq-wifi/board-plasmacloud_pa2200.qca9888 and /dev/null differ diff --git a/package/firmware/ipq-wifi/board-zte_mf286d.qca4019 b/package/firmware/ipq-wifi/board-zte_mf286d.qca4019 deleted file mode 100644 index 348cf954d7..0000000000 Binary files a/package/firmware/ipq-wifi/board-zte_mf286d.qca4019 and /dev/null differ diff --git a/package/firmware/linux-firmware/Makefile b/package/firmware/linux-firmware/Makefile index f0d3e85cd8..7b3b8ee721 100644 --- a/package/firmware/linux-firmware/Makefile +++ b/package/firmware/linux-firmware/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=linux-firmware -PKG_VERSION:=20220411 +PKG_VERSION:=20220509 PKG_RELEASE:=1 PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_HASH:=020b11f6412f4956f5a6f98de7d41867d2b30ea0ce81b1e2d206ec9840363849 +PKG_HASH:=376e0b3d7b4f8aaa2abf7f5ab74803dcf14b06b94e3d841b1467cd9a2848255e PKG_MAINTAINER:=Felix Fietkau diff --git a/package/firmware/linux-firmware/qca_ath10k.mk b/package/firmware/linux-firmware/qca_ath10k.mk index e6beef791b..25a1571ad6 100644 --- a/package/firmware/linux-firmware/qca_ath10k.mk +++ b/package/firmware/linux-firmware/qca_ath10k.mk @@ -1,14 +1,3 @@ -QCA99X0_BOARD_REV:=e404444dfc0baf7d0fcde21ab8ec333608c9960c -QCA99X0_BOARD_FILE:=board-2.bin.$(QCA99X0_BOARD_REV) - -define Download/qca99x0-board - URL:=https://github.com/kvalo/ath10k-firmware/raw/master/QCA99X0/hw2.0/ - URL_FILE:=board-2.bin - FILE:=$(QCA99X0_BOARD_FILE) - HASH:=f91975dca2435fa6f8570146e6b255c2a70b9ffbdf5ef16a29d67bec7374c11a -endef -$(eval $(call Download,qca99x0-board)) - Package/ath10k-board-qca4019 = $(call Package/firmware-default,ath10k qca4019 board firmware) define Package/ath10k-board-qca4019/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 @@ -117,7 +106,7 @@ Package/ath10k-board-qca99x0 = $(call Package/firmware-default,ath10k qca99x0 bo define Package/ath10k-board-qca99x0/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 $(INSTALL_DATA) \ - $(DL_DIR)/$(QCA99X0_BOARD_FILE) \ + $(PKG_BUILD_DIR)/ath10k/QCA99X0/hw2.0/board-2.bin \ $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin endef $(eval $(call BuildPackage,ath10k-board-qca99x0)) diff --git a/package/libs/libubox/Makefile b/package/libs/libubox/Makefile index ea9f1cf652..9ad4c30595 100644 --- a/package/libs/libubox/Makefile +++ b/package/libs/libubox/Makefile @@ -5,9 +5,9 @@ PKG_RELEASE=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/libubox.git -PKG_MIRROR_HASH:=ae02e1539ea6af072e39ce0d7179806c98eb29188c233be44226118f4c4271ee -PKG_SOURCE_DATE:=2021-11-20 -PKG_SOURCE_VERSION:=cce5e351278b307af7f69931971e3d4e060117d7 +PKG_MIRROR_HASH:=cf48d00ed0ea74d53f2043eb9f9dc52834c0b214f258201cf22dfff7dd6c6e40 +PKG_SOURCE_DATE:=2022-05-15 +PKG_SOURCE_VERSION:=d2223ef9da7172a84d1508733dc58840e1381e3c PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_SOURCE_DATE)) CMAKE_INSTALL:=1 diff --git a/package/libs/openssl/Makefile b/package/libs/openssl/Makefile index a8ec5d015d..87dab1f2dc 100644 --- a/package/libs/openssl/Makefile +++ b/package/libs/openssl/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openssl PKG_BASE:=1.1.1 -PKG_BUGFIX:=n +PKG_BUGFIX:=o PKG_VERSION:=$(PKG_BASE)$(PKG_BUGFIX) PKG_RELEASE:=$(AUTORELEASE) PKG_USE_MIPS16:=0 @@ -27,7 +27,7 @@ PKG_SOURCE_URL:= \ ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/ \ ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/old/$(PKG_BASE)/ -PKG_HASH:=40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a +PKG_HASH:=9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f PKG_LICENSE:=OpenSSL PKG_LICENSE_FILES:=LICENSE diff --git a/package/libs/openssl/patches/430-e_devcrypto-make-the-dev-crypto-engine-dynamic.patch b/package/libs/openssl/patches/430-e_devcrypto-make-the-dev-crypto-engine-dynamic.patch index 1298efe546..da9b704501 100644 --- a/package/libs/openssl/patches/430-e_devcrypto-make-the-dev-crypto-engine-dynamic.patch +++ b/package/libs/openssl/patches/430-e_devcrypto-make-the-dev-crypto-engine-dynamic.patch @@ -21,7 +21,7 @@ diff --git a/crypto/engine/build.info b/crypto/engine/build.info diff --git a/crypto/init.c b/crypto/init.c --- a/crypto/init.c +++ b/crypto/init.c -@@ -329,18 +329,6 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_engine_openssl) +@@ -328,18 +328,6 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_engine_openssl) engine_load_openssl_int(); return 1; } @@ -40,7 +40,7 @@ diff --git a/crypto/init.c b/crypto/init.c # ifndef OPENSSL_NO_RDRAND static CRYPTO_ONCE engine_rdrand = CRYPTO_ONCE_STATIC_INIT; -@@ -365,6 +353,18 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_engine_dynamic) +@@ -364,6 +352,18 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_engine_dynamic) return 1; } # ifndef OPENSSL_NO_STATIC_ENGINE @@ -59,7 +59,7 @@ diff --git a/crypto/init.c b/crypto/init.c # if !defined(OPENSSL_NO_HW) && !defined(OPENSSL_NO_HW_PADLOCK) static CRYPTO_ONCE engine_padlock = CRYPTO_ONCE_STATIC_INIT; DEFINE_RUN_ONCE_STATIC(ossl_init_engine_padlock) -@@ -713,11 +713,6 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings) +@@ -704,11 +704,6 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings) if ((opts & OPENSSL_INIT_ENGINE_OPENSSL) && !RUN_ONCE(&engine_openssl, ossl_init_engine_openssl)) return 0; @@ -71,7 +71,7 @@ diff --git a/crypto/init.c b/crypto/init.c # ifndef OPENSSL_NO_RDRAND if ((opts & OPENSSL_INIT_ENGINE_RDRAND) && !RUN_ONCE(&engine_rdrand, ossl_init_engine_rdrand)) -@@ -727,6 +722,11 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings) +@@ -718,6 +713,11 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings) && !RUN_ONCE(&engine_dynamic, ossl_init_engine_dynamic)) return 0; # ifndef OPENSSL_NO_STATIC_ENGINE diff --git a/package/libs/wolfssl/Makefile b/package/libs/wolfssl/Makefile index 5cd2501f2d..cfd65b4a69 100644 --- a/package/libs/wolfssl/Makefile +++ b/package/libs/wolfssl/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=wolfssl -PKG_VERSION:=5.2.0-stable +PKG_VERSION:=5.3.0-stable PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/wolfSSL/wolfssl/archive/v$(PKG_VERSION) -PKG_HASH:=409b4646c5f54f642de0e9f3544c3b83de7238134f5b1ff93fb44527bf119d05 +PKG_HASH:=1a3bb310dc01d3e73d9ad91b6ea8249d081016f8eef4ae8f21d3421f91ef1de9 PKG_FIXUP:=libtool libtool-abiver PKG_INSTALL:=1 diff --git a/package/libs/wolfssl/patches/300-fix-SSL_get_verify_result-regression.patch b/package/libs/wolfssl/patches/300-fix-SSL_get_verify_result-regression.patch deleted file mode 100644 index d6e7998744..0000000000 --- a/package/libs/wolfssl/patches/300-fix-SSL_get_verify_result-regression.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 87e43dd63ba429297e439f2dfd1ee8b45981e18b Mon Sep 17 00:00:00 2001 -From: Juliusz Sosinowicz -Date: Sat, 12 Feb 2022 00:34:24 +0100 -Subject: [PATCH] Reported in ZD13631 - -`ssl->peerVerifyRet` wasn't being cleared when retrying with an alternative cert chain - -References: https://github.com/wolfSSL/wolfssl/issues/4879 ---- - src/internal.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/src/internal.c -+++ b/src/internal.c -@@ -12342,6 +12342,9 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte* - } - - ret = 0; /* clear errors and continue */ -+ #if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) -+ ssl->peerVerifyRet = 0; -+ #endif - args->verifyErr = 0; - } - diff --git a/package/libs/wolfssl/patches/400-wolfcrypt-src-port-devcrypto-devcrypto_aes.c-remove-.patch b/package/libs/wolfssl/patches/400-wolfcrypt-src-port-devcrypto-devcrypto_aes.c-remove-.patch deleted file mode 100644 index 3c0c0a07af..0000000000 --- a/package/libs/wolfssl/patches/400-wolfcrypt-src-port-devcrypto-devcrypto_aes.c-remove-.patch +++ /dev/null @@ -1,19 +0,0 @@ -From 096889927d9528d4fbeb3aab56d1fe8225d2e7ec Mon Sep 17 00:00:00 2001 -From: Daniel Pouzzner -Date: Thu, 14 Apr 2022 20:23:31 -0500 -Subject: [PATCH] wolfcrypt/src/port/devcrypto/devcrypto_aes.c: remove - redundant "int ret" in wc_AesCtrEncrypt() (supersedes #5052). - - -diff --git a/wolfcrypt/src/port/devcrypto/devcrypto_aes.c b/wolfcrypt/src/port/devcrypto/devcrypto_aes.c -index 3bc1d5bb1..28e145e27 100644 ---- a/wolfcrypt/src/port/devcrypto/devcrypto_aes.c -+++ b/wolfcrypt/src/port/devcrypto/devcrypto_aes.c -@@ -208,7 +208,6 @@ int wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz) - int ret; - struct crypt_op crt; - byte* tmp; -- int ret; - - if (aes == NULL || out == NULL || in == NULL) { - return BAD_FUNC_ARG; diff --git a/package/utils/util-linux/Makefile b/package/utils/util-linux/Makefile index 6d44e92f00..706c3194b1 100644 --- a/package/utils/util-linux/Makefile +++ b/package/utils/util-linux/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=util-linux -PKG_VERSION:=2.37.3 +PKG_VERSION:=2.38 PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.37 -PKG_HASH:=590c592e58cd6bf38519cb467af05ce6a1ab18040e3e3418f24bcfb2f55f9776 +PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.38 +PKG_HASH:=6d111cbe4d55b336db2f1fbeffbc65b89908704c01136371d32aa9bec373eb64 PKG_CPE_ID:=cpe:/a:kernel:util-linux PKG_LICENSE:=GPL-2.0-only @@ -25,14 +25,10 @@ PKG_LICENSE_FILES:= COPYING \ libuuid/COPYING \ Documentation/licenses/COPYING.BSD-3 -PKG_BUILD_PARALLEL:=1 - -PKG_FIXUP:=autoreconf PKG_INSTALL:=1 -DISABLE_NLS:=--disable-nls - include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/meson.mk define Package/util-linux/Default SECTION:=utils @@ -552,44 +548,69 @@ define Package/wipefs/description libblkid. endef -CONFIGURE_ARGS += \ - --disable-use-tty-group \ - --disable-rpath \ - --disable-tls \ - --disable-su \ - --disable-sulogin \ - --disable-makeinstall-chown \ - --disable-login \ - --disable-nologin \ - --disable-lslogins \ - --disable-runuser \ - --disable-chfn-chsh \ - --disable-raw \ - --without-python \ - --without-udev \ - --without-readline \ - --without-libmagic \ - --with-ncursesw - -TARGET_CFLAGS += $(FPIC) -std=gnu99 +MESON_ARGS += \ + -Dsystemd=disabled \ + -Dtinfo=disabled \ + -Dcryptsetup=disabled \ + -Dlibutil=disabled \ + -Dlibutempter=disabled \ + -Dlibpcre2-posix=disabled \ + -Dlibuser=disabled \ + -Duse-tty-group=false \ + -Duse-tls=false \ + -Dbuild-python=disabled \ + -Dbuild-zramctl=disabled \ + -Dbuild-fsck=disabled \ + -Dbuild-wipefs=disabled \ + -Dbuild-fallocate=disabled \ + -Dbuild-setpriv=disabled \ + -Dbuild-hardlink=disabled \ + -Dbuild-cramfs=disabled \ + -Dbuild-bfs=disabled \ + -Dbuild-minix=disabled \ + -Dbuild-fdformat=disabled \ + -Dbuild-lslogins=disabled \ + -Dbuild-wdctl=disabled \ + -Dbuild-cal=disabled \ + -Dbuild-switch_root=disabled \ + -Dbuild-pivot_root=disabled \ + -Dbuild-lsmem=disabled \ + -Dbuild-lsirq=disabled \ + -Dbuild-irqtop=disabled \ + -Dbuild-chmem=disabled \ + -Dbuild-ipcrm=disabled \ + -Dbuild-rfkill=disabled \ + -Dbuild-tunelp=disabled \ + -Dbuild-kill=disabled \ + -Dbuild-last=disabled \ + -Dbuild-utmpdump=disabled \ + -Dbuild-line=disabled \ + -Dbuild-mesg=disabled \ + -Dbuild-raw=disabled \ + -Dbuild-vipw=disabled \ + -Dbuild-newgrp=disabled \ + -Dbuild-chfn-chsh=disabled \ + -Dbuild-login=disabled \ + -Dbuild-nologin=disabled \ + -Dbuild-sulogin=disabled \ + -Dbuild-su=disabled \ + -Dbuild-runuser=disabled \ + -Dbuild-ul=disabled \ + -Dbuild-pg=disabled \ + -Dbuild-write=disabled \ + -Dbuild-bash-completion=disabled \ + -Dbuild-pylibmount=disabled \ + -Dreadline=disabled \ + -Dmagic=disabled \ + -Dncursesw=enabled define Build/InstallDev $(INSTALL_DIR) $(1)/usr/lib/pkgconfig $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/blkid.pc $(1)/usr/lib/pkgconfig - $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/blkid.pc - $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/blkid.pc $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/fdisk.pc $(1)/usr/lib/pkgconfig - $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/fdisk.pc - $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/fdisk.pc $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/mount.pc $(1)/usr/lib/pkgconfig - $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/mount.pc - $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/mount.pc $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/smartcols.pc $(1)/usr/lib/pkgconfig - $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/smartcols.pc - $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/smartcols.pc $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/uuid.pc $(1)/usr/lib/pkgconfig - $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/uuid.pc - $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/uuid.pc $(INSTALL_DIR) $(1)/usr/include/blkid $(CP) $(PKG_INSTALL_DIR)/usr/include/blkid/blkid.h $(1)/usr/include/blkid @@ -603,43 +624,37 @@ define Build/InstallDev $(CP) $(PKG_INSTALL_DIR)/usr/include/libsmartcols/libsmartcols.h $(1)/usr/include/libsmartcols $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/lib/libblkid.so* $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/lib/libfdisk.so* $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/lib/libmount.so* $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/lib/libuuid.so* $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/lib/libsmartcols.so* $(1)/usr/lib - - $(LN) libblkid.so.1 $(1)/usr/lib/libblkid.so - $(LN) libfdisk.so.1 $(1)/usr/lib/libfdisk.so - $(LN) libmount.so.1 $(1)/usr/lib/libmount.so - $(LN) libuuid.so.1 $(1)/usr/lib/libuuid.so - $(LN) libsmartcols.so.1 $(1)/usr/lib/libsmartcols.so + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libblkid.so* $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfdisk.so* $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmount.so* $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libuuid.so* $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsmartcols.so* $(1)/usr/lib endef define Package/libfdisk/install $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/lib/libfdisk.so.* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfdisk.so.* $(1)/usr/lib/ endef define Package/libblkid/install $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/lib/libblkid.so.* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libblkid.so.* $(1)/usr/lib/ endef define Package/libmount/install $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/lib/libmount.so.* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmount.so.* $(1)/usr/lib/ endef define Package/libsmartcols/install $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/lib/libsmartcols.so.* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsmartcols.so.* $(1)/usr/lib/ endef define Package/libuuid/install $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/lib/libuuid.so.* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libuuid.so.* $(1)/usr/lib/ endef define Package/agetty/install diff --git a/package/utils/util-linux/patches/010-meson-typo.patch b/package/utils/util-linux/patches/010-meson-typo.patch new file mode 100644 index 0000000000..466d942d58 --- /dev/null +++ b/package/utils/util-linux/patches/010-meson-typo.patch @@ -0,0 +1,20 @@ +From c387d4fe7a1435a762a5b7d8b75feb13ad613315 Mon Sep 17 00:00:00 2001 +From: Anatoly Pugachev +Date: Fri, 8 Apr 2022 15:34:16 +0300 +Subject: [PATCH] libfdisk: meson.build fix typo + +--- + libfdisk/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/libfdisk/meson.build ++++ b/libfdisk/meson.build +@@ -11,7 +11,7 @@ libfdisk_h = configure_file( + output : 'libfdisk.h', + configuration : defs, + install : build_libfdisk, +- install_dir : join_paths(get_option('includedir'), 'libfisk'), ++ install_dir : join_paths(get_option('includedir'), 'libfdisk'), + ) + + lib_fdisk_sources = ''' diff --git a/package/utils/util-linux/patches/020-meson-fix-compilation-without-systemd.patch b/package/utils/util-linux/patches/020-meson-fix-compilation-without-systemd.patch new file mode 100644 index 0000000000..aa209994ec --- /dev/null +++ b/package/utils/util-linux/patches/020-meson-fix-compilation-without-systemd.patch @@ -0,0 +1,22 @@ +From 38b15ca2dc4ca32bbe4a2449e1c7b645e4577840 Mon Sep 17 00:00:00 2001 +From: Rosen Penev +Date: Fri, 29 Apr 2022 16:53:43 -0700 +Subject: [PATCH 1/7] meson: fix compilation without systemd + +systemdsystemunitdir is used elsewhere. + +Signed-off-by: Rosen Penev +--- + meson.build | 1 + + 1 file changed, 1 insertion(+) + +--- a/meson.build ++++ b/meson.build +@@ -720,6 +720,7 @@ if fs_search_path_extra != '' + endif + conf.set_quoted('FS_SEARCH_PATH', fs_search_path) + ++systemdsystemunitdir = '' + if systemd.found() + systemdsystemunitdir = systemd.get_pkgconfig_variable('systemdsystemunitdir') + endif diff --git a/package/utils/util-linux/patches/030-meson-don-t-use-run.patch b/package/utils/util-linux/patches/030-meson-don-t-use-run.patch new file mode 100644 index 0000000000..7803dd7725 --- /dev/null +++ b/package/utils/util-linux/patches/030-meson-don-t-use-run.patch @@ -0,0 +1,34 @@ +From e25db9169450d3d5fb43656a2eae5c08999310f4 Mon Sep 17 00:00:00 2001 +From: Rosen Penev +Date: Fri, 29 Apr 2022 16:56:54 -0700 +Subject: [PATCH 2/7] meson: don't use run + +Fixes cross compilation. run is not needed anyway. + +Signed-off-by: Rosen Penev +--- + meson.build | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +--- a/meson.build ++++ b/meson.build +@@ -577,8 +577,7 @@ int main(void) { + return tzname ? 0 : 1; + } + '''.format(have ? 1 : 0) +-result = cc.run(code, name : 'using tzname[]') +-have = result.compiled() and result.returncode() == 0 ++have = cc.compiles(code, name : 'using tzname[]') + conf.set('HAVE_TZNAME', have ? 1 : false) + + socket_libs = [] +@@ -641,8 +640,7 @@ int main(void) { + return (*__progname != 0); + } + ''' +-result = cc.run(code, name : 'using __progname') +-have = result.compiled() and result.returncode() == 0 ++have = cc.compiles(code, name : 'using __progname') + conf.set('HAVE___PROGNAME', have ? 1 : false) + + build_plymouth_support = get_option('build-plymouth-support') diff --git a/package/utils/util-linux/patches/040-meson-fix-cpu_set_t-test.patch b/package/utils/util-linux/patches/040-meson-fix-cpu_set_t-test.patch new file mode 100644 index 0000000000..bdbfc4bfe0 --- /dev/null +++ b/package/utils/util-linux/patches/040-meson-fix-cpu_set_t-test.patch @@ -0,0 +1,23 @@ +From 4194bb5b35e9b5f3296bf17b7cabcc5cb1632ba3 Mon Sep 17 00:00:00 2001 +From: Rosen Penev +Date: Fri, 29 Apr 2022 16:55:15 -0700 +Subject: [PATCH 3/7] meson: fix cpu_set_t test + +_GNU_SOURCE is needed here. + +Signed-off-by: Rosen Penev +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/meson.build ++++ b/meson.build +@@ -379,7 +379,7 @@ endforeach + have = cc.has_header('sched.h') + conf.set10('HAVE_DECL_CPU_ALLOC', have) + # We get -1 if the size cannot be determined +-have_cpu_set_t = cc.sizeof('cpu_set_t', prefix : '#include ') > 0 ++have_cpu_set_t = cc.sizeof('cpu_set_t', prefix : '#define _GNU_SOURCE\n#include ') > 0 + conf.set('HAVE_CPU_SET_T', have_cpu_set_t ? 1 : false) + + have = cc.has_header_symbol('stdlib.h', 'environ') diff --git a/package/utils/util-linux/patches/050-meson-fix-environ-search.patch b/package/utils/util-linux/patches/050-meson-fix-environ-search.patch new file mode 100644 index 0000000000..2cd02e5b47 --- /dev/null +++ b/package/utils/util-linux/patches/050-meson-fix-environ-search.patch @@ -0,0 +1,23 @@ +From 1e9e2b9fe365cc4a0025d44dc0a9c54bfffe9058 Mon Sep 17 00:00:00 2001 +From: Rosen Penev +Date: Fri, 29 Apr 2022 18:16:17 -0700 +Subject: [PATCH 4/7] meson: fix environ search + +musl has it defined in unistd.h and hidden behind _GNU_SOURCE. + +Signed-off-by: Rosen Penev +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/meson.build ++++ b/meson.build +@@ -382,7 +382,7 @@ conf.set10('HAVE_DECL_CPU_ALLOC', have) + have_cpu_set_t = cc.sizeof('cpu_set_t', prefix : '#define _GNU_SOURCE\n#include ') > 0 + conf.set('HAVE_CPU_SET_T', have_cpu_set_t ? 1 : false) + +-have = cc.has_header_symbol('stdlib.h', 'environ') ++have = cc.has_header_symbol('unistd.h', 'environ', prefix : '#define _GNU_SOURCE') + conf.set10('HAVE_ENVIRON_DECL', have) + + have = cc.has_header_symbol('signal.h', 'sighandler_t') diff --git a/package/utils/util-linux/patches/060-meson-add-_GNU_SOURCE-for-sighandler_t.patch b/package/utils/util-linux/patches/060-meson-add-_GNU_SOURCE-for-sighandler_t.patch new file mode 100644 index 0000000000..7f9137f8bc --- /dev/null +++ b/package/utils/util-linux/patches/060-meson-add-_GNU_SOURCE-for-sighandler_t.patch @@ -0,0 +1,23 @@ +From 5d7557eb3827664b2b78145373907f2a6994bdf9 Mon Sep 17 00:00:00 2001 +From: Rosen Penev +Date: Fri, 29 Apr 2022 18:17:52 -0700 +Subject: [PATCH 5/7] meson: add _GNU_SOURCE for sighandler_t + +musl requires it. + +Signed-off-by: Rosen Penev +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/meson.build ++++ b/meson.build +@@ -385,7 +385,7 @@ conf.set('HAVE_CPU_SET_T', have_cpu_set_ + have = cc.has_header_symbol('unistd.h', 'environ', prefix : '#define _GNU_SOURCE') + conf.set10('HAVE_ENVIRON_DECL', have) + +-have = cc.has_header_symbol('signal.h', 'sighandler_t') ++have = cc.has_header_symbol('signal.h', 'sighandler_t', prefix : '#define _GNU_SOURCE') + conf.set('HAVE_SIGHANDLER_T', have ? 1 : false) + + have = cc.has_header_symbol('string.h', 'strsignal') diff --git a/package/utils/util-linux/patches/070-meson-fix-isnan-check.patch b/package/utils/util-linux/patches/070-meson-fix-isnan-check.patch new file mode 100644 index 0000000000..a0b104f801 --- /dev/null +++ b/package/utils/util-linux/patches/070-meson-fix-isnan-check.patch @@ -0,0 +1,24 @@ +From 777652585924034deeba98ae3192f26bc32bb661 Mon Sep 17 00:00:00 2001 +From: Rosen Penev +Date: Fri, 29 Apr 2022 18:19:53 -0700 +Subject: [PATCH 6/7] meson: fix isnan check + +musl only has isnan as a macro, not as a function. Handle the former +case. + +Signed-off-by: Rosen Penev +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/meson.build ++++ b/meson.build +@@ -622,7 +622,7 @@ rtas_libs = cc.find_library('rtas', requ + conf.set('HAVE_LIBRTAS', rtas_libs.found() ? 1 : false) + + math_libs = [] +-if not cc.has_function('isnan') ++if not cc.has_header_symbol('math.h', 'isnan') + lib = cc.find_library('m', required : true) + if (cc.has_function('isnan', dependencies : lib) and + cc.has_function('__isnan', dependencies : lib)) diff --git a/package/utils/util-linux/patches/080-meson-fix-tzname-check.patch b/package/utils/util-linux/patches/080-meson-fix-tzname-check.patch new file mode 100644 index 0000000000..f5d53c4d36 --- /dev/null +++ b/package/utils/util-linux/patches/080-meson-fix-tzname-check.patch @@ -0,0 +1,23 @@ +From 9a6b2618b46a859388139d1eb18f876886786659 Mon Sep 17 00:00:00 2001 +From: Rosen Penev +Date: Fri, 29 Apr 2022 19:00:53 -0700 +Subject: [PATCH] meson: fix tzname check + +tzname is not a type but a variable. sizeof only works on types. + +Signed-off-by: Rosen Penev +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/meson.build ++++ b/meson.build +@@ -565,7 +565,7 @@ have = cc.has_member('struct tm', 'tm_zo + prefix : '#include ') + conf.set('HAVE_STRUCT_TM_TM_ZONE', have ? 1 : false) + +-have = cc.sizeof('tzname', prefix : '#include ') > 0 ++have = cc.has_header_symbol('time.h', 'tzname') + conf.set('HAVE_DECL_TZNAME', have ? 1 : false) + + code = ''' diff --git a/package/utils/util-linux/patches/090-meson-libpam.patch b/package/utils/util-linux/patches/090-meson-libpam.patch new file mode 100644 index 0000000000..c9a91b9937 --- /dev/null +++ b/package/utils/util-linux/patches/090-meson-libpam.patch @@ -0,0 +1,18 @@ +--- a/meson.build ++++ b/meson.build +@@ -299,10 +299,14 @@ conf.set('HAVE_LIBUDEV', lib_udev.found( + + lib_crypt = cc.find_library('crypt') + +-lib_pam = cc.find_library('pam') ++req_libpam = not (get_option('build-login').disabled() or get_option('build-chfn-chsh').disabled() ++ or get_option('build-su').disabled() or get_option('build-runuser').disabled()) ++lib_pam = cc.find_library('pam', required : req_libpam) + if lib_pam.found() + lib_pam_misc = cc.find_library('pam_misc') + lib_pam = [lib_pam, lib_pam_misc] ++else ++ lib_pam_misc = declare_dependency() + endif + + lib_cryptsetup = dependency( diff --git a/package/utils/util-linux/patches/100-meson-make-libcap-ng-dependent-on-setpriv.patch b/package/utils/util-linux/patches/100-meson-make-libcap-ng-dependent-on-setpriv.patch new file mode 100644 index 0000000000..d8b1199004 --- /dev/null +++ b/package/utils/util-linux/patches/100-meson-make-libcap-ng-dependent-on-setpriv.patch @@ -0,0 +1,31 @@ +From cd23a4336f49ba6a12ade557a09589f2a7c966f4 Mon Sep 17 00:00:00 2001 +From: Rosen Penev +Date: Mon, 2 May 2022 16:18:33 -0700 +Subject: [PATCH] meson: make libcap-ng dependent on setpriv + +Signed-off-by: Rosen Penev +--- + meson.build | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/meson.build ++++ b/meson.build +@@ -334,7 +334,8 @@ have = cc.has_function( + conf.set('HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY', have ? 1 : false) + + lib_cap_ng = dependency( +- 'libcap-ng') ++ 'libcap-ng', ++ required : get_option('build-setpriv')) + + lib_selinux = dependency( + 'libselinux', +@@ -1754,7 +1755,7 @@ if opt and not is_disabler(exe) + exes += exe + endif + +-opt = not get_option('build-setpriv').disabled() ++opt = not get_option('build-setpriv').disabled() and lib_cap_ng.found() + exe = executable( + 'setpriv', + setpriv_sources, diff --git a/package/utils/util-linux/patches/110-meson-fix-when-HAVE_CLOCK_GETTIME-is-set.patch b/package/utils/util-linux/patches/110-meson-fix-when-HAVE_CLOCK_GETTIME-is-set.patch new file mode 100644 index 0000000000..bba8baf5ab --- /dev/null +++ b/package/utils/util-linux/patches/110-meson-fix-when-HAVE_CLOCK_GETTIME-is-set.patch @@ -0,0 +1,21 @@ +From e51565b653cf09985df57cb7254b16d5af5df223 Mon Sep 17 00:00:00 2001 +From: Nicolas Caramelli +Date: Fri, 29 Apr 2022 18:16:36 +0200 +Subject: [PATCH] meson: fix when HAVE_CLOCK_GETTIME is set + +Signed-off-by: Nicolas Caramelli +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/meson.build ++++ b/meson.build +@@ -602,7 +602,7 @@ if not have + have = cc.has_function('clock_gettime', + dependencies : realtime_libs) + endif +-conf.set('HAVE_CLOCK_GETTIME', have_dirfd ? 1 : false) ++conf.set('HAVE_CLOCK_GETTIME', have ? 1 : false) + + thread_libs = dependency('threads') + diff --git a/package/utils/util-linux/patches/120-meson-get-the-project-version-from-the-version-gen-s.patch b/package/utils/util-linux/patches/120-meson-get-the-project-version-from-the-version-gen-s.patch new file mode 100644 index 0000000000..8529c8268e --- /dev/null +++ b/package/utils/util-linux/patches/120-meson-get-the-project-version-from-the-version-gen-s.patch @@ -0,0 +1,20 @@ +From e0c1a86bf88b568a7afe8ebaea1b9f84afb892c2 Mon Sep 17 00:00:00 2001 +From: Eli Schwartz +Date: Wed, 4 May 2022 23:52:31 -0400 +Subject: [PATCH] meson: get the project version from the version-gen script + +This matches autotools and ensures that the version number is actually +reliable. +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/meson.build ++++ b/meson.build +@@ -1,5 +1,5 @@ + project('util-linux', 'c', +- version : '2.37', ++ version : run_command('tools/git-version-gen', check: true).stdout(), + license : 'GPLv2+') + + pkgconfig = import('pkgconfig') diff --git a/package/utils/util-linux/patches/130-meson-fix-error-in-processing-version-for-pc-files.patch b/package/utils/util-linux/patches/130-meson-fix-error-in-processing-version-for-pc-files.patch new file mode 100644 index 0000000000..75e88682e3 --- /dev/null +++ b/package/utils/util-linux/patches/130-meson-fix-error-in-processing-version-for-pc-files.patch @@ -0,0 +1,26 @@ +From dc307e1cbf73f6dbf72bb049c19d332774cdb4e7 Mon Sep 17 00:00:00 2001 +From: Eli Schwartz +Date: Thu, 5 May 2022 00:16:15 -0400 +Subject: [PATCH] meson: fix error in processing version for pc files + +This awk command was copied verbatim from configure.ac, which included +non-awk syntax because configure.ac cannot contain [ literals. + +Rewrite these autoconf quadrigraphs as their actual values, for meson. + +Fixes always setting the micro version to "0". +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/meson.build ++++ b/meson.build +@@ -41,7 +41,7 @@ conf.set_quoted('PACKAGE_VERSION', meson + + codes = [''' {print $1} ''', + ''' {sub("-.*","",$2); print $2} ''', +- ''' {sub("-.*","",$3); print $3 ~ /^@<:@0-9@:>@+$/ ? $3 : 0} '''] ++ ''' {sub("-.*","",$3); print $3 ~ /^[0-9]+$/ ? $3 : 0} '''] + pc_version = [] + foreach code : codes + res = run_command('bash', '-c', diff --git a/package/utils/util-linux/patches/200-meson-no-po.patch b/package/utils/util-linux/patches/200-meson-no-po.patch new file mode 100644 index 0000000000..d626036bb2 --- /dev/null +++ b/package/utils/util-linux/patches/200-meson-no-po.patch @@ -0,0 +1,10 @@ +--- a/meson.build ++++ b/meson.build +@@ -774,7 +774,6 @@ subdir('disk-utils') + subdir('misc-utils') + subdir('text-utils') + subdir('term-utils') +-subdir('po') + + includes = [dir_include, + dir_libblkid, diff --git a/package/utils/util-linux/patches/100-use_urandom.patch b/package/utils/util-linux/patches/210-use-urandom.patch similarity index 100% rename from package/utils/util-linux/patches/100-use_urandom.patch rename to package/utils/util-linux/patches/210-use-urandom.patch diff --git a/target/linux/apm821xx/dts/netgear-wndap6x0.dtsi b/target/linux/apm821xx/dts/netgear-wndap6x0.dtsi index c6f112d240..8a15a78dce 100644 --- a/target/linux/apm821xx/dts/netgear-wndap6x0.dtsi +++ b/target/linux/apm821xx/dts/netgear-wndap6x0.dtsi @@ -52,23 +52,27 @@ read-only; }; - partition@110000,0 { + partition@110000 { label = "firmware"; reg = <0x00110000 0x01ac0000>; - }; - partition@110000,1 { - /* - * The u-boot bootloader will look at this - * offset (0x110000) for an uImage binary. - */ - label = "kernel"; - reg = <0x00110000 0x005f0000>; - }; + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; - partition@700000 { - label = "ubi"; - reg = <0x00700000 0x014d0000>; + partition@0 { + /* + * The u-boot bootloader will look at this + * offset (0x110000) for an uImage binary. + */ + label = "kernel"; + reg = <0x00000000 0x005f0000>; + }; + + partition@5f0000 { + label = "ubi"; + reg = <0x005f0000 0x014d0000>; + }; }; partition@1bd0000 { diff --git a/target/linux/apm821xx/dts/netgear-wndr4700.dts b/target/linux/apm821xx/dts/netgear-wndr4700.dts index fe0f713943..342f9a01db 100644 --- a/target/linux/apm821xx/dts/netgear-wndr4700.dts +++ b/target/linux/apm821xx/dts/netgear-wndr4700.dts @@ -187,22 +187,41 @@ }; partition@180000 { - label = "kernel"; - reg = <0x00180000 0x00380000>; + label = "firmware"; + reg = <0x00180000 0x01860000>; + + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "kernel"; + reg = <0x00000000 0x00380000>; + + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + /* + * device-tree is @ 0x00180000 - 0x0019ffff + * kernel starts from 0x20000. + * this is coded into netgear's u-boot. + */ + partition@0 { + label = "dtb"; + reg = <0x00000000 0x20000>; + }; /* - * device-tree is @ 0x00180000 - 0x001fffff - * kernel starts from 0x200000. - * this is coded into netgear's u-boot. - * * this partition will also contain a * fake/empty rootfs at the end to fool * Netgear's uboot rootfs integrety checks. */ - }; + }; - partition@500000 { - label = "ubi"; - reg = <0x00500000 0x014e0000>; + partition@380000 { + label = "ubi"; + reg = <0x00380000 0x014e0000>; + }; }; diff --git a/target/linux/apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch b/target/linux/apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch index 5628148b38..5357869133 100644 --- a/target/linux/apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch +++ b/target/linux/apm821xx/patches-5.10/802-usb-xhci-force-msi-renesas-xhci.patch @@ -13,7 +13,7 @@ produce a noisy warning. --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -279,6 +279,7 @@ static void xhci_pci_quirks(struct devic +@@ -281,6 +281,7 @@ static void xhci_pci_quirks(struct devic pdev->device == 0x0015) { xhci->quirks |= XHCI_RESET_ON_RESUME; xhci->quirks |= XHCI_ZERO_64B_REGS; diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi index 2eaff61f50..47fda91a0c 100644 --- a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi +++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi @@ -72,6 +72,9 @@ i2c: i2c { compatible = "i2c-gpio"; + pinctrl-names = "default"; + pinctrl-0 = <&enable_gpio17>; + sda-gpios = <&gpio 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; scl-gpios = <&gpio 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; }; @@ -181,3 +184,9 @@ reg = <0x0 0x6>; }; }; + +&pinmux { + enable_gpio17: pinmux_enable_gpio17 { + pinctrl-single,bits = <0x10 0x0000 0xff00>; + }; +}; diff --git a/target/linux/ath79/nand/base-files/etc/board.d/03_gpio_switches b/target/linux/ath79/nand/base-files/etc/board.d/03_gpio_switches new file mode 100644 index 0000000000..775778a2be --- /dev/null +++ b/target/linux/ath79/nand/base-files/etc/board.d/03_gpio_switches @@ -0,0 +1,20 @@ +# +# Copyright (C) 2022 OpenWrt.org +# + +. /lib/functions/uci-defaults.sh + +board_config_update + +board=$(board_name) + +case "$board" in +zte,mf286a|\ +zte,mf286r) + ucidef_add_gpio_switch "power_btn_block" "Power button blocker" "20" "0" + ;; +esac + +board_config_flush + +exit 0 diff --git a/target/linux/ath79/patches-5.10/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-5.10/910-unaligned_access_hacks.patch index 4a85701b0c..f2f48d6543 100644 --- a/target/linux/ath79/patches-5.10/910-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-5.10/910-unaligned_access_hacks.patch @@ -305,7 +305,7 @@ list_for_each_entry(p, head, list) { --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -611,48 +611,53 @@ static void tcp_options_write(__be32 *pt +@@ -612,48 +612,53 @@ static void tcp_options_write(__be32 *pt u16 options = opts->options; /* mungable copy */ if (unlikely(OPTION_MD5 & options)) { @@ -382,7 +382,7 @@ } if (unlikely(opts->num_sack_blocks)) { -@@ -660,16 +665,17 @@ static void tcp_options_write(__be32 *pt +@@ -661,16 +666,17 @@ static void tcp_options_write(__be32 *pt tp->duplicate_sack : tp->selective_acks; int this_sack; @@ -406,7 +406,7 @@ } tp->rx_opt.dsack = 0; -@@ -682,13 +688,14 @@ static void tcp_options_write(__be32 *pt +@@ -683,13 +689,14 @@ static void tcp_options_write(__be32 *pt if (foc->exp) { len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len; @@ -706,7 +706,7 @@ EXPORT_SYMBOL(xfrm_parse_spi); --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -4083,14 +4083,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -4084,14 +4084,16 @@ static bool tcp_parse_aligned_timestamp( { const __be32 *ptr = (const __be32 *)(th + 1); diff --git a/target/linux/bcm27xx/patches-5.10/950-0131-bcmgenet-Better-coalescing-parameter-defaults.patch b/target/linux/bcm27xx/patches-5.10/950-0131-bcmgenet-Better-coalescing-parameter-defaults.patch index 97fc9183fb..aff40872a0 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0131-bcmgenet-Better-coalescing-parameter-defaults.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0131-bcmgenet-Better-coalescing-parameter-defaults.patch @@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -@@ -2597,7 +2597,7 @@ static void bcmgenet_init_tx_ring(struct +@@ -2604,7 +2604,7 @@ static void bcmgenet_init_tx_ring(struct bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX); bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX); @@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell /* Disable rate control for now */ bcmgenet_tdma_ring_writel(priv, index, flow_period_val, TDMA_FLOW_PERIOD); -@@ -4062,9 +4062,12 @@ static int bcmgenet_probe(struct platfor +@@ -4069,9 +4069,12 @@ static int bcmgenet_probe(struct platfor netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1); /* Set default coalescing parameters */ diff --git a/target/linux/bcm27xx/patches-5.10/950-0139-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/target/linux/bcm27xx/patches-5.10/950-0139-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch index 12cd1072db..01ede9c5c1 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0139-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0139-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch @@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1472,6 +1472,103 @@ command_cleanup: +@@ -1483,6 +1483,103 @@ command_cleanup: } /* @@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it */ -@@ -5378,6 +5475,7 @@ static const struct hc_driver xhci_hc_dr +@@ -5389,6 +5486,7 @@ static const struct hc_driver xhci_hc_dr .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, diff --git a/target/linux/bcm27xx/patches-5.10/950-0153-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch b/target/linux/bcm27xx/patches-5.10/950-0153-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch index 5dd12974fb..ba0c0631cd 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0153-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0153-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch @@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell static inline void bcmgenet_writel(u32 value, void __iomem *offset) { -@@ -2428,6 +2431,11 @@ static void reset_umac(struct bcmgenet_p +@@ -2435,6 +2438,11 @@ static void reset_umac(struct bcmgenet_p bcmgenet_rbuf_ctrl_set(priv, 0); udelay(10); diff --git a/target/linux/bcm27xx/patches-5.10/950-0334-net-bcmgenet-Reset-RBUF-on-first-open.patch b/target/linux/bcm27xx/patches-5.10/950-0334-net-bcmgenet-Reset-RBUF-on-first-open.patch index 184804ad50..45a1912ccd 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0334-net-bcmgenet-Reset-RBUF-on-first-open.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0334-net-bcmgenet-Reset-RBUF-on-first-open.patch @@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -@@ -3246,7 +3246,7 @@ static void bcmgenet_get_hw_addr(struct +@@ -3253,7 +3253,7 @@ static void bcmgenet_get_hw_addr(struct } /* Returns a reusable dma control register value */ @@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell { unsigned int i; u32 reg; -@@ -3271,6 +3271,14 @@ static u32 bcmgenet_dma_disable(struct b +@@ -3278,6 +3278,14 @@ static u32 bcmgenet_dma_disable(struct b udelay(10); bcmgenet_umac_writel(priv, 0, UMAC_TX_FLUSH); @@ -48,7 +48,7 @@ Signed-off-by: Phil Elwell return dma_ctrl; } -@@ -3334,8 +3342,8 @@ static int bcmgenet_open(struct net_devi +@@ -3341,8 +3349,8 @@ static int bcmgenet_open(struct net_devi bcmgenet_set_hw_addr(priv, dev->dev_addr); @@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell /* Reinitialize TDMA and RDMA and SW housekeeping */ ret = bcmgenet_init_dma(priv); -@@ -4191,7 +4199,7 @@ static int bcmgenet_resume(struct device +@@ -4198,7 +4206,7 @@ static int bcmgenet_resume(struct device bcmgenet_hfb_create_rxnfc_filter(priv, rule); /* Disable RX/TX DMA and flush TX queues */ diff --git a/target/linux/bcm27xx/patches-5.10/950-0355-xhci-quirks-add-link-TRB-quirk-for-VL805.patch b/target/linux/bcm27xx/patches-5.10/950-0355-xhci-quirks-add-link-TRB-quirk-for-VL805.patch index 0b7191f93a..bc2639ae4a 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0355-xhci-quirks-add-link-TRB-quirk-for-VL805.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0355-xhci-quirks-add-link-TRB-quirk-for-VL805.patch @@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -291,6 +291,7 @@ static void xhci_pci_quirks(struct devic +@@ -293,6 +293,7 @@ static void xhci_pci_quirks(struct devic if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) { xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; diff --git a/target/linux/bcm27xx/patches-5.10/950-0733-usb-xhci-workaround-for-bogus-SET_DEQ_PENDING-endpoi.patch b/target/linux/bcm27xx/patches-5.10/950-0733-usb-xhci-workaround-for-bogus-SET_DEQ_PENDING-endpoi.patch index c0a4caad4b..4c61ee0bae 100644 --- a/target/linux/bcm27xx/patches-5.10/950-0733-usb-xhci-workaround-for-bogus-SET_DEQ_PENDING-endpoi.patch +++ b/target/linux/bcm27xx/patches-5.10/950-0733-usb-xhci-workaround-for-bogus-SET_DEQ_PENDING-endpoi.patch @@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -4268,9 +4268,9 @@ void xhci_queue_new_dequeue_state(struct +@@ -4270,9 +4270,9 @@ void xhci_queue_new_dequeue_state(struct } ep = &xhci->devs[slot_id]->eps[ep_index]; if ((ep->ep_state & SET_DEQ_PENDING)) { diff --git a/target/linux/bcm53xx/base-files/etc/diag.sh b/target/linux/bcm53xx/base-files/etc/diag.sh index bf5b779aa8..1a9332327a 100644 --- a/target/linux/bcm53xx/base-files/etc/diag.sh +++ b/target/linux/bcm53xx/base-files/etc/diag.sh @@ -18,9 +18,6 @@ get_status_led() { status_led=$(basename $status_led_file) return fi; - - # And finally, let's also try the device-Tree aliases node - status_led="$(get_dt_led status)" } set_state() { diff --git a/target/linux/bcm53xx/patches-5.10/331-Meraki-MR32-Status-LEDs.patch b/target/linux/bcm53xx/patches-5.10/331-Meraki-MR32-Status-LEDs.patch deleted file mode 100644 index fb78ee93c4..0000000000 --- a/target/linux/bcm53xx/patches-5.10/331-Meraki-MR32-Status-LEDs.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Christian Lamparter -Date: Thu, 7 Jun 2018 19:29:12 +0200 -Subject: bcm53xx: add LED status label alias for Meraki MR32 - -add an led-status alias label. This is used by OpenWrt's LED -DTS lookup function to identifiy the indicator LED - -Signed-off-by: Christian Lamparter - ---- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts -+++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts -@@ -27,6 +27,7 @@ - - aliases { - serial1 = &uart2; -+ led-status = &led_status; - }; - - leds { -@@ -68,7 +69,7 @@ - max-brightness = <255>; - }; - -- green { -+ led_status: green { - /* SYS-LED 1 - Tricolor */ - function = LED_FUNCTION_POWER; - color = ; diff --git a/target/linux/generic/backport-5.10/731-v5.12-net-dsa-mt7530-MT7530-optional-GPIO-support.patch b/target/linux/generic/backport-5.10/731-v5.12-net-dsa-mt7530-MT7530-optional-GPIO-support.patch index 9e5047a16b..cf3ccae5bf 100644 --- a/target/linux/generic/backport-5.10/731-v5.12-net-dsa-mt7530-MT7530-optional-GPIO-support.patch +++ b/target/linux/generic/backport-5.10/731-v5.12-net-dsa-mt7530-MT7530-optional-GPIO-support.patch @@ -137,7 +137,7 @@ Signed-off-by: Jakub Kicinski static int mt7530_setup(struct dsa_switch *ds) { -@@ -1675,6 +1779,12 @@ mt7530_setup(struct dsa_switch *ds) +@@ -1676,6 +1780,12 @@ mt7530_setup(struct dsa_switch *ds) } } diff --git a/target/linux/generic/backport-5.10/731-v5.13-net-dsa-mt7530-Add-support-for-EEE-features.patch b/target/linux/generic/backport-5.10/731-v5.13-net-dsa-mt7530-Add-support-for-EEE-features.patch index 38dd8a7296..48379ca9c3 100644 --- a/target/linux/generic/backport-5.10/731-v5.13-net-dsa-mt7530-Add-support-for-EEE-features.patch +++ b/target/linux/generic/backport-5.10/731-v5.13-net-dsa-mt7530-Add-support-for-EEE-features.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c -@@ -2371,6 +2371,17 @@ static void mt753x_phylink_mac_link_up(s +@@ -2372,6 +2372,17 @@ static void mt753x_phylink_mac_link_up(s mcr |= PMCR_RX_FC_EN; } @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller mt7530_set(priv, MT7530_PMCR_P(port), mcr); } -@@ -2601,6 +2612,36 @@ mt753x_phy_write(struct dsa_switch *ds, +@@ -2602,6 +2613,36 @@ mt753x_phy_write(struct dsa_switch *ds, return priv->info->phy_write(ds, port, regnum, val); } @@ -72,7 +72,7 @@ Signed-off-by: David S. Miller static const struct dsa_switch_ops mt7530_switch_ops = { .get_tag_protocol = mtk_get_tag_protocol, .setup = mt753x_setup, -@@ -2629,6 +2670,8 @@ static const struct dsa_switch_ops mt753 +@@ -2630,6 +2671,8 @@ static const struct dsa_switch_ops mt753 .phylink_mac_an_restart = mt753x_phylink_mac_an_restart, .phylink_mac_link_down = mt753x_phylink_mac_link_down, .phylink_mac_link_up = mt753x_phylink_mac_link_up, diff --git a/target/linux/generic/backport-5.10/732-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch b/target/linux/generic/backport-5.10/732-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch index 42c16034e4..a4a9f5624e 100644 --- a/target/linux/generic/backport-5.10/732-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch +++ b/target/linux/generic/backport-5.10/732-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch @@ -1294,7 +1294,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c -@@ -395,7 +395,7 @@ static int socfpga_dwmac_probe(struct pl +@@ -397,7 +397,7 @@ static int socfpga_dwmac_probe(struct pl if (ret) return ret; @@ -1327,7 +1327,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c -@@ -1202,7 +1202,7 @@ static int sun8i_dwmac_probe(struct plat +@@ -1203,7 +1203,7 @@ static int sun8i_dwmac_probe(struct plat if (ret) return -EINVAL; @@ -1478,7 +1478,7 @@ Signed-off-by: David S. Miller if (ret) --- a/drivers/net/ethernet/ti/cpsw_new.c +++ b/drivers/net/ethernet/ti/cpsw_new.c -@@ -1267,7 +1267,6 @@ static int cpsw_probe_dt(struct cpsw_com +@@ -1269,7 +1269,6 @@ static int cpsw_probe_dt(struct cpsw_com for_each_child_of_node(tmp_node, port_np) { struct cpsw_slave_data *slave_data; @@ -1486,7 +1486,7 @@ Signed-off-by: David S. Miller u32 port_id; ret = of_property_read_u32(port_np, "reg", &port_id); -@@ -1326,10 +1325,8 @@ static int cpsw_probe_dt(struct cpsw_com +@@ -1328,10 +1327,8 @@ static int cpsw_probe_dt(struct cpsw_com goto err_node_put; } @@ -1641,7 +1641,7 @@ Signed-off-by: David S. Miller lp->coalesce_count_tx = XAXIDMA_DFT_TX_THRESHOLD; --- a/drivers/net/ethernet/xilinx/xilinx_emaclite.c +++ b/drivers/net/ethernet/xilinx/xilinx_emaclite.c -@@ -1113,7 +1113,6 @@ static int xemaclite_of_probe(struct pla +@@ -1122,7 +1122,6 @@ static int xemaclite_of_probe(struct pla struct net_device *ndev = NULL; struct net_local *lp = NULL; struct device *dev = &ofdev->dev; @@ -1649,7 +1649,7 @@ Signed-off-by: David S. Miller int rc = 0; -@@ -1155,12 +1154,9 @@ static int xemaclite_of_probe(struct pla +@@ -1164,12 +1163,9 @@ static int xemaclite_of_probe(struct pla lp->next_rx_buf_to_use = 0x0; lp->tx_ping_pong = get_bool(ofdev, "xlnx,tx-ping-pong"); lp->rx_ping_pong = get_bool(ofdev, "xlnx,rx-ping-pong"); diff --git a/target/linux/generic/backport-5.10/762-v5.11-net-dsa-mt7530-support-setting-MTU.patch b/target/linux/generic/backport-5.10/762-v5.11-net-dsa-mt7530-support-setting-MTU.patch index eb487cdfb5..7e2b300429 100644 --- a/target/linux/generic/backport-5.10/762-v5.11-net-dsa-mt7530-support-setting-MTU.patch +++ b/target/linux/generic/backport-5.10/762-v5.11-net-dsa-mt7530-support-setting-MTU.patch @@ -73,7 +73,7 @@ Signed-off-by: Jakub Kicinski static void mt7530_stp_state_set(struct dsa_switch *ds, int port, u8 state) { -@@ -2652,6 +2699,8 @@ static const struct dsa_switch_ops mt753 +@@ -2653,6 +2700,8 @@ static const struct dsa_switch_ops mt753 .get_sset_count = mt7530_get_sset_count, .port_enable = mt7530_port_enable, .port_disable = mt7530_port_disable, diff --git a/target/linux/generic/backport-5.10/763-v5.11-net-dsa-mt7530-enable-MTU-normalization.patch b/target/linux/generic/backport-5.10/763-v5.11-net-dsa-mt7530-enable-MTU-normalization.patch index b0ad7b9f87..1c0a80aa78 100644 --- a/target/linux/generic/backport-5.10/763-v5.11-net-dsa-mt7530-enable-MTU-normalization.patch +++ b/target/linux/generic/backport-5.10/763-v5.11-net-dsa-mt7530-enable-MTU-normalization.patch @@ -26,7 +26,7 @@ Signed-off-by: Jakub Kicinski if (priv->id == ID_MT7530) { regulator_set_voltage(priv->core_pwr, 1000000, 1000000); -@@ -1947,6 +1948,7 @@ mt7531_setup(struct dsa_switch *ds) +@@ -1948,6 +1949,7 @@ mt7531_setup(struct dsa_switch *ds) } ds->configure_vlan_while_not_filtering = true; diff --git a/target/linux/generic/backport-5.10/764-v5.11-net-dsa-mt7530-support-setting-ageing-time.patch b/target/linux/generic/backport-5.10/764-v5.11-net-dsa-mt7530-support-setting-ageing-time.patch index 44fa40eabe..c4a51ae639 100644 --- a/target/linux/generic/backport-5.10/764-v5.11-net-dsa-mt7530-support-setting-ageing-time.patch +++ b/target/linux/generic/backport-5.10/764-v5.11-net-dsa-mt7530-support-setting-ageing-time.patch @@ -67,7 +67,7 @@ Signed-off-by: David S. Miller static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface) { struct mt7530_priv *priv = ds->priv; -@@ -2699,6 +2739,7 @@ static const struct dsa_switch_ops mt753 +@@ -2700,6 +2740,7 @@ static const struct dsa_switch_ops mt753 .phy_write = mt753x_phy_write, .get_ethtool_stats = mt7530_get_ethtool_stats, .get_sset_count = mt7530_get_sset_count, diff --git a/target/linux/generic/backport-5.10/770-v5.15-net-dsa-mt7530-support-MDB-operations.patch b/target/linux/generic/backport-5.10/770-v5.15-net-dsa-mt7530-support-MDB-operations.patch index 7143748eee..450fff07a6 100644 --- a/target/linux/generic/backport-5.10/770-v5.15-net-dsa-mt7530-support-MDB-operations.patch +++ b/target/linux/generic/backport-5.10/770-v5.15-net-dsa-mt7530-support-MDB-operations.patch @@ -109,7 +109,7 @@ Signed-off-by: DENG Qingfang mt7530_vlan_cmd(struct mt7530_priv *priv, enum mt7530_vlan_cmd cmd, u16 vid) { struct mt7530_dummy_poll p; -@@ -2745,11 +2813,15 @@ static const struct dsa_switch_ops mt753 +@@ -2746,11 +2814,15 @@ static const struct dsa_switch_ops mt753 .port_change_mtu = mt7530_port_change_mtu, .port_max_mtu = mt7530_port_max_mtu, .port_stp_state_set = mt7530_stp_state_set, diff --git a/target/linux/generic/backport-5.10/772-v5.14-net-dsa-mt7530-add-interrupt-support.patch b/target/linux/generic/backport-5.10/772-v5.14-net-dsa-mt7530-add-interrupt-support.patch index 1ee2e1cac4..337b478fac 100644 --- a/target/linux/generic/backport-5.10/772-v5.14-net-dsa-mt7530-add-interrupt-support.patch +++ b/target/linux/generic/backport-5.10/772-v5.14-net-dsa-mt7530-add-interrupt-support.patch @@ -305,7 +305,7 @@ Signed-off-by: David S. Miller static int mt7530_setup(struct dsa_switch *ds) { -@@ -2749,24 +2964,20 @@ static int +@@ -2750,24 +2965,20 @@ static int mt753x_setup(struct dsa_switch *ds) { struct mt7530_priv *priv = ds->priv; @@ -340,7 +340,7 @@ Signed-off-by: David S. Miller } static int mt753x_get_mac_eee(struct dsa_switch *ds, int port, -@@ -2803,8 +3014,6 @@ static const struct dsa_switch_ops mt753 +@@ -2804,8 +3015,6 @@ static const struct dsa_switch_ops mt753 .get_tag_protocol = mtk_get_tag_protocol, .setup = mt753x_setup, .get_strings = mt7530_get_strings, @@ -349,7 +349,7 @@ Signed-off-by: David S. Miller .get_ethtool_stats = mt7530_get_ethtool_stats, .get_sset_count = mt7530_get_sset_count, .set_ageing_time = mt7530_set_ageing_time, -@@ -2987,6 +3196,9 @@ mt7530_remove(struct mdio_device *mdiode +@@ -2988,6 +3197,9 @@ mt7530_remove(struct mdio_device *mdiode dev_err(priv->dev, "Failed to disable io pwr: %d\n", ret); diff --git a/target/linux/generic/backport-5.10/850-v5.17-0003-PCI-aardvark-Add-support-for-DEVCAP2-DEVCTL2-LNKCAP2.patch b/target/linux/generic/backport-5.10/850-v5.17-0003-PCI-aardvark-Add-support-for-DEVCAP2-DEVCTL2-LNKCAP2.patch index 0d50665741..4d1135bf6c 100644 --- a/target/linux/generic/backport-5.10/850-v5.17-0003-PCI-aardvark-Add-support-for-DEVCAP2-DEVCTL2-LNKCAP2.patch +++ b/target/linux/generic/backport-5.10/850-v5.17-0003-PCI-aardvark-Add-support-for-DEVCAP2-DEVCTL2-LNKCAP2.patch @@ -21,7 +21,7 @@ Signed-off-by: Lorenzo Pieralisi --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c -@@ -883,8 +883,13 @@ advk_pci_bridge_emul_pcie_conf_read(stru +@@ -885,8 +885,13 @@ advk_pci_bridge_emul_pcie_conf_read(stru case PCI_EXP_DEVCAP: case PCI_EXP_DEVCTL: @@ -35,7 +35,7 @@ Signed-off-by: Lorenzo Pieralisi default: return PCI_BRIDGE_EMUL_NOT_HANDLED; } -@@ -898,10 +903,6 @@ advk_pci_bridge_emul_pcie_conf_write(str +@@ -900,10 +905,6 @@ advk_pci_bridge_emul_pcie_conf_write(str struct advk_pcie *pcie = bridge->data; switch (reg) { @@ -46,7 +46,7 @@ Signed-off-by: Lorenzo Pieralisi case PCI_EXP_LNKCTL: advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg); if (new & PCI_EXP_LNKCTL_RL) -@@ -923,6 +924,12 @@ advk_pci_bridge_emul_pcie_conf_write(str +@@ -925,6 +926,12 @@ advk_pci_bridge_emul_pcie_conf_write(str advk_writel(pcie, new, PCIE_ISR0_REG); break; diff --git a/target/linux/generic/backport-5.10/850-v5.17-0004-PCI-aardvark-Clear-all-MSIs-at-setup.patch b/target/linux/generic/backport-5.10/850-v5.17-0004-PCI-aardvark-Clear-all-MSIs-at-setup.patch deleted file mode 100644 index dc01c5f85d..0000000000 --- a/target/linux/generic/backport-5.10/850-v5.17-0004-PCI-aardvark-Clear-all-MSIs-at-setup.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 7d8dc1f7cd007a7ce94c5b4c20d63a8b8d6d7751 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 30 Nov 2021 18:29:06 +0100 -Subject: [PATCH] PCI: aardvark: Clear all MSIs at setup -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -We already clear all the other interrupts (ISR0, ISR1, HOST_CTRL_INT). - -Define a new macro PCIE_MSI_ALL_MASK and do the same clearing for MSIs, -to ensure that we don't start receiving spurious interrupts. - -Use this new mask in advk_pcie_handle_msi(); - -Link: https://lore.kernel.org/r/20211130172913.9727-5-kabel@kernel.org -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún -Signed-off-by: Lorenzo Pieralisi ---- - drivers/pci/controller/pci-aardvark.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -114,6 +114,7 @@ - #define PCIE_MSI_ADDR_HIGH_REG (CONTROL_BASE_ADDR + 0x54) - #define PCIE_MSI_STATUS_REG (CONTROL_BASE_ADDR + 0x58) - #define PCIE_MSI_MASK_REG (CONTROL_BASE_ADDR + 0x5C) -+#define PCIE_MSI_ALL_MASK GENMASK(31, 0) - #define PCIE_MSI_PAYLOAD_REG (CONTROL_BASE_ADDR + 0x9C) - #define PCIE_MSI_DATA_MASK GENMASK(15, 0) - -@@ -577,6 +578,7 @@ static void advk_pcie_setup_hw(struct ad - advk_writel(pcie, reg, PCIE_CORE_CTRL2_REG); - - /* Clear all interrupts */ -+ advk_writel(pcie, PCIE_MSI_ALL_MASK, PCIE_MSI_STATUS_REG); - advk_writel(pcie, PCIE_ISR0_ALL_MASK, PCIE_ISR0_REG); - advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG); - advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG); -@@ -589,7 +591,7 @@ static void advk_pcie_setup_hw(struct ad - advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_MASK_REG); - - /* Unmask all MSIs */ -- advk_writel(pcie, 0, PCIE_MSI_MASK_REG); -+ advk_writel(pcie, ~(u32)PCIE_MSI_ALL_MASK, PCIE_MSI_MASK_REG); - - /* Enable summary interrupt for GIC SPI source */ - reg = PCIE_IRQ_ALL_MASK & (~PCIE_IRQ_ENABLE_INTS_MASK); -@@ -1397,7 +1399,7 @@ static void advk_pcie_handle_msi(struct - - msi_mask = advk_readl(pcie, PCIE_MSI_MASK_REG); - msi_val = advk_readl(pcie, PCIE_MSI_STATUS_REG); -- msi_status = msi_val & ~msi_mask; -+ msi_status = msi_val & ((~msi_mask) & PCIE_MSI_ALL_MASK); - - for (msi_idx = 0; msi_idx < MSI_IRQ_NUM; msi_idx++) { - if (!(BIT(msi_idx) & msi_status)) diff --git a/target/linux/generic/backport-5.10/850-v5.17-0005-PCI-aardvark-Comment-actions-in-driver-remove-method.patch b/target/linux/generic/backport-5.10/850-v5.17-0005-PCI-aardvark-Comment-actions-in-driver-remove-method.patch index 45df1b9695..b724422d40 100644 --- a/target/linux/generic/backport-5.10/850-v5.17-0005-PCI-aardvark-Comment-actions-in-driver-remove-method.patch +++ b/target/linux/generic/backport-5.10/850-v5.17-0005-PCI-aardvark-Comment-actions-in-driver-remove-method.patch @@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c -@@ -1696,11 +1696,13 @@ static int advk_pcie_remove(struct platf +@@ -1692,11 +1692,13 @@ static int advk_pcie_remove(struct platf struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie); int i; diff --git a/target/linux/generic/backport-5.10/850-v5.17-0006-PCI-aardvark-Disable-bus-mastering-when-unbinding-dr.patch b/target/linux/generic/backport-5.10/850-v5.17-0006-PCI-aardvark-Disable-bus-mastering-when-unbinding-dr.patch index 5959d80592..c8d5e391b8 100644 --- a/target/linux/generic/backport-5.10/850-v5.17-0006-PCI-aardvark-Disable-bus-mastering-when-unbinding-dr.patch +++ b/target/linux/generic/backport-5.10/850-v5.17-0006-PCI-aardvark-Disable-bus-mastering-when-unbinding-dr.patch @@ -19,7 +19,7 @@ Signed-off-by: Lorenzo Pieralisi --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c -@@ -1694,6 +1694,7 @@ static int advk_pcie_remove(struct platf +@@ -1690,6 +1690,7 @@ static int advk_pcie_remove(struct platf { struct advk_pcie *pcie = platform_get_drvdata(pdev); struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie); @@ -27,7 +27,7 @@ Signed-off-by: Lorenzo Pieralisi int i; /* Remove PCI bus with all devices */ -@@ -1702,6 +1703,11 @@ static int advk_pcie_remove(struct platf +@@ -1698,6 +1699,11 @@ static int advk_pcie_remove(struct platf pci_remove_root_bus(bridge->bus); pci_unlock_rescan_remove(); diff --git a/target/linux/generic/backport-5.10/850-v5.17-0007-PCI-aardvark-Mask-all-interrupts-when-unbinding-driv.patch b/target/linux/generic/backport-5.10/850-v5.17-0007-PCI-aardvark-Mask-all-interrupts-when-unbinding-driv.patch index 130bb701f8..05d350e922 100644 --- a/target/linux/generic/backport-5.10/850-v5.17-0007-PCI-aardvark-Mask-all-interrupts-when-unbinding-driv.patch +++ b/target/linux/generic/backport-5.10/850-v5.17-0007-PCI-aardvark-Mask-all-interrupts-when-unbinding-driv.patch @@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c -@@ -1708,6 +1708,27 @@ static int advk_pcie_remove(struct platf +@@ -1704,6 +1704,27 @@ static int advk_pcie_remove(struct platf val &= ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER); advk_writel(pcie, val, PCIE_CORE_CMD_STATUS_REG); diff --git a/target/linux/generic/backport-5.10/850-v5.17-0008-PCI-aardvark-Fix-memory-leak-in-driver-unbind.patch b/target/linux/generic/backport-5.10/850-v5.17-0008-PCI-aardvark-Fix-memory-leak-in-driver-unbind.patch index 74d25d508b..435acda1e2 100644 --- a/target/linux/generic/backport-5.10/850-v5.17-0008-PCI-aardvark-Fix-memory-leak-in-driver-unbind.patch +++ b/target/linux/generic/backport-5.10/850-v5.17-0008-PCI-aardvark-Fix-memory-leak-in-driver-unbind.patch @@ -21,7 +21,7 @@ Signed-off-by: Lorenzo Pieralisi --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c -@@ -1733,6 +1733,9 @@ static int advk_pcie_remove(struct platf +@@ -1729,6 +1729,9 @@ static int advk_pcie_remove(struct platf advk_pcie_remove_msi_irq_domain(pcie); advk_pcie_remove_irq_domain(pcie); diff --git a/target/linux/generic/backport-5.10/850-v5.17-0009-PCI-aardvark-Assert-PERST-when-unbinding-driver.patch b/target/linux/generic/backport-5.10/850-v5.17-0009-PCI-aardvark-Assert-PERST-when-unbinding-driver.patch index 26d8afdddd..c5dfdd3923 100644 --- a/target/linux/generic/backport-5.10/850-v5.17-0009-PCI-aardvark-Assert-PERST-when-unbinding-driver.patch +++ b/target/linux/generic/backport-5.10/850-v5.17-0009-PCI-aardvark-Assert-PERST-when-unbinding-driver.patch @@ -20,7 +20,7 @@ Signed-off-by: Lorenzo Pieralisi --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c -@@ -1736,6 +1736,10 @@ static int advk_pcie_remove(struct platf +@@ -1732,6 +1732,10 @@ static int advk_pcie_remove(struct platf /* Free config space for emulated root bridge */ pci_bridge_emul_cleanup(&pcie->bridge); diff --git a/target/linux/generic/backport-5.10/850-v5.17-0010-PCI-aardvark-Disable-link-training-when-unbinding-dr.patch b/target/linux/generic/backport-5.10/850-v5.17-0010-PCI-aardvark-Disable-link-training-when-unbinding-dr.patch index 23346a9284..7f4e2575f5 100644 --- a/target/linux/generic/backport-5.10/850-v5.17-0010-PCI-aardvark-Disable-link-training-when-unbinding-dr.patch +++ b/target/linux/generic/backport-5.10/850-v5.17-0010-PCI-aardvark-Disable-link-training-when-unbinding-dr.patch @@ -20,7 +20,7 @@ Signed-off-by: Lorenzo Pieralisi --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c -@@ -1740,6 +1740,11 @@ static int advk_pcie_remove(struct platf +@@ -1736,6 +1736,11 @@ static int advk_pcie_remove(struct platf if (pcie->reset_gpio) gpiod_set_value_cansleep(pcie->reset_gpio, 1); diff --git a/target/linux/generic/backport-5.10/850-v5.17-0011-PCI-aardvark-Disable-common-PHY-when-unbinding-drive.patch b/target/linux/generic/backport-5.10/850-v5.17-0011-PCI-aardvark-Disable-common-PHY-when-unbinding-drive.patch index a7d5c014ab..495c34aa9e 100644 --- a/target/linux/generic/backport-5.10/850-v5.17-0011-PCI-aardvark-Disable-common-PHY-when-unbinding-drive.patch +++ b/target/linux/generic/backport-5.10/850-v5.17-0011-PCI-aardvark-Disable-common-PHY-when-unbinding-drive.patch @@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c -@@ -1749,6 +1749,9 @@ static int advk_pcie_remove(struct platf +@@ -1745,6 +1745,9 @@ static int advk_pcie_remove(struct platf for (i = 0; i < OB_WIN_COUNT; i++) advk_pcie_disable_ob_win(pcie, i); diff --git a/target/linux/generic/backport-5.10/900-regulator-consumer-Add-missing-stubs-to-regulator-co.patch b/target/linux/generic/backport-5.10/900-regulator-consumer-Add-missing-stubs-to-regulator-co.patch new file mode 100644 index 0000000000..c5470e8b82 --- /dev/null +++ b/target/linux/generic/backport-5.10/900-regulator-consumer-Add-missing-stubs-to-regulator-co.patch @@ -0,0 +1,79 @@ +From a71658c7db0b2be9fcab3522aeabe11792a4f481 Mon Sep 17 00:00:00 2001 +From: Dmitry Osipenko +Date: Wed, 20 Jan 2021 23:58:44 +0300 +Subject: [PATCH] regulator: consumer: Add missing stubs to + regulator/consumer.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +commit 51dfb6ca3728bd0a0a3c23776a12d2a15a1d2457 upstream. + +Add missing stubs to regulator/consumer.h in order to fix COMPILE_TEST +of the kernel. In particular this should fix compile-testing of OPP core +because of a missing stub for regulator_sync_voltage(). + +Reported-by: kernel test robot +Signed-off-by: Dmitry Osipenko +Link: https://lore.kernel.org/r/20210120205844.12658-1-digetx@gmail.com +Signed-off-by: Mark Brown +Cc: Bjørn Mork +Cc: Sudip Mukherjee +Signed-off-by: Greg Kroah-Hartman +--- + include/linux/regulator/consumer.h | 30 ++++++++++++++++++++++++++++++ + 1 file changed, 30 insertions(+) + +--- a/include/linux/regulator/consumer.h ++++ b/include/linux/regulator/consumer.h +@@ -332,6 +332,12 @@ regulator_get_exclusive(struct device *d + } + + static inline struct regulator *__must_check ++devm_regulator_get_exclusive(struct device *dev, const char *id) ++{ ++ return ERR_PTR(-ENODEV); ++} ++ ++static inline struct regulator *__must_check + regulator_get_optional(struct device *dev, const char *id) + { + return ERR_PTR(-ENODEV); +@@ -486,6 +492,11 @@ static inline int regulator_get_voltage( + return -EINVAL; + } + ++static inline int regulator_sync_voltage(struct regulator *regulator) ++{ ++ return -EINVAL; ++} ++ + static inline int regulator_is_supported_voltage(struct regulator *regulator, + int min_uV, int max_uV) + { +@@ -578,6 +589,25 @@ static inline int devm_regulator_unregis + return 0; + } + ++static inline int regulator_suspend_enable(struct regulator_dev *rdev, ++ suspend_state_t state) ++{ ++ return -EINVAL; ++} ++ ++static inline int regulator_suspend_disable(struct regulator_dev *rdev, ++ suspend_state_t state) ++{ ++ return -EINVAL; ++} ++ ++static inline int regulator_set_suspend_voltage(struct regulator *regulator, ++ int min_uV, int max_uV, ++ suspend_state_t state) ++{ ++ return -EINVAL; ++} ++ + static inline void *regulator_get_drvdata(struct regulator *regulator) + { + return NULL; diff --git a/target/linux/generic/backport-5.15/850-v5.17-0001-PCI-pci-bridge-emul-Add-description-for-class_revisi.patch b/target/linux/generic/backport-5.15/850-v5.17-0001-PCI-pci-bridge-emul-Add-description-for-class_revisi.patch deleted file mode 100644 index 19a4be2a9d..0000000000 --- a/target/linux/generic/backport-5.15/850-v5.17-0001-PCI-pci-bridge-emul-Add-description-for-class_revisi.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 9319230ac147067652b58fe849ffe0ceec098665 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 30 Nov 2021 18:29:03 +0100 -Subject: [PATCH] PCI: pci-bridge-emul: Add description for class_revision - field -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The current assignment to the class_revision member - - class_revision |= cpu_to_le32(PCI_CLASS_BRIDGE_PCI << 16); - -can make the reader think that class is at high 16 bits of the member and -revision at low 16 bits. - -In reality, class is at high 24 bits, but the class for PCI Bridge Normal -Decode is PCI_CLASS_BRIDGE_PCI << 8. - -Change the assignment and add a comment to make this clearer. - -Link: https://lore.kernel.org/r/20211130172913.9727-2-kabel@kernel.org -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún -Signed-off-by: Lorenzo Pieralisi ---- - drivers/pci/pci-bridge-emul.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - ---- a/drivers/pci/pci-bridge-emul.c -+++ b/drivers/pci/pci-bridge-emul.c -@@ -284,7 +284,11 @@ int pci_bridge_emul_init(struct pci_brid - { - BUILD_BUG_ON(sizeof(bridge->conf) != PCI_BRIDGE_CONF_END); - -- bridge->conf.class_revision |= cpu_to_le32(PCI_CLASS_BRIDGE_PCI << 16); -+ /* -+ * class_revision: Class is high 24 bits and revision is low 8 bit of this member, -+ * while class for PCI Bridge Normal Decode has the 24-bit value: PCI_CLASS_BRIDGE_PCI << 8 -+ */ -+ bridge->conf.class_revision |= cpu_to_le32((PCI_CLASS_BRIDGE_PCI << 8) << 8); - bridge->conf.header_type = PCI_HEADER_TYPE_BRIDGE; - bridge->conf.cache_line_size = 0x10; - bridge->conf.status = cpu_to_le16(PCI_STATUS_CAP_LIST); diff --git a/target/linux/generic/backport-5.15/850-v5.17-0002-PCI-pci-bridge-emul-Add-definitions-for-missing-capa.patch b/target/linux/generic/backport-5.15/850-v5.17-0002-PCI-pci-bridge-emul-Add-definitions-for-missing-capa.patch deleted file mode 100644 index 3dd82710e6..0000000000 --- a/target/linux/generic/backport-5.15/850-v5.17-0002-PCI-pci-bridge-emul-Add-definitions-for-missing-capa.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 8ea673a8b30b4a32516b8adabb15e2a68ff02ec8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 30 Nov 2021 18:29:04 +0100 -Subject: [PATCH] PCI: pci-bridge-emul: Add definitions for missing - capabilities registers -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -pci-bridge-emul driver already allocates buffer for capabilities up to the -PCI_EXP_SLTSTA2 register, but does not define bit access behavior for these -registers. Add these missing definitions. - -Link: https://lore.kernel.org/r/20211130172913.9727-3-kabel@kernel.org -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún -Signed-off-by: Lorenzo Pieralisi ---- - drivers/pci/pci-bridge-emul.c | 43 +++++++++++++++++++++++++++++++++++ - 1 file changed, 43 insertions(+) - ---- a/drivers/pci/pci-bridge-emul.c -+++ b/drivers/pci/pci-bridge-emul.c -@@ -270,6 +270,49 @@ struct pci_bridge_reg_behavior pcie_cap_ - .ro = GENMASK(15, 0) | PCI_EXP_RTSTA_PENDING, - .w1c = PCI_EXP_RTSTA_PME, - }, -+ -+ [PCI_EXP_DEVCAP2 / 4] = { -+ /* -+ * Device capabilities 2 register has reserved bits [30:27]. -+ * Also bits [26:24] are reserved for non-upstream ports. -+ */ -+ .ro = BIT(31) | GENMASK(23, 0), -+ }, -+ -+ [PCI_EXP_DEVCTL2 / 4] = { -+ /* -+ * Device control 2 register is RW. Bit 11 is reserved for -+ * non-upstream ports. -+ * -+ * Device status 2 register is reserved. -+ */ -+ .rw = GENMASK(15, 12) | GENMASK(10, 0), -+ }, -+ -+ [PCI_EXP_LNKCAP2 / 4] = { -+ /* Link capabilities 2 register has reserved bits [30:25] and 0. */ -+ .ro = BIT(31) | GENMASK(24, 1), -+ }, -+ -+ [PCI_EXP_LNKCTL2 / 4] = { -+ /* -+ * Link control 2 register is RW. -+ * -+ * Link status 2 register has bits 5, 15 W1C; -+ * bits 10, 11 reserved and others are RO. -+ */ -+ .rw = GENMASK(15, 0), -+ .w1c = (BIT(15) | BIT(5)) << 16, -+ .ro = (GENMASK(14, 12) | GENMASK(9, 6) | GENMASK(4, 0)) << 16, -+ }, -+ -+ [PCI_EXP_SLTCAP2 / 4] = { -+ /* Slot capabilities 2 register is reserved. */ -+ }, -+ -+ [PCI_EXP_SLTCTL2 / 4] = { -+ /* Both Slot control 2 and Slot status 2 registers are reserved. */ -+ }, - }; - - /* diff --git a/target/linux/generic/backport-5.15/850-v5.17-0003-PCI-aardvark-Add-support-for-DEVCAP2-DEVCTL2-LNKCAP2.patch b/target/linux/generic/backport-5.15/850-v5.17-0003-PCI-aardvark-Add-support-for-DEVCAP2-DEVCTL2-LNKCAP2.patch deleted file mode 100644 index 4a5b99bc2a..0000000000 --- a/target/linux/generic/backport-5.15/850-v5.17-0003-PCI-aardvark-Add-support-for-DEVCAP2-DEVCTL2-LNKCAP2.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 1d3e170344dff2cef8827db6c09909b78cbc11d7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 30 Nov 2021 18:29:05 +0100 -Subject: [PATCH] PCI: aardvark: Add support for DEVCAP2, DEVCTL2, LNKCAP2 and - LNKCTL2 registers on emulated bridge -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -PCI aardvark hardware supports access to DEVCAP2, DEVCTL2, LNKCAP2 and -LNKCTL2 configuration registers of PCIe core via PCIE_CORE_PCIEXP_CAP. -Export them via emulated software root bridge. - -Link: https://lore.kernel.org/r/20211130172913.9727-4-kabel@kernel.org -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún -Signed-off-by: Lorenzo Pieralisi ---- - drivers/pci/controller/pci-aardvark.c | 15 +++++++++++---- - 1 file changed, 11 insertions(+), 4 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -876,8 +876,13 @@ advk_pci_bridge_emul_pcie_conf_read(stru - - case PCI_EXP_DEVCAP: - case PCI_EXP_DEVCTL: -+ case PCI_EXP_DEVCAP2: -+ case PCI_EXP_DEVCTL2: -+ case PCI_EXP_LNKCAP2: -+ case PCI_EXP_LNKCTL2: - *value = advk_readl(pcie, PCIE_CORE_PCIEXP_CAP + reg); - return PCI_BRIDGE_EMUL_HANDLED; -+ - default: - return PCI_BRIDGE_EMUL_NOT_HANDLED; - } -@@ -891,10 +896,6 @@ advk_pci_bridge_emul_pcie_conf_write(str - struct advk_pcie *pcie = bridge->data; - - switch (reg) { -- case PCI_EXP_DEVCTL: -- advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg); -- break; -- - case PCI_EXP_LNKCTL: - advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg); - if (new & PCI_EXP_LNKCTL_RL) -@@ -916,6 +917,12 @@ advk_pci_bridge_emul_pcie_conf_write(str - advk_writel(pcie, new, PCIE_ISR0_REG); - break; - -+ case PCI_EXP_DEVCTL: -+ case PCI_EXP_DEVCTL2: -+ case PCI_EXP_LNKCTL2: -+ advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg); -+ break; -+ - default: - break; - } diff --git a/target/linux/generic/backport-5.15/850-v5.17-0004-PCI-aardvark-Clear-all-MSIs-at-setup.patch b/target/linux/generic/backport-5.15/850-v5.17-0004-PCI-aardvark-Clear-all-MSIs-at-setup.patch deleted file mode 100644 index 61dd8b8733..0000000000 --- a/target/linux/generic/backport-5.15/850-v5.17-0004-PCI-aardvark-Clear-all-MSIs-at-setup.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 7d8dc1f7cd007a7ce94c5b4c20d63a8b8d6d7751 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 30 Nov 2021 18:29:06 +0100 -Subject: [PATCH] PCI: aardvark: Clear all MSIs at setup -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -We already clear all the other interrupts (ISR0, ISR1, HOST_CTRL_INT). - -Define a new macro PCIE_MSI_ALL_MASK and do the same clearing for MSIs, -to ensure that we don't start receiving spurious interrupts. - -Use this new mask in advk_pcie_handle_msi(); - -Link: https://lore.kernel.org/r/20211130172913.9727-5-kabel@kernel.org -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún -Signed-off-by: Lorenzo Pieralisi ---- - drivers/pci/controller/pci-aardvark.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -115,6 +115,7 @@ - #define PCIE_MSI_ADDR_HIGH_REG (CONTROL_BASE_ADDR + 0x54) - #define PCIE_MSI_STATUS_REG (CONTROL_BASE_ADDR + 0x58) - #define PCIE_MSI_MASK_REG (CONTROL_BASE_ADDR + 0x5C) -+#define PCIE_MSI_ALL_MASK GENMASK(31, 0) - #define PCIE_MSI_PAYLOAD_REG (CONTROL_BASE_ADDR + 0x9C) - #define PCIE_MSI_DATA_MASK GENMASK(15, 0) - -@@ -570,6 +571,7 @@ static void advk_pcie_setup_hw(struct ad - advk_writel(pcie, reg, PCIE_CORE_CTRL2_REG); - - /* Clear all interrupts */ -+ advk_writel(pcie, PCIE_MSI_ALL_MASK, PCIE_MSI_STATUS_REG); - advk_writel(pcie, PCIE_ISR0_ALL_MASK, PCIE_ISR0_REG); - advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG); - advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG); -@@ -582,7 +584,7 @@ static void advk_pcie_setup_hw(struct ad - advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_MASK_REG); - - /* Unmask all MSIs */ -- advk_writel(pcie, 0, PCIE_MSI_MASK_REG); -+ advk_writel(pcie, ~(u32)PCIE_MSI_ALL_MASK, PCIE_MSI_MASK_REG); - - /* Enable summary interrupt for GIC SPI source */ - reg = PCIE_IRQ_ALL_MASK & (~PCIE_IRQ_ENABLE_INTS_MASK); -@@ -1389,7 +1391,7 @@ static void advk_pcie_handle_msi(struct - - msi_mask = advk_readl(pcie, PCIE_MSI_MASK_REG); - msi_val = advk_readl(pcie, PCIE_MSI_STATUS_REG); -- msi_status = msi_val & ~msi_mask; -+ msi_status = msi_val & ((~msi_mask) & PCIE_MSI_ALL_MASK); - - for (msi_idx = 0; msi_idx < MSI_IRQ_NUM; msi_idx++) { - if (!(BIT(msi_idx) & msi_status)) diff --git a/target/linux/generic/backport-5.15/850-v5.17-0005-PCI-aardvark-Comment-actions-in-driver-remove-method.patch b/target/linux/generic/backport-5.15/850-v5.17-0005-PCI-aardvark-Comment-actions-in-driver-remove-method.patch deleted file mode 100644 index a022f3ec6c..0000000000 --- a/target/linux/generic/backport-5.15/850-v5.17-0005-PCI-aardvark-Comment-actions-in-driver-remove-method.patch +++ /dev/null @@ -1,34 +0,0 @@ -From a4ca7948e1d47275f8f3e5023243440c40561916 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 30 Nov 2021 18:29:07 +0100 -Subject: [PATCH] PCI: aardvark: Comment actions in driver remove method -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Add two more comments into the advk_pcie_remove() method. - -Link: https://lore.kernel.org/r/20211130172913.9727-6-kabel@kernel.org -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún -Signed-off-by: Lorenzo Pieralisi ---- - drivers/pci/controller/pci-aardvark.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1681,11 +1681,13 @@ static int advk_pcie_remove(struct platf - struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie); - int i; - -+ /* Remove PCI bus with all devices */ - pci_lock_rescan_remove(); - pci_stop_root_bus(bridge->bus); - pci_remove_root_bus(bridge->bus); - pci_unlock_rescan_remove(); - -+ /* Remove IRQ domains */ - advk_pcie_remove_msi_irq_domain(pcie); - advk_pcie_remove_irq_domain(pcie); - diff --git a/target/linux/generic/backport-5.15/850-v5.17-0006-PCI-aardvark-Disable-bus-mastering-when-unbinding-dr.patch b/target/linux/generic/backport-5.15/850-v5.17-0006-PCI-aardvark-Disable-bus-mastering-when-unbinding-dr.patch deleted file mode 100644 index 9b8ae26dfe..0000000000 --- a/target/linux/generic/backport-5.15/850-v5.17-0006-PCI-aardvark-Disable-bus-mastering-when-unbinding-dr.patch +++ /dev/null @@ -1,41 +0,0 @@ -From a46f2f6dd4093438d9615dfbf5c0fea2a9835dba Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 30 Nov 2021 18:29:08 +0100 -Subject: [PATCH] PCI: aardvark: Disable bus mastering when unbinding driver -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ensure that after driver unbind PCIe cards are not able to forward -memory and I/O requests in the upstream direction. - -Link: https://lore.kernel.org/r/20211130172913.9727-7-kabel@kernel.org -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún -Signed-off-by: Lorenzo Pieralisi ---- - drivers/pci/controller/pci-aardvark.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1679,6 +1679,7 @@ static int advk_pcie_remove(struct platf - { - struct advk_pcie *pcie = platform_get_drvdata(pdev); - struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie); -+ u32 val; - int i; - - /* Remove PCI bus with all devices */ -@@ -1687,6 +1688,11 @@ static int advk_pcie_remove(struct platf - pci_remove_root_bus(bridge->bus); - pci_unlock_rescan_remove(); - -+ /* Disable Root Bridge I/O space, memory space and bus mastering */ -+ val = advk_readl(pcie, PCIE_CORE_CMD_STATUS_REG); -+ val &= ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER); -+ advk_writel(pcie, val, PCIE_CORE_CMD_STATUS_REG); -+ - /* Remove IRQ domains */ - advk_pcie_remove_msi_irq_domain(pcie); - advk_pcie_remove_irq_domain(pcie); diff --git a/target/linux/generic/backport-5.15/850-v5.17-0007-PCI-aardvark-Mask-all-interrupts-when-unbinding-driv.patch b/target/linux/generic/backport-5.15/850-v5.17-0007-PCI-aardvark-Mask-all-interrupts-when-unbinding-driv.patch deleted file mode 100644 index 97173ee281..0000000000 --- a/target/linux/generic/backport-5.15/850-v5.17-0007-PCI-aardvark-Mask-all-interrupts-when-unbinding-driv.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 13bcdf07cb2ecff5d45d2c141df2539b15211448 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 30 Nov 2021 18:29:09 +0100 -Subject: [PATCH] PCI: aardvark: Mask all interrupts when unbinding driver -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Ensure that no interrupt can be triggered after driver unbind. - -Link: https://lore.kernel.org/r/20211130172913.9727-8-kabel@kernel.org -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún -Signed-off-by: Lorenzo Pieralisi ---- - drivers/pci/controller/pci-aardvark.c | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1693,6 +1693,27 @@ static int advk_pcie_remove(struct platf - val &= ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER); - advk_writel(pcie, val, PCIE_CORE_CMD_STATUS_REG); - -+ /* Disable MSI */ -+ val = advk_readl(pcie, PCIE_CORE_CTRL2_REG); -+ val &= ~PCIE_CORE_CTRL2_MSI_ENABLE; -+ advk_writel(pcie, val, PCIE_CORE_CTRL2_REG); -+ -+ /* Clear MSI address */ -+ advk_writel(pcie, 0, PCIE_MSI_ADDR_LOW_REG); -+ advk_writel(pcie, 0, PCIE_MSI_ADDR_HIGH_REG); -+ -+ /* Mask all interrupts */ -+ advk_writel(pcie, PCIE_MSI_ALL_MASK, PCIE_MSI_MASK_REG); -+ advk_writel(pcie, PCIE_ISR0_ALL_MASK, PCIE_ISR0_MASK_REG); -+ advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_MASK_REG); -+ advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_MASK_REG); -+ -+ /* Clear all interrupts */ -+ advk_writel(pcie, PCIE_MSI_ALL_MASK, PCIE_MSI_STATUS_REG); -+ advk_writel(pcie, PCIE_ISR0_ALL_MASK, PCIE_ISR0_REG); -+ advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG); -+ advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG); -+ - /* Remove IRQ domains */ - advk_pcie_remove_msi_irq_domain(pcie); - advk_pcie_remove_irq_domain(pcie); diff --git a/target/linux/generic/backport-5.15/850-v5.17-0008-PCI-aardvark-Fix-memory-leak-in-driver-unbind.patch b/target/linux/generic/backport-5.15/850-v5.17-0008-PCI-aardvark-Fix-memory-leak-in-driver-unbind.patch deleted file mode 100644 index e8611c82fe..0000000000 --- a/target/linux/generic/backport-5.15/850-v5.17-0008-PCI-aardvark-Fix-memory-leak-in-driver-unbind.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 2f040a17f5061457ae95035326d3159eddc1e5cc Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 30 Nov 2021 18:29:10 +0100 -Subject: [PATCH] PCI: aardvark: Fix memory leak in driver unbind -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Free config space for emulated root bridge when unbinding driver to fix -memory leak. Do it after disabling and masking all interrupts, since -aardvark interrupt handler accesses config space of emulated root -bridge. - -Link: https://lore.kernel.org/r/20211130172913.9727-9-kabel@kernel.org -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún -Signed-off-by: Lorenzo Pieralisi ---- - drivers/pci/controller/pci-aardvark.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1718,6 +1718,9 @@ static int advk_pcie_remove(struct platf - advk_pcie_remove_msi_irq_domain(pcie); - advk_pcie_remove_irq_domain(pcie); - -+ /* Free config space for emulated root bridge */ -+ pci_bridge_emul_cleanup(&pcie->bridge); -+ - /* Disable outbound address windows mapping */ - for (i = 0; i < OB_WIN_COUNT; i++) - advk_pcie_disable_ob_win(pcie, i); diff --git a/target/linux/generic/backport-5.15/850-v5.17-0009-PCI-aardvark-Assert-PERST-when-unbinding-driver.patch b/target/linux/generic/backport-5.15/850-v5.17-0009-PCI-aardvark-Assert-PERST-when-unbinding-driver.patch deleted file mode 100644 index 3e309159d0..0000000000 --- a/target/linux/generic/backport-5.15/850-v5.17-0009-PCI-aardvark-Assert-PERST-when-unbinding-driver.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 1f54391be8ce0c981d312cb93acdc5608def576a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 30 Nov 2021 18:29:11 +0100 -Subject: [PATCH] PCI: aardvark: Assert PERST# when unbinding driver -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Put the PCIe card into reset by asserting PERST# signal when unbinding -driver. It doesn't make sense to leave the card working if it can't -communicate with the host. This should also save some power. - -Link: https://lore.kernel.org/r/20211130172913.9727-10-kabel@kernel.org -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún -Signed-off-by: Lorenzo Pieralisi ---- - drivers/pci/controller/pci-aardvark.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1721,6 +1721,10 @@ static int advk_pcie_remove(struct platf - /* Free config space for emulated root bridge */ - pci_bridge_emul_cleanup(&pcie->bridge); - -+ /* Assert PERST# signal which prepares PCIe card for power down */ -+ if (pcie->reset_gpio) -+ gpiod_set_value_cansleep(pcie->reset_gpio, 1); -+ - /* Disable outbound address windows mapping */ - for (i = 0; i < OB_WIN_COUNT; i++) - advk_pcie_disable_ob_win(pcie, i); diff --git a/target/linux/generic/backport-5.15/850-v5.17-0010-PCI-aardvark-Disable-link-training-when-unbinding-dr.patch b/target/linux/generic/backport-5.15/850-v5.17-0010-PCI-aardvark-Disable-link-training-when-unbinding-dr.patch deleted file mode 100644 index 1a5725121b..0000000000 --- a/target/linux/generic/backport-5.15/850-v5.17-0010-PCI-aardvark-Disable-link-training-when-unbinding-dr.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 759dec2e3dfdbd261c41d2279f04f2351c971a49 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 30 Nov 2021 18:29:12 +0100 -Subject: [PATCH] PCI: aardvark: Disable link training when unbinding driver -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Disable link training circuit in driver unbind sequence. We want to -leave link training in the same state as it was before the driver was -probed. - -Link: https://lore.kernel.org/r/20211130172913.9727-11-kabel@kernel.org -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún -Signed-off-by: Lorenzo Pieralisi ---- - drivers/pci/controller/pci-aardvark.c | 5 +++++ - 1 file changed, 5 insertions(+) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1725,6 +1725,11 @@ static int advk_pcie_remove(struct platf - if (pcie->reset_gpio) - gpiod_set_value_cansleep(pcie->reset_gpio, 1); - -+ /* Disable link training */ -+ val = advk_readl(pcie, PCIE_CORE_CTRL0_REG); -+ val &= ~LINK_TRAINING_EN; -+ advk_writel(pcie, val, PCIE_CORE_CTRL0_REG); -+ - /* Disable outbound address windows mapping */ - for (i = 0; i < OB_WIN_COUNT; i++) - advk_pcie_disable_ob_win(pcie, i); diff --git a/target/linux/generic/backport-5.15/850-v5.17-0011-PCI-aardvark-Disable-common-PHY-when-unbinding-drive.patch b/target/linux/generic/backport-5.15/850-v5.17-0011-PCI-aardvark-Disable-common-PHY-when-unbinding-drive.patch deleted file mode 100644 index 4a4af186fd..0000000000 --- a/target/linux/generic/backport-5.15/850-v5.17-0011-PCI-aardvark-Disable-common-PHY-when-unbinding-drive.patch +++ /dev/null @@ -1,30 +0,0 @@ -From fdbbe242c15a8f2cd0e3ad8a56cd0a447b771d0d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 30 Nov 2021 18:29:13 +0100 -Subject: [PATCH] PCI: aardvark: Disable common PHY when unbinding driver -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Disable the PCIe PHY when unbinding driver. This should save some power. - -Link: https://lore.kernel.org/r/20211130172913.9727-12-kabel@kernel.org -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún -Signed-off-by: Lorenzo Pieralisi ---- - drivers/pci/controller/pci-aardvark.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1734,6 +1734,9 @@ static int advk_pcie_remove(struct platf - for (i = 0; i < OB_WIN_COUNT; i++) - advk_pcie_disable_ob_win(pcie, i); - -+ /* Disable phy */ -+ advk_pcie_disable_phy(pcie); -+ - return 0; - } - diff --git a/target/linux/generic/hack-5.10/780-usb-net-MeigLink_modem_support.patch b/target/linux/generic/hack-5.10/780-usb-net-MeigLink_modem_support.patch index cb6f46760b..e55f2c0086 100644 --- a/target/linux/generic/hack-5.10/780-usb-net-MeigLink_modem_support.patch +++ b/target/linux/generic/hack-5.10/780-usb-net-MeigLink_modem_support.patch @@ -19,7 +19,7 @@ #define QUECTEL_VENDOR_ID 0x2c7c /* These Quectel products use Quectel's vendor ID */ -@@ -1127,6 +1129,11 @@ static const struct usb_device_id option +@@ -1129,6 +1131,11 @@ static const struct usb_device_id option { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) }, { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96), .driver_info = RSVD(4) }, diff --git a/target/linux/generic/hack-5.15/221-module_exports.patch b/target/linux/generic/hack-5.15/221-module_exports.patch index 65cee1a541..0164eabac0 100644 --- a/target/linux/generic/hack-5.15/221-module_exports.patch +++ b/target/linux/generic/hack-5.15/221-module_exports.patch @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau "__kstrtabns_" #sym ": \n" \ --- a/scripts/Makefile.build +++ b/scripts/Makefile.build -@@ -385,7 +385,7 @@ targets += $(real-dtb-y) $(lib-y) $(alwa +@@ -396,7 +396,7 @@ targets += $(real-dtb-y) $(lib-y) $(alwa # Linker scripts preprocessor (.lds.S -> .lds) # --------------------------------------------------------------------------- quiet_cmd_cpp_lds_S = LDS $@ diff --git a/target/linux/generic/hack-5.15/230-openwrt_lzma_options.patch b/target/linux/generic/hack-5.15/230-openwrt_lzma_options.patch index 8aa5b7c579..f9361b060b 100644 --- a/target/linux/generic/hack-5.15/230-openwrt_lzma_options.patch +++ b/target/linux/generic/hack-5.15/230-openwrt_lzma_options.patch @@ -23,7 +23,7 @@ Signed-off-by: Imre Kaloz { {0x02, 0x21}, "lz4", unlz4 }, --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib -@@ -413,7 +413,7 @@ quiet_cmd_bzip2 = BZIP2 $@ +@@ -402,7 +402,7 @@ quiet_cmd_bzip2 = BZIP2 $@ # --------------------------------------------------------------------------- quiet_cmd_lzma = LZMA $@ diff --git a/target/linux/generic/pending-5.10/400-mtd-mtdsplit-support.patch b/target/linux/generic/pending-5.10/400-mtd-mtdsplit-support.patch index 6f816a6ad3..42043a2818 100644 --- a/target/linux/generic/pending-5.10/400-mtd-mtdsplit-support.patch +++ b/target/linux/generic/pending-5.10/400-mtd-mtdsplit-support.patch @@ -272,7 +272,7 @@ obj-$(CONFIG_MTD_BLOCK) += mtdblock.o --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h -@@ -608,6 +608,24 @@ static inline void mtd_align_erase_req(s +@@ -606,6 +606,24 @@ static inline void mtd_align_erase_req(s req->len += mtd->erasesize - mod; } @@ -297,7 +297,7 @@ static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd) { if (mtd->writesize_shift) -@@ -680,6 +698,13 @@ extern void __put_mtd_device(struct mtd_ +@@ -678,6 +696,13 @@ extern void __put_mtd_device(struct mtd_ extern struct mtd_info *get_mtd_device_nm(const char *name); extern void put_mtd_device(struct mtd_info *mtd); diff --git a/target/linux/generic/pending-5.10/444-mtd-nand-rawnand-add-support-for-Toshiba-TC58NVG0S3H.patch b/target/linux/generic/pending-5.10/444-mtd-nand-rawnand-add-support-for-Toshiba-TC58NVG0S3H.patch new file mode 100644 index 0000000000..54df828875 --- /dev/null +++ b/target/linux/generic/pending-5.10/444-mtd-nand-rawnand-add-support-for-Toshiba-TC58NVG0S3H.patch @@ -0,0 +1,36 @@ +From 35ca7e3e6ccd120d694a3425f37fc6374ad2e11e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20B=C3=B6hler?= +Date: Wed, 20 Apr 2022 12:08:38 +0200 +Subject: [PATCH] mtd: rawnand: add support for Toshiba TC58NVG0S3HTA00 + NAND flash +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Toshiba TC58NVG0S3HTA00 is detected with 64 byte OOB while the flash +has 128 bytes OOB. This adds a static NAND ID entry to correct this. + +Tested on FRITZ!Box 7530 flashed with OpenWrt. + +Signed-off-by: Andreas Böhler +--- + drivers/mtd/nand/raw/nand_ids.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/mtd/nand/raw/nand_ids.c b/drivers/mtd/nand/raw/nand_ids.c +index 6e41902be35f..d64adbd1ce6b 100644 +--- a/drivers/mtd/nand/raw/nand_ids.c ++++ b/drivers/mtd/nand/raw/nand_ids.c +@@ -29,6 +29,9 @@ struct nand_flash_dev nand_flash_ids[] = { + {"TC58NVG0S3E 1G 3.3V 8-bit", + { .id = {0x98, 0xd1, 0x90, 0x15, 0x76, 0x14, 0x01, 0x00} }, + SZ_2K, SZ_128, SZ_128K, 0, 8, 64, NAND_ECC_INFO(1, SZ_512), }, ++ {"TC58NVG0S3HTA00 1G 3.3V 8-bit", ++ { .id = {0x98, 0xf1, 0x80, 0x15} }, ++ SZ_2K, SZ_128, SZ_128K, 0, 4, 128, NAND_ECC_INFO(8, SZ_512), }, + {"TC58NVG2S0F 4G 3.3V 8-bit", + { .id = {0x98, 0xdc, 0x90, 0x26, 0x76, 0x15, 0x01, 0x08} }, + SZ_4K, SZ_512, SZ_256K, 0, 8, 224, NAND_ECC_INFO(4, SZ_512) }, +-- +2.35.1 + diff --git a/target/linux/generic/pending-5.10/495-mtd-core-add-get_mtd_device_by_node.patch b/target/linux/generic/pending-5.10/495-mtd-core-add-get_mtd_device_by_node.patch index d5db5fdd54..22c3ba56d4 100644 --- a/target/linux/generic/pending-5.10/495-mtd-core-add-get_mtd_device_by_node.patch +++ b/target/linux/generic/pending-5.10/495-mtd-core-add-get_mtd_device_by_node.patch @@ -64,7 +64,7 @@ Reviewed-by: Miquel Raynal mutex_lock(&mtd_table_mutex); --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h -@@ -698,6 +698,8 @@ extern struct mtd_info *get_mtd_device(s +@@ -696,6 +696,8 @@ extern struct mtd_info *get_mtd_device(s extern int __get_mtd_device(struct mtd_info *mtd); extern void __put_mtd_device(struct mtd_info *mtd); extern struct mtd_info *get_mtd_device_nm(const char *name); diff --git a/target/linux/generic/pending-5.10/850-0002-PCI-aardvark-Fix-reading-MSI-interrupt-number.patch b/target/linux/generic/pending-5.10/850-0002-PCI-aardvark-Fix-reading-MSI-interrupt-number.patch deleted file mode 100644 index b2d32f5566..0000000000 --- a/target/linux/generic/pending-5.10/850-0002-PCI-aardvark-Fix-reading-MSI-interrupt-number.patch +++ /dev/null @@ -1,57 +0,0 @@ -From a29a7d01cd778854e08108461cba321a63d98871 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Fri, 2 Jul 2021 16:39:47 +0200 -Subject: [PATCH] PCI: aardvark: Fix reading MSI interrupt number -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In advk_pcie_handle_msi() the authors expect that when bit i in the W1C -register PCIE_MSI_STATUS_REG is cleared, the PCIE_MSI_PAYLOAD_REG is -updated to contain the MSI number corresponding to index i. - -Experiments show that this is not so, and instead PCIE_MSI_PAYLOAD_REG -always contains the number of the last received MSI, overall. - -Do not read PCIE_MSI_PAYLOAD_REG register for determining MSI interrupt -number. Since Aardvark already forbids more than 32 interrupts and uses -own allocated hwirq numbers, the msi_idx already corresponds to the -received MSI number. - -Fixes: 8c39d710363c ("PCI: aardvark: Add Aardvark PCI host controller driver") -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 13 ++++++------- - 1 file changed, 6 insertions(+), 7 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1391,7 +1391,7 @@ static void advk_pcie_remove_irq_domain( - static void advk_pcie_handle_msi(struct advk_pcie *pcie) - { - u32 msi_val, msi_mask, msi_status, msi_idx; -- u16 msi_data; -+ int virq; - - msi_mask = advk_readl(pcie, PCIE_MSI_MASK_REG); - msi_val = advk_readl(pcie, PCIE_MSI_STATUS_REG); -@@ -1401,13 +1401,12 @@ static void advk_pcie_handle_msi(struct - if (!(BIT(msi_idx) & msi_status)) - continue; - -- /* -- * msi_idx contains bits [4:0] of the msi_data and msi_data -- * contains 16bit MSI interrupt number -- */ - advk_writel(pcie, BIT(msi_idx), PCIE_MSI_STATUS_REG); -- msi_data = advk_readl(pcie, PCIE_MSI_PAYLOAD_REG) & PCIE_MSI_DATA_MASK; -- generic_handle_irq(msi_data); -+ virq = irq_find_mapping(pcie->msi_inner_domain, msi_idx); -+ if (virq) -+ generic_handle_irq(virq); -+ else -+ dev_err_ratelimited(&pcie->pdev->dev, "unexpected MSI 0x%02x\n", msi_idx); - } - - advk_writel(pcie, PCIE_ISR0_MSI_INT_PENDING, diff --git a/target/linux/generic/pending-5.10/850-0004-PCI-aardvark-Rewrite-IRQ-code-to-chained-IRQ-handler.patch b/target/linux/generic/pending-5.10/850-0004-PCI-aardvark-Rewrite-IRQ-code-to-chained-IRQ-handler.patch index 83aab46d8c..426ba94b98 100644 --- a/target/linux/generic/pending-5.10/850-0004-PCI-aardvark-Rewrite-IRQ-code-to-chained-IRQ-handler.patch +++ b/target/linux/generic/pending-5.10/850-0004-PCI-aardvark-Rewrite-IRQ-code-to-chained-IRQ-handler.patch @@ -31,7 +31,7 @@ Signed-off-by: Marek Behún struct irq_domain *irq_domain; struct irq_chip irq_chip; raw_spinlock_t irq_lock; -@@ -1444,21 +1445,26 @@ static void advk_pcie_handle_int(struct +@@ -1441,21 +1442,26 @@ static void advk_pcie_handle_int(struct } } @@ -68,7 +68,7 @@ Signed-off-by: Marek Behún } static void __maybe_unused advk_pcie_disable_phy(struct advk_pcie *pcie) -@@ -1525,7 +1531,7 @@ static int advk_pcie_probe(struct platfo +@@ -1522,7 +1528,7 @@ static int advk_pcie_probe(struct platfo struct advk_pcie *pcie; struct pci_host_bridge *bridge; struct resource_entry *entry; @@ -77,7 +77,7 @@ Signed-off-by: Marek Behún bridge = devm_pci_alloc_host_bridge(dev, sizeof(struct advk_pcie)); if (!bridge) -@@ -1613,17 +1619,9 @@ static int advk_pcie_probe(struct platfo +@@ -1610,17 +1616,9 @@ static int advk_pcie_probe(struct platfo if (IS_ERR(pcie->base)) return PTR_ERR(pcie->base); @@ -98,7 +98,7 @@ Signed-off-by: Marek Behún pcie->reset_gpio = devm_gpiod_get_from_of_node(dev, dev->of_node, "reset-gpios", 0, -@@ -1672,11 +1670,14 @@ static int advk_pcie_probe(struct platfo +@@ -1669,11 +1667,14 @@ static int advk_pcie_probe(struct platfo return ret; } @@ -113,7 +113,7 @@ Signed-off-by: Marek Behún advk_pcie_remove_msi_irq_domain(pcie); advk_pcie_remove_irq_domain(pcie); return ret; -@@ -1724,6 +1725,9 @@ static int advk_pcie_remove(struct platf +@@ -1721,6 +1722,9 @@ static int advk_pcie_remove(struct platf advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG); advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG); diff --git a/target/linux/generic/pending-5.10/850-0005-PCI-aardvark-Check-return-value-of-generic_handle_do.patch b/target/linux/generic/pending-5.10/850-0005-PCI-aardvark-Check-return-value-of-generic_handle_do.patch index 7eb30eadd6..a9c7f052b1 100644 --- a/target/linux/generic/pending-5.10/850-0005-PCI-aardvark-Check-return-value-of-generic_handle_do.patch +++ b/target/linux/generic/pending-5.10/850-0005-PCI-aardvark-Check-return-value-of-generic_handle_do.patch @@ -18,7 +18,7 @@ Signed-off-by: Marek Behún --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c -@@ -1441,7 +1441,9 @@ static void advk_pcie_handle_int(struct +@@ -1438,7 +1438,9 @@ static void advk_pcie_handle_int(struct PCIE_ISR1_REG); virq = irq_find_mapping(pcie->irq_domain, i); diff --git a/target/linux/generic/pending-5.10/850-0013-PCI-aardvark-Add-support-for-ERR-interrupt-on-emulat.patch b/target/linux/generic/pending-5.10/850-0013-PCI-aardvark-Add-support-for-ERR-interrupt-on-emulat.patch index cc4bb467c3..8665431961 100644 --- a/target/linux/generic/pending-5.10/850-0013-PCI-aardvark-Add-support-for-ERR-interrupt-on-emulat.patch +++ b/target/linux/generic/pending-5.10/850-0013-PCI-aardvark-Add-support-for-ERR-interrupt-on-emulat.patch @@ -78,7 +78,7 @@ Signed-off-by: Marek Behún if (mask & (PCI_BRIDGE_CTL_BUS_RESET << 16)) { u32 val = advk_readl(pcie, PCIE_CORE_CTRL1_REG); if (new & (PCI_BRIDGE_CTL_BUS_RESET << 16)) -@@ -1468,6 +1489,19 @@ static void advk_pcie_handle_int(struct +@@ -1465,6 +1486,19 @@ static void advk_pcie_handle_int(struct isr1_mask = advk_readl(pcie, PCIE_ISR1_MASK_REG); isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK); diff --git a/target/linux/generic/pending-5.10/850-0016-PCI-aardvark-Add-support-for-PME-interrupts.patch b/target/linux/generic/pending-5.10/850-0016-PCI-aardvark-Add-support-for-PME-interrupts.patch index 4272b6dd6e..2b1a945b62 100644 --- a/target/linux/generic/pending-5.10/850-0016-PCI-aardvark-Add-support-for-PME-interrupts.patch +++ b/target/linux/generic/pending-5.10/850-0016-PCI-aardvark-Add-support-for-PME-interrupts.patch @@ -25,7 +25,7 @@ Signed-off-by: Marek Behún --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c -@@ -1491,6 +1491,19 @@ static void advk_pcie_handle_int(struct +@@ -1488,6 +1488,19 @@ static void advk_pcie_handle_int(struct isr1_mask = advk_readl(pcie, PCIE_ISR1_MASK_REG); isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK); diff --git a/target/linux/generic/pending-5.10/850-0017-PCI-aardvark-Fix-support-for-PME-requester-on-emulat.patch b/target/linux/generic/pending-5.10/850-0017-PCI-aardvark-Fix-support-for-PME-requester-on-emulat.patch index 6aa7dcbd76..a59ff36b51 100644 --- a/target/linux/generic/pending-5.10/850-0017-PCI-aardvark-Fix-support-for-PME-requester-on-emulat.patch +++ b/target/linux/generic/pending-5.10/850-0017-PCI-aardvark-Fix-support-for-PME-requester-on-emulat.patch @@ -149,7 +149,7 @@ Signed-off-by: Marek Behún static void advk_pcie_handle_msi(struct advk_pcie *pcie) { u32 msi_val, msi_mask, msi_status, msi_idx; -@@ -1491,18 +1510,9 @@ static void advk_pcie_handle_int(struct +@@ -1488,18 +1507,9 @@ static void advk_pcie_handle_int(struct isr1_mask = advk_readl(pcie, PCIE_ISR1_MASK_REG); isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK); diff --git a/target/linux/generic/pending-5.10/850-0018-PCI-aardvark-Use-separate-INTA-interrupt-for-emulate.patch b/target/linux/generic/pending-5.10/850-0018-PCI-aardvark-Use-separate-INTA-interrupt-for-emulate.patch index e9f65aca23..62a4bfe807 100644 --- a/target/linux/generic/pending-5.10/850-0018-PCI-aardvark-Use-separate-INTA-interrupt-for-emulate.patch +++ b/target/linux/generic/pending-5.10/850-0018-PCI-aardvark-Use-separate-INTA-interrupt-for-emulate.patch @@ -95,7 +95,7 @@ Signed-off-by: Marek Behún if (generic_handle_irq(virq) == -EINVAL) dev_err_ratelimited(&pcie->pdev->dev, "unhandled PME IRQ\n"); } -@@ -1522,7 +1561,7 @@ static void advk_pcie_handle_int(struct +@@ -1519,7 +1558,7 @@ static void advk_pcie_handle_int(struct * Aardvark HW returns zero for PCI_ERR_ROOT_AER_IRQ, so use * PCIe interrupt 0 */ @@ -104,7 +104,7 @@ Signed-off-by: Marek Behún if (generic_handle_irq(virq) == -EINVAL) dev_err_ratelimited(&pcie->pdev->dev, "unhandled ERR IRQ\n"); } -@@ -1568,6 +1607,21 @@ static void advk_pcie_irq_handler(struct +@@ -1565,6 +1604,21 @@ static void advk_pcie_irq_handler(struct chained_irq_exit(chip, desc); } @@ -126,7 +126,7 @@ Signed-off-by: Marek Behún static void __maybe_unused advk_pcie_disable_phy(struct advk_pcie *pcie) { phy_power_off(pcie->phy); -@@ -1771,14 +1825,24 @@ static int advk_pcie_probe(struct platfo +@@ -1768,14 +1822,24 @@ static int advk_pcie_probe(struct platfo return ret; } @@ -151,7 +151,7 @@ Signed-off-by: Marek Behún advk_pcie_remove_msi_irq_domain(pcie); advk_pcie_remove_irq_domain(pcie); return ret; -@@ -1830,6 +1894,7 @@ static int advk_pcie_remove(struct platf +@@ -1827,6 +1891,7 @@ static int advk_pcie_remove(struct platf irq_set_chained_handler_and_data(pcie->irq, NULL, NULL); /* Remove IRQ domains */ diff --git a/target/linux/generic/pending-5.10/850-0021-PCI-aardvark-Drop-__maybe_unused-from-advk_pcie_disa.patch b/target/linux/generic/pending-5.10/850-0021-PCI-aardvark-Drop-__maybe_unused-from-advk_pcie_disa.patch index f359663ca4..5a1cff5310 100644 --- a/target/linux/generic/pending-5.10/850-0021-PCI-aardvark-Drop-__maybe_unused-from-advk_pcie_disa.patch +++ b/target/linux/generic/pending-5.10/850-0021-PCI-aardvark-Drop-__maybe_unused-from-advk_pcie_disa.patch @@ -17,7 +17,7 @@ Signed-off-by: Marek Behún --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c -@@ -1620,7 +1620,7 @@ static int advk_pcie_map_irq(const struc +@@ -1617,7 +1617,7 @@ static int advk_pcie_map_irq(const struc return of_irq_parse_and_map_pci(dev, slot, pin); } diff --git a/target/linux/generic/pending-5.10/851-0006-Revert-PCI-aardvark-Fix-initialization-with-old-Marv.patch b/target/linux/generic/pending-5.10/851-0006-Revert-PCI-aardvark-Fix-initialization-with-old-Marv.patch index 857ee66a31..3ac9269812 100644 --- a/target/linux/generic/pending-5.10/851-0006-Revert-PCI-aardvark-Fix-initialization-with-old-Marv.patch +++ b/target/linux/generic/pending-5.10/851-0006-Revert-PCI-aardvark-Fix-initialization-with-old-Marv.patch @@ -23,7 +23,7 @@ Acked-by: Miquel Raynal --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c -@@ -1637,9 +1637,7 @@ static int advk_pcie_enable_phy(struct a +@@ -1634,9 +1634,7 @@ static int advk_pcie_enable_phy(struct a } ret = phy_power_on(pcie->phy); diff --git a/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch b/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch index 370fc97eac..e05519d83c 100644 --- a/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch +++ b/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch @@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau } --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh -@@ -260,6 +260,10 @@ kallsyms() +@@ -263,6 +263,10 @@ kallsyms() kallsymopt="${kallsymopt} --base-relative" fi diff --git a/target/linux/generic/pending-5.15/444-mtd-nand-rawnand-add-support-for-Toshiba-TC58NVG0S3H.patch b/target/linux/generic/pending-5.15/444-mtd-nand-rawnand-add-support-for-Toshiba-TC58NVG0S3H.patch new file mode 100644 index 0000000000..27c863b992 --- /dev/null +++ b/target/linux/generic/pending-5.15/444-mtd-nand-rawnand-add-support-for-Toshiba-TC58NVG0S3H.patch @@ -0,0 +1,31 @@ +From 35ca7e3e6ccd120d694a3425f37fc6374ad2e11e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20B=C3=B6hler?= +Date: Wed, 20 Apr 2022 12:08:38 +0200 +Subject: [PATCH] mtd: rawnand: add support for Toshiba TC58NVG0S3HTA00 + NAND flash +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Toshiba TC58NVG0S3HTA00 is detected with 64 byte OOB while the flash +has 128 bytes OOB. This adds a static NAND ID entry to correct this. + +Tested on FRITZ!Box 7530 flashed with OpenWrt. + +Signed-off-by: Andreas Böhler +--- + drivers/mtd/nand/raw/nand_ids.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/mtd/nand/raw/nand_ids.c ++++ b/drivers/mtd/nand/raw/nand_ids.c +@@ -29,6 +29,9 @@ struct nand_flash_dev nand_flash_ids[] = + {"TC58NVG0S3E 1G 3.3V 8-bit", + { .id = {0x98, 0xd1, 0x90, 0x15, 0x76, 0x14, 0x01, 0x00} }, + SZ_2K, SZ_128, SZ_128K, 0, 8, 64, NAND_ECC_INFO(1, SZ_512), }, ++ {"TC58NVG0S3HTA00 1G 3.3V 8-bit", ++ { .id = {0x98, 0xf1, 0x80, 0x15} }, ++ SZ_2K, SZ_128, SZ_128K, 0, 4, 128, NAND_ECC_INFO(8, SZ_512), }, + {"TC58NVG2S0F 4G 3.3V 8-bit", + { .id = {0x98, 0xdc, 0x90, 0x26, 0x76, 0x15, 0x01, 0x08} }, + SZ_4K, SZ_512, SZ_256K, 0, 8, 224, NAND_ECC_INFO(4, SZ_512) }, diff --git a/target/linux/generic/pending-5.15/850-0001-PCI-aardvark-Replace-custom-PCIE_CORE_INT_-macros-wi.patch b/target/linux/generic/pending-5.15/850-0001-PCI-aardvark-Replace-custom-PCIE_CORE_INT_-macros-wi.patch deleted file mode 100644 index 70f994a5d4..0000000000 --- a/target/linux/generic/pending-5.15/850-0001-PCI-aardvark-Replace-custom-PCIE_CORE_INT_-macros-wi.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 43f3f187e6f62ca40802afe39495c8a3e20b4bfa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Mon, 10 Jan 2022 01:50:50 +0100 -Subject: [PATCH] PCI: aardvark: Replace custom PCIE_CORE_INT_* macros with - PCI_INTERRUPT_* -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Header file linux/pci.h defines enum pci_interrupt_pin with corresponding -PCI_INTERRUPT_* values. - -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 6 +----- - 1 file changed, 1 insertion(+), 5 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -38,10 +38,6 @@ - #define PCIE_CORE_ERR_CAPCTL_ECRC_CHK_TX_EN BIT(6) - #define PCIE_CORE_ERR_CAPCTL_ECRC_CHCK BIT(7) - #define PCIE_CORE_ERR_CAPCTL_ECRC_CHCK_RCV BIT(8) --#define PCIE_CORE_INT_A_ASSERT_ENABLE 1 --#define PCIE_CORE_INT_B_ASSERT_ENABLE 2 --#define PCIE_CORE_INT_C_ASSERT_ENABLE 3 --#define PCIE_CORE_INT_D_ASSERT_ENABLE 4 - /* PIO registers base address and register offsets */ - #define PIO_BASE_ADDR 0x4000 - #define PIO_CTRL (PIO_BASE_ADDR + 0x0) -@@ -961,7 +957,7 @@ static int advk_sw_pci_bridge_init(struc - bridge->conf.pref_mem_limit = cpu_to_le16(PCI_PREF_RANGE_TYPE_64); - - /* Support interrupt A for MSI feature */ -- bridge->conf.intpin = PCIE_CORE_INT_A_ASSERT_ENABLE; -+ bridge->conf.intpin = PCI_INTERRUPT_INTA; - - /* Aardvark HW provides PCIe Capability structure in version 2 */ - bridge->pcie_conf.cap = cpu_to_le16(2); diff --git a/target/linux/generic/pending-5.15/850-0004-PCI-aardvark-Rewrite-IRQ-code-to-chained-IRQ-handler.patch b/target/linux/generic/pending-5.15/850-0004-PCI-aardvark-Rewrite-IRQ-code-to-chained-IRQ-handler.patch deleted file mode 100644 index e3eaab61f9..0000000000 --- a/target/linux/generic/pending-5.15/850-0004-PCI-aardvark-Rewrite-IRQ-code-to-chained-IRQ-handler.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 0cd5141d1866afb23286fe90cd846441fe7aeb39 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Sat, 27 Mar 2021 14:44:11 +0100 -Subject: [PATCH] PCI: aardvark: Rewrite IRQ code to chained IRQ handler -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Rewrite the code to use irq_set_chained_handler_and_data() handler with -chained_irq_enter() and chained_irq_exit() processing instead of using -devm_request_irq(). - -advk_pcie_irq_handler() reads IRQ status bits and calls other functions -based on which bits are set. These functions then read its own IRQ status -bits and calls other aardvark functions based on these bits. Finally -generic_handle_domain_irq() with translated linux IRQ numbers are called. - -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 48 +++++++++++++++------------ - 1 file changed, 26 insertions(+), 22 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -268,6 +268,7 @@ struct advk_pcie { - u32 actions; - } wins[OB_WIN_COUNT]; - u8 wins_count; -+ int irq; - struct irq_domain *irq_domain; - struct irq_chip irq_chip; - raw_spinlock_t irq_lock; -@@ -1432,21 +1433,26 @@ static void advk_pcie_handle_int(struct - } - } - --static irqreturn_t advk_pcie_irq_handler(int irq, void *arg) -+static void advk_pcie_irq_handler(struct irq_desc *desc) - { -- struct advk_pcie *pcie = arg; -- u32 status; -+ struct advk_pcie *pcie = irq_desc_get_handler_data(desc); -+ struct irq_chip *chip = irq_desc_get_chip(desc); -+ u32 val, mask, status; - -- status = advk_readl(pcie, HOST_CTRL_INT_STATUS_REG); -- if (!(status & PCIE_IRQ_CORE_INT)) -- return IRQ_NONE; -+ chained_irq_enter(chip, desc); - -- advk_pcie_handle_int(pcie); -+ val = advk_readl(pcie, HOST_CTRL_INT_STATUS_REG); -+ mask = advk_readl(pcie, HOST_CTRL_INT_MASK_REG); -+ status = val & ((~mask) & PCIE_IRQ_ALL_MASK); - -- /* Clear interrupt */ -- advk_writel(pcie, PCIE_IRQ_CORE_INT, HOST_CTRL_INT_STATUS_REG); -+ if (status & PCIE_IRQ_CORE_INT) { -+ advk_pcie_handle_int(pcie); - -- return IRQ_HANDLED; -+ /* Clear interrupt */ -+ advk_writel(pcie, PCIE_IRQ_CORE_INT, HOST_CTRL_INT_STATUS_REG); -+ } -+ -+ chained_irq_exit(chip, desc); - } - - static void __maybe_unused advk_pcie_disable_phy(struct advk_pcie *pcie) -@@ -1513,7 +1519,7 @@ static int advk_pcie_probe(struct platfo - struct advk_pcie *pcie; - struct pci_host_bridge *bridge; - struct resource_entry *entry; -- int ret, irq; -+ int ret; - - bridge = devm_pci_alloc_host_bridge(dev, sizeof(struct advk_pcie)); - if (!bridge) -@@ -1599,17 +1605,9 @@ static int advk_pcie_probe(struct platfo - if (IS_ERR(pcie->base)) - return PTR_ERR(pcie->base); - -- irq = platform_get_irq(pdev, 0); -- if (irq < 0) -- return irq; -- -- ret = devm_request_irq(dev, irq, advk_pcie_irq_handler, -- IRQF_SHARED | IRQF_NO_THREAD, "advk-pcie", -- pcie); -- if (ret) { -- dev_err(dev, "Failed to register interrupt\n"); -- return ret; -- } -+ pcie->irq = platform_get_irq(pdev, 0); -+ if (pcie->irq < 0) -+ return pcie->irq; - - pcie->reset_gpio = devm_gpiod_get_from_of_node(dev, dev->of_node, - "reset-gpios", 0, -@@ -1658,11 +1656,14 @@ static int advk_pcie_probe(struct platfo - return ret; - } - -+ irq_set_chained_handler_and_data(pcie->irq, advk_pcie_irq_handler, pcie); -+ - bridge->sysdata = pcie; - bridge->ops = &advk_pcie_ops; - - ret = pci_host_probe(bridge); - if (ret < 0) { -+ irq_set_chained_handler_and_data(pcie->irq, NULL, NULL); - advk_pcie_remove_msi_irq_domain(pcie); - advk_pcie_remove_irq_domain(pcie); - return ret; -@@ -1710,6 +1711,9 @@ static int advk_pcie_remove(struct platf - advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG); - advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG); - -+ /* Remove IRQ handler */ -+ irq_set_chained_handler_and_data(pcie->irq, NULL, NULL); -+ - /* Remove IRQ domains */ - advk_pcie_remove_msi_irq_domain(pcie); - advk_pcie_remove_irq_domain(pcie); diff --git a/target/linux/generic/pending-5.15/850-0005-PCI-aardvark-Check-return-value-of-generic_handle_do.patch b/target/linux/generic/pending-5.15/850-0005-PCI-aardvark-Check-return-value-of-generic_handle_do.patch deleted file mode 100644 index fafcb3da2e..0000000000 --- a/target/linux/generic/pending-5.15/850-0005-PCI-aardvark-Check-return-value-of-generic_handle_do.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 69c1f2c6f45a556361fd8e8d2d4eb20e2c8d3d95 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Thu, 18 Mar 2021 17:04:32 +0100 -Subject: [PATCH] PCI: aardvark: Check return value of - generic_handle_domain_irq() when processing INTx IRQ -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It is possible that we receive spurious INTx interrupt. Check for the -return value of generic_handle_domain_irq() when processing INTx IRQ. - -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1429,7 +1429,9 @@ static void advk_pcie_handle_int(struct - advk_writel(pcie, PCIE_ISR1_INTX_ASSERT(i), - PCIE_ISR1_REG); - -- generic_handle_domain_irq(pcie->irq_domain, i); -+ if (generic_handle_domain_irq(pcie->irq_domain, i) == -EINVAL) -+ dev_err_ratelimited(&pcie->pdev->dev, "unexpected INT%c IRQ\n", -+ (char)i + 'A'); - } - } - diff --git a/target/linux/generic/pending-5.15/850-0006-PCI-aardvark-Make-MSI-irq_chip-structures-static-dri.patch b/target/linux/generic/pending-5.15/850-0006-PCI-aardvark-Make-MSI-irq_chip-structures-static-dri.patch deleted file mode 100644 index 070809fa73..0000000000 --- a/target/linux/generic/pending-5.15/850-0006-PCI-aardvark-Make-MSI-irq_chip-structures-static-dri.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 5eb36a6b9508da442aac80f4df23e3951bbfa7aa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Beh=C3=BAn?= -Date: Mon, 10 Jan 2022 00:03:41 +0100 -Subject: [PATCH] PCI: aardvark: Make MSI irq_chip structures static driver - structures -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Marc Zyngier says [1] that we should use struct irq_chip as a global -static struct in the driver. Even though the structure currently -contains a dynamic member (parent_device), Marc says [2] that he plans -to kill it and make the structure completely static. - -Convert Aardvark's priv->msi_bottom_irq_chip and priv->msi_irq_chip to -static driver structure. - -[1] https://lore.kernel.org/linux-pci/877dbcvngf.wl-maz@kernel.org/ -[2] https://lore.kernel.org/linux-pci/874k6gvkhz.wl-maz@kernel.org/ - -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 26 ++++++++++++-------------- - 1 file changed, 12 insertions(+), 14 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -274,8 +274,6 @@ struct advk_pcie { - raw_spinlock_t irq_lock; - struct irq_domain *msi_domain; - struct irq_domain *msi_inner_domain; -- struct irq_chip msi_bottom_irq_chip; -- struct irq_chip msi_irq_chip; - struct msi_domain_info msi_domain_info; - DECLARE_BITMAP(msi_used, MSI_IRQ_NUM); - struct mutex msi_used_lock; -@@ -1194,6 +1192,12 @@ static int advk_msi_set_affinity(struct - return -EINVAL; - } - -+static struct irq_chip advk_msi_bottom_irq_chip = { -+ .name = "MSI", -+ .irq_compose_msi_msg = advk_msi_irq_compose_msi_msg, -+ .irq_set_affinity = advk_msi_set_affinity, -+}; -+ - static int advk_msi_irq_domain_alloc(struct irq_domain *domain, - unsigned int virq, - unsigned int nr_irqs, void *args) -@@ -1210,7 +1214,7 @@ static int advk_msi_irq_domain_alloc(str - - for (i = 0; i < nr_irqs; i++) - irq_domain_set_info(domain, virq + i, hwirq + i, -- &pcie->msi_bottom_irq_chip, -+ &advk_msi_bottom_irq_chip, - domain->host_data, handle_simple_irq, - NULL, NULL); - -@@ -1280,29 +1284,23 @@ static const struct irq_domain_ops advk_ - .xlate = irq_domain_xlate_onecell, - }; - -+static struct irq_chip advk_msi_irq_chip = { -+ .name = "advk-MSI", -+}; -+ - static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie) - { - struct device *dev = &pcie->pdev->dev; - struct device_node *node = dev->of_node; -- struct irq_chip *bottom_ic, *msi_ic; - struct msi_domain_info *msi_di; - phys_addr_t msi_msg_phys; - - mutex_init(&pcie->msi_used_lock); - -- bottom_ic = &pcie->msi_bottom_irq_chip; -- -- bottom_ic->name = "MSI"; -- bottom_ic->irq_compose_msi_msg = advk_msi_irq_compose_msi_msg; -- bottom_ic->irq_set_affinity = advk_msi_set_affinity; -- -- msi_ic = &pcie->msi_irq_chip; -- msi_ic->name = "advk-MSI"; -- - msi_di = &pcie->msi_domain_info; - msi_di->flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS | - MSI_FLAG_MULTI_PCI_MSI; -- msi_di->chip = msi_ic; -+ msi_di->chip = &advk_msi_irq_chip; - - msi_msg_phys = virt_to_phys(&pcie->msi_msg); - diff --git a/target/linux/generic/pending-5.15/850-0007-PCI-aardvark-Make-msi_domain_info-structure-a-static.patch b/target/linux/generic/pending-5.15/850-0007-PCI-aardvark-Make-msi_domain_info-structure-a-static.patch deleted file mode 100644 index 39760b9841..0000000000 --- a/target/linux/generic/pending-5.15/850-0007-PCI-aardvark-Make-msi_domain_info-structure-a-static.patch +++ /dev/null @@ -1,64 +0,0 @@ -From c092ab8994f1f777054c0179a9deb40b87ee606f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Beh=C3=BAn?= -Date: Mon, 10 Jan 2022 00:10:46 +0100 -Subject: [PATCH] PCI: aardvark: Make msi_domain_info structure a static driver - structure -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Make Aardvark's msi_domain_info structure into a private driver structure. -Domain info is same for every potential instatination of a controller. - -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -274,7 +274,6 @@ struct advk_pcie { - raw_spinlock_t irq_lock; - struct irq_domain *msi_domain; - struct irq_domain *msi_inner_domain; -- struct msi_domain_info msi_domain_info; - DECLARE_BITMAP(msi_used, MSI_IRQ_NUM); - struct mutex msi_used_lock; - u16 msi_msg; -@@ -1288,20 +1287,20 @@ static struct irq_chip advk_msi_irq_chip - .name = "advk-MSI", - }; - -+static struct msi_domain_info advk_msi_domain_info = { -+ .flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS | -+ MSI_FLAG_MULTI_PCI_MSI, -+ .chip = &advk_msi_irq_chip, -+}; -+ - static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie) - { - struct device *dev = &pcie->pdev->dev; - struct device_node *node = dev->of_node; -- struct msi_domain_info *msi_di; - phys_addr_t msi_msg_phys; - - mutex_init(&pcie->msi_used_lock); - -- msi_di = &pcie->msi_domain_info; -- msi_di->flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS | -- MSI_FLAG_MULTI_PCI_MSI; -- msi_di->chip = &advk_msi_irq_chip; -- - msi_msg_phys = virt_to_phys(&pcie->msi_msg); - - advk_writel(pcie, lower_32_bits(msi_msg_phys), -@@ -1317,7 +1316,8 @@ static int advk_pcie_init_msi_irq_domain - - pcie->msi_domain = - pci_msi_create_irq_domain(of_node_to_fwnode(node), -- msi_di, pcie->msi_inner_domain); -+ &advk_msi_domain_info, -+ pcie->msi_inner_domain); - if (!pcie->msi_domain) { - irq_domain_remove(pcie->msi_inner_domain); - return -ENOMEM; diff --git a/target/linux/generic/pending-5.15/850-0008-PCI-aardvark-Use-dev_fwnode-instead-of-of_node_to_fw.patch b/target/linux/generic/pending-5.15/850-0008-PCI-aardvark-Use-dev_fwnode-instead-of-of_node_to_fw.patch deleted file mode 100644 index a72114d4d4..0000000000 --- a/target/linux/generic/pending-5.15/850-0008-PCI-aardvark-Use-dev_fwnode-instead-of-of_node_to_fw.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 59029739d42b439628e2f64f3d8f2db9be97deff Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Beh=C3=BAn?= -Date: Mon, 10 Jan 2022 00:15:17 +0100 -Subject: [PATCH] PCI: aardvark: Use dev_fwnode() instead of - of_node_to_fwnode(dev->of_node) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Use simple - dev_fwnode(dev) -instead of - struct device_node *node = dev->of_node; - of_node_to_fwnode(node) -especially since the node variable is not used elsewhere in the function. - -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1296,7 +1296,6 @@ static struct msi_domain_info advk_msi_d - static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie) - { - struct device *dev = &pcie->pdev->dev; -- struct device_node *node = dev->of_node; - phys_addr_t msi_msg_phys; - - mutex_init(&pcie->msi_used_lock); -@@ -1315,7 +1314,7 @@ static int advk_pcie_init_msi_irq_domain - return -ENOMEM; - - pcie->msi_domain = -- pci_msi_create_irq_domain(of_node_to_fwnode(node), -+ pci_msi_create_irq_domain(dev_fwnode(dev), - &advk_msi_domain_info, - pcie->msi_inner_domain); - if (!pcie->msi_domain) { diff --git a/target/linux/generic/pending-5.15/850-0009-PCI-aardvark-Refactor-unmasking-summary-MSI-interrup.patch b/target/linux/generic/pending-5.15/850-0009-PCI-aardvark-Refactor-unmasking-summary-MSI-interrup.patch deleted file mode 100644 index 7c36f7d2d6..0000000000 --- a/target/linux/generic/pending-5.15/850-0009-PCI-aardvark-Refactor-unmasking-summary-MSI-interrup.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 98feaf97bc64fc640a6c5b1394cd18fc7cd7dac8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Sun, 28 Mar 2021 14:34:49 +0200 -Subject: [PATCH] PCI: aardvark: Refactor unmasking summary MSI interrupt -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Refactor the masking of ISR0/1 Sources and unmasking of summary MSI interrupt -so that it corresponds to the comments: -- first mask all ISR0/1 -- then unmask all MSIs -- then unmask summary MSI interrupt - -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -571,15 +571,17 @@ static void advk_pcie_setup_hw(struct ad - advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG); - - /* Disable All ISR0/1 Sources */ -- reg = PCIE_ISR0_ALL_MASK; -- reg &= ~PCIE_ISR0_MSI_INT_PENDING; -- advk_writel(pcie, reg, PCIE_ISR0_MASK_REG); -- -+ advk_writel(pcie, PCIE_ISR0_ALL_MASK, PCIE_ISR0_MASK_REG); - advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_MASK_REG); - - /* Unmask all MSIs */ - advk_writel(pcie, ~(u32)PCIE_MSI_ALL_MASK, PCIE_MSI_MASK_REG); - -+ /* Unmask summary MSI interrupt */ -+ reg = advk_readl(pcie, PCIE_ISR0_MASK_REG); -+ reg &= ~PCIE_ISR0_MSI_INT_PENDING; -+ advk_writel(pcie, reg, PCIE_ISR0_MASK_REG); -+ - /* Enable summary interrupt for GIC SPI source */ - reg = PCIE_IRQ_ALL_MASK & (~PCIE_IRQ_ENABLE_INTS_MASK); - advk_writel(pcie, reg, HOST_CTRL_INT_MASK_REG); diff --git a/target/linux/generic/pending-5.15/850-0010-PCI-aardvark-Add-support-for-masking-MSI-interrupts.patch b/target/linux/generic/pending-5.15/850-0010-PCI-aardvark-Add-support-for-masking-MSI-interrupts.patch deleted file mode 100644 index 9be37134ce..0000000000 --- a/target/linux/generic/pending-5.15/850-0010-PCI-aardvark-Add-support-for-masking-MSI-interrupts.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 7f353accca6e4a3222991c65b1a6801503973bd3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Fri, 2 Jul 2021 16:44:10 +0200 -Subject: [PATCH] PCI: aardvark: Add support for masking MSI interrupts -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -We should not unmask MSIs at setup, but only when kernel asks for them -to be unmasked. - -At setup, mask all MSIs, and implement IRQ chip callbacks for masking -and unmasking particular MSIs. - -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 54 ++++++++++++++++++++++++--- - 1 file changed, 49 insertions(+), 5 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -274,6 +274,7 @@ struct advk_pcie { - raw_spinlock_t irq_lock; - struct irq_domain *msi_domain; - struct irq_domain *msi_inner_domain; -+ raw_spinlock_t msi_irq_lock; - DECLARE_BITMAP(msi_used, MSI_IRQ_NUM); - struct mutex msi_used_lock; - u16 msi_msg; -@@ -570,12 +571,10 @@ static void advk_pcie_setup_hw(struct ad - advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG); - advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG); - -- /* Disable All ISR0/1 Sources */ -+ /* Disable All ISR0/1 and MSI Sources */ - advk_writel(pcie, PCIE_ISR0_ALL_MASK, PCIE_ISR0_MASK_REG); - advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_MASK_REG); -- -- /* Unmask all MSIs */ -- advk_writel(pcie, ~(u32)PCIE_MSI_ALL_MASK, PCIE_MSI_MASK_REG); -+ advk_writel(pcie, PCIE_MSI_ALL_MASK, PCIE_MSI_MASK_REG); - - /* Unmask summary MSI interrupt */ - reg = advk_readl(pcie, PCIE_ISR0_MASK_REG); -@@ -1193,10 +1192,52 @@ static int advk_msi_set_affinity(struct - return -EINVAL; - } - -+static void advk_msi_irq_mask(struct irq_data *d) -+{ -+ struct advk_pcie *pcie = d->domain->host_data; -+ irq_hw_number_t hwirq = irqd_to_hwirq(d); -+ unsigned long flags; -+ u32 mask; -+ -+ raw_spin_lock_irqsave(&pcie->msi_irq_lock, flags); -+ mask = advk_readl(pcie, PCIE_MSI_MASK_REG); -+ mask |= BIT(hwirq); -+ advk_writel(pcie, mask, PCIE_MSI_MASK_REG); -+ raw_spin_unlock_irqrestore(&pcie->msi_irq_lock, flags); -+} -+ -+static void advk_msi_irq_unmask(struct irq_data *d) -+{ -+ struct advk_pcie *pcie = d->domain->host_data; -+ irq_hw_number_t hwirq = irqd_to_hwirq(d); -+ unsigned long flags; -+ u32 mask; -+ -+ raw_spin_lock_irqsave(&pcie->msi_irq_lock, flags); -+ mask = advk_readl(pcie, PCIE_MSI_MASK_REG); -+ mask &= ~BIT(hwirq); -+ advk_writel(pcie, mask, PCIE_MSI_MASK_REG); -+ raw_spin_unlock_irqrestore(&pcie->msi_irq_lock, flags); -+} -+ -+static void advk_msi_top_irq_mask(struct irq_data *d) -+{ -+ pci_msi_mask_irq(d); -+ irq_chip_mask_parent(d); -+} -+ -+static void advk_msi_top_irq_unmask(struct irq_data *d) -+{ -+ pci_msi_unmask_irq(d); -+ irq_chip_unmask_parent(d); -+} -+ - static struct irq_chip advk_msi_bottom_irq_chip = { - .name = "MSI", - .irq_compose_msi_msg = advk_msi_irq_compose_msi_msg, - .irq_set_affinity = advk_msi_set_affinity, -+ .irq_mask = advk_msi_irq_mask, -+ .irq_unmask = advk_msi_irq_unmask, - }; - - static int advk_msi_irq_domain_alloc(struct irq_domain *domain, -@@ -1286,7 +1327,9 @@ static const struct irq_domain_ops advk_ - }; - - static struct irq_chip advk_msi_irq_chip = { -- .name = "advk-MSI", -+ .name = "advk-MSI", -+ .irq_mask = advk_msi_top_irq_mask, -+ .irq_unmask = advk_msi_top_irq_unmask, - }; - - static struct msi_domain_info advk_msi_domain_info = { -@@ -1300,6 +1343,7 @@ static int advk_pcie_init_msi_irq_domain - struct device *dev = &pcie->pdev->dev; - phys_addr_t msi_msg_phys; - -+ raw_spin_lock_init(&pcie->msi_irq_lock); - mutex_init(&pcie->msi_used_lock); - - msi_msg_phys = virt_to_phys(&pcie->msi_msg); diff --git a/target/linux/generic/pending-5.15/850-0011-PCI-aardvark-Fix-setting-MSI-address.patch b/target/linux/generic/pending-5.15/850-0011-PCI-aardvark-Fix-setting-MSI-address.patch deleted file mode 100644 index ebc700b93d..0000000000 --- a/target/linux/generic/pending-5.15/850-0011-PCI-aardvark-Fix-setting-MSI-address.patch +++ /dev/null @@ -1,91 +0,0 @@ -From fa73c200f181436eab859374657c53a73778d8ad Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Fri, 26 Mar 2021 17:35:44 +0100 -Subject: [PATCH] PCI: aardvark: Fix setting MSI address -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -MSI address for receiving MSI interrupts needs to be correctly set before -enabling processing of MSI interrupts. - -Move code for setting PCIE_MSI_ADDR_LOW_REG and PCIE_MSI_ADDR_HIGH_REG -from advk_pcie_init_msi_irq_domain() to advk_pcie_setup_hw(), before -enabling PCIE_CORE_CTRL2_MSI_ENABLE. - -After this we can remove the now unused member msi_msg, which was used -only for MSI doorbell address. MSI address can be any address which cannot -be used to DMA to. So change it to the address of the main struct advk_pcie. - -Fixes: 8c39d710363c ("PCI: aardvark: Add Aardvark PCI host controller driver") -Signed-off-by: Pali Rohár -Acked-by: Marc Zyngier -Signed-off-by: Marek Behún -Cc: stable@vger.kernel.org # f21a8b1b6837 ("PCI: aardvark: Move to MSI handling using generic MSI support") ---- - drivers/pci/controller/pci-aardvark.c | 21 +++++++++------------ - 1 file changed, 9 insertions(+), 12 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -277,7 +277,6 @@ struct advk_pcie { - raw_spinlock_t msi_irq_lock; - DECLARE_BITMAP(msi_used, MSI_IRQ_NUM); - struct mutex msi_used_lock; -- u16 msi_msg; - int link_gen; - struct pci_bridge_emul bridge; - struct gpio_desc *reset_gpio; -@@ -472,6 +471,7 @@ static void advk_pcie_disable_ob_win(str - - static void advk_pcie_setup_hw(struct advk_pcie *pcie) - { -+ phys_addr_t msi_addr; - u32 reg; - int i; - -@@ -560,6 +560,11 @@ static void advk_pcie_setup_hw(struct ad - reg |= LANE_COUNT_1; - advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG); - -+ /* Set MSI address */ -+ msi_addr = virt_to_phys(pcie); -+ advk_writel(pcie, lower_32_bits(msi_addr), PCIE_MSI_ADDR_LOW_REG); -+ advk_writel(pcie, upper_32_bits(msi_addr), PCIE_MSI_ADDR_HIGH_REG); -+ - /* Enable MSI */ - reg = advk_readl(pcie, PCIE_CORE_CTRL2_REG); - reg |= PCIE_CORE_CTRL2_MSI_ENABLE; -@@ -1179,10 +1184,10 @@ static void advk_msi_irq_compose_msi_msg - struct msi_msg *msg) - { - struct advk_pcie *pcie = irq_data_get_irq_chip_data(data); -- phys_addr_t msi_msg = virt_to_phys(&pcie->msi_msg); -+ phys_addr_t msi_addr = virt_to_phys(pcie); - -- msg->address_lo = lower_32_bits(msi_msg); -- msg->address_hi = upper_32_bits(msi_msg); -+ msg->address_lo = lower_32_bits(msi_addr); -+ msg->address_hi = upper_32_bits(msi_addr); - msg->data = data->hwirq; - } - -@@ -1341,18 +1346,10 @@ static struct msi_domain_info advk_msi_d - static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie) - { - struct device *dev = &pcie->pdev->dev; -- phys_addr_t msi_msg_phys; - - raw_spin_lock_init(&pcie->msi_irq_lock); - mutex_init(&pcie->msi_used_lock); - -- msi_msg_phys = virt_to_phys(&pcie->msi_msg); -- -- advk_writel(pcie, lower_32_bits(msi_msg_phys), -- PCIE_MSI_ADDR_LOW_REG); -- advk_writel(pcie, upper_32_bits(msi_msg_phys), -- PCIE_MSI_ADDR_HIGH_REG); -- - pcie->msi_inner_domain = - irq_domain_add_linear(NULL, MSI_IRQ_NUM, - &advk_msi_domain_ops, pcie); diff --git a/target/linux/generic/pending-5.15/850-0012-PCI-aardvark-Enable-MSI-X-support.patch b/target/linux/generic/pending-5.15/850-0012-PCI-aardvark-Enable-MSI-X-support.patch deleted file mode 100644 index eeca51438e..0000000000 --- a/target/linux/generic/pending-5.15/850-0012-PCI-aardvark-Enable-MSI-X-support.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 735a4ac9782b96fbe1543c578aa8334364f21abd Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Fri, 2 Apr 2021 14:05:24 +0200 -Subject: [PATCH] PCI: aardvark: Enable MSI-X support -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -According to PCI 3.0 specification, sending both MSI and MSI-X interrupts -is done by DWORD memory write operation to doorbell message address. The -write operation for MSI has zero upper 16 bits and the MSI interrupt number -in the lower 16 bits, while the write operation for MSI-X contains a 32-bit -value from MSI-X table. - -Since the driver only uses interrupt numbers from range 0..31, the upper -16 bits of the DWORD memory write operation to doorbell message address -are zero even for MSI-X interrupts. Thus we can enable MSI-X interrupts. - -Testing proves that kernel can correctly receive MSI-X interrupts from PCIe -cards which supports both MSI and MSI-X interrupts. - -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1339,7 +1339,7 @@ static struct irq_chip advk_msi_irq_chip - - static struct msi_domain_info advk_msi_domain_info = { - .flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS | -- MSI_FLAG_MULTI_PCI_MSI, -+ MSI_FLAG_MULTI_PCI_MSI | MSI_FLAG_PCI_MSIX, - .chip = &advk_msi_irq_chip, - }; - diff --git a/target/linux/generic/pending-5.15/850-0013-PCI-aardvark-Add-support-for-ERR-interrupt-on-emulat.patch b/target/linux/generic/pending-5.15/850-0013-PCI-aardvark-Add-support-for-ERR-interrupt-on-emulat.patch deleted file mode 100644 index 979f00c9a3..0000000000 --- a/target/linux/generic/pending-5.15/850-0013-PCI-aardvark-Add-support-for-ERR-interrupt-on-emulat.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 7f3e55a3890fa26d15e2e4e90213962d1a7f6df9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Fri, 12 Feb 2021 20:32:55 +0100 -Subject: [PATCH] PCI: aardvark: Add support for ERR interrupt on emulated - bridge -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -ERR interrupt is triggered when corresponding bit is unmasked in both ISR0 -and PCI_EXP_DEVCTL registers. Unmasking ERR bits in PCI_EXP_DEVCTL register -is not enough. This means that currently the ERR interrupt is never -triggered. - -Unmask ERR bits in ISR0 register at driver probe time. ERR interrupt is not -triggered until ERR bits are unmasked also in PCI_EXP_DEVCTL register, -which is done by AER driver. So it is safe to unconditionally unmask all -ERR bits in aardvark probe. - -Aardvark HW sets PCI_ERR_ROOT_AER_IRQ to zero and when corresponding bits -in ISR0 and PCI_EXP_DEVCTL are enabled, the HW triggers a generic interrupt -on GIC. Chain this interrupt to PCIe interrupt 0 with -generic_handle_domain_irq() to allow processing of ERR interrupts. - -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 36 ++++++++++++++++++++++++++- - 1 file changed, 35 insertions(+), 1 deletion(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -98,6 +98,10 @@ - #define PCIE_MSG_PM_PME_MASK BIT(7) - #define PCIE_ISR0_MASK_REG (CONTROL_BASE_ADDR + 0x44) - #define PCIE_ISR0_MSI_INT_PENDING BIT(24) -+#define PCIE_ISR0_CORR_ERR BIT(11) -+#define PCIE_ISR0_NFAT_ERR BIT(12) -+#define PCIE_ISR0_FAT_ERR BIT(13) -+#define PCIE_ISR0_ERR_MASK GENMASK(13, 11) - #define PCIE_ISR0_INTX_ASSERT(val) BIT(16 + (val)) - #define PCIE_ISR0_INTX_DEASSERT(val) BIT(20 + (val)) - #define PCIE_ISR0_ALL_MASK GENMASK(31, 0) -@@ -778,11 +782,15 @@ advk_pci_bridge_emul_base_conf_read(stru - case PCI_INTERRUPT_LINE: { - /* - * From the whole 32bit register we support reading from HW only -- * one bit: PCI_BRIDGE_CTL_BUS_RESET. -+ * two bits: PCI_BRIDGE_CTL_BUS_RESET and PCI_BRIDGE_CTL_SERR. - * Other bits are retrieved only from emulated config buffer. - */ - __le32 *cfgspace = (__le32 *)&bridge->conf; - u32 val = le32_to_cpu(cfgspace[PCI_INTERRUPT_LINE / 4]); -+ if (advk_readl(pcie, PCIE_ISR0_MASK_REG) & PCIE_ISR0_ERR_MASK) -+ val &= ~(PCI_BRIDGE_CTL_SERR << 16); -+ else -+ val |= PCI_BRIDGE_CTL_SERR << 16; - if (advk_readl(pcie, PCIE_CORE_CTRL1_REG) & HOT_RESET_GEN) - val |= PCI_BRIDGE_CTL_BUS_RESET << 16; - else -@@ -808,6 +816,19 @@ advk_pci_bridge_emul_base_conf_write(str - break; - - case PCI_INTERRUPT_LINE: -+ /* -+ * According to Figure 6-3: Pseudo Logic Diagram for Error -+ * Message Controls in PCIe base specification, SERR# Enable bit -+ * in Bridge Control register enable receiving of ERR_* messages -+ */ -+ if (mask & (PCI_BRIDGE_CTL_SERR << 16)) { -+ u32 val = advk_readl(pcie, PCIE_ISR0_MASK_REG); -+ if (new & (PCI_BRIDGE_CTL_SERR << 16)) -+ val &= ~PCIE_ISR0_ERR_MASK; -+ else -+ val |= PCIE_ISR0_ERR_MASK; -+ advk_writel(pcie, val, PCIE_ISR0_MASK_REG); -+ } - if (mask & (PCI_BRIDGE_CTL_BUS_RESET << 16)) { - u32 val = advk_readl(pcie, PCIE_CORE_CTRL1_REG); - if (new & (PCI_BRIDGE_CTL_BUS_RESET << 16)) -@@ -1457,6 +1478,18 @@ static void advk_pcie_handle_int(struct - isr1_mask = advk_readl(pcie, PCIE_ISR1_MASK_REG); - isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK); - -+ /* Process ERR interrupt */ -+ if (isr0_status & PCIE_ISR0_ERR_MASK) { -+ advk_writel(pcie, PCIE_ISR0_ERR_MASK, PCIE_ISR0_REG); -+ -+ /* -+ * Aardvark HW returns zero for PCI_ERR_ROOT_AER_IRQ, so use -+ * PCIe interrupt 0 -+ */ -+ if (generic_handle_domain_irq(pcie->irq_domain, 0) == -EINVAL) -+ dev_err_ratelimited(&pcie->pdev->dev, "unhandled ERR IRQ\n"); -+ } -+ - /* Process MSI interrupts */ - if (isr0_status & PCIE_ISR0_MSI_INT_PENDING) - advk_pcie_handle_msi(pcie); diff --git a/target/linux/generic/pending-5.15/850-0015-PCI-aardvark-Optimize-writing-PCI_EXP_RTCTL_PMEIE-an.patch b/target/linux/generic/pending-5.15/850-0015-PCI-aardvark-Optimize-writing-PCI_EXP_RTCTL_PMEIE-an.patch deleted file mode 100644 index f988bb3e62..0000000000 --- a/target/linux/generic/pending-5.15/850-0015-PCI-aardvark-Optimize-writing-PCI_EXP_RTCTL_PMEIE-an.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 3fe0073d116d9902df08761c1cf0d733dd4c38fc Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Wed, 8 Dec 2021 06:03:50 +0100 -Subject: [PATCH] PCI: aardvark: Optimize writing PCI_EXP_RTCTL_PMEIE and - PCI_EXP_RTSTA_PME on emulated bridge -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -To optimize advk_pci_bridge_emul_pcie_conf_write() code, touch -PCIE_ISR0_REG and PCIE_ISR0_MASK_REG registers only when it is really -needed, when processing PCI_EXP_RTCTL_PMEIE and PCI_EXP_RTSTA_PME bits. - -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 20 +++++++++++--------- - 1 file changed, 11 insertions(+), 9 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -925,19 +925,21 @@ advk_pci_bridge_emul_pcie_conf_write(str - advk_pcie_wait_for_retrain(pcie); - break; - -- case PCI_EXP_RTCTL: { -+ case PCI_EXP_RTCTL: - /* Only mask/unmask PME interrupt */ -- u32 val = advk_readl(pcie, PCIE_ISR0_MASK_REG) & -- ~PCIE_MSG_PM_PME_MASK; -- if ((new & PCI_EXP_RTCTL_PMEIE) == 0) -- val |= PCIE_MSG_PM_PME_MASK; -- advk_writel(pcie, val, PCIE_ISR0_MASK_REG); -+ if (mask & PCI_EXP_RTCTL_PMEIE) { -+ u32 val = advk_readl(pcie, PCIE_ISR0_MASK_REG); -+ if (new & PCI_EXP_RTCTL_PMEIE) -+ val &= ~PCIE_MSG_PM_PME_MASK; -+ else -+ val |= PCIE_MSG_PM_PME_MASK; -+ advk_writel(pcie, val, PCIE_ISR0_MASK_REG); -+ } - break; -- } - - case PCI_EXP_RTSTA: -- new = (new & PCI_EXP_RTSTA_PME) >> 9; -- advk_writel(pcie, new, PCIE_ISR0_REG); -+ if (new & PCI_EXP_RTSTA_PME) -+ advk_writel(pcie, PCIE_MSG_PM_PME_MASK, PCIE_ISR0_REG); - break; - - case PCI_EXP_DEVCTL: diff --git a/target/linux/generic/pending-5.15/850-0016-PCI-aardvark-Add-support-for-PME-interrupts.patch b/target/linux/generic/pending-5.15/850-0016-PCI-aardvark-Add-support-for-PME-interrupts.patch deleted file mode 100644 index 3b4d21ec48..0000000000 --- a/target/linux/generic/pending-5.15/850-0016-PCI-aardvark-Add-support-for-PME-interrupts.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 7acd8ef92e8789e10b5d736d73cea3b625087f26 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Wed, 8 Dec 2021 06:07:44 +0100 -Subject: [PATCH] PCI: aardvark: Add support for PME interrupts -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Currently enabling PCI_EXP_RTSTA_PME bit in PCI_EXP_RTCTL register does -nothing. This is because PCIe PME driver expects to receive PCIe interrupt -defined in PCI_EXP_FLAGS_IRQ register, but aardvark hardware does not -trigger PCIe INTx/MSI interrupt for PME event, rather it triggers custom -aardvark interrupt which this driver is not processing yet. - -Fix this issue by handling PME interrupt in advk_pcie_handle_int() and -chaining it to PCIe interrupt 0 with generic_handle_domain_irq() (since -aardvark sets PCI_EXP_FLAGS_IRQ to zero). With this change PCIe PME driver -finally starts receiving PME interrupt. - -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1480,6 +1480,18 @@ static void advk_pcie_handle_int(struct - isr1_mask = advk_readl(pcie, PCIE_ISR1_MASK_REG); - isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK); - -+ /* Process PME interrupt */ -+ if (isr0_status & PCIE_MSG_PM_PME_MASK) { -+ /* -+ * Do not clear PME interrupt bit in ISR0, it is cleared by IRQ -+ * receiver by writing to the PCI_EXP_RTSTA register of emulated -+ * root bridge. Aardvark HW returns zero for PCI_EXP_FLAGS_IRQ, -+ * so use PCIe interrupt 0. -+ */ -+ if (generic_handle_domain_irq(pcie->irq_domain, 0) == -EINVAL) -+ dev_err_ratelimited(&pcie->pdev->dev, "unhandled PME IRQ\n"); -+ } -+ - /* Process ERR interrupt */ - if (isr0_status & PCIE_ISR0_ERR_MASK) { - advk_writel(pcie, PCIE_ISR0_ERR_MASK, PCIE_ISR0_REG); diff --git a/target/linux/generic/pending-5.15/850-0017-PCI-aardvark-Fix-support-for-PME-requester-on-emulat.patch b/target/linux/generic/pending-5.15/850-0017-PCI-aardvark-Fix-support-for-PME-requester-on-emulat.patch deleted file mode 100644 index 2ef9afea5b..0000000000 --- a/target/linux/generic/pending-5.15/850-0017-PCI-aardvark-Fix-support-for-PME-requester-on-emulat.patch +++ /dev/null @@ -1,170 +0,0 @@ -From 68727b545332327b4c2f9c0f8d006be8970e7832 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Fri, 19 Feb 2021 14:22:22 +0100 -Subject: [PATCH] PCI: aardvark: Fix support for PME requester on emulated - bridge -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Enable aardvark PME interrupt unconditionally by unmasking it and read PME -requester ID to emulated bridge config space immediately after receiving -interrupt. - -PME requester ID is stored in the PCIE_MSG_LOG_REG register, which contains -the last inbound message. So when new inbound message is received by HW -(including non-PM), the content in PCIE_MSG_LOG_REG register is replaced by -a new value. - -PCIe specification mandates that subsequent PMEs are kept pending until the -PME Status Register bit is cleared by software by writing a 1b. - -Support for masking/unmasking PME interrupt on emulated bridge via -PCI_EXP_RTCTL_PMEIE bit is now implemented only in emulated bridge config -space, to ensure that we do not miss any aardvark PME interrupt. - -Reading of PCI_EXP_RTCAP and PCI_EXP_RTSTA registers is simplified as final -value is now always stored into emulated bridge config space by the -interrupt handler, so there is no need to implement support for these -registers in read_pcie callback. - -Clearing of W1C bit PCI_EXP_RTSTA_PME is now also simplified as it is done -by pci-bridge-emul.c code for emulated bridge config space. So there is no -need to implement support for clearing this bit in write_pcie callback. - -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 94 +++++++++++++++------------ - 1 file changed, 52 insertions(+), 42 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -590,6 +590,11 @@ static void advk_pcie_setup_hw(struct ad - reg &= ~PCIE_ISR0_MSI_INT_PENDING; - advk_writel(pcie, reg, PCIE_ISR0_MASK_REG); - -+ /* Unmask PME interrupt for processing of PME requester */ -+ reg = advk_readl(pcie, PCIE_ISR0_MASK_REG); -+ reg &= ~PCIE_MSG_PM_PME_MASK; -+ advk_writel(pcie, reg, PCIE_ISR0_MASK_REG); -+ - /* Enable summary interrupt for GIC SPI source */ - reg = PCIE_IRQ_ALL_MASK & (~PCIE_IRQ_ENABLE_INTS_MASK); - advk_writel(pcie, reg, HOST_CTRL_INT_MASK_REG); -@@ -856,22 +861,11 @@ advk_pci_bridge_emul_pcie_conf_read(stru - *value = PCI_EXP_SLTSTA_PDS << 16; - return PCI_BRIDGE_EMUL_HANDLED; - -- case PCI_EXP_RTCTL: { -- u32 val = advk_readl(pcie, PCIE_ISR0_MASK_REG); -- *value = (val & PCIE_MSG_PM_PME_MASK) ? 0 : PCI_EXP_RTCTL_PMEIE; -- *value |= le16_to_cpu(bridge->pcie_conf.rootctl) & PCI_EXP_RTCTL_CRSSVE; -- *value |= PCI_EXP_RTCAP_CRSVIS << 16; -- return PCI_BRIDGE_EMUL_HANDLED; -- } -- -- case PCI_EXP_RTSTA: { -- u32 isr0 = advk_readl(pcie, PCIE_ISR0_REG); -- u32 msglog = advk_readl(pcie, PCIE_MSG_LOG_REG); -- *value = msglog >> 16; -- if (isr0 & PCIE_MSG_PM_PME_MASK) -- *value |= PCI_EXP_RTSTA_PME; -- return PCI_BRIDGE_EMUL_HANDLED; -- } -+ /* -+ * PCI_EXP_RTCTL and PCI_EXP_RTSTA are also supported, but do not need -+ * to be handled here, because their values are stored in emulated -+ * config space buffer, and we read them from there when needed. -+ */ - - case PCI_EXP_LNKCAP: { - u32 val = advk_readl(pcie, PCIE_CORE_PCIEXP_CAP + reg); -@@ -925,22 +919,19 @@ advk_pci_bridge_emul_pcie_conf_write(str - advk_pcie_wait_for_retrain(pcie); - break; - -- case PCI_EXP_RTCTL: -- /* Only mask/unmask PME interrupt */ -- if (mask & PCI_EXP_RTCTL_PMEIE) { -- u32 val = advk_readl(pcie, PCIE_ISR0_MASK_REG); -- if (new & PCI_EXP_RTCTL_PMEIE) -- val &= ~PCIE_MSG_PM_PME_MASK; -- else -- val |= PCIE_MSG_PM_PME_MASK; -- advk_writel(pcie, val, PCIE_ISR0_MASK_REG); -- } -+ case PCI_EXP_RTCTL: { -+ u16 rootctl = le16_to_cpu(bridge->pcie_conf.rootctl); -+ /* Only emulation of PMEIE and CRSSVE bits is provided */ -+ rootctl &= PCI_EXP_RTCTL_PMEIE | PCI_EXP_RTCTL_CRSSVE; -+ bridge->pcie_conf.rootctl = cpu_to_le16(rootctl); - break; -+ } - -- case PCI_EXP_RTSTA: -- if (new & PCI_EXP_RTSTA_PME) -- advk_writel(pcie, PCIE_MSG_PM_PME_MASK, PCIE_ISR0_REG); -- break; -+ /* -+ * PCI_EXP_RTSTA is also supported, but does not need to be handled -+ * here, because its value is stored in emulated config space buffer, -+ * and we write it there when needed. -+ */ - - case PCI_EXP_DEVCTL: - case PCI_EXP_DEVCTL2: -@@ -1445,6 +1436,32 @@ static void advk_pcie_remove_irq_domain( - irq_domain_remove(pcie->irq_domain); - } - -+static void advk_pcie_handle_pme(struct advk_pcie *pcie) -+{ -+ u32 requester = advk_readl(pcie, PCIE_MSG_LOG_REG) >> 16; -+ -+ advk_writel(pcie, PCIE_MSG_PM_PME_MASK, PCIE_ISR0_REG); -+ -+ /* -+ * PCIE_MSG_LOG_REG contains the last inbound message, so store -+ * the requester ID only when PME was not asserted yet. -+ * Also do not trigger PME interrupt when PME is still asserted. -+ */ -+ if (!(le32_to_cpu(pcie->bridge.pcie_conf.rootsta) & PCI_EXP_RTSTA_PME)) { -+ pcie->bridge.pcie_conf.rootsta = cpu_to_le32(requester | PCI_EXP_RTSTA_PME); -+ -+ /* -+ * Trigger PME interrupt only if PMEIE bit in Root Control is set. -+ * Aardvark HW returns zero for PCI_EXP_FLAGS_IRQ, so use PCIe interrupt 0. -+ */ -+ if (!(le16_to_cpu(pcie->bridge.pcie_conf.rootctl) & PCI_EXP_RTCTL_PMEIE)) -+ return; -+ -+ if (generic_handle_domain_irq(pcie->irq_domain, 0) == -EINVAL) -+ dev_err_ratelimited(&pcie->pdev->dev, "unhandled PME IRQ\n"); -+ } -+} -+ - static void advk_pcie_handle_msi(struct advk_pcie *pcie) - { - u32 msi_val, msi_mask, msi_status, msi_idx; -@@ -1480,17 +1497,9 @@ static void advk_pcie_handle_int(struct - isr1_mask = advk_readl(pcie, PCIE_ISR1_MASK_REG); - isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK); - -- /* Process PME interrupt */ -- if (isr0_status & PCIE_MSG_PM_PME_MASK) { -- /* -- * Do not clear PME interrupt bit in ISR0, it is cleared by IRQ -- * receiver by writing to the PCI_EXP_RTSTA register of emulated -- * root bridge. Aardvark HW returns zero for PCI_EXP_FLAGS_IRQ, -- * so use PCIe interrupt 0. -- */ -- if (generic_handle_domain_irq(pcie->irq_domain, 0) == -EINVAL) -- dev_err_ratelimited(&pcie->pdev->dev, "unhandled PME IRQ\n"); -- } -+ /* Process PME interrupt as the first one to do not miss PME requester id */ -+ if (isr0_status & PCIE_MSG_PM_PME_MASK) -+ advk_pcie_handle_pme(pcie); - - /* Process ERR interrupt */ - if (isr0_status & PCIE_ISR0_ERR_MASK) { diff --git a/target/linux/generic/pending-5.15/850-0018-PCI-aardvark-Use-separate-INTA-interrupt-for-emulate.patch b/target/linux/generic/pending-5.15/850-0018-PCI-aardvark-Use-separate-INTA-interrupt-for-emulate.patch deleted file mode 100644 index d30b9bf639..0000000000 --- a/target/linux/generic/pending-5.15/850-0018-PCI-aardvark-Use-separate-INTA-interrupt-for-emulate.patch +++ /dev/null @@ -1,161 +0,0 @@ -From db305233136f5aa2444a8287a279384e8458c458 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Thu, 1 Apr 2021 20:12:48 +0200 -Subject: [PATCH] PCI: aardvark: Use separate INTA interrupt for emulated root - bridge -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Emulated root bridge currently provides only one Legacy INTA interrupt -which is used for reporting PCIe PME and ERR events and handled by kernel -PCIe PME and AER drivers. - -Aardvark HW reports these PME and ERR events separately, so there is no -need to mix real INTA interrupt and emulated INTA interrupt for PCIe PME -and AER drivers. - -Register a new advk-RP (as in Root Port) irq chip and a new irq domain -for emulated root bridge and use this new separate irq domain for -providing INTA interrupt from emulated root bridge for PME and ERR events. - -The real INTA interrupt from real devices is now separate. - -A custom map_irq callback function on PCI host bridge structure is used to -allocate IRQ mapping for emulated root bridge from new irq domain. Original -callback of_irq_parse_and_map_pci() is used for all other devices as before. - -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 69 ++++++++++++++++++++++++++- - 1 file changed, 67 insertions(+), 2 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -273,6 +273,7 @@ struct advk_pcie { - } wins[OB_WIN_COUNT]; - u8 wins_count; - int irq; -+ struct irq_domain *rp_irq_domain; - struct irq_domain *irq_domain; - struct irq_chip irq_chip; - raw_spinlock_t irq_lock; -@@ -1436,6 +1437,44 @@ static void advk_pcie_remove_irq_domain( - irq_domain_remove(pcie->irq_domain); - } - -+static struct irq_chip advk_rp_irq_chip = { -+ .name = "advk-RP", -+}; -+ -+static int advk_pcie_rp_irq_map(struct irq_domain *h, -+ unsigned int virq, irq_hw_number_t hwirq) -+{ -+ struct advk_pcie *pcie = h->host_data; -+ -+ irq_set_chip_and_handler(virq, &advk_rp_irq_chip, handle_simple_irq); -+ irq_set_chip_data(virq, pcie); -+ -+ return 0; -+} -+ -+static const struct irq_domain_ops advk_pcie_rp_irq_domain_ops = { -+ .map = advk_pcie_rp_irq_map, -+ .xlate = irq_domain_xlate_onecell, -+}; -+ -+static int advk_pcie_init_rp_irq_domain(struct advk_pcie *pcie) -+{ -+ pcie->rp_irq_domain = irq_domain_add_linear(NULL, 1, -+ &advk_pcie_rp_irq_domain_ops, -+ pcie); -+ if (!pcie->rp_irq_domain) { -+ dev_err(&pcie->pdev->dev, "Failed to add Root Port IRQ domain\n"); -+ return -ENOMEM; -+ } -+ -+ return 0; -+} -+ -+static void advk_pcie_remove_rp_irq_domain(struct advk_pcie *pcie) -+{ -+ irq_domain_remove(pcie->rp_irq_domain); -+} -+ - static void advk_pcie_handle_pme(struct advk_pcie *pcie) - { - u32 requester = advk_readl(pcie, PCIE_MSG_LOG_REG) >> 16; -@@ -1457,7 +1496,7 @@ static void advk_pcie_handle_pme(struct - if (!(le16_to_cpu(pcie->bridge.pcie_conf.rootctl) & PCI_EXP_RTCTL_PMEIE)) - return; - -- if (generic_handle_domain_irq(pcie->irq_domain, 0) == -EINVAL) -+ if (generic_handle_domain_irq(pcie->rp_irq_domain, 0) == -EINVAL) - dev_err_ratelimited(&pcie->pdev->dev, "unhandled PME IRQ\n"); - } - } -@@ -1509,7 +1548,7 @@ static void advk_pcie_handle_int(struct - * Aardvark HW returns zero for PCI_ERR_ROOT_AER_IRQ, so use - * PCIe interrupt 0 - */ -- if (generic_handle_domain_irq(pcie->irq_domain, 0) == -EINVAL) -+ if (generic_handle_domain_irq(pcie->rp_irq_domain, 0) == -EINVAL) - dev_err_ratelimited(&pcie->pdev->dev, "unhandled ERR IRQ\n"); - } - -@@ -1553,6 +1592,21 @@ static void advk_pcie_irq_handler(struct - chained_irq_exit(chip, desc); - } - -+static int advk_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) -+{ -+ struct advk_pcie *pcie = dev->bus->sysdata; -+ -+ /* -+ * Emulated root bridge has its own emulated irq chip and irq domain. -+ * Argument pin is the INTx pin (1=INTA, 2=INTB, 3=INTC, 4=INTD) and -+ * hwirq for irq_create_mapping() is indexed from zero. -+ */ -+ if (pci_is_root_bus(dev->bus)) -+ return irq_create_mapping(pcie->rp_irq_domain, pin - 1); -+ else -+ return of_irq_parse_and_map_pci(dev, slot, pin); -+} -+ - static void __maybe_unused advk_pcie_disable_phy(struct advk_pcie *pcie) - { - phy_power_off(pcie->phy); -@@ -1754,14 +1808,24 @@ static int advk_pcie_probe(struct platfo - return ret; - } - -+ ret = advk_pcie_init_rp_irq_domain(pcie); -+ if (ret) { -+ dev_err(dev, "Failed to initialize irq\n"); -+ advk_pcie_remove_msi_irq_domain(pcie); -+ advk_pcie_remove_irq_domain(pcie); -+ return ret; -+ } -+ - irq_set_chained_handler_and_data(pcie->irq, advk_pcie_irq_handler, pcie); - - bridge->sysdata = pcie; - bridge->ops = &advk_pcie_ops; -+ bridge->map_irq = advk_pcie_map_irq; - - ret = pci_host_probe(bridge); - if (ret < 0) { - irq_set_chained_handler_and_data(pcie->irq, NULL, NULL); -+ advk_pcie_remove_rp_irq_domain(pcie); - advk_pcie_remove_msi_irq_domain(pcie); - advk_pcie_remove_irq_domain(pcie); - return ret; -@@ -1813,6 +1877,7 @@ static int advk_pcie_remove(struct platf - irq_set_chained_handler_and_data(pcie->irq, NULL, NULL); - - /* Remove IRQ domains */ -+ advk_pcie_remove_rp_irq_domain(pcie); - advk_pcie_remove_msi_irq_domain(pcie); - advk_pcie_remove_irq_domain(pcie); - diff --git a/target/linux/generic/pending-5.15/850-0019-PCI-aardvark-Remove-irq_mask_ack-callback-for-INTx-i.patch b/target/linux/generic/pending-5.15/850-0019-PCI-aardvark-Remove-irq_mask_ack-callback-for-INTx-i.patch deleted file mode 100644 index 49422f4c68..0000000000 --- a/target/linux/generic/pending-5.15/850-0019-PCI-aardvark-Remove-irq_mask_ack-callback-for-INTx-i.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 8c9eef96e24f34ff8b62b230700416b822691a37 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Thu, 1 Apr 2021 14:24:12 +0200 -Subject: [PATCH] PCI: aardvark: Remove irq_mask_ack callback for INTx - interrupts -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Callback for irq_mask_ack is the same as for irq_mask. As there is no -special handling for irq_ack, there is no need to define irq_mask_ack too. - -Signed-off-by: Pali Rohár -Acked-by: Marc Zyngier -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 1 - - 1 file changed, 1 deletion(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1415,7 +1415,6 @@ static int advk_pcie_init_irq_domain(str - } - - irq_chip->irq_mask = advk_pcie_irq_mask; -- irq_chip->irq_mask_ack = advk_pcie_irq_mask; - irq_chip->irq_unmask = advk_pcie_irq_unmask; - - pcie->irq_domain = diff --git a/target/linux/generic/pending-5.15/850-0020-PCI-aardvark-Don-t-mask-irq-when-mapping.patch b/target/linux/generic/pending-5.15/850-0020-PCI-aardvark-Don-t-mask-irq-when-mapping.patch deleted file mode 100644 index 803441293d..0000000000 --- a/target/linux/generic/pending-5.15/850-0020-PCI-aardvark-Don-t-mask-irq-when-mapping.patch +++ /dev/null @@ -1,27 +0,0 @@ -From dc01fca5a9d9c09ce9a3fb2bc2e7715c37ff3bd9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Thu, 1 Apr 2021 14:30:06 +0200 -Subject: [PATCH] PCI: aardvark: Don't mask irq when mapping -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -By default, all Legacy INTx interrupts are masked, so there is no need to -mask this interrupt during irq_map callback. - -Signed-off-by: Pali Rohár -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 1 - - 1 file changed, 1 deletion(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1332,7 +1332,6 @@ static int advk_pcie_irq_map(struct irq_ - { - struct advk_pcie *pcie = h->host_data; - -- advk_pcie_irq_mask(irq_get_irq_data(virq)); - irq_set_status_flags(virq, IRQ_LEVEL); - irq_set_chip_and_handler(virq, &pcie->irq_chip, - handle_level_irq); diff --git a/target/linux/generic/pending-5.15/850-0021-PCI-aardvark-Drop-__maybe_unused-from-advk_pcie_disa.patch b/target/linux/generic/pending-5.15/850-0021-PCI-aardvark-Drop-__maybe_unused-from-advk_pcie_disa.patch deleted file mode 100644 index 434ecf8c80..0000000000 --- a/target/linux/generic/pending-5.15/850-0021-PCI-aardvark-Drop-__maybe_unused-from-advk_pcie_disa.patch +++ /dev/null @@ -1,28 +0,0 @@ -From a511c99262ce19ee06908d27212b39ec4c5aeb17 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Beh=C3=BAn?= -Date: Wed, 8 Dec 2021 04:40:29 +0100 -Subject: [PATCH] PCI: aardvark: Drop __maybe_unused from - advk_pcie_disable_phy() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This function is now always used in driver remove method, drop the -__maybe_unused attribute. - -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -1605,7 +1605,7 @@ static int advk_pcie_map_irq(const struc - return of_irq_parse_and_map_pci(dev, slot, pin); - } - --static void __maybe_unused advk_pcie_disable_phy(struct advk_pcie *pcie) -+static void advk_pcie_disable_phy(struct advk_pcie *pcie) - { - phy_power_off(pcie->phy); - phy_exit(pcie->phy); diff --git a/target/linux/generic/pending-5.15/850-0022-PCI-aardvark-Update-comment-about-link-going-down-af.patch b/target/linux/generic/pending-5.15/850-0022-PCI-aardvark-Update-comment-about-link-going-down-af.patch deleted file mode 100644 index fc3efac283..0000000000 --- a/target/linux/generic/pending-5.15/850-0022-PCI-aardvark-Update-comment-about-link-going-down-af.patch +++ /dev/null @@ -1,35 +0,0 @@ -From bafda858364003a70b9cda84282f9761587f8033 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Beh=C3=BAn?= -Date: Mon, 10 Jan 2022 00:47:38 +0100 -Subject: [PATCH] PCI: aardvark: Update comment about link going down after - link-up -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Update the comment about what happens when link goes down after we have -checked for link-up. If a PIO request is done while link-down, we have -a serious problem. - -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -998,8 +998,12 @@ static bool advk_pcie_valid_device(struc - return false; - - /* -- * If the link goes down after we check for link-up, nothing bad -- * happens but the config access times out. -+ * If the link goes down after we check for link-up, we have a problem: -+ * if a PIO request is executed while link-down, the whole controller -+ * gets stuck in a non-functional state, and even after link comes up -+ * again, PIO requests won't work anymore, and a reset of the whole PCIe -+ * controller is needed. Therefore we need to prevent sending PIO -+ * requests while the link is down. - */ - if (!pci_is_root_bus(bus) && !advk_pcie_link_up(pcie)) - return false; diff --git a/target/linux/generic/pending-5.15/851-0006-Revert-PCI-aardvark-Fix-initialization-with-old-Marv.patch b/target/linux/generic/pending-5.15/851-0006-Revert-PCI-aardvark-Fix-initialization-with-old-Marv.patch index 8fee4d49de..4d3bc62bad 100644 --- a/target/linux/generic/pending-5.15/851-0006-Revert-PCI-aardvark-Fix-initialization-with-old-Marv.patch +++ b/target/linux/generic/pending-5.15/851-0006-Revert-PCI-aardvark-Fix-initialization-with-old-Marv.patch @@ -23,7 +23,7 @@ Acked-by: Miquel Raynal --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c -@@ -1622,9 +1622,7 @@ static int advk_pcie_enable_phy(struct a +@@ -1633,9 +1633,7 @@ static int advk_pcie_enable_phy(struct a } ret = phy_power_on(pcie->phy); diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index f486faae00..470dba7350 100644 --- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -79,6 +79,7 @@ case "$FIRMWARE" in /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \ /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") ;; + cellc,rtl30vw |\ openmesh,a42 |\ openmesh,a62 |\ plasmacloud,pa1200 |\ @@ -158,6 +159,7 @@ case "$FIRMWARE" in /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \ /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") ;; + cellc,rtl30vw |\ openmesh,a42 |\ openmesh,a62 |\ plasmacloud,pa1200 |\ diff --git a/target/linux/ipq40xx/base-files/etc/uci-defaults/04_led_migration b/target/linux/ipq40xx/base-files/etc/uci-defaults/04_led_migration index ef4d3d037c..e8818a41ed 100644 --- a/target/linux/ipq40xx/base-files/etc/uci-defaults/04_led_migration +++ b/target/linux/ipq40xx/base-files/etc/uci-defaults/04_led_migration @@ -3,6 +3,9 @@ board=$(board_name) case "$board" in +asus,map-ac2200) + migrate_leds ':chan=-' + ;; engenius,emr3500) migrate_leds "emr3500:=" ;; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzbox-7530.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzbox-7530.dts index dcd336e712..27c7d071dc 100644 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzbox-7530.dts +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzbox-7530.dts @@ -173,6 +173,9 @@ status = "okay"; nand@0 { + /delete-property/ nand-ecc-strength; + /delete-property/ nand-ecc-step-size; + partitions { compatible = "fixed-partitions"; #address-cells = <1>; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts index 3b9078bc08..433048dd4b 100644 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts @@ -4,6 +4,7 @@ #include #include #include +#include / { model = "ASUS Lyra MAP-AC2200"; @@ -252,69 +253,96 @@ /* 9-channel RGB LED controller */ compatible = "national,lp5523"; reg = <0x32>; - clock-mode = [01]; + clock-mode = /bits/ 8 <1>; + #address-cells = <1>; + #size-cells = <0>; - led_blue0: blue0 { - chan-name = "blue0"; - label = "blue:chan0"; - led-cur = [fa]; - max-cur = [ff]; + /* + * There is only one single extremely bright RGB-LED. + * The RGB-color channels are running in parallel to + * increase the current delivery capabilities beyond + * what a single PWM-output of the controller can do. + */ + + led_blue0: led@0 { + chan-name = "blue-0"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <0>; + color = ; + function-enumerator = <0>; }; - blue1 { - chan-name = "blue1"; - label = "blue:chan1"; - led-cur = [fa]; - max-cur = [ff]; + led@1 { + chan-name = "blue-1"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <1>; + color = ; + function-enumerator = <1>; }; - blue2 { - chan-name = "blue2"; - label = "blue:chan2"; - led-cur = [fa]; - max-cur = [ff]; + led@2 { + chan-name = "blue-2"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <2>; + color = ; + function-enumerator = <2>; }; - led_green0: green0 { - chan-name = "green0"; - label = "green:chan0"; - led-cur = [fa]; - max-cur = [ff]; + led_green0: led@3 { + chan-name = "green-0"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <3>; + color = ; + function-enumerator = <0>; }; - green1 { - chan-name = "green1"; - label = "green:chan1"; - led-cur = [fa]; - max-cur = [ff]; + led@4 { + chan-name = "green-1"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <4>; + color = ; + function-enumerator = <1>; }; - green2 { - chan-name = "green2"; - label = "green:chan2"; - led-cur = [fa]; - max-cur = [ff]; + led@5 { + chan-name = "green-2"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <5>; + color = ; + function-enumerator = <2>; }; - led_red0: red0 { - chan-name = "red0"; - label = "red:chan0"; - led-cur = [fa]; - max-cur = [ff]; + led_red0: led@6 { + chan-name = "red-0"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <6>; + color = ; + function-enumerator = <0>; }; - red1 { - chan-name = "red1"; - label = "red:chan1"; - led-cur = [fa]; - max-cur = [ff]; + led@7 { + chan-name = "red-1"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <7>; + color = ; + function-enumerator = <1>; }; - red2 { - chan-name = "red2"; - label = "red:chan2"; - led-cur = [fa]; - max-cur = [ff]; + led@8 { + chan-name = "red-2"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <8>; + color = ; + function-enumerator = <2>; }; }; }; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-rtl30vw.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-rtl30vw.dts index dcbe95c526..0caa0255d0 100644 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-rtl30vw.dts +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-rtl30vw.dts @@ -267,17 +267,6 @@ label = "0:ART"; reg = <0x170000 0x10000>; read-only; - compatible = "nvmem-cells"; - #address-cells = <1>; - #size-cells = <1>; - - precal_art_1000: precal@1000 { - reg = <0x1000 0x2f20>; - }; - - precal_art_5000: precal@5000 { - reg = <0x5000 0x2f20>; - }; }; partition@180000 { @@ -387,14 +376,10 @@ &wifi0 { status = "okay"; - nvmem-cell-names = "pre-calibration"; - nvmem-cells = <&precal_art_1000>; qcom,ath10k-calibration-variant = "cellc,rtl30vw"; }; &wifi1 { status = "okay"; - nvmem-cell-names = "pre-calibration"; - nvmem-cells = <&precal_art_5000>; qcom,ath10k-calibration-variant = "cellc,rtl30vw"; }; diff --git a/target/linux/ipq40xx/image/chromium.mk b/target/linux/ipq40xx/image/chromium.mk index 2c8457dcfb..567a5e7ca5 100644 --- a/target/linux/ipq40xx/image/chromium.mk +++ b/target/linux/ipq40xx/image/chromium.mk @@ -30,7 +30,7 @@ define Device/google_wifi KERNEL_NAME := zImage IMAGES += factory.bin IMAGE/factory.bin := cros-gpt | append-kernel-part | append-rootfs - DEVICE_PACKAGES := ipq-wifi-google_wifi partx-utils mkf2fs e2fsprogs \ + DEVICE_PACKAGES := partx-utils mkf2fs e2fsprogs \ kmod-fs-ext4 kmod-fs-f2fs kmod-google-firmware endef TARGET_DEVICES += google_wifi diff --git a/target/linux/ipq40xx/image/generic.mk b/target/linux/ipq40xx/image/generic.mk index 5eac14e0ae..b730a0e184 100644 --- a/target/linux/ipq40xx/image/generic.mk +++ b/target/linux/ipq40xx/image/generic.mk @@ -130,7 +130,6 @@ define Device/8dev_habanero-dvk DEVICE_MODEL := Habanero DVK IMAGE_SIZE := 30976k SOC := qcom-ipq4019 - DEVICE_PACKAGES := ipq-wifi-8dev_habanero-dvk IMAGE/sysupgrade.bin := append-kernel | pad-to 64k | append-rootfs | pad-rootfs | check-size | append-metadata endef TARGET_DEVICES += 8dev_habanero-dvk @@ -169,7 +168,6 @@ define Device/aruba_glenmorangie $(call Device/FitImageLzma) DEVICE_VENDOR := Aruba SOC := qcom-ipq4029 - DEVICE_PACKAGES := ipq-wifi-aruba_ap-303 endef define Device/aruba_ap-303 @@ -225,7 +223,7 @@ define Device/asus_rt-ac42u # Rather, this device is a/k/a RT-AC42U # But we'll go with what the vendor firmware has... UIMAGE_NAME:=$(shell echo -e '\03\01\01\01RT-AC82U') - DEVICE_PACKAGES := ath10k-firmware-qca9984-ct ipq-wifi-asus_rt-ac42u kmod-usb-ledtrig-usbport + DEVICE_PACKAGES := ath10k-firmware-qca9984-ct kmod-usb-ledtrig-usbport endef TARGET_DEVICES += asus_rt-ac42u @@ -283,7 +281,7 @@ define Device/avm_fritzrepeater-1200 DEVICE_VENDOR := AVM DEVICE_MODEL := FRITZ!Repeater 1200 SOC := qcom-ipq4019 - DEVICE_PACKAGES := fritz-caldata fritz-tffs-nand ipq-wifi-avm_fritzrepeater-1200 + DEVICE_PACKAGES := fritz-caldata fritz-tffs-nand endef TARGET_DEVICES += avm_fritzrepeater-1200 @@ -302,7 +300,7 @@ define Device/buffalo_wtr-m2133hp DEVICE_VENDOR := Buffalo DEVICE_MODEL := WTR-M2133HP SOC := qcom-ipq4019 - DEVICE_PACKAGES := ath10k-firmware-qca9984-ct ipq-wifi-buffalo_wtr-m2133hp + DEVICE_PACKAGES := ath10k-firmware-qca9984-ct BLOCKSIZE := 128k PAGESIZE := 2048 endef @@ -326,7 +324,7 @@ define Device/cellc_rtl30vw IMAGE_SIZE := 57344k BLOCKSIZE := 128k PAGESIZE := 2048 - DEVICE_PACKAGES := kmod-usb-net-qmi-wwan kmod-usb-serial-option uqmi ipq-wifi-cellc_rtl30vw + DEVICE_PACKAGES := kmod-usb-net-qmi-wwan kmod-usb-serial-option uqmi endef TARGET_DEVICES += cellc_rtl30vw @@ -412,7 +410,6 @@ define Device/dlink_dap-2610 # append-rootfs must start on an erase block boundary. IMAGE/factory.bin := append-kernel | pad-offset 6144k 160 | append-rootfs | wrgg-image | check-size IMAGE/sysupgrade.bin := append-kernel | wrgg-image | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size | append-metadata - DEVICE_PACKAGES := ipq-wifi-dlink_dap2610 endef TARGET_DEVICES += dlink_dap-2610 @@ -464,7 +461,7 @@ define Device/engenius_eap2200 SOC := qcom-ipq4019 BLOCKSIZE := 128k PAGESIZE := 2048 - DEVICE_PACKAGES := ath10k-firmware-qca9888-ct ipq-wifi-engenius_eap2200 -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers + DEVICE_PACKAGES := ath10k-firmware-qca9888-ct -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers endef TARGET_DEVICES += engenius_eap2200 @@ -478,7 +475,6 @@ define Device/engenius_emd1 IMAGES += factory.bin IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata IMAGE/factory.bin := qsdk-ipq-factory-nor | check-size - DEVICE_PACKAGES := ipq-wifi-engenius_emd1 endef TARGET_DEVICES += engenius_emd1 @@ -493,7 +489,6 @@ define Device/engenius_emr3500 IMAGES += factory.bin IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata IMAGE/factory.bin := qsdk-ipq-factory-nor | check-size - DEVICE_PACKAGES := ipq-wifi-engenius_emr3500 DEFAULT := n endef TARGET_DEVICES += engenius_emr3500 @@ -534,8 +529,7 @@ define Device/ezviz_cs-w3-wd1200g-eup SOC := qcom-ipq4018 IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | \ append-metadata - DEVICE_PACKAGES := -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers \ - ipq-wifi-ezviz_cs-w3-wd1200g-eup + DEVICE_PACKAGES := -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers DEVICE_COMPAT_VERSION := 2.0 DEVICE_COMPAT_MESSAGE := uboot's bootcmd has to be updated (see wiki). \ Upgrade via sysupgrade mechanism is not possible. @@ -664,7 +658,7 @@ define Device/linksys_mr8300 UBINIZE_OPTS := -E 5 # EOD marks to "hide" factory sig at EOF IMAGES += factory.bin IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=MR8300 - DEVICE_PACKAGES := ath10k-firmware-qca9888-ct ipq-wifi-linksys_mr8300-v0 kmod-usb-ledtrig-usbport + DEVICE_PACKAGES := ath10k-firmware-qca9888-ct kmod-usb-ledtrig-usbport endef TARGET_DEVICES += linksys_mr8300 @@ -673,7 +667,7 @@ define Device/luma_wrtq-329acn DEVICE_VENDOR := Luma Home DEVICE_MODEL := WRTQ-329ACN SOC := qcom-ipq4018 - DEVICE_PACKAGES := ipq-wifi-luma_wrtq-329acn kmod-ath3k kmod-eeprom-at24 kmod-i2c-gpio + DEVICE_PACKAGES := kmod-ath3k kmod-eeprom-at24 kmod-i2c-gpio IMAGE_SIZE := 76632k BLOCKSIZE := 128k PAGESIZE := 2048 @@ -699,7 +693,7 @@ define Device/mobipromo_cm520-79f SOC := qcom-ipq4019 BLOCKSIZE := 128k PAGESIZE := 2048 - DEVICE_PACKAGES := ipq-wifi-mobipromo_cm520-79f kmod-usb-ledtrig-usbport + DEVICE_PACKAGES := kmod-usb-ledtrig-usbport endef TARGET_DEVICES += mobipromo_cm520-79f @@ -869,7 +863,6 @@ define Device/plasmacloud_pa1200 IMAGES += factory.bin IMAGE/factory.bin := append-rootfs | pad-rootfs | openmesh-image ce_type=PA1200 IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata - DEVICE_PACKAGES := ipq-wifi-plasmacloud_pa1200 endef TARGET_DEVICES += plasmacloud_pa1200 @@ -885,7 +878,7 @@ define Device/plasmacloud_pa2200 IMAGES += factory.bin IMAGE/factory.bin := append-rootfs | pad-rootfs | openmesh-image ce_type=PA2200 IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata - DEVICE_PACKAGES := ath10k-firmware-qca9888-ct ipq-wifi-plasmacloud_pa2200 + DEVICE_PACKAGES := ath10k-firmware-qca9888-ct endef TARGET_DEVICES += plasmacloud_pa2200 @@ -1003,7 +996,7 @@ define Device/zte_mf286d BLOCKSIZE := 128k PAGESIZE := 2048 KERNEL_IN_UBI := 1 - DEVICE_PACKAGES := ipq-wifi-zte_mf286d kmod-usb-net-qmi-wwan kmod-usb-serial-option uqmi + DEVICE_PACKAGES := kmod-usb-net-qmi-wwan kmod-usb-serial-option uqmi endef TARGET_DEVICES += zte_mf286d diff --git a/target/linux/ipq40xx/patches-5.10/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch b/target/linux/ipq40xx/patches-5.10/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch index fd46d54916..63514c2444 100644 --- a/target/linux/ipq40xx/patches-5.10/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch +++ b/target/linux/ipq40xx/patches-5.10/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch @@ -13,7 +13,7 @@ Signed-off-by: Robert Marko --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c -@@ -2191,7 +2191,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat +@@ -2192,7 +2192,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat static const struct sdhci_ops sdhci_msm_ops = { .reset = sdhci_msm_reset, diff --git a/target/linux/ipq40xx/patches-5.15/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch b/target/linux/ipq40xx/patches-5.15/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch index 843291e871..23fef71b2b 100644 --- a/target/linux/ipq40xx/patches-5.15/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch +++ b/target/linux/ipq40xx/patches-5.15/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch @@ -13,7 +13,7 @@ Signed-off-by: Robert Marko --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c -@@ -2445,7 +2445,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat +@@ -2446,7 +2446,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat static const struct sdhci_ops sdhci_msm_ops = { .reset = sdhci_msm_reset, diff --git a/target/linux/ipq806x/image/generic.mk b/target/linux/ipq806x/image/generic.mk index 469f2c654e..58eb8b2517 100644 --- a/target/linux/ipq806x/image/generic.mk +++ b/target/linux/ipq806x/image/generic.mk @@ -247,7 +247,7 @@ define Device/nec_wg2600hp3 DEVICE_PACKAGES := -kmod-ata-ahci -kmod-ata-ahci-platform \ -kmod-usb-ohci -kmod-usb2 -kmod-usb-ledtrig-usbport \ -kmod-usb-phy-qcom-dwc3 -kmod-usb3 -kmod-usb-dwc3-qcom \ - ath10k-firmware-qca9984-ct ipq-wifi-nec_wg2600hp3 + ath10k-firmware-qca9984-ct endef TARGET_DEVICES += nec_wg2600hp3 diff --git a/target/linux/lantiq/patches-5.10/0705-v5.13-net-dsa-lantiq-allow-to-use-all-GPHYs-on-xRX300-and-.patch b/target/linux/lantiq/patches-5.10/0705-v5.13-net-dsa-lantiq-allow-to-use-all-GPHYs-on-xRX300-and-.patch index c0911ef874..7d68c59199 100644 --- a/target/linux/lantiq/patches-5.10/0705-v5.13-net-dsa-lantiq-allow-to-use-all-GPHYs-on-xRX300-and-.patch +++ b/target/linux/lantiq/patches-5.10/0705-v5.13-net-dsa-lantiq-allow-to-use-all-GPHYs-on-xRX300-and-.patch @@ -192,7 +192,7 @@ Signed-off-by: David S. Miller } static void gswip_port_set_link(struct gswip_priv *priv, int port, bool link) -@@ -1639,6 +1687,9 @@ static void gswip_phylink_mac_config(str +@@ -1636,6 +1684,9 @@ static void gswip_phylink_mac_config(str case PHY_INTERFACE_MODE_RGMII_TXID: miicfg |= GSWIP_MII_CFG_MODE_RGMII; break; @@ -202,7 +202,7 @@ Signed-off-by: David S. Miller default: dev_err(ds->dev, "Unsupported interface: %d\n", state->interface); -@@ -1765,7 +1816,7 @@ static int gswip_get_sset_count(struct d +@@ -1762,7 +1813,7 @@ static int gswip_get_sset_count(struct d return ARRAY_SIZE(gswip_rmon_cnt); } @@ -211,7 +211,7 @@ Signed-off-by: David S. Miller .get_tag_protocol = gswip_get_tag_protocol, .setup = gswip_setup, .port_enable = gswip_port_enable, -@@ -1781,7 +1832,31 @@ static const struct dsa_switch_ops gswip +@@ -1778,7 +1829,31 @@ static const struct dsa_switch_ops gswip .port_fdb_add = gswip_port_fdb_add, .port_fdb_del = gswip_port_fdb_del, .port_fdb_dump = gswip_port_fdb_dump, @@ -244,7 +244,7 @@ Signed-off-by: David S. Miller .phylink_mac_config = gswip_phylink_mac_config, .phylink_mac_link_down = gswip_phylink_mac_link_down, .phylink_mac_link_up = gswip_phylink_mac_link_up, -@@ -2043,7 +2118,7 @@ static int gswip_probe(struct platform_d +@@ -2040,7 +2115,7 @@ static int gswip_probe(struct platform_d priv->ds->dev = dev; priv->ds->num_ports = priv->hw_info->max_ports; priv->ds->priv = priv; @@ -253,7 +253,7 @@ Signed-off-by: David S. Miller priv->dev = dev; version = gswip_switch_r(priv, GSWIP_VERSION); -@@ -2127,10 +2202,19 @@ static int gswip_remove(struct platform_ +@@ -2124,10 +2199,19 @@ static int gswip_remove(struct platform_ static const struct gswip_hw_info gswip_xrx200 = { .max_ports = 7, .cpu_port = 6, diff --git a/target/linux/lantiq/patches-5.10/0706-v5.18-net-lantiq-enable-jumbo-frames-on-GSWIP.patch b/target/linux/lantiq/patches-5.10/0706-v5.18-net-lantiq-enable-jumbo-frames-on-GSWIP.patch index 9d96883910..49a19bebee 100644 --- a/target/linux/lantiq/patches-5.10/0706-v5.18-net-lantiq-enable-jumbo-frames-on-GSWIP.patch +++ b/target/linux/lantiq/patches-5.10/0706-v5.18-net-lantiq-enable-jumbo-frames-on-GSWIP.patch @@ -107,7 +107,7 @@ Signed-off-by: Jakub Kicinski static void gswip_xrx200_phylink_validate(struct dsa_switch *ds, int port, unsigned long *supported, struct phylink_link_state *state) -@@ -1832,6 +1873,8 @@ static const struct dsa_switch_ops gswip +@@ -1829,6 +1870,8 @@ static const struct dsa_switch_ops gswip .port_fdb_add = gswip_port_fdb_add, .port_fdb_del = gswip_port_fdb_del, .port_fdb_dump = gswip_port_fdb_dump, @@ -116,7 +116,7 @@ Signed-off-by: Jakub Kicinski .phylink_validate = gswip_xrx200_phylink_validate, .phylink_mac_config = gswip_phylink_mac_config, .phylink_mac_link_down = gswip_phylink_mac_link_down, -@@ -1856,6 +1899,8 @@ static const struct dsa_switch_ops gswip +@@ -1853,6 +1896,8 @@ static const struct dsa_switch_ops gswip .port_fdb_add = gswip_port_fdb_add, .port_fdb_del = gswip_port_fdb_del, .port_fdb_dump = gswip_port_fdb_dump, diff --git a/target/linux/lantiq/xway/config-5.10 b/target/linux/lantiq/xway/config-5.10 index 20e7ac3479..8ff706fea9 100644 --- a/target/linux/lantiq/xway/config-5.10 +++ b/target/linux/lantiq/xway/config-5.10 @@ -35,10 +35,7 @@ CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_RTL8306_PHY=y CONFIG_RTL8366RB_PHY=y -CONFIG_RTL8366S_PHY=y CONFIG_RTL8366_SMI=y -CONFIG_RTL8367B_PHY=y -CONFIG_RTL8367_PHY=y CONFIG_SGL_ALLOC=y CONFIG_SOC_TYPE_XWAY=y CONFIG_SOC_XWAY=y diff --git a/target/linux/mpc85xx/config-5.10 b/target/linux/mpc85xx/config-5.10 index 022fc75dac..7ce8051dc5 100644 --- a/target/linux/mpc85xx/config-5.10 +++ b/target/linux/mpc85xx/config-5.10 @@ -58,7 +58,11 @@ CONFIG_E500=y # CONFIG_E5500_CPU is not set # CONFIG_E6500_CPU is not set CONFIG_EARLY_PRINTK=y +CONFIG_EDAC=y CONFIG_EDAC_ATOMIC_SCRUB=y +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_LEGACY_SYSFS=y +CONFIG_EDAC_MPC85XX=y CONFIG_EDAC_SUPPORT=y CONFIG_ENABLE_MUST_CHECK=y CONFIG_ETHERNET_PACKET_MANGLE=y diff --git a/target/linux/ramips/dts/mt7621_sercomm_na502s.dts b/target/linux/ramips/dts/mt7621_sercomm_na502s.dts new file mode 100644 index 0000000000..dc71dbd050 --- /dev/null +++ b/target/linux/ramips/dts/mt7621_sercomm_na502s.dts @@ -0,0 +1,362 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#include "mt7621.dtsi" + +#include +#include + +/ { + compatible = "sercomm,na502s", "mediatek,mt7621-soc"; + model = "SERCOMM NA502S"; + + aliases { + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + leds { + compatible = "gpio-leds"; + + led_power: power { + label = "green:power"; + gpios = <&gpio 0 GPIO_ACTIVE_LOW>; + }; + + wifi { + label = "green:wifi"; + gpios = <&gpio_expander1 0 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + + zwave { + label = "green:zwave"; + gpios = <&gpio_expander1 1 GPIO_ACTIVE_LOW>; + }; + + zigbee { + label = "green:zigbee"; + gpios = <&gpio_expander1 2 GPIO_ACTIVE_LOW>; + }; + + bluetooth { + label = "green:bluetooth"; + gpios = <&gpio_expander1 3 GPIO_ACTIVE_LOW>; + }; + + rf433 { + label = "green:rf433"; + gpios = <&gpio_expander1 4 GPIO_ACTIVE_LOW>; + }; + + service { + label = "green:service"; + gpios = <&gpio_expander1 5 GPIO_ACTIVE_LOW>; + }; + + 3g { + label = "green:3g"; + gpios = <&gpio_expander1 6 GPIO_ACTIVE_LOW>; + }; + + voice { + label = "green:voice"; + gpios = <&gpio_expander1 7 GPIO_ACTIVE_LOW>; + }; + }; + + keys { + compatible = "gpio-keys"; + + battery_tamper { + label = "battery_tamper"; + gpios = <&gpio 16 GPIO_ACTIVE_HIGH>; + linux,code = ; + }; + + reset { + label = "reset"; + gpios = <&gpio 28 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + voice { + label = "voice"; + gpios = <&gpio 29 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + select { + label = "select"; + gpios = <&gpio 31 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + sync { + label = "sync"; + gpios = <&gpio 32 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + gpio-export { + compatible = "gpio-export"; + + zwave_reset { + gpio-export,name = "zwave_reset"; + gpio-export,output = <1>; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + }; + + lprf_reset { + gpio-export,name = "lprf_reset"; + gpio-export,output = <1>; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + }; + + charger_detect { + gpio-export,name = "charger_detect"; + gpios = <&gpio 15 GPIO_ACTIVE_HIGH>; + }; + + buzzer { + gpio-export,name = "buzzer"; + gpio-export,output = <0>; + gpios = <&gpio 17 GPIO_ACTIVE_HIGH>; + }; + + 3g_hw_shunt_en { + gpio-export,name = "3g_hw_shunt_en"; + gpio-export,output = <0>; + gpios = <&gpio 22 GPIO_ACTIVE_LOW>; + }; + + 3g_sw_on_off { + gpio-export,name = "3g_sw_on_off"; + gpio-export,output = <1>; + gpios = <&gpio 23 GPIO_ACTIVE_LOW>; + }; + + 3g_wake_up { + gpio-export,name = "3g_wake_up"; + gpio-export,output = <0>; + gpios = <&gpio 30 GPIO_ACTIVE_LOW>; + }; + + 3g_hw_reset { + gpio-export,name = "3g_hw_reset"; + gpio-export,output = <1>; + gpios = <&gpio 33 GPIO_ACTIVE_LOW>; + }; + + zigbee_reset { + gpio-export,name = "zigbee_reset"; + gpio-export,output = <1>; + gpios = <&gpio_expander0 0 GPIO_ACTIVE_LOW>; + }; + + zigbee_boot { + gpio-export,name = "zigbee_boot"; + gpio-export,output = <1>; + gpios = <&gpio_expander0 1 GPIO_ACTIVE_LOW>; + }; + + 2g_sw0 { + gpio-export,name = "2g_sw0"; + gpio-export,output = <1>; + gpios = <&gpio_expander0 2 GPIO_ACTIVE_LOW>; + }; + + 2g_sw1 { + gpio-export,name = "2g_sw1"; + gpio-export,output = <1>; + gpios = <&gpio_expander0 3 GPIO_ACTIVE_LOW>; + }; + + fm2018_pwd { + gpio-export,name = "fm2018_pwd"; + gpio-export,output = <1>; + gpios = <&gpio_expander0 4 GPIO_ACTIVE_LOW>; + }; + + fm2018_reset { + gpio-export,name = "fm2018_reset"; + gpio-export,output = <1>; + gpios = <&gpio_expander0 5 GPIO_ACTIVE_LOW>; + }; + + batt_teset { + gpio-export,name = "batt_test"; + gpio-export,output = <1>; + gpios = <&gpio_expander0 6 GPIO_ACTIVE_LOW>; + }; + + mfi_reset { + gpio-export,name = "mfi_reset"; + gpio-export,output = <1>; + gpios = <&gpio_expander0 7 GPIO_ACTIVE_LOW>; + }; + }; +}; + +ðernet { + pinctrl-0 = <&mdio_pins>, <&rgmii1_pins>; +}; + +&gmac0 { + nvmem-cells = <&macaddr_factory_e000>; + nvmem-cell-names = "mac-address"; +}; + +&nand { + status = "okay"; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x80000>; + read-only; + }; + + partition@80000 { + label = "config"; + reg = <0x80000 0x80000>; + read-only; + }; + + factory: partition@100000 { + label = "factory"; + reg = <0x100000 0x40000>; + }; + + partition@140000 { + label = "kernel1"; + reg = <0x140000 0x1400000>; + }; + + partition@1540000 { + label = "kernel"; + reg = <0x1540000 0x400000>; + }; + + partition@1940000 { + label = "ubi"; + reg = <0x1940000 0x1000000>; + }; + + partition@2940000 { + label = "user_storage"; + reg = <0x2940000 0x100000>; + }; + + partition@2a40000 { + label = "data"; + reg = <0x2a40000 0x1000000>; + }; + + partition@3a40000 { + label = "storage"; + reg = <0x3a40000 0x3200000>; + }; + + partition@6c40000 { + label = "backup"; + reg = <0x6c40000 0x1340000>; + }; + }; +}; + +&pcie { + status = "okay"; +}; + +&pcie0 { + wifi@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&factory 0x8000>; + nvmem-cells = <&macaddr_factory_e000>; + nvmem-cell-names = "mac-address"; + mac-address-increment = <1>; + ieee80211-freq-limit = <5000000 6000000>; + }; +}; + +&pcie1 { + wifi@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0 0 0 0 0>; + mediatek,mtd-eeprom = <&factory 0x0000>; + nvmem-cells = <&macaddr_factory_e000>; + nvmem-cell-names = "mac-address"; + mac-address-increment = <2>; + ieee80211-freq-limit = <2400000 2500000>; + }; +}; + +&state_default { + gpio { + groups = "jtag", "rgmii2"; + function = "gpio"; + }; +}; + +&i2c { + status = "okay"; + + /* This GPIO expander is fake. The kernel fails to initialize the + first expander, but succeeds on the second (real) one */ + gpio_expander2: gpio-expander2@22 { + #gpio-cells = <2>; + #interrupt-cells = <2>; + compatible = "semtech,sx1502q"; + reg = <0x22>; + + gpio-controller; + }; + + gpio_expander0: gpio-expander0@20 { + #gpio-cells = <2>; + #interrupt-cells = <2>; + compatible = "semtech,sx1502q"; + reg = <0x20>; + + gpio-controller; + }; + + gpio_expander1: gpio-expander1@21 { + #gpio-cells = <2>; + #interrupt-cells = <2>; + compatible = "semtech,sx1502q"; + reg = <0x21>; + + gpio-controller; + }; +}; + +&switch0 { + ports { + port@4 { + status = "okay"; + label = "lan"; + }; + }; +}; + +&uartlite2 { + status = "okay"; +}; + +&factory { + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_factory_e000: macaddr@e000 { + reg = <0xe000 0x6>; + }; +}; diff --git a/target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dtsi b/target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dtsi index d8d4245447..dbba801425 100644 --- a/target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dtsi +++ b/target/linux/ramips/dts/mt7628an_asus_rt-ac1200.dtsi @@ -111,6 +111,7 @@ &esw { mediatek,portmap = <0x3e>; + mediatek,led_source = <4>; }; &wmac { diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index c2ae7e660c..59dffc78ff 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -1462,6 +1462,7 @@ TARGET_DEVICES += renkforce_ws-wn530hp3-a define Device/samknows_whitebox-v8 $(Device/dsa-migration) + $(Device/uimage-lzma-loader) IMAGE_SIZE := 16064k DEVICE_VENDOR := SamKnows DEVICE_MODEL := Whitebox 8 @@ -1485,6 +1486,21 @@ define Device/sercomm_na502 endef TARGET_DEVICES += sercomm_na502 +define Device/sercomm_na502s + $(Device/uimage-lzma-loader) + BLOCKSIZE := 128k + PAGESIZE := 2048 + IMAGE_SIZE := 20971520 + IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata + UBINIZE_OPTS := -E 5 + KERNEL_SIZE := 4096k + DEVICE_VENDOR := SERCOMM + DEVICE_MODEL := NA502S + DEVICE_PACKAGES := kmod-mt76x2 kmod-mt7603 kmod-usb3 kmod-usb-serial \ + kmod-usb-serial-xr_usb_serial_common +endef +TARGET_DEVICES += sercomm_na502s + define Device/storylink_sap-g3200u3 $(Device/dsa-migration) IMAGE_SIZE := 7872k diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network index 688c39940d..a8d8b8eef2 100644 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network @@ -13,6 +13,7 @@ ramips_setup_interfaces() mikrotik,routerboard-m11g|\ netgear,ex6150|\ sercomm,na502|\ + sercomm,na502s|\ thunder,timecloud|\ tplink,re350-v1|\ tplink,re500-v1|\ diff --git a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh index c818c7e7cc..407611a6a2 100755 --- a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh @@ -84,6 +84,7 @@ platform_do_upgrade() { netis,wf2881|\ raisecom,msg1500-x-00|\ sercomm,na502|\ + sercomm,na502s|\ xiaomi,mi-router-3g|\ xiaomi,mi-router-3-pro|\ xiaomi,mi-router-4|\ diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c index 2e3ab4a805..f54fdd298a 100644 --- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c +++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c @@ -817,7 +817,8 @@ static void rtl93xx_phylink_mac_config(struct dsa_switch *ds, int port, __func__, phy_modes(state->interface)); return; } - rtl9300_sds_rst(sds_num, sds_mode); + if (state->interface == PHY_INTERFACE_MODE_10GBASER) + rtl9300_serdes_setup(sds_num, state->interface); } reg = sw_r32(priv->r->mac_force_mode_ctrl(port)); diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl83xx.h b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl83xx.h index 0bb11f9b8b..107016469c 100644 --- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl83xx.h +++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl83xx.h @@ -121,6 +121,7 @@ irqreturn_t rtl839x_switch_irq(int irq, void *dev_id); void rtl930x_vlan_profile_dump(int index); int rtl9300_sds_power(int mac, int val); void rtl9300_sds_rst(int sds_num, u32 mode); +int rtl9300_serdes_setup(int sds_num, phy_interface_t phy_mode); void rtl930x_print_matrix(void); /* RTL931x-specific */ diff --git a/target/linux/realtek/patches-5.10/710-net-phy-sfp-re-probe-modules-on-DEV_UP-event.patch b/target/linux/realtek/patches-5.10/710-net-phy-sfp-re-probe-modules-on-DEV_UP-event.patch index 591cdbf159..248abee39b 100644 --- a/target/linux/realtek/patches-5.10/710-net-phy-sfp-re-probe-modules-on-DEV_UP-event.patch +++ b/target/linux/realtek/patches-5.10/710-net-phy-sfp-re-probe-modules-on-DEV_UP-event.patch @@ -10,7 +10,7 @@ Signed-off-by: Antoine Tenart --- a/drivers/net/phy/sfp.c +++ b/drivers/net/phy/sfp.c -@@ -1959,6 +1959,13 @@ static void sfp_sm_module(struct sfp *sf +@@ -1966,6 +1966,13 @@ static void sfp_sm_module(struct sfp *sf return; } diff --git a/target/linux/realtek/patches-5.10/712-net-phy-sfp-add-support-for-SMBus.patch b/target/linux/realtek/patches-5.10/712-net-phy-sfp-add-support-for-SMBus.patch index 8eef1885ab..c4bacc0ea9 100644 --- a/target/linux/realtek/patches-5.10/712-net-phy-sfp-add-support-for-SMBus.patch +++ b/target/linux/realtek/patches-5.10/712-net-phy-sfp-add-support-for-SMBus.patch @@ -10,7 +10,7 @@ Signed-off-by: Antoine Tenart --- a/drivers/net/phy/sfp.c +++ b/drivers/net/phy/sfp.c -@@ -412,32 +412,72 @@ static int sfp_i2c_write(struct sfp *sfp +@@ -413,32 +413,72 @@ static int sfp_i2c_write(struct sfp *sfp return ret == ARRAY_SIZE(msgs) ? len : 0; }