From 4779b731d4ecbb351f1cff918a4a1a2c069fb3b1 Mon Sep 17 00:00:00 2001 From: Rany Hany Date: Mon, 10 Feb 2025 10:25:41 +0000 Subject: [PATCH 01/13] hostapd: update to version 2025-02-09 Manually refreshed: 010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch 110-mbedtls-TLS-crypto-option-initial-port.patch 140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch 301-mesh-noscan.patch 601-ucode_support.patch 780-Implement-APuP-Access-Point-Micro-Peering.patch Dropped upstreamed: 330-nl80211_fix_set_freq.patch 804-hostapd-Fix-clearing-up-settings-for-color-switch.patch Automatically rebased all other patches. Tested-by: Rany Hany # ramips_mt7621/asus_rt-ax53u, mt7622/xiaomi_redmi-router-ax6s Tested-by: Andre Heider # filogic/openwrt_one, ramips_mt7621/netgear_wac124 Tested-by: Agustin Lorenzo # qualcommax/ipq807x (AX3600) Tested-by: Daniel Pawlik # BPi-R4 with mt7996 Signed-off-by: Rany Hany --- package/network/services/hostapd/Makefile | 16 +-- ...hannels-to-be-selected-if-dfs-is-ena.patch | 35 ++++-- ...erministic-channel-on-channel-switch.patch | 2 +- ...ix-sta-add-after-previous-connection.patch | 4 +- .../patches/050-Fix-OpenWrt-13156.patch | 8 +- ...-extra-ies-only-if-allowed-by-driver.patch | 6 +- ...ull-pointer-check-in-hostapd_free_ha.patch | 2 +- ...edtls-TLS-crypto-option-initial-port.patch | 47 ++++--- .../patches/120-mbedtls-fips186_2_prf.patch | 4 +- ...efile-make-run-tests-with-CONFIG_TLS.patch | 115 +++++++++--------- ...hecks-encountered-during-tests-hwsim.patch | 2 +- ...tapd-update-cfs0-and-cfs1-for-160MHz.patch | 4 +- .../patches/180-fix_owe_ssid_update.patch | 4 +- .../hostapd/patches/200-multicall.patch | 42 +++---- .../patches/201-lto-jobserver-support.patch | 6 +- ..._AP-functions-dependant-on-CONFIG_AP.patch | 4 +- ...ion-of-WLAN_SUPP_RATES_MAX-to-defs.h.patch | 2 +- .../patches/220-indicate-features.patch | 4 +- .../patches/252-disable_ctrl_iface_mib.patch | 34 +++--- .../services/hostapd/patches/300-noscan.patch | 4 +- .../hostapd/patches/301-mesh-noscan.patch | 18 +-- .../patches/310-rescan_immediately.patch | 2 +- .../patches/330-nl80211_fix_set_freq.patch | 16 --- .../341-mesh-ctrl-iface-channel-switch.patch | 2 +- .../patches/350-nl80211_del_beacon_bss.patch | 2 +- .../patches/410-limit_debug_messages.patch | 16 +-- ...dd-new-config-params-to-be-used-with.patch | 10 +- .../patches/463-add-mcast_rate-to-11s.patch | 8 +- .../patches/464-fix-mesh-obss-check.patch | 2 +- .../hostapd/patches/600-ubus_support.patch | 56 ++++----- .../hostapd/patches/601-ucode_support.patch | 110 ++++++++--------- .../patches/701-reload_config_inline.patch | 8 +- .../hostapd/patches/710-vlan_no_bridge.patch | 2 +- .../patches/711-wds_bridge_force.patch | 2 +- .../patches/720-iface_max_num_sta.patch | 10 +- .../hostapd/patches/730-ft_iface.patch | 4 +- .../hostapd/patches/740-snoop_iface.patch | 8 +- .../hostapd/patches/760-dynamic_own_ip.patch | 8 +- .../hostapd/patches/761-shared_das_port.patch | 2 +- ...probe-requests-with-invalid-DSSS-par.patch | 2 +- .../hostapd/patches/763-radius-wispr.patch | 6 +- .../hostapd/patches/770-radius_server.patch | 2 +- ...ment-APuP-Access-Point-Micro-Peering.patch | 35 +++--- .../803-hostapd-fix-80211be-build.patch | 4 +- ...learing-up-settings-for-color-switch.patch | 28 ----- 45 files changed, 340 insertions(+), 368 deletions(-) delete mode 100644 package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch delete mode 100644 package/network/services/hostapd/patches/804-hostapd-Fix-clearing-up-settings-for-color-switch.patch diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile index 58c18a9088..e2a0a1e70a 100644 --- a/package/network/services/hostapd/Makefile +++ b/package/network/services/hostapd/Makefile @@ -5,13 +5,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hostapd -PKG_RELEASE:=3 +PKG_RELEASE:=1 PKG_SOURCE_URL:=https://w1.fi/hostap.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2024-09-15 -PKG_SOURCE_VERSION:=5ace39b0a4cdbe18ddbc4e18f80ee3876233c20b -PKG_MIRROR_HASH:=43187d1ddd923970ef3821a0fe267880c2483f6f1a5acd0dd2d7906661ab1372 +PKG_SOURCE_DATE:=2025-02-09 +PKG_SOURCE_VERSION:=c8c7d56a3d3c4ca79bcbb6a87f372ce4bc2e9f11 +PKG_MIRROR_HASH:=fafdef456a545bd1de0cbd7b68b520e5be7e70ad1aab7ef051b1fc5ccaaa012a PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=BSD-3-Clause @@ -158,7 +158,7 @@ define Package/hostapd/Default CATEGORY:=Network SUBMENU:=WirelessAPD TITLE:=IEEE 802.1x Authenticator - URL:=http://hostap.epitest.fi/ + URL:=https://w1.fi/hostapd/ DEPENDS:=$(DRV_DEPENDS) +hostapd-common $(CORE_DEPENDS) EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-r$(PKG_RELEASE)) USERID:=network=101:network=101 @@ -267,7 +267,7 @@ define Package/wpad/Default DEPENDS:=$(DRV_DEPENDS) +hostapd-common $(CORE_DEPENDS) EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-r$(PKG_RELEASE)) USERID:=network=101:network=101 - URL:=http://hostap.epitest.fi/ + URL:=https://w1.fi/ PROVIDES:=hostapd wpa-supplicant CONFLICTS:=$(HOSTAPD_PROVIDERS) $(SUPPLICANT_PROVIDERS) HOSTAPD_PROVIDERS+=$(1) @@ -408,7 +408,7 @@ define Package/wpa-supplicant/Default CATEGORY:=Network SUBMENU:=WirelessAPD TITLE:=WPA Supplicant - URL:=http://hostap.epitest.fi/wpa_supplicant/ + URL:=https://w1.fi/wpa_supplicant/ DEPENDS:=$(DRV_DEPENDS) +hostapd-common $(CORE_DEPENDS) EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-r$(PKG_RELEASE)) USERID:=network=101:network=101 @@ -506,7 +506,7 @@ define Package/hostapd-utils CATEGORY:=Network SUBMENU:=WirelessAPD TITLE:=IEEE 802.1x Authenticator (utils) - URL:=http://hostap.epitest.fi/ + URL:=https://w1.fi/hostapd/ DEPENDS:=@$(subst $(space),||,$(foreach pkg,$(HOSTAPD_PROVIDERS),PACKAGE_$(pkg))) VARIANT:=* endef diff --git a/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch b/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch index d20a6d76d4..9eef846f82 100644 --- a/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch +++ b/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch @@ -14,7 +14,7 @@ Signed-off-by: Peter Oh --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -2831,7 +2831,7 @@ static int drv_supports_vht(struct wpa_s +@@ -2972,7 +2972,7 @@ static int drv_supports_vht(struct wpa_s } @@ -23,7 +23,7 @@ Signed-off-by: Peter Oh { int i; -@@ -2840,7 +2840,10 @@ static bool ibss_mesh_is_80mhz_avail(int +@@ -2981,7 +2981,10 @@ static bool ibss_mesh_is_80mhz_avail(int chan = hw_get_channel_chan(mode, i, NULL); if (!chan || @@ -35,7 +35,7 @@ Signed-off-by: Peter Oh return false; } -@@ -2967,7 +2970,7 @@ static void ibss_mesh_select_40mhz(struc +@@ -3108,7 +3111,7 @@ static void ibss_mesh_select_40mhz(struc const struct wpa_ssid *ssid, struct hostapd_hw_modes *mode, struct hostapd_freq_params *freq, @@ -44,7 +44,7 @@ Signed-off-by: Peter Oh int chan_idx; struct hostapd_channel_data *pri_chan = NULL, *sec_chan = NULL; int i, res; -@@ -2991,8 +2994,11 @@ static void ibss_mesh_select_40mhz(struc +@@ -3132,8 +3135,11 @@ static void ibss_mesh_select_40mhz(struc return; /* Check primary channel flags */ @@ -57,7 +57,7 @@ Signed-off-by: Peter Oh #ifdef CONFIG_HT_OVERRIDES if (ssid->disable_ht40) -@@ -3018,8 +3024,11 @@ static void ibss_mesh_select_40mhz(struc +@@ -3159,8 +3165,11 @@ static void ibss_mesh_select_40mhz(struc return; /* Check secondary channel flags */ @@ -70,7 +70,7 @@ Signed-off-by: Peter Oh if (ht40 == -1) { if (!(pri_chan->flag & HOSTAPD_CHAN_HT40MINUS)) -@@ -3074,7 +3083,7 @@ static bool ibss_mesh_select_80_160mhz(s +@@ -3236,7 +3245,7 @@ static bool ibss_mesh_select_80_160mhz(s const struct wpa_ssid *ssid, struct hostapd_hw_modes *mode, struct hostapd_freq_params *freq, @@ -79,7 +79,7 @@ Signed-off-by: Peter Oh static const int bw80[] = { 5180, 5260, 5500, 5580, 5660, 5745, 5825, 5955, 6035, 6115, 6195, 6275, 6355, 6435, -@@ -3119,7 +3128,7 @@ static bool ibss_mesh_select_80_160mhz(s +@@ -3286,7 +3295,7 @@ static bool ibss_mesh_select_80_160mhz(s goto skip_80mhz; /* Use 40 MHz if channel not usable */ @@ -88,7 +88,7 @@ Signed-off-by: Peter Oh goto skip_80mhz; chwidth = CONF_OPER_CHWIDTH_80MHZ; -@@ -3133,7 +3142,7 @@ static bool ibss_mesh_select_80_160mhz(s +@@ -3300,7 +3309,7 @@ static bool ibss_mesh_select_80_160mhz(s if ((mode->he_capab[ieee80211_mode].phy_cap[ HE_PHYCAP_CHANNEL_WIDTH_SET_IDX] & HE_PHYCAP_CHANNEL_WIDTH_SET_160MHZ_IN_5G) && is_6ghz && @@ -97,7 +97,20 @@ Signed-off-by: Peter Oh for (j = 0; j < ARRAY_SIZE(bw160); j++) { if (freq->freq == bw160[j]) { chwidth = CONF_OPER_CHWIDTH_160MHZ; -@@ -3161,10 +3170,12 @@ static bool ibss_mesh_select_80_160mhz(s +@@ -3317,9 +3326,9 @@ static bool ibss_mesh_select_80_160mhz(s + if ((mode->eht_capab[ieee80211_mode].phy_cap[ + EHT_PHYCAP_320MHZ_IN_6GHZ_SUPPORT_IDX] & + EHT_PHYCAP_320MHZ_IN_6GHZ_SUPPORT_MASK) && is_6ghz && +- ibss_mesh_is_80mhz_avail(channel + 16, mode) && +- ibss_mesh_is_80mhz_avail(channel + 32, mode) && +- ibss_mesh_is_80mhz_avail(channel + 48, mode)) { ++ ibss_mesh_is_80mhz_avail(channel + 16, mode, dfs_enabled) && ++ ibss_mesh_is_80mhz_avail(channel + 32, mode, dfs_enabled) && ++ ibss_mesh_is_80mhz_avail(channel + 48, mode, dfs_enabled)) { + for (j = 0; j < ARRAY_SIZE(bw320); j += 2) { + if (freq->freq >= bw320[j] && + freq->freq <= bw320[j + 1]) { +@@ -3348,10 +3357,12 @@ static bool ibss_mesh_select_80_160mhz(s if (!chan) continue; @@ -113,7 +126,7 @@ Signed-off-by: Peter Oh /* Found a suitable second segment for 80+80 */ chwidth = CONF_OPER_CHWIDTH_80P80MHZ; -@@ -3219,6 +3230,7 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3406,6 +3417,7 @@ void ibss_mesh_setup_freq(struct wpa_sup int obss_scan = 1; u8 channel; bool is_6ghz, is_24ghz; @@ -121,7 +134,7 @@ Signed-off-by: Peter Oh freq->freq = ssid->frequency; -@@ -3261,9 +3273,9 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3448,9 +3460,9 @@ void ibss_mesh_setup_freq(struct wpa_sup freq->channel = channel; /* Setup higher BW only for 5 GHz */ if (mode->mode == HOSTAPD_MODE_IEEE80211A) { diff --git a/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch b/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch index bfc30e2842..9d925cd8c6 100644 --- a/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch +++ b/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch @@ -68,7 +68,7 @@ Signed-off-by: Markus Theil chan_idx, num_available_chandefs); --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -11465,6 +11465,10 @@ static int nl80211_switch_channel(void * +@@ -11656,6 +11656,10 @@ static int nl80211_switch_channel(void * if (ret) goto error; diff --git a/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch b/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch index b5551f50e6..a5aa688efb 100644 --- a/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch +++ b/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch @@ -4,7 +4,7 @@ Subject: [PATCH] fix adding back stations after a missed deauth/disassoc --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c -@@ -4784,6 +4784,13 @@ static int add_associated_sta(struct hos +@@ -4894,6 +4894,13 @@ static int add_associated_sta(struct hos * drivers to accept the STA parameter configuration. Since this is * after a new FT-over-DS exchange, a new TK has been derived, so key * reinstallation is not a concern for this case. @@ -18,7 +18,7 @@ Subject: [PATCH] fix adding back stations after a missed deauth/disassoc */ wpa_printf(MSG_DEBUG, "Add associated STA " MACSTR " (added_unassoc=%d auth_alg=%u ft_over_ds=%u reassoc=%d authorized=%d ft_tk=%d fils_tk=%d)", -@@ -4797,7 +4804,8 @@ static int add_associated_sta(struct hos +@@ -4907,7 +4914,8 @@ static int add_associated_sta(struct hos (!(sta->flags & WLAN_STA_AUTHORIZED) || (reassoc && sta->ft_over_ds && sta->auth_alg == WLAN_AUTH_FT) || (!wpa_auth_sta_ft_tk_already_set(sta->wpa_sm) && diff --git a/package/network/services/hostapd/patches/050-Fix-OpenWrt-13156.patch b/package/network/services/hostapd/patches/050-Fix-OpenWrt-13156.patch index 2492e480fb..584dd3b2f8 100644 --- a/package/network/services/hostapd/patches/050-Fix-OpenWrt-13156.patch +++ b/package/network/services/hostapd/patches/050-Fix-OpenWrt-13156.patch @@ -20,7 +20,7 @@ Signed-off-by: Stijn Tintel --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -4055,6 +4055,8 @@ int hostapd_remove_iface(struct hapd_int +@@ -4075,6 +4075,8 @@ int hostapd_remove_iface(struct hapd_int void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta, int reassoc) { @@ -29,7 +29,7 @@ Signed-off-by: Stijn Tintel if (hapd->tkip_countermeasures) { hostapd_drv_sta_deauth(hapd, sta->addr, WLAN_REASON_MICHAEL_MIC_FAILURE); -@@ -4062,10 +4064,16 @@ void hostapd_new_assoc_sta(struct hostap +@@ -4082,10 +4084,16 @@ void hostapd_new_assoc_sta(struct hostap } #ifdef CONFIG_IEEE80211BE @@ -48,10 +48,10 @@ Signed-off-by: Stijn Tintel + hostapd_prune_associations(hapd, sta->addr, mld_assoc_link_id); ap_sta_clear_disconnect_timeouts(hapd, sta); - sta->post_csa_sa_query = 0; + ap_sta_clear_assoc_timeout(hapd, sta); --- a/src/ap/sta_info.c +++ b/src/ap/sta_info.c -@@ -1485,9 +1485,6 @@ bool ap_sta_set_authorized_flag(struct h +@@ -1552,9 +1552,6 @@ bool ap_sta_set_authorized_flag(struct h mld_assoc_link_id = -2; } #endif /* CONFIG_IEEE80211BE */ diff --git a/package/network/services/hostapd/patches/051-nl80211-add-extra-ies-only-if-allowed-by-driver.patch b/package/network/services/hostapd/patches/051-nl80211-add-extra-ies-only-if-allowed-by-driver.patch index 46ee6234be..cba6614633 100644 --- a/package/network/services/hostapd/patches/051-nl80211-add-extra-ies-only-if-allowed-by-driver.patch +++ b/package/network/services/hostapd/patches/051-nl80211-add-extra-ies-only-if-allowed-by-driver.patch @@ -26,7 +26,7 @@ Signed-off-by: David Bauer --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -2390,6 +2390,9 @@ struct wpa_driver_capa { +@@ -2411,6 +2411,9 @@ struct wpa_driver_capa { /** Maximum number of iterations in a single scan plan */ u32 max_sched_scan_plan_iterations; @@ -38,7 +38,7 @@ Signed-off-by: David Bauer --- a/src/drivers/driver_nl80211_capa.c +++ b/src/drivers/driver_nl80211_capa.c -@@ -976,6 +976,10 @@ static int wiphy_info_handler(struct nl_ +@@ -984,6 +984,10 @@ static int wiphy_info_handler(struct nl_ nla_get_u32(tb[NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS]); } @@ -59,4 +59,4 @@ Signed-off-by: David Bauer + if (params->extra_ies && drv->capa.max_scan_ie_len >= params->extra_ies_len) { wpa_hexdump(MSG_MSGDUMP, "nl80211: Scan extra IEs", params->extra_ies, params->extra_ies_len); - if (nla_put(msg, NL80211_ATTR_IE, params->extra_ies_len, + if (params->extra_ies_len > drv->capa.max_probe_req_ie_len) diff --git a/package/network/services/hostapd/patches/052-AP-add-missing-null-pointer-check-in-hostapd_free_ha.patch b/package/network/services/hostapd/patches/052-AP-add-missing-null-pointer-check-in-hostapd_free_ha.patch index 01a0fba600..350411be54 100644 --- a/package/network/services/hostapd/patches/052-AP-add-missing-null-pointer-check-in-hostapd_free_ha.patch +++ b/package/network/services/hostapd/patches/052-AP-add-missing-null-pointer-check-in-hostapd_free_ha.patch @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -485,7 +485,7 @@ void hostapd_free_hapd_data(struct hosta +@@ -489,7 +489,7 @@ void hostapd_free_hapd_data(struct hosta struct hapd_interfaces *ifaces = hapd->iface->interfaces; size_t i; diff --git a/package/network/services/hostapd/patches/110-mbedtls-TLS-crypto-option-initial-port.patch b/package/network/services/hostapd/patches/110-mbedtls-TLS-crypto-option-initial-port.patch index ca56b38f68..ab05c92d36 100644 --- a/package/network/services/hostapd/patches/110-mbedtls-TLS-crypto-option-initial-port.patch +++ b/package/network/services/hostapd/patches/110-mbedtls-TLS-crypto-option-initial-port.patch @@ -21,7 +21,7 @@ Signed-off-by: Glenn Strauss --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -757,6 +757,40 @@ endif +@@ -759,6 +759,40 @@ endif CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" endif @@ -62,7 +62,7 @@ Signed-off-by: Glenn Strauss ifeq ($(CONFIG_TLS), gnutls) ifndef CONFIG_CRYPTO # default to libgcrypt -@@ -936,9 +970,11 @@ endif +@@ -938,9 +972,11 @@ endif ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) @@ -74,7 +74,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_AES_EAX AESOBJS += ../src/crypto/aes-eax.o NEED_AES_CTR=y -@@ -948,38 +984,48 @@ AESOBJS += ../src/crypto/aes-siv.o +@@ -950,38 +986,48 @@ AESOBJS += ../src/crypto/aes-siv.o NEED_AES_CTR=y endif ifdef NEED_AES_CTR @@ -123,7 +123,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_AES_DEC ifdef CONFIG_INTERNAL_AES AESOBJS += ../src/crypto/aes-internal-dec.o -@@ -994,12 +1040,16 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -996,12 +1042,16 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -140,7 +140,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_SHA1 SHA1OBJS += ../src/crypto/sha1-internal.o ifdef NEED_FIPS186_2_PRF -@@ -1008,16 +1058,22 @@ endif +@@ -1010,16 +1060,22 @@ endif endif ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) @@ -163,7 +163,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_SHA1 OBJS += $(SHA1OBJS) -@@ -1027,11 +1083,13 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -1029,11 +1085,13 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -177,7 +177,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_MD5 ifdef CONFIG_INTERNAL_MD5 -@@ -1070,56 +1128,81 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -1083,56 +1141,81 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -259,7 +259,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_SHA384 CFLAGS += -DCONFIG_INTERNAL_SHA384 -@@ -1164,11 +1247,13 @@ HOBJS += $(SHA1OBJS) +@@ -1177,11 +1260,13 @@ HOBJS += $(SHA1OBJS) ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), wolfssl) @@ -273,7 +273,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_RADIUS_SERVER CFLAGS += -DRADIUS_SERVER -@@ -1342,7 +1427,9 @@ NOBJS += ../src/utils/trace.o +@@ -1355,7 +1440,9 @@ NOBJS += ../src/utils/trace.o endif HOBJS += hlr_auc_gw.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).o ../src/utils/wpabuf.o ../src/crypto/milenage.o @@ -283,11 +283,13 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_AES HOBJS += ../src/crypto/aes-internal.o HOBJS += ../src/crypto/aes-internal-enc.o -@@ -1365,13 +1452,17 @@ SOBJS += ../src/common/sae.o +@@ -1378,18 +1465,24 @@ SOBJS += ../src/common/sae.o SOBJS += ../src/common/sae_pk.o SOBJS += ../src/common/dragonfly.o SOBJS += $(AESOBJS) +ifneq ($(CONFIG_TLS), mbedtls) + SOBJS += ../src/crypto/sha384.o + SOBJS += ../src/crypto/sha512.o SOBJS += ../src/crypto/sha256-prf.o SOBJS += ../src/crypto/sha384-prf.o SOBJS += ../src/crypto/sha512-prf.o @@ -298,9 +300,14 @@ Signed-off-by: Glenn Strauss SOBJS += ../src/crypto/sha384-kdf.o SOBJS += ../src/crypto/sha512-kdf.o +endif + SOBJS += ../src/common/wpa_common.o + SOBJS += ../src/crypto/random.o ++ifneq ($(CONFIG_TLS), mbedtls) + SOBJS += ../src/crypto/sha1-prf.o ++endif + SOBJS += ../src/utils/eloop.o _OBJS_VAR := NOBJS - include ../src/objs.mk --- a/hostapd/defconfig +++ b/hostapd/defconfig @@ -6,9 +6,21 @@ @@ -7765,7 +7772,7 @@ Signed-off-by: Glenn Strauss CONFIG_SIM_SIMULATOR=y --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -1230,6 +1230,29 @@ endif +@@ -1232,6 +1232,29 @@ endif CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" endif @@ -7795,7 +7802,7 @@ Signed-off-by: Glenn Strauss ifeq ($(CONFIG_TLS), gnutls) ifndef CONFIG_CRYPTO # default to libgcrypt -@@ -1422,9 +1445,11 @@ endif +@@ -1424,9 +1447,11 @@ endif ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) @@ -7807,7 +7814,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP # Seems to be needed at least with BoringSSL NEED_INTERNAL_AES_WRAP=y -@@ -1438,9 +1463,11 @@ endif +@@ -1440,9 +1465,11 @@ endif ifdef NEED_INTERNAL_AES_WRAP ifneq ($(CONFIG_TLS), linux) @@ -7819,7 +7826,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_AES_EAX AESOBJS += ../src/crypto/aes-eax.o NEED_AES_CTR=y -@@ -1450,35 +1477,45 @@ AESOBJS += ../src/crypto/aes-siv.o +@@ -1452,35 +1479,45 @@ AESOBJS += ../src/crypto/aes-siv.o NEED_AES_CTR=y endif ifdef NEED_AES_CTR @@ -7865,7 +7872,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_AES_ENC ifdef CONFIG_INTERNAL_AES AESOBJS += ../src/crypto/aes-internal-enc.o -@@ -1493,12 +1530,16 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -1495,12 +1532,16 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -7882,7 +7889,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_SHA1 SHA1OBJS += ../src/crypto/sha1-internal.o ifdef NEED_FIPS186_2_PRF -@@ -1510,29 +1551,37 @@ CFLAGS += -DCONFIG_NO_PBKDF2 +@@ -1512,29 +1553,37 @@ CFLAGS += -DCONFIG_NO_PBKDF2 else ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) @@ -7920,7 +7927,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_MD5 ifdef CONFIG_INTERNAL_MD5 MD5OBJS += ../src/crypto/md5-internal.o -@@ -1587,12 +1636,17 @@ ifneq ($(CONFIG_TLS), openssl) +@@ -1589,12 +1638,17 @@ ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), linux) ifneq ($(CONFIG_TLS), gnutls) ifneq ($(CONFIG_TLS), wolfssl) @@ -7938,7 +7945,7 @@ Signed-off-by: Glenn Strauss ifdef CONFIG_INTERNAL_SHA256 SHA256OBJS += ../src/crypto/sha256-internal.o endif -@@ -1605,50 +1659,68 @@ CFLAGS += -DCONFIG_INTERNAL_SHA512 +@@ -1607,50 +1661,68 @@ CFLAGS += -DCONFIG_INTERNAL_SHA512 SHA256OBJS += ../src/crypto/sha512-internal.o endif ifdef NEED_TLS_PRF_SHA256 @@ -8007,7 +8014,7 @@ Signed-off-by: Glenn Strauss ifdef NEED_ASN1 OBJS += ../src/tls/asn1.o -@@ -1823,10 +1895,12 @@ ifdef CONFIG_FIPS +@@ -1825,10 +1897,12 @@ ifdef CONFIG_FIPS CFLAGS += -DCONFIG_FIPS ifneq ($(CONFIG_TLS), openssl) ifneq ($(CONFIG_TLS), wolfssl) diff --git a/package/network/services/hostapd/patches/120-mbedtls-fips186_2_prf.patch b/package/network/services/hostapd/patches/120-mbedtls-fips186_2_prf.patch index ebb7b51be6..5534de7efa 100644 --- a/package/network/services/hostapd/patches/120-mbedtls-fips186_2_prf.patch +++ b/package/network/services/hostapd/patches/120-mbedtls-fips186_2_prf.patch @@ -12,7 +12,7 @@ Signed-off-by: Glenn Strauss --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -771,10 +771,6 @@ endif +@@ -773,10 +773,6 @@ endif OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o HOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o SOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o @@ -101,7 +101,7 @@ Signed-off-by: Glenn Strauss --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -1241,10 +1241,6 @@ endif +@@ -1243,10 +1243,6 @@ endif OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o OBJS_p += ../src/crypto/crypto_$(CONFIG_CRYPTO).o OBJS_priv += ../src/crypto/crypto_$(CONFIG_CRYPTO).o diff --git a/package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch b/package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch index 6bc1b78bda..babc2a568d 100644 --- a/package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch +++ b/package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch @@ -61,15 +61,15 @@ Signed-off-by: Glenn Strauss --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -708,6 +708,7 @@ CFLAGS += -DCONFIG_TLSV12 +@@ -709,6 +709,7 @@ CFLAGS += -DCONFIG_TLSV12 endif ifeq ($(CONFIG_TLS), wolfssl) +CFLAGS += -DCONFIG_TLS_WOLFSSL + CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 CONFIG_CRYPTO=wolfssl ifdef TLS_FUNCS - OBJS += ../src/crypto/tls_wolfssl.o -@@ -728,6 +729,7 @@ endif +@@ -730,6 +731,7 @@ endif endif ifeq ($(CONFIG_TLS), openssl) @@ -77,7 +77,7 @@ Signed-off-by: Glenn Strauss CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 CONFIG_CRYPTO=openssl ifdef TLS_FUNCS -@@ -758,6 +760,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF +@@ -760,6 +762,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF endif ifeq ($(CONFIG_TLS), mbedtls) @@ -85,7 +85,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO CONFIG_CRYPTO=mbedtls endif -@@ -788,6 +791,7 @@ endif +@@ -790,6 +793,7 @@ endif endif ifeq ($(CONFIG_TLS), gnutls) @@ -93,7 +93,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO # default to libgcrypt CONFIG_CRYPTO=gnutls -@@ -818,6 +822,7 @@ endif +@@ -820,6 +824,7 @@ endif endif ifeq ($(CONFIG_TLS), internal) @@ -101,7 +101,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO CONFIG_CRYPTO=internal endif -@@ -896,6 +901,7 @@ endif +@@ -898,6 +903,7 @@ endif endif ifeq ($(CONFIG_TLS), linux) @@ -695,10 +695,10 @@ Signed-off-by: Glenn Strauss tls = dev.request("GET tls_library") + if tls.startswith("mbed TLS"): + raise HwsimSkip("TLS v1.3 not supported") - ok = ['run=OpenSSL 1.1.1', 'run=OpenSSL 3.0', 'run=OpenSSL 3.1', - 'run=OpenSSL 3.2', 'run=OpenSSL 3.3', 'wolfSSL'] + ok = ['run=OpenSSL 1.1.1', 'run=OpenSSL 3.', 'wolfSSL'] for s in ok: -@@ -122,11 +161,15 @@ def check_pkcs12_support(dev): + if s in tls: +@@ -121,11 +160,15 @@ def check_pkcs12_support(dev): # raise HwsimSkip("PKCS#12 not supported with this TLS library: " + tls) if tls.startswith("wolfSSL"): raise HwsimSkip("PKCS#12 not supported with this TLS library: " + tls) @@ -714,7 +714,7 @@ Signed-off-by: Glenn Strauss def check_ec_support(dev): tls = dev.request("GET tls_library") -@@ -1741,7 +1784,7 @@ def test_ap_wpa2_eap_ttls_pap_subject_ma +@@ -1740,7 +1783,7 @@ def test_ap_wpa2_eap_ttls_pap_subject_ma eap_connect(dev[0], hapd, "TTLS", "pap user", anonymous_identity="ttls", password="password", ca_cert="auth_serv/ca.pem", phase2="auth=PAP", @@ -723,7 +723,7 @@ Signed-off-by: Glenn Strauss altsubject_match="EMAIL:noone@example.com;DNS:server.w1.fi;URI:http://example.com/") eap_reauth(dev[0], "TTLS") -@@ -2976,6 +3019,7 @@ def test_ap_wpa2_eap_tls_neg_domain_matc +@@ -2975,6 +3018,7 @@ def test_ap_wpa2_eap_tls_neg_domain_matc def test_ap_wpa2_eap_tls_neg_subject_match(dev, apdev): """WPA2-Enterprise negative test - subject mismatch""" @@ -731,7 +731,7 @@ Signed-off-by: Glenn Strauss params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap") hostapd.add_ap(apdev[0], params) dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="TTLS", -@@ -3036,6 +3080,7 @@ def test_ap_wpa2_eap_tls_neg_subject_mat +@@ -3035,6 +3079,7 @@ def test_ap_wpa2_eap_tls_neg_subject_mat def test_ap_wpa2_eap_tls_neg_altsubject_match(dev, apdev): """WPA2-Enterprise negative test - altsubject mismatch""" @@ -739,7 +739,7 @@ Signed-off-by: Glenn Strauss params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap") hostapd.add_ap(apdev[0], params) -@@ -3582,7 +3627,7 @@ def test_ap_wpa2_eap_ikev2_oom(dev, apde +@@ -3581,7 +3626,7 @@ def test_ap_wpa2_eap_ikev2_oom(dev, apde dev[0].request("REMOVE_NETWORK all") tls = dev[0].request("GET tls_library") @@ -748,7 +748,7 @@ Signed-off-by: Glenn Strauss tests = [(1, "os_get_random;dh_init")] else: tests = [(1, "crypto_dh_init;dh_init")] -@@ -4896,7 +4941,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca +@@ -4901,7 +4946,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca params["private_key"] = "auth_serv/iCA-server/server.key" hostapd.add_ap(apdev[0], params) tls = dev[0].request("GET tls_library") @@ -757,7 +757,7 @@ Signed-off-by: Glenn Strauss ca_cert = "auth_serv/iCA-user/ca-and-root.pem" client_cert = "auth_serv/iCA-user/user_and_ica.pem" else: -@@ -4962,6 +5007,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca +@@ -4967,6 +5012,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca run_ap_wpa2_eap_tls_intermediate_ca_ocsp(dev, apdev, params, "-sha1") def run_ap_wpa2_eap_tls_intermediate_ca_ocsp(dev, apdev, params, md): @@ -765,7 +765,7 @@ Signed-off-by: Glenn Strauss params = int_eap_server_params() params["ca_cert"] = "auth_serv/iCA-server/ca-and-root.pem" params["server_cert"] = "auth_serv/iCA-server/server.pem" -@@ -4971,7 +5017,7 @@ def run_ap_wpa2_eap_tls_intermediate_ca_ +@@ -4976,7 +5022,7 @@ def run_ap_wpa2_eap_tls_intermediate_ca_ try: hostapd.add_ap(apdev[0], params) tls = dev[0].request("GET tls_library") @@ -774,7 +774,7 @@ Signed-off-by: Glenn Strauss ca_cert = "auth_serv/iCA-user/ca-and-root.pem" client_cert = "auth_serv/iCA-user/user_and_ica.pem" else: -@@ -5007,7 +5053,7 @@ def run_ap_wpa2_eap_tls_intermediate_ca_ +@@ -5012,7 +5058,7 @@ def run_ap_wpa2_eap_tls_intermediate_ca_ try: hostapd.add_ap(apdev[0], params) tls = dev[0].request("GET tls_library") @@ -783,7 +783,7 @@ Signed-off-by: Glenn Strauss ca_cert = "auth_serv/iCA-user/ca-and-root.pem" client_cert = "auth_serv/iCA-user/user_and_ica.pem" else: -@@ -5057,7 +5103,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca +@@ -5062,7 +5108,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca try: hostapd.add_ap(apdev[0], params) tls = dev[0].request("GET tls_library") @@ -792,7 +792,7 @@ Signed-off-by: Glenn Strauss ca_cert = "auth_serv/iCA-user/ca-and-root.pem" client_cert = "auth_serv/iCA-user/user_and_ica.pem" else: -@@ -5124,7 +5170,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca +@@ -5129,7 +5175,7 @@ def test_ap_wpa2_eap_tls_intermediate_ca hostapd.add_ap(apdev[0], params) tls = dev[0].request("GET tls_library") @@ -801,7 +801,7 @@ Signed-off-by: Glenn Strauss ca_cert = "auth_serv/iCA-user/ca-and-root.pem" client_cert = "auth_serv/iCA-user/user_and_ica.pem" else: -@@ -5382,6 +5428,7 @@ def test_ap_wpa2_eap_ttls_server_cert_ek +@@ -5387,6 +5433,7 @@ def test_ap_wpa2_eap_ttls_server_cert_ek def test_ap_wpa2_eap_ttls_server_pkcs12(dev, apdev): """WPA2-Enterprise using EAP-TTLS and server PKCS#12 file""" @@ -809,7 +809,7 @@ Signed-off-by: Glenn Strauss skip_with_fips(dev[0]) params = int_eap_server_params() del params["server_cert"] -@@ -5394,6 +5441,7 @@ def test_ap_wpa2_eap_ttls_server_pkcs12( +@@ -5399,6 +5446,7 @@ def test_ap_wpa2_eap_ttls_server_pkcs12( def test_ap_wpa2_eap_ttls_server_pkcs12_extra(dev, apdev): """EAP-TTLS and server PKCS#12 file with extra certs""" @@ -817,7 +817,7 @@ Signed-off-by: Glenn Strauss skip_with_fips(dev[0]) params = int_eap_server_params() del params["server_cert"] -@@ -5416,6 +5464,7 @@ def test_ap_wpa2_eap_ttls_dh_params_serv +@@ -5421,6 +5469,7 @@ def test_ap_wpa2_eap_ttls_dh_params_serv def test_ap_wpa2_eap_ttls_dh_params_dsa_server(dev, apdev): """WPA2-Enterprise using EAP-TTLS and alternative server dhparams (DSA)""" @@ -825,7 +825,7 @@ Signed-off-by: Glenn Strauss params = int_eap_server_params() params["dh_file"] = "auth_serv/dsaparam.pem" hapd = hostapd.add_ap(apdev[0], params) -@@ -5727,8 +5776,8 @@ def test_ap_wpa2_eap_non_ascii_identity2 +@@ -5732,8 +5781,8 @@ def test_ap_wpa2_eap_non_ascii_identity2 def test_openssl_cipher_suite_config_wpas(dev, apdev): """OpenSSL cipher suite configuration on wpa_supplicant""" tls = dev[0].request("GET tls_library") @@ -836,7 +836,7 @@ Signed-off-by: Glenn Strauss params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap") hapd = hostapd.add_ap(apdev[0], params) eap_connect(dev[0], hapd, "TTLS", "pap user", -@@ -5754,14 +5803,14 @@ def test_openssl_cipher_suite_config_wpa +@@ -5759,14 +5808,14 @@ def test_openssl_cipher_suite_config_wpa def test_openssl_cipher_suite_config_hapd(dev, apdev): """OpenSSL cipher suite configuration on hostapd""" tls = dev[0].request("GET tls_library") @@ -855,10 +855,10 @@ Signed-off-by: Glenn Strauss eap_connect(dev[0], hapd, "TTLS", "pap user", anonymous_identity="ttls", password="password", ca_cert="auth_serv/ca.pem", phase2="auth=PAP") -@@ -6207,13 +6256,17 @@ def test_ap_wpa2_eap_tls_versions(dev, a - check_tls_ver(dev[0], hapd, - "tls_disable_tlsv1_0=1 tls_disable_tlsv1_1=1", - "TLSv1.2") +@@ -6209,13 +6258,17 @@ def test_ap_wpa2_eap_tls_versions(dev, a + if tls.startswith("wolfSSL"): + check_tls_ver(dev[0], hapd, + "tls_disable_tlsv1_0=1 tls_disable_tlsv1_1=1", "TLSv1.2") - elif tls.startswith("internal"): + elif tls.startswith("internal") or tls.startswith("mbed TLS"): check_tls_ver(dev[0], hapd, @@ -875,10 +875,10 @@ Signed-off-by: Glenn Strauss + "tls_disable_tlsv1_0=1 tls_disable_tlsv1_1=0 tls_disable_tlsv1_2=1", "TLSv1.1") + check_tls_ver(dev[2], hapd, + "tls_disable_tlsv1_0=0 tls_disable_tlsv1_1=1 tls_disable_tlsv1_2=1", "TLSv1") - if "run=OpenSSL 1.1.1" in tls or "run=OpenSSL 3." in tls: + if "run=OpenSSL 1.1.1" in tls or "run=OpenSSL 3." in tls or \ + tls.startswith("wolfSSL"): check_tls_ver(dev[0], hapd, - "tls_disable_tlsv1_0=1 tls_disable_tlsv1_1=1 tls_disable_tlsv1_2=1 tls_disable_tlsv1_3=0", "TLSv1.3") -@@ -6235,6 +6288,11 @@ def test_ap_wpa2_eap_tls_versions_server +@@ -6238,6 +6291,11 @@ def test_ap_wpa2_eap_tls_versions_server tests = [("TLSv1", "[ENABLE-TLSv1.0][DISABLE-TLSv1.1][DISABLE-TLSv1.2][DISABLE-TLSv1.3]"), ("TLSv1.1", "[ENABLE-TLSv1.0][ENABLE-TLSv1.1][DISABLE-TLSv1.2][DISABLE-TLSv1.3]"), ("TLSv1.2", "[ENABLE-TLSv1.0][ENABLE-TLSv1.1][ENABLE-TLSv1.2][DISABLE-TLSv1.3]")] @@ -890,7 +890,7 @@ Signed-off-by: Glenn Strauss for exp, flags in tests: hapd.disable() hapd.set("tls_flags", flags) -@@ -7305,6 +7363,7 @@ def test_ap_wpa2_eap_assoc_rsn(dev, apde +@@ -7318,6 +7376,7 @@ def test_ap_wpa2_eap_assoc_rsn(dev, apde def test_eap_tls_ext_cert_check(dev, apdev): """EAP-TLS and external server certification validation""" # With internal server certificate chain validation @@ -898,7 +898,7 @@ Signed-off-by: Glenn Strauss id = dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="TLS", identity="tls user", ca_cert="auth_serv/ca.pem", -@@ -7317,6 +7376,7 @@ def test_eap_tls_ext_cert_check(dev, apd +@@ -7330,6 +7389,7 @@ def test_eap_tls_ext_cert_check(dev, apd def test_eap_ttls_ext_cert_check(dev, apdev): """EAP-TTLS and external server certification validation""" # Without internal server certificate chain validation @@ -906,7 +906,7 @@ Signed-off-by: Glenn Strauss id = dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="TTLS", identity="pap user", anonymous_identity="ttls", password="password", phase2="auth=PAP", -@@ -7327,6 +7387,7 @@ def test_eap_ttls_ext_cert_check(dev, ap +@@ -7340,6 +7400,7 @@ def test_eap_ttls_ext_cert_check(dev, ap def test_eap_peap_ext_cert_check(dev, apdev): """EAP-PEAP and external server certification validation""" # With internal server certificate chain validation @@ -914,7 +914,7 @@ Signed-off-by: Glenn Strauss id = dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="PEAP", identity="user", anonymous_identity="peap", ca_cert="auth_serv/ca.pem", -@@ -7337,6 +7398,7 @@ def test_eap_peap_ext_cert_check(dev, ap +@@ -7350,6 +7411,7 @@ def test_eap_peap_ext_cert_check(dev, ap def test_eap_fast_ext_cert_check(dev, apdev): """EAP-FAST and external server certification validation""" @@ -922,7 +922,7 @@ Signed-off-by: Glenn Strauss check_eap_capa(dev[0], "FAST") # With internal server certificate chain validation dev[0].request("SET blob fast_pac_auth_ext ") -@@ -7351,10 +7413,6 @@ def test_eap_fast_ext_cert_check(dev, ap +@@ -7364,10 +7426,6 @@ def test_eap_fast_ext_cert_check(dev, ap run_ext_cert_check(dev, apdev, id) def run_ext_cert_check(dev, apdev, net_id): @@ -935,7 +935,7 @@ Signed-off-by: Glenn Strauss --- a/tests/hwsim/test_ap_ft.py +++ b/tests/hwsim/test_ap_ft.py -@@ -2494,11 +2494,11 @@ def test_ap_ft_ap_oom5(dev, apdev): +@@ -2543,11 +2543,11 @@ def test_ap_ft_ap_oom5(dev, apdev): # This will fail to roam dev[0].roam(bssid1, check_bssid=False) @@ -1060,11 +1060,11 @@ Signed-off-by: Glenn Strauss phase2="auth=MSCHAPV2") - erp_test(dev[0], hapd, eap="TEAP", identity="erp-teap@example.com", - password="password", ca_cert="auth_serv/ca.pem", -- phase2="auth=MSCHAPV2", pac_file="blob://teap_pac") +- phase2="auth=MSCHAPV2") + if check_eap_capa(dev[0], "TEAP"): + erp_test(dev[0], hapd, eap="TEAP", identity="erp-teap@example.com", + password="password", ca_cert="auth_serv/ca.pem", -+ phase2="auth=MSCHAPV2", pac_file="blob://teap_pac") ++ phase2="auth=MSCHAPV2") erp_test(dev[0], hapd, eap="PSK", identity="erp-psk@example.com", password_hex="0123456789abcdef0123456789abcdef") if "PWD" in eap_methods: @@ -1079,7 +1079,7 @@ Signed-off-by: Glenn Strauss dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="TTLS", --- a/tests/hwsim/test_fils.py +++ b/tests/hwsim/test_fils.py -@@ -1477,6 +1477,10 @@ def check_ec_group(dev, group): +@@ -1493,6 +1493,10 @@ def check_ec_group(dev, group): tls = dev.request("GET tls_library") if tls.startswith("wolfSSL"): return @@ -1124,7 +1124,7 @@ Signed-off-by: Glenn Strauss heavy_groups = [14, 15, 16] suitable_groups = [15, 16, 17, 18, 19, 20, 21] groups = [str(g) for g in sae_groups] -@@ -2232,6 +2237,8 @@ def run_sae_pwe_group(dev, apdev, group) +@@ -2248,6 +2253,8 @@ def run_sae_pwe_group(dev, apdev, group) logger.info("Add Brainpool EC groups since OpenSSL is new enough") elif tls.startswith("wolfSSL"): logger.info("Make sure Brainpool EC groups were enabled when compiling wolfSSL") @@ -1165,18 +1165,13 @@ Signed-off-by: Glenn Strauss res = dev[0].request(cmd) --- a/tests/hwsim/utils.py +++ b/tests/hwsim/utils.py -@@ -145,7 +145,13 @@ def check_imsi_privacy_support(dev): - - def check_tls_tod(dev): +@@ -151,7 +151,8 @@ def check_tls_tod(dev): tls = dev.request("GET tls_library") -- if not tls.startswith("OpenSSL") and not tls.startswith("internal"): -+ if tls.startswith("OpenSSL"): -+ return -+ elif tls.startswith("internal"): -+ return -+ elif tls.startswith("mbed TLS"): -+ return -+ else: + if not tls.startswith("OpenSSL") and \ + not tls.startswith("wolfSSL") and \ +- not tls.startswith("internal"): ++ not tls.startswith("internal") and \ ++ not tls.startswith("mbed TLS"): raise HwsimSkip("TLS TOD-TOFU/STRICT not supported with this TLS library: " + tls) def vht_supported(): @@ -1294,15 +1289,15 @@ Signed-off-by: Glenn Strauss if (need_more_data) { --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -1189,6 +1189,7 @@ TLS_FUNCS=y +@@ -1190,6 +1190,7 @@ TLS_FUNCS=y endif ifeq ($(CONFIG_TLS), wolfssl) +CFLAGS += -DCONFIG_TLS_WOLFSSL + CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 ifdef TLS_FUNCS CFLAGS += -DWOLFSSL_DER_LOAD - OBJS += ../src/crypto/tls_wolfssl.o -@@ -1204,6 +1205,7 @@ LIBS_p += -lwolfssl -lm +@@ -1206,6 +1207,7 @@ LIBS_p += -lwolfssl -lm endif ifeq ($(CONFIG_TLS), openssl) @@ -1310,7 +1305,7 @@ Signed-off-by: Glenn Strauss CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 ifdef TLS_FUNCS CFLAGS += -DEAP_TLS_OPENSSL -@@ -1231,6 +1233,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF +@@ -1233,6 +1235,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF endif ifeq ($(CONFIG_TLS), mbedtls) @@ -1318,7 +1313,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO CONFIG_CRYPTO=mbedtls endif -@@ -1250,6 +1253,7 @@ endif +@@ -1252,6 +1255,7 @@ endif endif ifeq ($(CONFIG_TLS), gnutls) @@ -1326,7 +1321,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO # default to libgcrypt CONFIG_CRYPTO=gnutls -@@ -1280,6 +1284,7 @@ endif +@@ -1282,6 +1286,7 @@ endif endif ifeq ($(CONFIG_TLS), internal) @@ -1334,7 +1329,7 @@ Signed-off-by: Glenn Strauss ifndef CONFIG_CRYPTO CONFIG_CRYPTO=internal endif -@@ -1360,6 +1365,7 @@ endif +@@ -1362,6 +1367,7 @@ endif endif ifeq ($(CONFIG_TLS), linux) diff --git a/package/network/services/hostapd/patches/150-add-NULL-checks-encountered-during-tests-hwsim.patch b/package/network/services/hostapd/patches/150-add-NULL-checks-encountered-during-tests-hwsim.patch index 78ed459ee6..e562c2dd2a 100644 --- a/package/network/services/hostapd/patches/150-add-NULL-checks-encountered-during-tests-hwsim.patch +++ b/package/network/services/hostapd/patches/150-add-NULL-checks-encountered-during-tests-hwsim.patch @@ -29,7 +29,7 @@ Signed-off-by: Glenn Strauss wpa_printf(MSG_DEBUG, "DPP: Generating a keypair"); --- a/src/common/sae.c +++ b/src/common/sae.c -@@ -1279,6 +1279,13 @@ void sae_deinit_pt(struct sae_pt *pt) +@@ -1284,6 +1284,13 @@ void sae_deinit_pt(struct sae_pt *pt) static int sae_derive_commit_element_ecc(struct sae_data *sae, struct crypto_bignum *mask) { diff --git a/package/network/services/hostapd/patches/170-hostapd-update-cfs0-and-cfs1-for-160MHz.patch b/package/network/services/hostapd/patches/170-hostapd-update-cfs0-and-cfs1-for-160MHz.patch index 0af7a379bc..d9cdb1d3eb 100644 --- a/package/network/services/hostapd/patches/170-hostapd-update-cfs0-and-cfs1-for-160MHz.patch +++ b/package/network/services/hostapd/patches/170-hostapd-update-cfs0-and-cfs1-for-160MHz.patch @@ -120,7 +120,7 @@ Signed-off-by: P Praneesh * Convert 80+80 MHz channel width to new style as interop --- a/src/common/hw_features_common.c +++ b/src/common/hw_features_common.c -@@ -898,6 +898,7 @@ int ieee80211ac_cap_check(u32 hw, u32 co +@@ -923,6 +923,7 @@ int ieee80211ac_cap_check(u32 hw, u32 co VHT_CAP_CHECK(VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB); VHT_CAP_CHECK(VHT_CAP_RX_ANTENNA_PATTERN); VHT_CAP_CHECK(VHT_CAP_TX_ANTENNA_PATTERN); @@ -130,7 +130,7 @@ Signed-off-by: P Praneesh #undef VHT_CAP_CHECK_MAX --- a/src/common/ieee802_11_defs.h +++ b/src/common/ieee802_11_defs.h -@@ -1401,6 +1401,8 @@ struct ieee80211_ampe_ie { +@@ -1420,6 +1420,8 @@ struct ieee80211_ampe_ie { #define VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB ((u32) BIT(26) | BIT(27)) #define VHT_CAP_RX_ANTENNA_PATTERN ((u32) BIT(28)) #define VHT_CAP_TX_ANTENNA_PATTERN ((u32) BIT(29)) diff --git a/package/network/services/hostapd/patches/180-fix_owe_ssid_update.patch b/package/network/services/hostapd/patches/180-fix_owe_ssid_update.patch index 5581922b27..b0557856ce 100644 --- a/package/network/services/hostapd/patches/180-fix_owe_ssid_update.patch +++ b/package/network/services/hostapd/patches/180-fix_owe_ssid_update.patch @@ -1,6 +1,6 @@ --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -2420,7 +2420,11 @@ static int hostapd_owe_iface_iter(struct +@@ -2441,7 +2441,11 @@ static int hostapd_owe_iface_iter(struct if (!bss->conf->ssid.ssid_set || !bss->conf->ssid.ssid_len || is_zero_ether_addr(bss->own_addr)) continue; @@ -13,7 +13,7 @@ os_memcpy(hapd->conf->owe_transition_bssid, bss->own_addr, ETH_ALEN); os_memcpy(hapd->conf->owe_transition_ssid, -@@ -2437,10 +2441,6 @@ static int hostapd_owe_iface_iter(struct +@@ -2458,10 +2462,6 @@ static int hostapd_owe_iface_iter(struct int hostapd_owe_trans_get_info(struct hostapd_data *hapd) { diff --git a/package/network/services/hostapd/patches/200-multicall.patch b/package/network/services/hostapd/patches/200-multicall.patch index 80a484e974..7472dc63e6 100644 --- a/package/network/services/hostapd/patches/200-multicall.patch +++ b/package/network/services/hostapd/patches/200-multicall.patch @@ -25,7 +25,7 @@ This allows building both hostapd and wpa_supplicant as a single binary OBJS += ../src/ap/vlan_init.o OBJS += ../src/ap/vlan_ifconfig.o OBJS += ../src/ap/vlan.o -@@ -359,10 +361,14 @@ CFLAGS += -DCONFIG_MBO +@@ -360,10 +362,14 @@ CFLAGS += -DCONFIG_MBO OBJS += ../src/ap/mbo_ap.o endif @@ -43,7 +43,7 @@ This allows building both hostapd and wpa_supplicant as a single binary LIBS += $(DRV_AP_LIBS) ifdef CONFIG_L2_PACKET -@@ -1393,6 +1399,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR) +@@ -1406,6 +1412,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR) _OBJS_VAR := OBJS include ../src/objs.mk @@ -56,7 +56,7 @@ This allows building both hostapd and wpa_supplicant as a single binary hostapd: $(OBJS) $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS) @$(E) " LD " $@ -@@ -1473,6 +1485,12 @@ include ../src/objs.mk +@@ -1494,6 +1506,12 @@ include ../src/objs.mk _OBJS_VAR := SOBJS include ../src/objs.mk @@ -71,7 +71,7 @@ This allows building both hostapd and wpa_supplicant as a single binary @$(E) " LD " $@ --- a/hostapd/main.c +++ b/hostapd/main.c -@@ -696,6 +696,11 @@ fail: +@@ -737,6 +737,11 @@ fail: return -1; } @@ -83,7 +83,7 @@ This allows building both hostapd and wpa_supplicant as a single binary #ifdef CONFIG_WPS static int gen_uuid(const char *txt_addr) -@@ -817,6 +822,8 @@ int main(int argc, char *argv[]) +@@ -858,6 +863,8 @@ int main(int argc, char *argv[]) return -1; #endif /* CONFIG_DPP */ @@ -94,7 +94,7 @@ This allows building both hostapd and wpa_supplicant as a single binary if (c < 0) --- a/src/ap/drv_callbacks.c +++ b/src/ap/drv_callbacks.c -@@ -2520,8 +2520,8 @@ static void hostapd_mld_iface_disable(st +@@ -2537,8 +2537,8 @@ static void hostapd_mld_iface_disable(st #endif /* CONFIG_IEEE80211BE */ @@ -105,7 +105,7 @@ This allows building both hostapd and wpa_supplicant as a single binary { struct hostapd_data *hapd = ctx; struct sta_info *sta; -@@ -2879,7 +2879,7 @@ void wpa_supplicant_event(void *ctx, enu +@@ -2896,7 +2896,7 @@ void wpa_supplicant_event(void *ctx, enu } @@ -116,7 +116,7 @@ This allows building both hostapd and wpa_supplicant as a single binary struct hapd_interfaces *interfaces = ctx; --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -6974,8 +6974,8 @@ union wpa_event_data { +@@ -7072,8 +7072,8 @@ union wpa_event_data { * Driver wrapper code should call this function whenever an event is received * from the driver. */ @@ -127,7 +127,7 @@ This allows building both hostapd and wpa_supplicant as a single binary /** * wpa_supplicant_event_global - Report a driver event for wpa_supplicant -@@ -6987,7 +6987,7 @@ void wpa_supplicant_event(void *ctx, enu +@@ -7085,7 +7085,7 @@ void wpa_supplicant_event(void *ctx, enu * Same as wpa_supplicant_event(), but we search for the interface in * wpa_global. */ @@ -159,7 +159,7 @@ This allows building both hostapd and wpa_supplicant as a single binary include ../src/build.rules ifdef CONFIG_BUILD_PASN_SO -@@ -389,7 +390,9 @@ endif +@@ -390,7 +391,9 @@ endif ifdef CONFIG_IBSS_RSN NEED_RSN_AUTHENTICATOR=y CFLAGS += -DCONFIG_IBSS_RSN @@ -169,7 +169,7 @@ This allows building both hostapd and wpa_supplicant as a single binary OBJS += ibss_rsn.o endif -@@ -981,6 +984,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS +@@ -982,6 +985,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS LIBS += -ldl -rdynamic endif @@ -180,7 +180,7 @@ This allows building both hostapd and wpa_supplicant as a single binary endif ifdef CONFIG_AP -@@ -988,9 +995,11 @@ NEED_EAP_COMMON=y +@@ -989,9 +996,11 @@ NEED_EAP_COMMON=y NEED_RSN_AUTHENTICATOR=y CFLAGS += -DCONFIG_AP OBJS += ap.o @@ -192,7 +192,7 @@ This allows building both hostapd and wpa_supplicant as a single binary OBJS += ../src/ap/hostapd.o OBJS += ../src/ap/wpa_auth_glue.o OBJS += ../src/ap/utils.o -@@ -1081,6 +1090,12 @@ endif +@@ -1082,6 +1091,12 @@ endif ifdef CONFIG_HS20 OBJS += ../src/ap/hs20.o endif @@ -205,7 +205,7 @@ This allows building both hostapd and wpa_supplicant as a single binary endif ifdef CONFIG_MBO -@@ -1090,7 +1105,9 @@ NEED_GAS=y +@@ -1091,7 +1106,9 @@ NEED_GAS=y endif ifdef NEED_RSN_AUTHENTICATOR @@ -215,7 +215,7 @@ This allows building both hostapd and wpa_supplicant as a single binary NEED_AES_WRAP=y OBJS += ../src/ap/wpa_auth.o OBJS += ../src/ap/wpa_auth_ie.o -@@ -2080,6 +2097,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv) +@@ -2082,6 +2099,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv) _OBJS_VAR := OBJS include ../src/objs.mk @@ -228,7 +228,7 @@ This allows building both hostapd and wpa_supplicant as a single binary wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs) $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS) @$(E) " LD " $@ -@@ -2212,6 +2235,12 @@ eap_gpsk.so: $(SRC_EAP_GPSK) +@@ -2214,6 +2237,12 @@ eap_gpsk.so: $(SRC_EAP_GPSK) $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@ @$(E) " sed" $< @@ -278,7 +278,7 @@ This allows building both hostapd and wpa_supplicant as a single binary os_memset(&eapol_test, 0, sizeof(eapol_test)); --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c -@@ -6131,8 +6131,8 @@ static int wpas_pasn_auth(struct wpa_sup +@@ -6170,8 +6170,8 @@ static int wpas_pasn_auth(struct wpa_sup #endif /* CONFIG_PASN */ @@ -289,7 +289,7 @@ This allows building both hostapd and wpa_supplicant as a single binary { struct wpa_supplicant *wpa_s = ctx; int resched; -@@ -7084,7 +7084,7 @@ void wpa_supplicant_event(void *ctx, enu +@@ -7134,7 +7134,7 @@ void wpa_supplicant_event(void *ctx, enu } @@ -331,7 +331,7 @@ This allows building both hostapd and wpa_supplicant as a single binary os_memset(&global, 0, sizeof(global)); --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -7787,7 +7787,6 @@ struct wpa_interface * wpa_supplicant_ma +@@ -8062,7 +8062,6 @@ struct wpa_interface * wpa_supplicant_ma return NULL; } @@ -339,7 +339,7 @@ This allows building both hostapd and wpa_supplicant as a single binary /** * wpa_supplicant_match_existing - Match existing interfaces * @global: Pointer to global data from wpa_supplicant_init() -@@ -7822,6 +7821,11 @@ static int wpa_supplicant_match_existing +@@ -8097,6 +8096,11 @@ static int wpa_supplicant_match_existing #endif /* CONFIG_MATCH_IFACE */ @@ -351,7 +351,7 @@ This allows building both hostapd and wpa_supplicant as a single binary /** * wpa_supplicant_add_iface - Add a new network interface -@@ -8078,6 +8082,8 @@ struct wpa_global * wpa_supplicant_init( +@@ -8353,6 +8357,8 @@ struct wpa_global * wpa_supplicant_init( #ifndef CONFIG_NO_WPA_MSG wpa_msg_register_ifname_cb(wpa_supplicant_msg_ifname_cb); #endif /* CONFIG_NO_WPA_MSG */ diff --git a/package/network/services/hostapd/patches/201-lto-jobserver-support.patch b/package/network/services/hostapd/patches/201-lto-jobserver-support.patch index 7473cbef96..7911071e0f 100644 --- a/package/network/services/hostapd/patches/201-lto-jobserver-support.patch +++ b/package/network/services/hostapd/patches/201-lto-jobserver-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] hostapd: build with LTO enabled (using jobserver for parallel --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -1406,7 +1406,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS) +@@ -1419,7 +1419,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS) @$(AR) cr $@ hostapd_multi.o $(OBJS) hostapd: $(OBJS) @@ -14,7 +14,7 @@ Subject: [PATCH] hostapd: build with LTO enabled (using jobserver for parallel @$(E) " LD " $@ ifdef CONFIG_WPA_TRACE -@@ -1417,7 +1417,7 @@ _OBJS_VAR := OBJS_c +@@ -1430,7 +1430,7 @@ _OBJS_VAR := OBJS_c include ../src/objs.mk hostapd_cli: $(OBJS_c) @@ -25,7 +25,7 @@ Subject: [PATCH] hostapd: build with LTO enabled (using jobserver for parallel NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS) --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -2104,31 +2104,31 @@ wpa_supplicant_multi.a: .config $(BCHECK +@@ -2106,31 +2106,31 @@ wpa_supplicant_multi.a: .config $(BCHECK @$(AR) cr $@ wpa_supplicant_multi.o $(OBJS) wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs) diff --git a/package/network/services/hostapd/patches/211-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch b/package/network/services/hostapd/patches/211-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch index 38d4d1500a..f7d3984c60 100644 --- a/package/network/services/hostapd/patches/211-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch +++ b/package/network/services/hostapd/patches/211-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch @@ -13,7 +13,7 @@ Signed-off-by: David Bauer --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c -@@ -13292,7 +13292,7 @@ char * wpa_supplicant_ctrl_iface_process +@@ -13566,7 +13566,7 @@ char * wpa_supplicant_ctrl_iface_process if (wpas_ctrl_iface_coloc_intf_report(wpa_s, buf + 18)) reply_len = -1; #endif /* CONFIG_WNM */ @@ -22,7 +22,7 @@ Signed-off-by: David Bauer } else if (os_strncmp(buf, "DISASSOC_IMMINENT ", 18) == 0) { if (ap_ctrl_iface_disassoc_imminent(wpa_s, buf + 18)) reply_len = -1; -@@ -13302,7 +13302,7 @@ char * wpa_supplicant_ctrl_iface_process +@@ -13576,7 +13576,7 @@ char * wpa_supplicant_ctrl_iface_process } else if (os_strncmp(buf, "BSS_TM_REQ ", 11) == 0) { if (ap_ctrl_iface_bss_tm_req(wpa_s, buf + 11)) reply_len = -1; diff --git a/package/network/services/hostapd/patches/212-Move-definition-of-WLAN_SUPP_RATES_MAX-to-defs.h.patch b/package/network/services/hostapd/patches/212-Move-definition-of-WLAN_SUPP_RATES_MAX-to-defs.h.patch index 4c568c924c..2961749c39 100644 --- a/package/network/services/hostapd/patches/212-Move-definition-of-WLAN_SUPP_RATES_MAX-to-defs.h.patch +++ b/package/network/services/hostapd/patches/212-Move-definition-of-WLAN_SUPP_RATES_MAX-to-defs.h.patch @@ -30,7 +30,7 @@ Signed-off-by: Eneas U de Queiroz --- a/src/ap/sta_info.h +++ b/src/ap/sta_info.h -@@ -49,10 +49,6 @@ +@@ -50,10 +50,6 @@ #define WLAN_STA_PENDING_DEAUTH_CB BIT(30) #define WLAN_STA_NONERP BIT(31) diff --git a/package/network/services/hostapd/patches/220-indicate-features.patch b/package/network/services/hostapd/patches/220-indicate-features.patch index 13a5c38631..e6456c6338 100644 --- a/package/network/services/hostapd/patches/220-indicate-features.patch +++ b/package/network/services/hostapd/patches/220-indicate-features.patch @@ -15,7 +15,7 @@ Subject: [PATCH] hostapd: support optional argument for the -v switch of struct hapd_global { void **drv_priv; -@@ -825,7 +825,7 @@ int main(int argc, char *argv[]) +@@ -866,7 +866,7 @@ int main(int argc, char *argv[]) wpa_supplicant_event = hostapd_wpa_event; wpa_supplicant_event_global = hostapd_wpa_event_global; for (;;) { @@ -24,7 +24,7 @@ Subject: [PATCH] hostapd: support optional argument for the -v switch of if (c < 0) break; switch (c) { -@@ -862,6 +862,8 @@ int main(int argc, char *argv[]) +@@ -903,6 +903,8 @@ int main(int argc, char *argv[]) break; #endif /* CONFIG_DEBUG_LINUX_TRACING */ case 'v': diff --git a/package/network/services/hostapd/patches/252-disable_ctrl_iface_mib.patch b/package/network/services/hostapd/patches/252-disable_ctrl_iface_mib.patch index 0801a93bcd..c5cf70d54d 100644 --- a/package/network/services/hostapd/patches/252-disable_ctrl_iface_mib.patch +++ b/package/network/services/hostapd/patches/252-disable_ctrl_iface_mib.patch @@ -16,7 +16,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality else --- a/hostapd/ctrl_iface.c +++ b/hostapd/ctrl_iface.c -@@ -4057,6 +4057,7 @@ static int hostapd_ctrl_iface_receive_pr +@@ -4087,6 +4087,7 @@ static int hostapd_ctrl_iface_receive_pr reply_size); } else if (os_strcmp(buf, "STATUS-DRIVER") == 0) { reply_len = hostapd_drv_status(hapd, reply, reply_size); @@ -24,7 +24,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality } else if (os_strcmp(buf, "MIB") == 0) { reply_len = ieee802_11_get_mib(hapd, reply, reply_size); if (reply_len >= 0) { -@@ -4098,6 +4099,7 @@ static int hostapd_ctrl_iface_receive_pr +@@ -4128,6 +4129,7 @@ static int hostapd_ctrl_iface_receive_pr } else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) { reply_len = hostapd_ctrl_iface_sta_next(hapd, buf + 9, reply, reply_size); @@ -88,7 +88,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality static int hostapd_ctrl_iface_sta_mib(struct hostapd_data *hapd, struct sta_info *sta, char *buf, size_t buflen) -@@ -562,6 +562,7 @@ int hostapd_ctrl_iface_sta_next(struct h +@@ -571,6 +571,7 @@ int hostapd_ctrl_iface_sta_next(struct h return hostapd_ctrl_iface_sta_mib(hapd, sta->next, buf, buflen); } @@ -96,7 +96,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality #ifdef CONFIG_P2P_MANAGER static int p2p_manager_disconnect(struct hostapd_data *hapd, u16 stype, -@@ -1016,12 +1017,12 @@ int hostapd_ctrl_iface_status(struct hos +@@ -1043,12 +1044,12 @@ int hostapd_ctrl_iface_status(struct hos return len; len += ret; } @@ -113,7 +113,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality if (os_snprintf_error(buflen - len, ret)) --- a/src/ap/ieee802_1x.c +++ b/src/ap/ieee802_1x.c -@@ -2869,6 +2869,7 @@ static const char * bool_txt(bool val) +@@ -2867,6 +2867,7 @@ static const char * bool_txt(bool val) return val ? "TRUE" : "FALSE"; } @@ -121,7 +121,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality int ieee802_1x_get_mib(struct hostapd_data *hapd, char *buf, size_t buflen) { -@@ -3055,6 +3056,7 @@ int ieee802_1x_get_mib_sta(struct hostap +@@ -3053,6 +3054,7 @@ int ieee802_1x_get_mib_sta(struct hostap return len; } @@ -131,7 +131,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality static void ieee802_1x_wnm_notif_send(void *eloop_ctx, void *timeout_ctx) --- a/src/ap/wpa_auth.c +++ b/src/ap/wpa_auth.c -@@ -6141,6 +6141,7 @@ static const char * wpa_bool_txt(int val +@@ -6178,6 +6178,7 @@ static const char * wpa_bool_txt(int val return val ? "TRUE" : "FALSE"; } @@ -139,7 +139,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality #define RSN_SUITE "%02x-%02x-%02x-%d" #define RSN_SUITE_ARG(s) \ -@@ -6293,7 +6294,7 @@ int wpa_get_mib_sta(struct wpa_state_mac +@@ -6330,7 +6331,7 @@ int wpa_get_mib_sta(struct wpa_state_mac return len; } @@ -150,7 +150,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality { --- a/src/rsn_supp/wpa.c +++ b/src/rsn_supp/wpa.c -@@ -4155,6 +4155,8 @@ static u32 wpa_key_mgmt_suite(struct wpa +@@ -4195,6 +4195,8 @@ static u32 wpa_key_mgmt_suite(struct wpa } @@ -159,7 +159,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality #define RSN_SUITE "%02x-%02x-%02x-%d" #define RSN_SUITE_ARG(s) \ ((s) >> 24) & 0xff, ((s) >> 16) & 0xff, ((s) >> 8) & 0xff, (s) & 0xff -@@ -4236,6 +4238,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch +@@ -4276,6 +4278,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch return (int) len; } @@ -169,7 +169,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -1039,6 +1039,9 @@ ifdef CONFIG_FILS +@@ -1040,6 +1040,9 @@ ifdef CONFIG_FILS OBJS += ../src/ap/fils_hlp.o endif ifdef CONFIG_CTRL_IFACE @@ -181,7 +181,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality --- a/wpa_supplicant/ap.c +++ b/wpa_supplicant/ap.c -@@ -1520,7 +1520,7 @@ int wpas_ap_wps_nfc_report_handover(stru +@@ -1523,7 +1523,7 @@ int wpas_ap_wps_nfc_report_handover(stru #endif /* CONFIG_WPS */ @@ -192,7 +192,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality char *buf, size_t buflen) --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c -@@ -2355,7 +2355,7 @@ static int wpa_supplicant_ctrl_iface_sta +@@ -2357,7 +2357,7 @@ static int wpa_supplicant_ctrl_iface_sta pos += ret; } @@ -201,7 +201,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality if (wpa_s->ap_iface) { pos += ap_ctrl_iface_wpa_get_status(wpa_s, pos, end - pos, -@@ -12620,6 +12620,7 @@ char * wpa_supplicant_ctrl_iface_process +@@ -12876,6 +12876,7 @@ char * wpa_supplicant_ctrl_iface_process reply_len = -1; } else if (os_strncmp(buf, "NOTE ", 5) == 0) { wpa_printf(MSG_INFO, "NOTE: %s", buf + 5); @@ -209,7 +209,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality } else if (os_strcmp(buf, "MIB") == 0) { reply_len = wpa_sm_get_mib(wpa_s->wpa, reply, reply_size); if (reply_len >= 0) { -@@ -12632,6 +12633,7 @@ char * wpa_supplicant_ctrl_iface_process +@@ -12888,6 +12889,7 @@ char * wpa_supplicant_ctrl_iface_process reply_size - reply_len); #endif /* CONFIG_MACSEC */ } @@ -217,7 +217,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality } else if (os_strncmp(buf, "STATUS", 6) == 0) { reply_len = wpa_supplicant_ctrl_iface_status( wpa_s, buf + 6, reply, reply_size); -@@ -13120,6 +13122,7 @@ char * wpa_supplicant_ctrl_iface_process +@@ -13394,6 +13396,7 @@ char * wpa_supplicant_ctrl_iface_process reply_len = wpa_supplicant_ctrl_iface_bss( wpa_s, buf + 4, reply, reply_size); #ifdef CONFIG_AP @@ -225,7 +225,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality } else if (os_strcmp(buf, "STA-FIRST") == 0) { reply_len = ap_ctrl_iface_sta_first(wpa_s, reply, reply_size); } else if (os_strncmp(buf, "STA ", 4) == 0) { -@@ -13128,12 +13131,15 @@ char * wpa_supplicant_ctrl_iface_process +@@ -13402,12 +13405,15 @@ char * wpa_supplicant_ctrl_iface_process } else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) { reply_len = ap_ctrl_iface_sta_next(wpa_s, buf + 9, reply, reply_size); diff --git a/package/network/services/hostapd/patches/300-noscan.patch b/package/network/services/hostapd/patches/300-noscan.patch index 6deb2722b3..ebedb2603c 100644 --- a/package/network/services/hostapd/patches/300-noscan.patch +++ b/package/network/services/hostapd/patches/300-noscan.patch @@ -18,7 +18,7 @@ Subject: [PATCH] Add noscan, no_ht_coex config options } else if (os_strcmp(buf, "ht_capab") == 0) { --- a/src/ap/ap_config.h +++ b/src/ap/ap_config.h -@@ -1122,6 +1122,8 @@ struct hostapd_config { +@@ -1125,6 +1125,8 @@ struct hostapd_config { int ht_op_mode_fixed; u16 ht_capab; @@ -29,7 +29,7 @@ Subject: [PATCH] Add noscan, no_ht_coex config options int no_pri_sec_switch; --- a/src/ap/hw_features.c +++ b/src/ap/hw_features.c -@@ -573,7 +573,8 @@ static int ieee80211n_check_40mhz(struct +@@ -567,7 +567,8 @@ static int ieee80211n_check_40mhz(struct int ret; /* Check that HT40 is used and PRI / SEC switch is allowed */ diff --git a/package/network/services/hostapd/patches/301-mesh-noscan.patch b/package/network/services/hostapd/patches/301-mesh-noscan.patch index e5fd053232..175b76c60b 100644 --- a/package/network/services/hostapd/patches/301-mesh-noscan.patch +++ b/package/network/services/hostapd/patches/301-mesh-noscan.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also --- a/wpa_supplicant/config.c +++ b/wpa_supplicant/config.c -@@ -2639,6 +2639,7 @@ static const struct parse_data ssid_fiel +@@ -2668,6 +2668,7 @@ static const struct parse_data ssid_fiel #else /* CONFIG_MESH */ { INT_RANGE(mode, 0, 4) }, #endif /* CONFIG_MESH */ @@ -15,17 +15,17 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also { STR(id_str) }, --- a/wpa_supplicant/config_file.c +++ b/wpa_supplicant/config_file.c -@@ -775,6 +775,7 @@ static void wpa_config_write_network(FIL +@@ -867,6 +867,7 @@ static void wpa_config_write_network(FIL #endif /* IEEE8021X_EAPOL */ INT(mode); INT(no_auto_peer); + INT(noscan); - INT(mesh_fwding); + INT_DEF(mesh_fwding, DEFAULT_MESH_FWDING); INT(frequency); INT(enable_edmg); --- a/wpa_supplicant/config_ssid.h +++ b/wpa_supplicant/config_ssid.h -@@ -1035,6 +1035,8 @@ struct wpa_ssid { +@@ -1063,6 +1063,8 @@ struct wpa_ssid { */ int no_auto_peer; @@ -36,7 +36,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also * --- a/wpa_supplicant/mesh.c +++ b/wpa_supplicant/mesh.c -@@ -506,6 +506,8 @@ static int wpa_supplicant_mesh_init(stru +@@ -509,6 +509,8 @@ static int wpa_supplicant_mesh_init(stru frequency); goto out_free; } @@ -47,7 +47,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also /* --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -2903,7 +2903,7 @@ static bool ibss_mesh_can_use_vht(struct +@@ -3044,7 +3044,7 @@ static bool ibss_mesh_can_use_vht(struct const struct wpa_ssid *ssid, struct hostapd_hw_modes *mode) { @@ -56,7 +56,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also return false; if (!drv_supports_vht(wpa_s, ssid)) -@@ -2976,7 +2976,7 @@ static void ibss_mesh_select_40mhz(struc +@@ -3117,7 +3117,7 @@ static void ibss_mesh_select_40mhz(struc int i, res; unsigned int j; static const int ht40plus[] = { @@ -65,7 +65,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also 149, 157, 165, 173, 184, 192 }; int ht40 = -1; -@@ -3227,7 +3227,7 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3414,7 +3414,7 @@ void ibss_mesh_setup_freq(struct wpa_sup int ieee80211_mode = wpas_mode_to_ieee80211_mode(ssid->mode); enum hostapd_hw_mode hw_mode; struct hostapd_hw_modes *mode = NULL; @@ -74,7 +74,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also u8 channel; bool is_6ghz, is_24ghz; bool dfs_enabled = wpa_s->conf->country[0] && (wpa_s->drv_flags & WPA_DRIVER_FLAGS_RADAR); -@@ -3271,6 +3271,8 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3458,6 +3458,8 @@ void ibss_mesh_setup_freq(struct wpa_sup freq->he_enabled = ibss_mesh_can_use_he(wpa_s, ssid, mode, ieee80211_mode); freq->channel = channel; diff --git a/package/network/services/hostapd/patches/310-rescan_immediately.patch b/package/network/services/hostapd/patches/310-rescan_immediately.patch index 038bce9e9d..83b616116f 100644 --- a/package/network/services/hostapd/patches/310-rescan_immediately.patch +++ b/package/network/services/hostapd/patches/310-rescan_immediately.patch @@ -5,7 +5,7 @@ Subject: [PATCH] rescan_immediately.patch --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -6073,7 +6073,7 @@ wpa_supplicant_alloc(struct wpa_supplica +@@ -6342,7 +6342,7 @@ wpa_supplicant_alloc(struct wpa_supplica if (wpa_s == NULL) return NULL; wpa_s->scan_req = INITIAL_SCAN_REQ; diff --git a/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch b/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch deleted file mode 100644 index e757a6df00..0000000000 --- a/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch +++ /dev/null @@ -1,16 +0,0 @@ -From ee68734929edb30f90a95bc3150038333b345476 Mon Sep 17 00:00:00 2001 -From: Felix Fietkau -Date: Sun, 30 Jun 2013 21:01:13 +0000 -Subject: [PATCH] nl80211_fix_set_freq.patch - ---- a/src/drivers/driver_nl80211.c -+++ b/src/drivers/driver_nl80211.c -@@ -5512,7 +5512,7 @@ static int nl80211_set_channel(struct i8 - freq->he_enabled, freq->eht_enabled, freq->bandwidth, - freq->center_freq1, freq->center_freq2); - -- msg = nl80211_drv_msg(drv, 0, set_chan ? NL80211_CMD_SET_CHANNEL : -+ msg = nl80211_bss_msg(bss, 0, set_chan ? NL80211_CMD_SET_CHANNEL : - NL80211_CMD_SET_WIPHY); - if (!msg || nl80211_put_freq_params(msg, freq) < 0) { - nlmsg_free(msg); diff --git a/package/network/services/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch b/package/network/services/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch index 4a5852af2e..8e2d7fc8a4 100644 --- a/package/network/services/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch +++ b/package/network/services/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch @@ -5,7 +5,7 @@ Subject: [PATCH] wpa_supplicant: fix calling channel switch via wpa_cli on --- a/wpa_supplicant/ap.c +++ b/wpa_supplicant/ap.c -@@ -1846,17 +1846,37 @@ int ap_switch_channel(struct wpa_supplic +@@ -1849,17 +1849,37 @@ int ap_switch_channel(struct wpa_supplic #ifdef CONFIG_CTRL_IFACE diff --git a/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch b/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch index c3b3ded908..6b3baea558 100644 --- a/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch +++ b/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch @@ -4,7 +4,7 @@ Subject: [PATCH] nl80211_del_beacon_bss.patch --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -6253,8 +6253,7 @@ static void nl80211_teardown_ap(struct i +@@ -6381,8 +6381,7 @@ static void nl80211_teardown_ap(struct i nl80211_mgmt_unsubscribe(bss, "AP teardown"); nl80211_put_wiphy_data_ap(bss); diff --git a/package/network/services/hostapd/patches/410-limit_debug_messages.patch b/package/network/services/hostapd/patches/410-limit_debug_messages.patch index 58dd415f09..8f136763ed 100644 --- a/package/network/services/hostapd/patches/410-limit_debug_messages.patch +++ b/package/network/services/hostapd/patches/410-limit_debug_messages.patch @@ -85,7 +85,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to char *buf; --- a/src/utils/wpa_debug.h +++ b/src/utils/wpa_debug.h -@@ -51,6 +51,17 @@ void wpa_debug_close_file(void); +@@ -52,6 +52,17 @@ void wpa_debug_close_file(void); void wpa_debug_setup_stdout(void); void wpa_debug_stop_log(void); @@ -103,7 +103,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to /** * wpa_debug_printf_timestamp - Print timestamp for debug output * -@@ -71,9 +82,15 @@ void wpa_debug_print_timestamp(void); +@@ -72,9 +83,15 @@ void wpa_debug_print_timestamp(void); * * Note: New line '\n' is added to the end of the text when printing to stdout. */ @@ -120,7 +120,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to /** * wpa_hexdump - conditional hex dump * @level: priority level (MSG_*) of the message -@@ -85,7 +102,13 @@ PRINTF_FORMAT(2, 3); +@@ -86,7 +103,13 @@ PRINTF_FORMAT(2, 3); * output may be directed to stdout, stderr, and/or syslog based on * configuration. The contents of buf is printed out has hex dump. */ @@ -135,7 +135,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to static inline void wpa_hexdump_buf(int level, const char *title, const struct wpabuf *buf) -@@ -107,7 +130,13 @@ static inline void wpa_hexdump_buf(int l +@@ -108,7 +131,13 @@ static inline void wpa_hexdump_buf(int l * like wpa_hexdump(), but by default, does not include secret keys (passwords, * etc.) in debug output. */ @@ -150,7 +150,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to static inline void wpa_hexdump_buf_key(int level, const char *title, const struct wpabuf *buf) -@@ -129,8 +158,14 @@ static inline void wpa_hexdump_buf_key(i +@@ -130,8 +159,14 @@ static inline void wpa_hexdump_buf_key(i * the hex numbers and ASCII characters (for printable range) are shown. 16 * bytes per line will be shown. */ @@ -167,7 +167,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to /** * wpa_hexdump_ascii_key - conditional hex dump, hide keys -@@ -146,8 +181,14 @@ void wpa_hexdump_ascii(int level, const +@@ -147,8 +182,14 @@ void wpa_hexdump_ascii(int level, const * bytes per line will be shown. This works like wpa_hexdump_ascii(), but by * default, does not include secret keys (passwords, etc.) in debug output. */ @@ -184,7 +184,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to /* * wpa_dbg() behaves like wpa_msg(), but it can be removed from build to reduce -@@ -184,7 +225,12 @@ void wpa_hexdump_ascii_key(int level, co +@@ -185,7 +226,12 @@ void wpa_hexdump_ascii_key(int level, co * * Note: New line '\n' is added to the end of the text when printing to stdout. */ @@ -198,7 +198,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to /** * wpa_msg_ctrl - Conditional printf for ctrl_iface monitors -@@ -198,8 +244,13 @@ void wpa_msg(void *ctx, int level, const +@@ -199,8 +245,13 @@ void wpa_msg(void *ctx, int level, const * attached ctrl_iface monitors. In other words, it can be used for frequent * events that do not need to be sent to syslog. */ diff --git a/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch b/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch index cc7b131787..bedac7f606 100644 --- a/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch +++ b/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch @@ -14,7 +14,7 @@ Signed-hostap: Antonio Quartulli --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -1004,6 +1004,9 @@ struct wpa_driver_associate_params { +@@ -1012,6 +1012,9 @@ struct wpa_driver_associate_params { * responsible for selecting with which BSS to associate. */ const u8 *bssid; @@ -34,7 +34,7 @@ Signed-hostap: Antonio Quartulli #include "config.h" -@@ -2421,6 +2422,97 @@ static char * wpa_config_write_mac_value +@@ -2449,6 +2450,97 @@ static char * wpa_config_write_mac_value #endif /* NO_CONFIG_WRITE */ @@ -132,7 +132,7 @@ Signed-hostap: Antonio Quartulli /* Helper macros for network block parser */ #ifdef OFFSET -@@ -2713,6 +2805,8 @@ static const struct parse_data ssid_fiel +@@ -2744,6 +2836,8 @@ static const struct parse_data ssid_fiel { INT(ap_max_inactivity) }, { INT(dtim_period) }, { INT(beacon_int) }, @@ -143,7 +143,7 @@ Signed-hostap: Antonio Quartulli { INT_RANGE(macsec_integ_only, 0, 1) }, --- a/wpa_supplicant/config_ssid.h +++ b/wpa_supplicant/config_ssid.h -@@ -879,6 +879,9 @@ struct wpa_ssid { +@@ -907,6 +907,9 @@ struct wpa_ssid { */ void *parent_cred; @@ -155,7 +155,7 @@ Signed-hostap: Antonio Quartulli * macsec_policy - Determines the policy for MACsec secure session --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -4435,6 +4435,12 @@ static void wpas_start_assoc_cb(struct w +@@ -4635,6 +4635,12 @@ static void wpas_start_assoc_cb(struct w params.beacon_int = ssid->beacon_int; else params.beacon_int = wpa_s->conf->beacon_int; diff --git a/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch b/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch index 80ccb1c207..b30e0409a6 100644 --- a/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch +++ b/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch @@ -19,7 +19,7 @@ Tested-by: Simon Wunderlich --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -1920,6 +1920,7 @@ struct wpa_driver_mesh_join_params { +@@ -1932,6 +1932,7 @@ struct wpa_driver_mesh_join_params { #define WPA_DRIVER_MESH_FLAG_AMPE 0x00000008 unsigned int flags; bool handle_dfs; @@ -29,7 +29,7 @@ Tested-by: Simon Wunderlich struct wpa_driver_set_key_params { --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -12142,6 +12142,18 @@ static int nl80211_put_mesh_id(struct nl +@@ -12333,6 +12333,18 @@ static int nl80211_put_mesh_id(struct nl } @@ -48,7 +48,7 @@ Tested-by: Simon Wunderlich static int nl80211_put_mesh_config(struct nl_msg *msg, struct wpa_driver_mesh_bss_params *params) { -@@ -12203,6 +12215,7 @@ static int nl80211_join_mesh(struct i802 +@@ -12394,6 +12406,7 @@ static int nl80211_join_mesh(struct i802 nl80211_put_basic_rates(msg, params->basic_rates) || nl80211_put_mesh_id(msg, params->meshid, params->meshid_len) || nl80211_put_beacon_int(msg, params->beacon_int) || @@ -58,7 +58,7 @@ Tested-by: Simon Wunderlich --- a/wpa_supplicant/mesh.c +++ b/wpa_supplicant/mesh.c -@@ -632,6 +632,7 @@ int wpa_supplicant_join_mesh(struct wpa_ +@@ -636,6 +636,7 @@ int wpa_supplicant_join_mesh(struct wpa_ params->meshid = ssid->ssid; params->meshid_len = ssid->ssid_len; diff --git a/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch b/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch index 9d39db5a63..1975c2b178 100644 --- a/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch +++ b/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix issues with disabling obss scan when using fixed_freq on --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -3234,6 +3234,10 @@ void ibss_mesh_setup_freq(struct wpa_sup +@@ -3421,6 +3421,10 @@ void ibss_mesh_setup_freq(struct wpa_sup freq->freq = ssid->frequency; diff --git a/package/network/services/hostapd/patches/600-ubus_support.patch b/package/network/services/hostapd/patches/600-ubus_support.patch index 256d1cfcc4..9310fd2d15 100644 --- a/package/network/services/hostapd/patches/600-ubus_support.patch +++ b/package/network/services/hostapd/patches/600-ubus_support.patch @@ -53,7 +53,7 @@ probe/assoc/auth requests via object subscribe. } --- a/src/ap/beacon.c +++ b/src/ap/beacon.c -@@ -1418,6 +1418,12 @@ void handle_probe_req(struct hostapd_dat +@@ -1437,6 +1437,12 @@ void handle_probe_req(struct hostapd_dat int mld_id; u16 links; #endif /* CONFIG_IEEE80211BE */ @@ -66,7 +66,7 @@ probe/assoc/auth requests via object subscribe. if (hapd->iconf->rssi_ignore_probe_request && ssi_signal && ssi_signal < hapd->iconf->rssi_ignore_probe_request) -@@ -1604,6 +1610,12 @@ void handle_probe_req(struct hostapd_dat +@@ -1623,6 +1629,12 @@ void handle_probe_req(struct hostapd_dat } #endif /* CONFIG_P2P */ @@ -116,7 +116,7 @@ probe/assoc/auth requests via object subscribe. #ifdef CONFIG_P2P if (elems.p2p) { wpabuf_free(sta->p2p_ie); -@@ -1369,6 +1379,7 @@ void hostapd_event_ch_switch(struct host +@@ -1385,6 +1395,7 @@ void hostapd_event_ch_switch(struct host wpa_msg(hapd->msg_ctx, MSG_INFO, AP_CSA_FINISHED "freq=%d dfs=%d", freq, is_dfs); @@ -126,7 +126,7 @@ probe/assoc/auth requests via object subscribe. if (is_dfs0 > 0 && --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -475,6 +475,7 @@ void hostapd_free_hapd_data(struct hosta +@@ -479,6 +479,7 @@ void hostapd_free_hapd_data(struct hosta hapd->beacon_set_done = 0; wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface); @@ -134,7 +134,7 @@ probe/assoc/auth requests via object subscribe. accounting_deinit(hapd); hostapd_deinit_wpa(hapd); vlan_deinit(hapd); -@@ -1316,6 +1317,8 @@ static int hostapd_start_beacon(struct h +@@ -1324,6 +1325,8 @@ static int hostapd_start_beacon(struct h if (hapd->driver && hapd->driver->set_operstate) hapd->driver->set_operstate(hapd->drv_priv, 1); @@ -143,7 +143,7 @@ probe/assoc/auth requests via object subscribe. return 0; } -@@ -2525,6 +2528,7 @@ static int hostapd_setup_interface_compl +@@ -2546,6 +2549,7 @@ static int hostapd_setup_interface_compl if (err) goto fail; @@ -151,7 +151,7 @@ probe/assoc/auth requests via object subscribe. wpa_printf(MSG_DEBUG, "Completing interface initialization"); if (iface->freq) { #ifdef NEED_AP_MLME -@@ -2750,6 +2754,7 @@ dfs_offload: +@@ -2771,6 +2775,7 @@ dfs_offload: fail: wpa_printf(MSG_ERROR, "Interface initialization failed"); @@ -159,7 +159,7 @@ probe/assoc/auth requests via object subscribe. if (iface->is_no_ir) { hostapd_set_state(iface, HAPD_IFACE_NO_IR); -@@ -3478,6 +3483,7 @@ void hostapd_interface_deinit_free(struc +@@ -3501,6 +3506,7 @@ void hostapd_interface_deinit_free(struc (unsigned int) iface->conf->num_bss); driver = iface->bss[0]->driver; drv_priv = iface->bss[0]->drv_priv; @@ -195,7 +195,7 @@ probe/assoc/auth requests via object subscribe. struct hostapd_iface * hostapd_alloc_iface(void); --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c -@@ -2897,7 +2897,7 @@ static void handle_auth(struct hostapd_d +@@ -2941,7 +2941,7 @@ static void handle_auth(struct hostapd_d u16 auth_alg, auth_transaction, status_code; u16 resp = WLAN_STATUS_SUCCESS; struct sta_info *sta = NULL; @@ -204,7 +204,7 @@ probe/assoc/auth requests via object subscribe. u16 fc; const u8 *challenge = NULL; u8 resp_ies[2 + WLAN_AUTH_CHALLENGE_LEN]; -@@ -2908,6 +2908,11 @@ static void handle_auth(struct hostapd_d +@@ -2952,6 +2952,11 @@ static void handle_auth(struct hostapd_d #ifdef CONFIG_IEEE80211BE bool mld_sta = false; #endif /* CONFIG_IEEE80211BE */ @@ -216,7 +216,7 @@ probe/assoc/auth requests via object subscribe. if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth)) { wpa_printf(MSG_INFO, "handle_auth - too short payload (len=%lu)", -@@ -3104,6 +3109,13 @@ static void handle_auth(struct hostapd_d +@@ -3148,6 +3153,13 @@ static void handle_auth(struct hostapd_d resp = WLAN_STATUS_UNSPECIFIED_FAILURE; goto fail; } @@ -230,7 +230,7 @@ probe/assoc/auth requests via object subscribe. if (res == HOSTAPD_ACL_PENDING) return; -@@ -5367,7 +5379,7 @@ static void handle_assoc(struct hostapd_ +@@ -5477,7 +5489,7 @@ static void handle_assoc(struct hostapd_ int resp = WLAN_STATUS_SUCCESS; u16 reply_res = WLAN_STATUS_UNSPECIFIED_FAILURE; const u8 *pos; @@ -239,7 +239,7 @@ probe/assoc/auth requests via object subscribe. struct sta_info *sta; u8 *tmp = NULL; #ifdef CONFIG_FILS -@@ -5609,6 +5621,11 @@ static void handle_assoc(struct hostapd_ +@@ -5719,6 +5731,11 @@ static void handle_assoc(struct hostapd_ left = res; } #endif /* CONFIG_FILS */ @@ -251,7 +251,7 @@ probe/assoc/auth requests via object subscribe. /* followed by SSID and Supported rates; and HT capabilities if 802.11n * is used */ -@@ -5711,6 +5728,13 @@ static void handle_assoc(struct hostapd_ +@@ -5826,6 +5843,13 @@ static void handle_assoc(struct hostapd_ if (set_beacon) ieee802_11_update_beacons(hapd->iface); @@ -265,7 +265,7 @@ probe/assoc/auth requests via object subscribe. fail: /* -@@ -5940,6 +5964,7 @@ static void handle_disassoc(struct hosta +@@ -6055,6 +6079,7 @@ static void handle_disassoc(struct hosta (unsigned long) len); return; } @@ -273,7 +273,7 @@ probe/assoc/auth requests via object subscribe. sta = ap_get_sta(hapd, mgmt->sa); if (!sta) { -@@ -5971,6 +5996,8 @@ static void handle_deauth(struct hostapd +@@ -6086,6 +6111,8 @@ static void handle_deauth(struct hostapd /* Clear the PTKSA cache entries for PASN */ ptksa_cache_flush(hapd->ptksa, mgmt->sa, WPA_CIPHER_NONE); @@ -305,7 +305,7 @@ probe/assoc/auth requests via object subscribe. wpa_printf(MSG_DEBUG, "RRM action %u is not supported", --- a/src/ap/sta_info.c +++ b/src/ap/sta_info.c -@@ -542,6 +542,7 @@ void ap_handle_timer(void *eloop_ctx, vo +@@ -543,6 +543,7 @@ void ap_handle_timer(void *eloop_ctx, vo hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_INFO, "deauthenticated due to " "local deauth request"); @@ -313,7 +313,7 @@ probe/assoc/auth requests via object subscribe. ap_free_sta(hapd, sta); return; } -@@ -699,6 +700,7 @@ skip_poll: +@@ -700,6 +701,7 @@ skip_poll: mlme_deauthenticate_indication( hapd, sta, WLAN_REASON_PREV_AUTH_NOT_VALID); @@ -321,7 +321,7 @@ probe/assoc/auth requests via object subscribe. ap_free_sta(hapd, sta); break; } -@@ -1521,15 +1523,28 @@ void ap_sta_set_authorized_event(struct +@@ -1588,15 +1590,28 @@ void ap_sta_set_authorized_event(struct os_snprintf(buf, sizeof(buf), MACSTR, MAC2STR(sta->addr)); if (authorized) { @@ -350,7 +350,7 @@ probe/assoc/auth requests via object subscribe. #ifdef CONFIG_P2P if (wpa_auth_get_ip_addr(sta->wpa_sm, ip_addr_buf) == 0) { os_snprintf(ip_addr, sizeof(ip_addr), -@@ -1540,6 +1555,13 @@ void ap_sta_set_authorized_event(struct +@@ -1607,6 +1622,13 @@ void ap_sta_set_authorized_event(struct } #endif /* CONFIG_P2P */ @@ -364,7 +364,7 @@ probe/assoc/auth requests via object subscribe. keyid = ap_sta_wpa_get_keyid(hapd, sta); if (keyid) { os_snprintf(keyid_buf, sizeof(keyid_buf), -@@ -1558,17 +1580,19 @@ void ap_sta_set_authorized_event(struct +@@ -1625,17 +1647,19 @@ void ap_sta_set_authorized_event(struct dpp_pkhash, SHA256_MAC_LEN); } @@ -390,7 +390,7 @@ probe/assoc/auth requests via object subscribe. hapd->msg_ctx_parent != hapd->msg_ctx) --- a/src/ap/sta_info.h +++ b/src/ap/sta_info.h -@@ -304,6 +304,7 @@ struct sta_info { +@@ -305,6 +305,7 @@ struct sta_info { #endif /* CONFIG_TESTING_OPTIONS */ #ifdef CONFIG_AIRTIME_POLICY unsigned int airtime_weight; @@ -478,7 +478,7 @@ probe/assoc/auth requests via object subscribe. } --- a/src/ap/wpa_auth_glue.c +++ b/src/ap/wpa_auth_glue.c -@@ -328,6 +328,7 @@ static void hostapd_wpa_auth_psk_failure +@@ -331,6 +331,7 @@ static void hostapd_wpa_auth_psk_failure struct hostapd_data *hapd = ctx; wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_POSSIBLE_PSK_MISMATCH MACSTR, MAC2STR(addr)); @@ -650,7 +650,7 @@ probe/assoc/auth requests via object subscribe. ifdef CONFIG_CODE_COVERAGE CFLAGS += -O0 -fprofile-arcs -ftest-coverage -U_FORTIFY_SOURCE LIBS += -lgcov -@@ -1043,6 +1050,9 @@ ifdef CONFIG_CTRL_IFACE_MIB +@@ -1044,6 +1051,9 @@ ifdef CONFIG_CTRL_IFACE_MIB CFLAGS += -DCONFIG_CTRL_IFACE_MIB endif OBJS += ../src/ap/ctrl_iface_ap.o @@ -683,7 +683,7 @@ probe/assoc/auth requests via object subscribe. break; --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -7920,6 +7920,8 @@ struct wpa_supplicant * wpa_supplicant_a +@@ -8195,6 +8195,8 @@ struct wpa_supplicant * wpa_supplicant_a } #endif /* CONFIG_P2P */ @@ -692,7 +692,7 @@ probe/assoc/auth requests via object subscribe. return wpa_s; } -@@ -7946,6 +7948,8 @@ int wpa_supplicant_remove_iface(struct w +@@ -8221,6 +8223,8 @@ int wpa_supplicant_remove_iface(struct w struct wpa_supplicant *parent = wpa_s->parent; #endif /* CONFIG_MESH */ @@ -701,7 +701,7 @@ probe/assoc/auth requests via object subscribe. /* Remove interface from the global list of interfaces */ prev = global->ifaces; if (prev == wpa_s) { -@@ -8292,8 +8296,12 @@ int wpa_supplicant_run(struct wpa_global +@@ -8567,8 +8571,12 @@ int wpa_supplicant_run(struct wpa_global eloop_register_signal_terminate(wpa_supplicant_terminate, global); eloop_register_signal_reconfig(wpa_supplicant_reconfig, global); @@ -733,7 +733,7 @@ probe/assoc/auth requests via object subscribe. }; -@@ -693,6 +696,7 @@ struct wpa_supplicant { +@@ -705,6 +708,7 @@ struct wpa_supplicant { unsigned char own_addr[ETH_ALEN]; unsigned char perm_addr[ETH_ALEN]; char ifname[100]; diff --git a/package/network/services/hostapd/patches/601-ucode_support.patch b/package/network/services/hostapd/patches/601-ucode_support.patch index 5a88687cf2..1e1f399765 100644 --- a/package/network/services/hostapd/patches/601-ucode_support.patch +++ b/package/network/services/hostapd/patches/601-ucode_support.patch @@ -34,7 +34,7 @@ as adding/removing interfaces. ifdef CONFIG_CODE_COVERAGE --- a/hostapd/ctrl_iface.c +++ b/hostapd/ctrl_iface.c -@@ -5998,6 +5998,7 @@ try_again: +@@ -6031,6 +6031,7 @@ try_again: return -1; } @@ -42,7 +42,7 @@ as adding/removing interfaces. wpa_msg_register_cb(hostapd_ctrl_iface_msg_cb); return 0; -@@ -6099,6 +6100,7 @@ fail: +@@ -6132,6 +6133,7 @@ fail: os_free(fname); interface->global_ctrl_sock = s; @@ -52,7 +52,7 @@ as adding/removing interfaces. --- a/hostapd/main.c +++ b/hostapd/main.c -@@ -1033,6 +1033,7 @@ int main(int argc, char *argv[]) +@@ -1074,6 +1074,7 @@ int main(int argc, char *argv[]) } hostapd_global_ctrl_iface_init(&interfaces); @@ -60,7 +60,7 @@ as adding/removing interfaces. if (hostapd_global_run(&interfaces, daemonize, pid_file)) { wpa_printf(MSG_ERROR, "Failed to start eloop"); -@@ -1042,6 +1043,7 @@ int main(int argc, char *argv[]) +@@ -1083,6 +1084,7 @@ int main(int argc, char *argv[]) ret = 0; out: @@ -70,7 +70,7 @@ as adding/removing interfaces. for (i = 0; i < interfaces.count; i++) { --- a/src/ap/ap_drv_ops.h +++ b/src/ap/ap_drv_ops.h -@@ -409,6 +409,23 @@ static inline int hostapd_drv_stop_ap(st +@@ -410,6 +410,23 @@ static inline int hostapd_drv_stop_ap(st return hapd->driver->stop_ap(hapd->drv_priv, link_id); } @@ -96,7 +96,7 @@ as adding/removing interfaces. { --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -255,6 +255,8 @@ int hostapd_reload_config(struct hostapd +@@ -259,6 +259,8 @@ int hostapd_reload_config(struct hostapd struct hostapd_config *newconf, *oldconf; size_t j; @@ -105,7 +105,7 @@ as adding/removing interfaces. if (iface->config_fname == NULL) { /* Only in-memory config in use - assume it has been updated */ hostapd_clear_old(iface); -@@ -475,6 +477,7 @@ void hostapd_free_hapd_data(struct hosta +@@ -479,6 +481,7 @@ void hostapd_free_hapd_data(struct hosta hapd->beacon_set_done = 0; wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface); @@ -113,7 +113,7 @@ as adding/removing interfaces. hostapd_ubus_free_bss(hapd); accounting_deinit(hapd); hostapd_deinit_wpa(hapd); -@@ -729,6 +732,7 @@ void hostapd_cleanup_iface_partial(struc +@@ -737,6 +740,7 @@ void hostapd_cleanup_iface_partial(struc static void hostapd_cleanup_iface(struct hostapd_iface *iface) { wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface); @@ -121,7 +121,7 @@ as adding/removing interfaces. eloop_cancel_timeout(hostapd_interface_setup_failure_handler, iface, NULL); -@@ -1318,6 +1322,7 @@ static int hostapd_start_beacon(struct h +@@ -1326,6 +1330,7 @@ static int hostapd_start_beacon(struct h hapd->driver->set_operstate(hapd->drv_priv, 1); hostapd_ubus_add_bss(hapd); @@ -129,7 +129,7 @@ as adding/removing interfaces. return 0; } -@@ -1393,8 +1398,7 @@ static int hostapd_bss_radius_init(struc +@@ -1401,8 +1406,7 @@ static int hostapd_bss_radius_init(struc * initialized. Most of the modules that are initialized here will be * deinitialized in hostapd_cleanup(). */ @@ -139,7 +139,7 @@ as adding/removing interfaces. { struct hostapd_bss_config *conf = hapd->conf; u8 ssid[SSID_MAX_LEN + 1]; -@@ -1510,6 +1514,8 @@ setup_mld: +@@ -1518,6 +1522,8 @@ setup_mld: } #endif /* CONFIG_IEEE80211BE */ @@ -148,7 +148,7 @@ as adding/removing interfaces. if (conf->wmm_enabled < 0) conf->wmm_enabled = hapd->iconf->ieee80211n | hapd->iconf->ieee80211ax; -@@ -2487,7 +2493,7 @@ static int hostapd_owe_iface_iter2(struc +@@ -2508,7 +2514,7 @@ static int hostapd_owe_iface_iter2(struc #endif /* CONFIG_OWE */ @@ -157,7 +157,7 @@ as adding/removing interfaces. { #ifdef CONFIG_OWE /* Check whether the enabled BSS can complete OWE transition mode -@@ -2954,7 +2960,7 @@ hostapd_alloc_bss_data(struct hostapd_if +@@ -2975,7 +2981,7 @@ hostapd_alloc_bss_data(struct hostapd_if } @@ -166,7 +166,7 @@ as adding/removing interfaces. { if (!hapd) return; -@@ -4015,7 +4021,8 @@ int hostapd_remove_iface(struct hapd_int +@@ -4035,7 +4041,8 @@ int hostapd_remove_iface(struct hapd_int hapd_iface = interfaces->iface[i]; if (hapd_iface == NULL) return -1; @@ -219,10 +219,10 @@ as adding/removing interfaces. const char *config_fname, int debug); +int hostapd_setup_bss(struct hostapd_data *hapd, int first, bool start_beacon); +void hostapd_bss_deinit(struct hostapd_data *hapd); + void hostapd_bss_setup_multi_link(struct hostapd_data *hapd, + struct hapd_interfaces *interfaces); void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta, - int reassoc); - void hostapd_interface_deinit_free(struct hostapd_iface *iface); -@@ -815,6 +824,7 @@ hostapd_switch_channel_fallback(struct h +@@ -817,6 +826,7 @@ hostapd_switch_channel_fallback(struct h void hostapd_cleanup_cs_params(struct hostapd_data *hapd); void hostapd_periodic_iface(struct hostapd_iface *iface); int hostapd_owe_trans_get_info(struct hostapd_data *hapd); @@ -232,7 +232,7 @@ as adding/removing interfaces. void hostapd_switch_color(struct hostapd_data *hapd, u64 bitmap); --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -3928,6 +3928,25 @@ struct wpa_driver_ops { +@@ -4003,6 +4003,25 @@ struct wpa_driver_ops { const char *ifname); /** @@ -258,7 +258,7 @@ as adding/removing interfaces. * set_sta_vlan - Bind a station into a specific interface (AP only) * @priv: Private driver interface data * @ifname: Interface (main or virtual BSS or VLAN) -@@ -6720,6 +6739,7 @@ union wpa_event_data { +@@ -6818,6 +6837,7 @@ union wpa_event_data { /** * struct ch_switch @@ -266,7 +266,7 @@ as adding/removing interfaces. * @freq: Frequency of new channel in MHz * @ht_enabled: Whether this is an HT channel * @ch_offset: Secondary channel offset -@@ -6730,6 +6750,7 @@ union wpa_event_data { +@@ -6828,6 +6848,7 @@ union wpa_event_data { * @punct_bitmap: Puncturing bitmap */ struct ch_switch { @@ -293,7 +293,7 @@ as adding/removing interfaces. static struct nl_sock * nl_create_handle(struct nl_cb *cb, const char *dbg) { -@@ -431,6 +441,11 @@ static int no_seq_check(struct nl_msg *m +@@ -437,6 +447,11 @@ static int no_seq_check(struct nl_msg *m return NL_OK; } @@ -305,7 +305,7 @@ as adding/removing interfaces. static void nl80211_nlmsg_clear(struct nl_msg *msg) { -@@ -504,6 +519,8 @@ int send_and_recv(struct nl80211_global +@@ -511,6 +526,8 @@ int send_and_recv_glb(struct nl80211_glo if (!msg) return -ENOMEM; @@ -314,15 +314,15 @@ as adding/removing interfaces. err.err = -ENOMEM; s_nl_cb = nl_socket_get_cb(nl_handle); -@@ -538,6 +555,7 @@ int send_and_recv(struct nl80211_global - err.orig_msg = msg; +@@ -546,6 +563,7 @@ int send_and_recv_glb(struct nl80211_glo err.err_info = err_info; + err.drv = drv; + nl_cb_set(cb, NL_CB_MSG_IN, NL_CB_CUSTOM, debug_handler, NULL); nl_cb_err(cb, NL_CB_CUSTOM, error_handler, &err); nl_cb_set(cb, NL_CB_FINISH, NL_CB_CUSTOM, finish_handler, &err.err); if (ack_handler_custom) { -@@ -941,6 +959,7 @@ nl80211_get_wiphy_data_ap(struct i802_bs +@@ -949,6 +967,7 @@ nl80211_get_wiphy_data_ap(struct i802_bs os_free(w); return NULL; } @@ -330,7 +330,7 @@ as adding/removing interfaces. nl_cb_set(w->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM, no_seq_check, NULL); nl_cb_set(w->nl_cb, NL_CB_VALID, NL_CB_CUSTOM, -@@ -1355,7 +1374,7 @@ static void wpa_driver_nl80211_event_rtm +@@ -1364,7 +1383,7 @@ static void wpa_driver_nl80211_event_rtm } wpa_printf(MSG_DEBUG, "nl80211: Interface down (%s/%s)", namebuf, ifname); @@ -339,7 +339,7 @@ as adding/removing interfaces. wpa_printf(MSG_DEBUG, "nl80211: Not the main interface (%s) - do not indicate interface down", drv->first_bss->ifname); -@@ -1391,7 +1410,7 @@ static void wpa_driver_nl80211_event_rtm +@@ -1400,7 +1419,7 @@ static void wpa_driver_nl80211_event_rtm } wpa_printf(MSG_DEBUG, "nl80211: Interface up (%s/%s)", namebuf, ifname); @@ -348,7 +348,7 @@ as adding/removing interfaces. wpa_printf(MSG_DEBUG, "nl80211: Not the main interface (%s) - do not indicate interface up", drv->first_bss->ifname); -@@ -2037,6 +2056,7 @@ static int wpa_driver_nl80211_init_nl_gl +@@ -2046,6 +2065,7 @@ static int wpa_driver_nl80211_init_nl_gl genl_family_put(family); nl_cache_free(cache); @@ -356,7 +356,7 @@ as adding/removing interfaces. nl_cb_set(global->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM, no_seq_check, NULL); nl_cb_set(global->nl_cb, NL_CB_VALID, NL_CB_CUSTOM, -@@ -2207,6 +2227,7 @@ static int nl80211_init_bss(struct i802_ +@@ -2216,6 +2236,7 @@ static int nl80211_init_bss(struct i802_ if (!bss->nl_cb) return -1; @@ -364,7 +364,7 @@ as adding/removing interfaces. nl_cb_set(bss->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM, no_seq_check, NULL); nl_cb_set(bss->nl_cb, NL_CB_VALID, NL_CB_CUSTOM, -@@ -8704,6 +8725,7 @@ static void *i802_init(struct hostapd_da +@@ -8844,6 +8865,7 @@ static void *i802_init(struct hostapd_da char master_ifname[IFNAMSIZ]; int ifindex, br_ifindex = 0; int br_added = 0; @@ -372,7 +372,7 @@ as adding/removing interfaces. bss = wpa_driver_nl80211_drv_init(hapd, params->ifname, params->global_priv, 1, -@@ -8763,21 +8785,17 @@ static void *i802_init(struct hostapd_da +@@ -8904,21 +8926,17 @@ static void *i802_init(struct hostapd_da (params->num_bridge == 0 || !params->bridge[0])) add_ifidx(drv, br_ifindex, drv->ifindex); @@ -404,7 +404,7 @@ as adding/removing interfaces. } if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_RX) { -@@ -9146,6 +9164,50 @@ static int wpa_driver_nl80211_if_remove( +@@ -9287,6 +9305,50 @@ static int wpa_driver_nl80211_if_remove( return 0; } @@ -455,7 +455,7 @@ as adding/removing interfaces. static int cookie_handler(struct nl_msg *msg, void *arg) { -@@ -10962,6 +11024,37 @@ static bool nl80211_is_drv_shared(void * +@@ -11150,6 +11212,37 @@ static bool nl80211_is_drv_shared(void * #endif /* CONFIG_IEEE80211BE */ @@ -493,7 +493,7 @@ as adding/removing interfaces. static int driver_nl80211_send_mlme(void *priv, const u8 *data, size_t data_len, int noack, unsigned int freq, -@@ -14510,6 +14603,8 @@ const struct wpa_driver_ops wpa_driver_n +@@ -14874,6 +14967,8 @@ const struct wpa_driver_ops wpa_driver_n .set_acl = wpa_driver_nl80211_set_acl, .if_add = wpa_driver_nl80211_if_add, .if_remove = driver_nl80211_if_remove, @@ -504,7 +504,7 @@ as adding/removing interfaces. .sta_add = wpa_driver_nl80211_sta_add, --- a/src/drivers/driver_nl80211_event.c +++ b/src/drivers/driver_nl80211_event.c -@@ -1197,6 +1197,7 @@ static void mlme_event_ch_switch(struct +@@ -1199,6 +1199,7 @@ static void mlme_event_ch_switch(struct struct nlattr *bw, struct nlattr *cf1, struct nlattr *cf2, struct nlattr *punct_bitmap, @@ -512,7 +512,7 @@ as adding/removing interfaces. int finished) { struct i802_bss *bss; -@@ -1260,6 +1261,8 @@ static void mlme_event_ch_switch(struct +@@ -1262,6 +1263,8 @@ static void mlme_event_ch_switch(struct data.ch_switch.cf1 = nla_get_u32(cf1); if (cf2) data.ch_switch.cf2 = nla_get_u32(cf2); @@ -521,7 +521,7 @@ as adding/removing interfaces. if (link) { data.ch_switch.link_id = nla_get_u8(link); -@@ -4054,6 +4057,7 @@ static void do_process_drv_event(struct +@@ -4114,6 +4117,7 @@ static void do_process_drv_event(struct tb[NL80211_ATTR_CENTER_FREQ1], tb[NL80211_ATTR_CENTER_FREQ2], tb[NL80211_ATTR_PUNCT_BITMAP], @@ -529,7 +529,7 @@ as adding/removing interfaces. 0); break; case NL80211_CMD_CH_SWITCH_NOTIFY: -@@ -4066,6 +4070,7 @@ static void do_process_drv_event(struct +@@ -4126,6 +4130,7 @@ static void do_process_drv_event(struct tb[NL80211_ATTR_CENTER_FREQ1], tb[NL80211_ATTR_CENTER_FREQ2], tb[NL80211_ATTR_PUNCT_BITMAP], @@ -610,7 +610,7 @@ as adding/removing interfaces. endif ifdef CONFIG_CODE_COVERAGE -@@ -1053,6 +1065,9 @@ OBJS += ../src/ap/ctrl_iface_ap.o +@@ -1054,6 +1066,9 @@ OBJS += ../src/ap/ctrl_iface_ap.o ifdef CONFIG_UBUS OBJS += ../src/ap/ubus.o endif @@ -622,7 +622,7 @@ as adding/removing interfaces. CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c -@@ -6167,6 +6167,7 @@ void supplicant_event(void *ctx, enum wp +@@ -6206,6 +6206,7 @@ void supplicant_event(void *ctx, enum wp event_to_string(event), event); #endif /* CONFIG_NO_STDOUT_DEBUG */ @@ -632,7 +632,7 @@ as adding/removing interfaces. #ifdef CONFIG_FST --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -1151,6 +1151,7 @@ void wpa_supplicant_set_state(struct wpa +@@ -1256,6 +1256,7 @@ void wpa_supplicant_set_state(struct wpa sme_sched_obss_scan(wpa_s, 0); } wpa_s->wpa_state = state; @@ -640,7 +640,7 @@ as adding/removing interfaces. #ifdef CONFIG_BGSCAN if (state == WPA_COMPLETED && wpa_s->current_ssid != wpa_s->bgscan_ssid) -@@ -7921,6 +7922,7 @@ struct wpa_supplicant * wpa_supplicant_a +@@ -8196,6 +8197,7 @@ struct wpa_supplicant * wpa_supplicant_a #endif /* CONFIG_P2P */ wpas_ubus_add_bss(wpa_s); @@ -648,7 +648,7 @@ as adding/removing interfaces. return wpa_s; } -@@ -7948,6 +7950,7 @@ int wpa_supplicant_remove_iface(struct w +@@ -8223,6 +8225,7 @@ int wpa_supplicant_remove_iface(struct w struct wpa_supplicant *parent = wpa_s->parent; #endif /* CONFIG_MESH */ @@ -656,7 +656,7 @@ as adding/removing interfaces. wpas_ubus_free_bss(wpa_s); /* Remove interface from the global list of interfaces */ -@@ -8258,6 +8261,7 @@ struct wpa_global * wpa_supplicant_init( +@@ -8533,6 +8536,7 @@ struct wpa_global * wpa_supplicant_init( eloop_register_timeout(WPA_SUPPLICANT_CLEANUP_INTERVAL, 0, wpas_periodic, global, NULL); @@ -664,7 +664,7 @@ as adding/removing interfaces. return global; } -@@ -8296,12 +8300,8 @@ int wpa_supplicant_run(struct wpa_global +@@ -8571,12 +8575,8 @@ int wpa_supplicant_run(struct wpa_global eloop_register_signal_terminate(wpa_supplicant_terminate, global); eloop_register_signal_reconfig(wpa_supplicant_reconfig, global); @@ -677,7 +677,7 @@ as adding/removing interfaces. return 0; } -@@ -8334,6 +8334,8 @@ void wpa_supplicant_deinit(struct wpa_gl +@@ -8609,6 +8609,8 @@ void wpa_supplicant_deinit(struct wpa_gl wpas_notify_supplicant_deinitialized(global); @@ -696,7 +696,7 @@ as adding/removing interfaces. extern const char *const wpa_supplicant_version; extern const char *const wpa_supplicant_license; -@@ -697,6 +698,7 @@ struct wpa_supplicant { +@@ -709,6 +710,7 @@ struct wpa_supplicant { unsigned char perm_addr[ETH_ALEN]; char ifname[100]; struct wpas_ubus_bss ubus; @@ -730,7 +730,7 @@ as adding/removing interfaces. } +use_sta_psk: - if (!password && sta) { + if (!password && sta && !rx_id) { for (psk = sta->psk; psk; psk = psk->next) { - if (psk->is_passphrase) { - password = psk->passphrase; @@ -758,7 +758,7 @@ as adding/removing interfaces. } } -@@ -3229,6 +3252,12 @@ static void handle_auth(struct hostapd_d +@@ -3273,6 +3296,12 @@ static void handle_auth(struct hostapd_d goto fail; } @@ -773,7 +773,7 @@ as adding/removing interfaces. --- a/src/ap/sta_info.c +++ b/src/ap/sta_info.c -@@ -474,6 +474,11 @@ void ap_free_sta(struct hostapd_data *ha +@@ -475,6 +475,11 @@ void ap_free_sta(struct hostapd_data *ha forced_memzero(sta->last_tk, WPA_TK_MAX_LEN); #endif /* CONFIG_TESTING_OPTIONS */ @@ -785,7 +785,7 @@ as adding/removing interfaces. os_free(sta); } -@@ -1507,6 +1512,8 @@ void ap_sta_set_authorized_event(struct +@@ -1574,6 +1579,8 @@ void ap_sta_set_authorized_event(struct #endif /* CONFIG_P2P */ const u8 *ip_ptr = NULL; @@ -796,7 +796,7 @@ as adding/removing interfaces. if (sta->p2p_ie != NULL && --- a/src/ap/sta_info.h +++ b/src/ap/sta_info.h -@@ -180,6 +180,9 @@ struct sta_info { +@@ -181,6 +181,9 @@ struct sta_info { int vlan_id_bound; /* updated by ap_sta_bind_vlan() */ /* PSKs from RADIUS authentication server */ struct hostapd_sta_wpa_psk_short *psk; @@ -808,7 +808,7 @@ as adding/removing interfaces. char *radius_cui; /* Chargeable-User-Identity from RADIUS */ --- a/src/ap/wpa_auth_glue.c +++ b/src/ap/wpa_auth_glue.c -@@ -400,6 +400,7 @@ static const u8 * hostapd_wpa_auth_get_p +@@ -403,6 +403,7 @@ static const u8 * hostapd_wpa_auth_get_p struct sta_info *sta = ap_get_sta(hapd, addr); const u8 *psk; @@ -816,7 +816,7 @@ as adding/removing interfaces. if (vlan_id) *vlan_id = 0; if (psk_len) -@@ -446,13 +447,16 @@ static const u8 * hostapd_wpa_auth_get_p +@@ -449,13 +450,16 @@ static const u8 * hostapd_wpa_auth_get_p * returned psk which should not be returned again. * logic list (all hostapd_get_psk; all sta->psk) */ @@ -834,7 +834,7 @@ as adding/removing interfaces. if (pos->is_passphrase) { if (pbkdf2_sha1(pos->passphrase, hapd->conf->ssid.ssid, -@@ -469,6 +473,8 @@ static const u8 * hostapd_wpa_auth_get_p +@@ -472,6 +476,8 @@ static const u8 * hostapd_wpa_auth_get_p break; } } diff --git a/package/network/services/hostapd/patches/701-reload_config_inline.patch b/package/network/services/hostapd/patches/701-reload_config_inline.patch index 5404547647..2c2b9d4c30 100644 --- a/package/network/services/hostapd/patches/701-reload_config_inline.patch +++ b/package/network/services/hostapd/patches/701-reload_config_inline.patch @@ -8,7 +8,7 @@ as adding/removing interfaces. --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -5207,7 +5207,12 @@ struct hostapd_config * hostapd_config_r +@@ -5223,7 +5223,12 @@ struct hostapd_config * hostapd_config_r int errors = 0; size_t i; @@ -24,9 +24,9 @@ as adding/removing interfaces. "for reading.", fname); --- a/wpa_supplicant/config_file.c +++ b/wpa_supplicant/config_file.c -@@ -326,8 +326,13 @@ struct wpa_config * wpa_config_read(cons - while (cred_tail && cred_tail->next) - cred_tail = cred_tail->next; +@@ -390,8 +390,13 @@ struct wpa_config * wpa_config_read(cons + while (identity_tail && identity_tail->next) + identity_tail = identity_tail->next; + if (!strncmp(name, "data:", 5)) { + f = fmemopen((void *)(name + 5), strlen(name + 5), "r"); diff --git a/package/network/services/hostapd/patches/710-vlan_no_bridge.patch b/package/network/services/hostapd/patches/710-vlan_no_bridge.patch index d4c6b14456..750d159f8d 100644 --- a/package/network/services/hostapd/patches/710-vlan_no_bridge.patch +++ b/package/network/services/hostapd/patches/710-vlan_no_bridge.patch @@ -8,7 +8,7 @@ was provided by the config --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -3646,6 +3646,8 @@ static int hostapd_config_fill(struct ho +@@ -3644,6 +3644,8 @@ static int hostapd_config_fill(struct ho #ifndef CONFIG_NO_VLAN } else if (os_strcmp(buf, "dynamic_vlan") == 0) { bss->ssid.dynamic_vlan = atoi(pos); diff --git a/package/network/services/hostapd/patches/711-wds_bridge_force.patch b/package/network/services/hostapd/patches/711-wds_bridge_force.patch index 56750352f3..7c5a3998f0 100644 --- a/package/network/services/hostapd/patches/711-wds_bridge_force.patch +++ b/package/network/services/hostapd/patches/711-wds_bridge_force.patch @@ -22,7 +22,7 @@ instead rely entirely on netifd handling this properly } else if (os_strcmp(buf, "vlan_bridge") == 0) { --- a/src/ap/ap_drv_ops.c +++ b/src/ap/ap_drv_ops.c -@@ -390,8 +390,6 @@ int hostapd_set_wds_sta(struct hostapd_d +@@ -394,8 +394,6 @@ int hostapd_set_wds_sta(struct hostapd_d return -1; if (hapd->conf->wds_bridge[0]) bridge = hapd->conf->wds_bridge; diff --git a/package/network/services/hostapd/patches/720-iface_max_num_sta.patch b/package/network/services/hostapd/patches/720-iface_max_num_sta.patch index e9d35de6be..022b2d9621 100644 --- a/package/network/services/hostapd/patches/720-iface_max_num_sta.patch +++ b/package/network/services/hostapd/patches/720-iface_max_num_sta.patch @@ -8,7 +8,7 @@ full device, e.g. in order to deal with hardware/driver limitations --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -3090,6 +3090,14 @@ static int hostapd_config_fill(struct ho +@@ -3088,6 +3088,14 @@ static int hostapd_config_fill(struct ho line, bss->max_num_sta, MAX_STA_COUNT); return 1; } @@ -25,7 +25,7 @@ full device, e.g. in order to deal with hardware/driver limitations } else if (os_strcmp(buf, "extended_key_id") == 0) { --- a/src/ap/ap_config.h +++ b/src/ap/ap_config.h -@@ -1086,6 +1086,8 @@ struct hostapd_config { +@@ -1089,6 +1089,8 @@ struct hostapd_config { unsigned int track_sta_max_num; unsigned int track_sta_max_age; @@ -36,7 +36,7 @@ full device, e.g. in order to deal with hardware/driver limitations * ' ' (ascii 32): all environments --- a/src/ap/beacon.c +++ b/src/ap/beacon.c -@@ -1634,7 +1634,7 @@ void handle_probe_req(struct hostapd_dat +@@ -1653,7 +1653,7 @@ void handle_probe_req(struct hostapd_dat if (hapd->conf->no_probe_resp_if_max_sta && is_multicast_ether_addr(mgmt->da) && is_multicast_ether_addr(mgmt->bssid) && @@ -47,7 +47,7 @@ full device, e.g. in order to deal with hardware/driver limitations " since no room for additional STA", --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -247,6 +247,29 @@ static int hostapd_iface_conf_changed(st +@@ -251,6 +251,29 @@ static int hostapd_iface_conf_changed(st return 0; } @@ -79,7 +79,7 @@ full device, e.g. in order to deal with hardware/driver limitations { --- a/src/ap/hostapd.h +++ b/src/ap/hostapd.h -@@ -826,6 +826,7 @@ void hostapd_periodic_iface(struct hosta +@@ -828,6 +828,7 @@ void hostapd_periodic_iface(struct hosta int hostapd_owe_trans_get_info(struct hostapd_data *hapd); void hostapd_owe_update_trans(struct hostapd_iface *iface);; void hostapd_ocv_check_csa_sa_query(void *eloop_ctx, void *timeout_ctx); diff --git a/package/network/services/hostapd/patches/730-ft_iface.patch b/package/network/services/hostapd/patches/730-ft_iface.patch index ac7d3abd78..728411bb60 100644 --- a/package/network/services/hostapd/patches/730-ft_iface.patch +++ b/package/network/services/hostapd/patches/730-ft_iface.patch @@ -8,7 +8,7 @@ a VLAN interface on top of the bridge, instead of using the bridge directly --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -3287,6 +3287,8 @@ static int hostapd_config_fill(struct ho +@@ -3285,6 +3285,8 @@ static int hostapd_config_fill(struct ho wpa_printf(MSG_INFO, "Line %d: Obsolete peerkey parameter ignored", line); #ifdef CONFIG_IEEE80211R_AP @@ -29,7 +29,7 @@ a VLAN interface on top of the bridge, instead of using the bridge directly int bridge_hairpin; /* hairpin_mode on bridge members */ --- a/src/ap/wpa_auth_glue.c +++ b/src/ap/wpa_auth_glue.c -@@ -1821,8 +1821,12 @@ int hostapd_setup_wpa(struct hostapd_dat +@@ -1825,8 +1825,12 @@ int hostapd_setup_wpa(struct hostapd_dat wpa_key_mgmt_ft(hapd->conf->wpa_key_mgmt)) { const char *ft_iface; diff --git a/package/network/services/hostapd/patches/740-snoop_iface.patch b/package/network/services/hostapd/patches/740-snoop_iface.patch index 3c59865f84..0d7024af8f 100644 --- a/package/network/services/hostapd/patches/740-snoop_iface.patch +++ b/package/network/services/hostapd/patches/740-snoop_iface.patch @@ -29,7 +29,7 @@ untagged DHCP packets int bridge_hairpin; /* hairpin_mode on bridge members */ --- a/src/ap/ap_drv_ops.h +++ b/src/ap/ap_drv_ops.h -@@ -376,12 +376,12 @@ static inline int hostapd_drv_br_port_se +@@ -377,12 +377,12 @@ static inline int hostapd_drv_br_port_se static inline int hostapd_drv_br_set_net_param(struct hostapd_data *hapd, enum drv_br_net_param param, @@ -112,7 +112,7 @@ untagged DHCP packets hapd->x_snoop_initialized = false; --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -4350,7 +4350,7 @@ struct wpa_driver_ops { +@@ -4429,7 +4429,7 @@ struct wpa_driver_ops { * Returns: 0 on success, negative (<0) on failure */ int (*br_set_net_param)(void *priv, enum drv_br_net_param param, @@ -123,7 +123,7 @@ untagged DHCP packets * get_wowlan - Get wake-on-wireless status --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -12662,7 +12662,7 @@ static const char * drv_br_net_param_str +@@ -12853,7 +12853,7 @@ static const char * drv_br_net_param_str static int wpa_driver_br_set_net_param(void *priv, enum drv_br_net_param param, @@ -132,7 +132,7 @@ untagged DHCP packets { struct i802_bss *bss = priv; char path[128]; -@@ -12688,8 +12688,11 @@ static int wpa_driver_br_set_net_param(v +@@ -12879,8 +12879,11 @@ static int wpa_driver_br_set_net_param(v return -EINVAL; } diff --git a/package/network/services/hostapd/patches/760-dynamic_own_ip.patch b/package/network/services/hostapd/patches/760-dynamic_own_ip.patch index 5f13b861d3..7f1dc11755 100644 --- a/package/network/services/hostapd/patches/760-dynamic_own_ip.patch +++ b/package/network/services/hostapd/patches/760-dynamic_own_ip.patch @@ -7,7 +7,7 @@ Some servers use the NAS-IP-Address attribute as a destination address --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -2865,6 +2865,8 @@ static int hostapd_config_fill(struct ho +@@ -2863,6 +2863,8 @@ static int hostapd_config_fill(struct ho } else if (os_strcmp(buf, "iapp_interface") == 0) { wpa_printf(MSG_INFO, "DEPRECATED: iapp_interface not used"); #endif /* CONFIG_IAPP */ @@ -28,7 +28,7 @@ Some servers use the NAS-IP-Address attribute as a destination address int radius_require_message_authenticator; --- a/src/ap/ieee802_1x.c +++ b/src/ap/ieee802_1x.c -@@ -600,6 +600,10 @@ int add_common_radius_attr(struct hostap +@@ -598,6 +598,10 @@ int add_common_radius_attr(struct hostap struct hostapd_radius_attr *attr; int len; @@ -81,7 +81,7 @@ Some servers use the NAS-IP-Address attribute as a destination address * radius_client_send - Send a RADIUS request * @radius: RADIUS client context from radius_client_init() * @msg: RADIUS message to be sent -@@ -1711,6 +1737,10 @@ radius_change_server(struct radius_clien +@@ -1714,6 +1740,10 @@ radius_change_server(struct radius_clien wpa_printf(MSG_DEBUG, "RADIUS local address: %s:%u", inet_ntoa(claddr.sin_addr), ntohs(claddr.sin_port)); @@ -92,7 +92,7 @@ Some servers use the NAS-IP-Address attribute as a destination address } break; #ifdef CONFIG_IPV6 -@@ -1722,6 +1752,10 @@ radius_change_server(struct radius_clien +@@ -1725,6 +1755,10 @@ radius_change_server(struct radius_clien inet_ntop(AF_INET6, &claddr6.sin6_addr, abuf, sizeof(abuf)), ntohs(claddr6.sin6_port)); diff --git a/package/network/services/hostapd/patches/761-shared_das_port.patch b/package/network/services/hostapd/patches/761-shared_das_port.patch index 26aeacac76..0b52e7d0a9 100644 --- a/package/network/services/hostapd/patches/761-shared_das_port.patch +++ b/package/network/services/hostapd/patches/761-shared_das_port.patch @@ -7,7 +7,7 @@ Use the NAS identifier to find the right receiver context on incoming messages --- a/src/ap/hostapd.c +++ b/src/ap/hostapd.c -@@ -1379,6 +1379,7 @@ static int hostapd_bss_radius_init(struc +@@ -1387,6 +1387,7 @@ static int hostapd_bss_radius_init(struc os_memset(&das_conf, 0, sizeof(das_conf)); das_conf.port = conf->radius_das_port; diff --git a/package/network/services/hostapd/patches/762-AP-don-t-ignore-probe-requests-with-invalid-DSSS-par.patch b/package/network/services/hostapd/patches/762-AP-don-t-ignore-probe-requests-with-invalid-DSSS-par.patch index 7beb87118f..03b333138a 100644 --- a/package/network/services/hostapd/patches/762-AP-don-t-ignore-probe-requests-with-invalid-DSSS-par.patch +++ b/package/network/services/hostapd/patches/762-AP-don-t-ignore-probe-requests-with-invalid-DSSS-par.patch @@ -28,7 +28,7 @@ Signed-off-by: David Bauer --- a/src/ap/beacon.c +++ b/src/ap/beacon.c -@@ -1477,7 +1477,7 @@ void handle_probe_req(struct hostapd_dat +@@ -1496,7 +1496,7 @@ void handle_probe_req(struct hostapd_dat * is less likely to see them (Probe Request frame sent on a * neighboring, but partially overlapping, channel). */ diff --git a/package/network/services/hostapd/patches/763-radius-wispr.patch b/package/network/services/hostapd/patches/763-radius-wispr.patch index f5c4668e13..e8967a8547 100644 --- a/package/network/services/hostapd/patches/763-radius-wispr.patch +++ b/package/network/services/hostapd/patches/763-radius-wispr.patch @@ -1,6 +1,6 @@ --- a/src/ap/ieee802_1x.c +++ b/src/ap/ieee802_1x.c -@@ -2035,6 +2035,25 @@ static int ieee802_1x_update_vlan(struct +@@ -2033,6 +2033,25 @@ static int ieee802_1x_update_vlan(struct } #endif /* CONFIG_NO_VLAN */ @@ -26,7 +26,7 @@ /** * ieee802_1x_receive_auth - Process RADIUS frames from Authentication Server -@@ -2151,6 +2170,7 @@ ieee802_1x_receive_auth(struct radius_ms +@@ -2149,6 +2168,7 @@ ieee802_1x_receive_auth(struct radius_ms ieee802_1x_check_hs20(hapd, sta, msg, session_timeout_set ? (int) session_timeout : -1); @@ -36,7 +36,7 @@ sm->eap_if->aaaFail = true; --- a/src/ap/sta_info.h +++ b/src/ap/sta_info.h -@@ -94,6 +94,7 @@ struct sta_info { +@@ -95,6 +95,7 @@ struct sta_info { u8 supported_rates[WLAN_SUPP_RATES_MAX]; int supported_rates_len; u8 qosinfo; /* Valid when WLAN_STA_WMM is set */ diff --git a/package/network/services/hostapd/patches/770-radius_server.patch b/package/network/services/hostapd/patches/770-radius_server.patch index c110a85e2e..53d162e916 100644 --- a/package/network/services/hostapd/patches/770-radius_server.patch +++ b/package/network/services/hostapd/patches/770-radius_server.patch @@ -29,7 +29,7 @@ handle reload. #ifndef CONFIG_NO_HOSTAPD_LOGGER static void hostapd_logger_cb(void *ctx, const u8 *addr, unsigned int module, -@@ -793,6 +794,11 @@ int main(int argc, char *argv[]) +@@ -834,6 +835,11 @@ int main(int argc, char *argv[]) if (os_program_init()) return -1; diff --git a/package/network/services/hostapd/patches/780-Implement-APuP-Access-Point-Micro-Peering.patch b/package/network/services/hostapd/patches/780-Implement-APuP-Access-Point-Micro-Peering.patch index dae7ad180c..d21027636a 100644 --- a/package/network/services/hostapd/patches/780-Implement-APuP-Access-Point-Micro-Peering.patch +++ b/package/network/services/hostapd/patches/780-Implement-APuP-Access-Point-Micro-Peering.patch @@ -39,7 +39,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 --- a/hostapd/Makefile +++ b/hostapd/Makefile -@@ -1416,6 +1416,11 @@ ifdef CONFIG_NO_TKIP +@@ -1429,6 +1429,11 @@ ifdef CONFIG_NO_TKIP CFLAGS += -DCONFIG_NO_TKIP endif @@ -53,7 +53,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 --- a/hostapd/config_file.c +++ b/hostapd/config_file.c -@@ -5200,6 +5200,15 @@ static int hostapd_config_fill(struct ho +@@ -5216,6 +5216,15 @@ static int hostapd_config_fill(struct ho bss->mld_indicate_disabled = atoi(pos); #endif /* CONFIG_TESTING_OPTIONS */ #endif /* CONFIG_IEEE80211BE */ @@ -71,10 +71,10 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 "Line %d: unknown configuration item '%s'", --- a/src/ap/ap_config.h +++ b/src/ap/ap_config.h -@@ -999,6 +999,35 @@ struct hostapd_bss_config { - bool mld_indicate_disabled; - #endif /* CONFIG_TESTING_OPTIONS */ - #endif /* CONFIG_IEEE80211BE */ +@@ -1002,6 +1002,35 @@ struct hostapd_bss_config { + int mbssid_index; + + bool spp_amsdu; + +#ifdef CONFIG_APUP + /** @@ -109,7 +109,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 /** --- a/src/ap/ap_drv_ops.c +++ b/src/ap/ap_drv_ops.c -@@ -385,13 +385,39 @@ int hostapd_set_wds_sta(struct hostapd_d +@@ -389,13 +389,39 @@ int hostapd_set_wds_sta(struct hostapd_d const u8 *addr, int aid, int val) { const char *bridge = NULL; @@ -164,7 +164,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 int hostapd_sta_add(struct hostapd_data *hapd, --- /dev/null +++ b/src/ap/apup.c -@@ -0,0 +1,168 @@ +@@ -0,0 +1,169 @@ +/* + * hostapd / APuP Access Point Micro Peering + * @@ -221,12 +221,13 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 + sta_ret = ap_sta_add(hapd, mgmt->bssid); + + /* TODO: this has been added just to making compiler happy after breaking -+ * changes introduced in 11a607d121df512e010148bedcb4263a03329dc7 to support -+ * IEEE80211BE Multi Link Operation. Look at that commit with more time and ++ * changes introduced in 11a607d12 and 7855b6d60 to support ++ * IEEE80211BE Multi Link Operation. Look at these commits with more time and + * understand what could be a proper implementation in this context too + */ + const u8 *mld_link_addr = NULL; + bool mld_link_sta = false; ++ u16 eml_cap = 0; + + /* First add the station without more information */ + int aRet = hostapd_sta_add( @@ -234,7 +235,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 + NULL, 0, 0, NULL, NULL, NULL, 0, NULL, 0, NULL, + sta_ret->flags, 0, 0, 0, + 0, // 0 add, 1 set -+ mld_link_addr, mld_link_sta); ++ mld_link_addr, mld_link_sta, eml_cap); + + sta_ret->flags |= WLAN_STA_AUTH; + wpa_auth_sm_event(sta_ret->wpa_sm, WPA_AUTH); @@ -308,7 +309,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 + sta_ret->vht_opmode, + 0, // int supp_p2p_ps + 1, // 0 add, 1 set -+ mld_link_addr, mld_link_sta); ++ mld_link_addr, mld_link_sta, eml_cap); + + ap_sta_set_authorized(hapd, sta_ret, 1); + hostapd_set_sta_flags(hapd, sta_ret); @@ -372,7 +373,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 #ifdef CONFIG_FILS static struct wpabuf * -@@ -3617,8 +3620,8 @@ static u16 check_multi_ap(struct hostapd +@@ -3664,8 +3667,8 @@ static u16 check_multi_ap(struct hostapd } @@ -383,7 +384,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 { /* Supported rates not used in IEEE 802.11ad/DMG */ if (hapd->iface->current_mode && -@@ -4005,7 +4008,7 @@ static int __check_assoc_ies(struct host +@@ -4105,7 +4108,7 @@ static int __check_assoc_ies(struct host elems->ext_capab_len); if (resp != WLAN_STATUS_SUCCESS) return resp; @@ -392,7 +393,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 if (resp != WLAN_STATUS_SUCCESS) return resp; -@@ -6060,6 +6063,11 @@ static void handle_beacon(struct hostapd +@@ -6175,6 +6178,11 @@ static void handle_beacon(struct hostapd 0); ap_list_process_beacon(hapd->iface, mgmt, &elems, fi); @@ -417,7 +418,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 u16 copy_sta_vendor_vht(struct hostapd_data *hapd, struct sta_info *sta, --- a/src/drivers/driver.h +++ b/src/drivers/driver.h -@@ -4048,7 +4048,7 @@ struct wpa_driver_ops { +@@ -4123,7 +4123,7 @@ struct wpa_driver_ops { * Returns: 0 on success, -1 on failure */ int (*set_wds_sta)(void *priv, const u8 *addr, int aid, int val, @@ -428,7 +429,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6 * send_action - Transmit an Action frame --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -8559,25 +8559,15 @@ static int have_ifidx(struct wpa_driver_ +@@ -8699,25 +8699,15 @@ static int have_ifidx(struct wpa_driver_ static int i802_set_wds_sta(void *priv, const u8 *addr, int aid, int val, diff --git a/package/network/services/hostapd/patches/803-hostapd-fix-80211be-build.patch b/package/network/services/hostapd/patches/803-hostapd-fix-80211be-build.patch index f197b71bd7..85c745d187 100644 --- a/package/network/services/hostapd/patches/803-hostapd-fix-80211be-build.patch +++ b/package/network/services/hostapd/patches/803-hostapd-fix-80211be-build.patch @@ -1,6 +1,6 @@ --- a/src/ap/sta_info.c +++ b/src/ap/sta_info.c -@@ -1914,3 +1914,22 @@ void ap_sta_free_sta_profile(struct mld_ +@@ -1970,3 +1970,22 @@ void ap_sta_free_sta_profile(struct mld_ } } #endif /* CONFIG_IEEE80211BE */ @@ -25,7 +25,7 @@ + --- a/src/ap/sta_info.h +++ b/src/ap/sta_info.h -@@ -409,23 +409,8 @@ int ap_sta_re_add(struct hostapd_data *h +@@ -414,23 +414,8 @@ int ap_sta_re_add(struct hostapd_data *h void ap_free_sta_pasn(struct hostapd_data *hapd, struct sta_info *sta); diff --git a/package/network/services/hostapd/patches/804-hostapd-Fix-clearing-up-settings-for-color-switch.patch b/package/network/services/hostapd/patches/804-hostapd-Fix-clearing-up-settings-for-color-switch.patch deleted file mode 100644 index 87d68911c7..0000000000 --- a/package/network/services/hostapd/patches/804-hostapd-Fix-clearing-up-settings-for-color-switch.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 161327f91d956771996c96ea1b6e4e1cb8dc074c Mon Sep 17 00:00:00 2001 -From: Stone Zhang -Date: Mon, 14 Oct 2024 18:47:32 +0800 -Subject: [PATCH] hostapd: Fix clearing up settings for color switch - -Settings for color switch (struct cca_settings settings) -is used without zero clearing, which causes the member -settings->ubpr->unsol_bcast_probe_resp_intervalettings -to be a random value. It is againsts the NLA policy of -NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT and causes -BSS color switch failure. - -Fixes: 654d2395dddf ("BSS coloring: Handling of collision events and triggering CCA") -Signed-off-by: Stone Zhang ---- - src/ap/hostapd.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/src/ap/hostapd.c -+++ b/src/ap/hostapd.c -@@ -4813,6 +4813,7 @@ static void hostapd_switch_color_timeout - struct cca_settings settings; - int ret; - -+ os_memset(&settings, 0, sizeof(settings)); - hostapd_cleanup_cca_params(bss); - bss->cca_color = r; - bss->cca_count = 10; From 8118b2dace06de839e1e23f018059995f4af5e11 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 12 Feb 2025 11:54:59 +0100 Subject: [PATCH 02/13] hostapd: fix sta psk index for dynamic psk auth Depending on the config / circumstances, the get_psk call can be called multiple times from differnt places, which can lead to wrong sta->psk_idx values. The correct call is the one that is also interested in the vlan_id, so use the vlan_id pointer as indication of when to set sta->psk_idx. Also fix off-by-one error for secondary PSKs Fixes: b2a2c286170d ("hostapd: add support for authenticating with multiple PSKs via ubus helper") Signed-off-by: Felix Fietkau --- .../hostapd/patches/601-ucode_support.patch | 15 +++++++++++---- .../services/hostapd/patches/730-ft_iface.patch | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/package/network/services/hostapd/patches/601-ucode_support.patch b/package/network/services/hostapd/patches/601-ucode_support.patch index 1e1f399765..cd713ea286 100644 --- a/package/network/services/hostapd/patches/601-ucode_support.patch +++ b/package/network/services/hostapd/patches/601-ucode_support.patch @@ -816,7 +816,7 @@ as adding/removing interfaces. if (vlan_id) *vlan_id = 0; if (psk_len) -@@ -449,13 +450,16 @@ static const u8 * hostapd_wpa_auth_get_p +@@ -449,13 +450,18 @@ static const u8 * hostapd_wpa_auth_get_p * returned psk which should not be returned again. * logic list (all hostapd_get_psk; all sta->psk) */ @@ -830,16 +830,23 @@ as adding/removing interfaces. *vlan_id = 0; psk = sta->psk->psk; - for (pos = sta->psk; pos; pos = pos->next) { ++ if (vlan_id) ++ sta->psk_idx = psk_idx; + for (pos = sta->psk; pos; pos = pos->next, psk_idx++) { if (pos->is_passphrase) { if (pbkdf2_sha1(pos->passphrase, hapd->conf->ssid.ssid, -@@ -472,6 +476,8 @@ static const u8 * hostapd_wpa_auth_get_p +@@ -469,9 +475,13 @@ static const u8 * hostapd_wpa_auth_get_p + } + if (pos->psk == prev_psk) { + psk = pos->next ? pos->next->psk : NULL; ++ if (vlan_id) ++ sta->psk_idx = psk_idx + 1; break; } } -+ if (psk) -+ sta->psk_idx = psk_idx; ++ if (vlan_id && !psk) ++ sta->psk_idx = 0; } return psk; } diff --git a/package/network/services/hostapd/patches/730-ft_iface.patch b/package/network/services/hostapd/patches/730-ft_iface.patch index 728411bb60..4226a59d66 100644 --- a/package/network/services/hostapd/patches/730-ft_iface.patch +++ b/package/network/services/hostapd/patches/730-ft_iface.patch @@ -29,7 +29,7 @@ a VLAN interface on top of the bridge, instead of using the bridge directly int bridge_hairpin; /* hairpin_mode on bridge members */ --- a/src/ap/wpa_auth_glue.c +++ b/src/ap/wpa_auth_glue.c -@@ -1825,8 +1825,12 @@ int hostapd_setup_wpa(struct hostapd_dat +@@ -1829,8 +1829,12 @@ int hostapd_setup_wpa(struct hostapd_dat wpa_key_mgmt_ft(hapd->conf->wpa_key_mgmt)) { const char *ft_iface; From 71a966c480432febcc5dd120e5b01662fa8ec328 Mon Sep 17 00:00:00 2001 From: Klaas Demter Date: Sun, 9 Feb 2025 11:10:42 +0100 Subject: [PATCH 03/13] uboot-envtools: add support for ZyXEL GS-1900-24EP It seems the that this was forgotten during initial adding of the device in 0688cf5aebe1dc9a2e7f3820861783c2a7a75d44 Thanks to https://forum.openwrt.org/t/zyxel-gs1900-10hp-revision-b1-support-openwrt-firmware/131841/32 for putting me on the right track for this problem Error that is being fixed - running fw_printenv results in: "Warning: Bad CRC, using default environment" and not showing boardmodel Workaround, manually changing /etc/fw_env.config to "/dev/mtd1 0x0 0x400 0x10000" Signed-off-by: Klaas Demter Link: https://github.com/openwrt/openwrt/pull/17920 Signed-off-by: Hauke Mehrtens --- package/boot/uboot-envtools/files/realtek | 1 + 1 file changed, 1 insertion(+) diff --git a/package/boot/uboot-envtools/files/realtek b/package/boot/uboot-envtools/files/realtek index cd2446432d..055730eb27 100644 --- a/package/boot/uboot-envtools/files/realtek +++ b/package/boot/uboot-envtools/files/realtek @@ -28,6 +28,7 @@ zyxel,gs1900-10hp|\ zyxel,gs1900-16|\ zyxel,gs1900-24-v1|\ zyxel,gs1900-24e|\ +zyxel,gs1900-24ep|\ zyxel,gs1900-24hp-v1|\ zyxel,gs1900-24hp-v2) idx="$(find_mtd_index u-boot-env)" From 11f1f67a3ebb4655e083527e97770f6d7242af53 Mon Sep 17 00:00:00 2001 From: John Audia Date: Sun, 9 Feb 2025 09:55:56 -0500 Subject: [PATCH 04/13] qualcommb/ipq95xx: refresh patches ahead of 6.6.75 Refreshed patches for qualcommb/ipq95xx by running make target/linux/refresh after creating a .config containing: CONFIG_TARGET_qualcommbe=y CONFIG_TARGET_qualcommbe_ipq95xx=y CONFIG_TARGET_qualcommbe_ipq95xx_DEVICE_qcom_rdp433=y Signed-off-by: John Audia Link: https://github.com/openwrt/openwrt/pull/17822 Signed-off-by: Hauke Mehrtens --- ...com-ipq9574-Add-common-RDP-dtsi-file.patch | 24 +- ...k-add-qca8386-qca8084-clock-and-rese.patch | 12 - ...ck-controller-driver-for-qca8386-qca.patch | 14 +- ...-arm64-dts-qcom-ipq9574-add-MDIO-bus.patch | 7 +- ...-introduce-support-for-multiple-conf.patch | 7 +- ...2-add-support-for-rcg2-freq-multi-op.patch | 27 +- ...m-branch-Add-clk_branch2_prepare_ops.patch | 13 +- ...ommon-commonize-qcom_cc_really_probe.patch | 443 +++++------------- ...e-core-support-for-phy-mode-10g-qxgm.patch | 39 +- ...ged-helper-to-get-and-enable-bulk-cl.patch | 19 +- ...devm_clk_bulk_get_all_enabled-helper.patch | 19 +- ...k-Add-PCIe-pipe-related-clocks-for-I.patch | 5 - ...com-gcc-ipq9574-Add-PCIe-pipe-clocks.patch | 15 +- ...pq9574-drop-power-domain-cells-prope.patch | 7 +- ...ect-icc-clk-Specify-master-slave-ids.patch | 15 +- ...rconnect-Add-Qualcomm-IPQ9574-suppor.patch | 8 - ...ct-icc-clk-Add-devm_icc_clk_register.patch | 11 +- ...mmon-Add-interconnect-clocks-support.patch | 11 +- ...-Use-icc-clk-for-enabling-NoC-relate.patch | 15 +- ...pq9574-Add-icc-provider-ability-to-g.patch | 7 +- ...com-nvmem-Enable-cpufreq-for-ipq53xx.patch | 15 +- ...-nvmem-Introduce-cpufreq-for-ipq95xx.patch | 15 +- ...pq9574-populate-the-opp-table-based-.patch | 9 +- ...r-qcom_smd-Add-LDO5-MP5496-regulator.patch | 7 +- ...-PLL-clock-controller-driver-for-IPQ.patch | 16 +- ...k-qcom-Add-CMN-PLL-clock-controller-.patch | 9 - ...64-dts-qcom-ipq9574-Add-CMN-PLL-node.patch | 15 +- ...pq9574-Update-xo_board_clk-to-use-fi.patch | 11 +- ...-driver-for-QCOM-SPI-NAND-flash-Inte.patch | 27 +- ...ts-qcom-ipq9574-Add-SPI-nand-support.patch | 6 +- ...4-dts-qcom-ipq9574-Disable-eMMC-node.patch | 4 +- ...Document-Qualcomm-QCA8084-PHY-packag.patch | 9 - ...08x-Add-QCA8084-ethernet-phy-support.patch | 13 +- ...Add-config_init-function-for-QCA8084.patch | 9 +- ...Add-link_change_notify-function-for-.patch | 9 +- ...Add-register-access-support-routines.patch | 5 - ...y-qca808x-Add-QCA8084-probe-function.patch | 9 +- ...Add-package-clocks-and-resets-for-QC.patch | 11 +- ...8x-Add-QCA8084-package-init-function.patch | 9 +- ...d-driver-for-Qualcomm-IPQ-UNIPHY-PCS.patch | 17 +- ...ASER-interface-mode-support-to-IPQ-U.patch | 19 +- ...BASEX-interface-mode-support-to-IPQ-.patch | 27 +- ...BASEX-interface-mode-support-to-IPQ-.patch | 19 +- ...QXGMII-interface-mode-support-to-IPQ.patch | 34 +- ...lcomm-Add-PPE-driver-for-IPQ9574-SoC.patch | 16 - ...lcomm-Add-PPE-buffer-manager-configu.patch | 18 +- ...lcomm-Add-PPE-queue-management-confi.patch | 11 +- ...et-qualcomm-Add-PPE-scheduler-config.patch | 23 +- ...alcomm-Initialize-PPE-queue-settings.patch | 25 +- ...qualcomm-Add-PPE-service-code-config.patch | 17 +- ...qualcomm-Add-PPE-port-control-config.patch | 17 +- ...net-qualcomm-Add-PPE-RSS-hash-config.patch | 19 +- ...-qualcomm-Add-PPE-queue-map-function.patch | 25 +- ...lcomm-Add-PPE-L2-bridge-initializati.patch | 11 +- ...net-qualcomm-Add-PPE-debugfs-support.patch | 21 +- ...lcomm-Add-phylink-support-for-PPE-MA.patch | 23 +- ...lcomm-Add-PPE-port-MAC-MIB-statistic.patch | 21 +- ...lcomm-Add-PPE-port-MAC-address-and-E.patch | 13 +- ...lcomm-Add-API-to-configure-PPE-port-.patch | 11 +- ...lcomm-Add-EDMA-support-for-QCOM-IPQ9.patch | 19 +- ...lcomm-Add-netdevice-support-for-QCOM.patch | 19 +- ...qualcomm-Add-Rx-Ethernet-DMA-support.patch | 44 +- ...qualcomm-Add-Tx-Ethernet-DMA-support.patch | 62 +-- ...lcomm-Add-miscellaneous-error-interr.patch | 40 +- ...ualcomm-Add-ethtool-support-for-EDMA.patch | 16 +- ...lcomm-Add-module-parameters-for-driv.patch | 31 +- ...t-qualcomm-Add-sysctl-for-RPS-bitmap.patch | 19 +- ...k-gcc-ipq9574-Add-definition-for-GPL.patch | 5 - ...9574-Add-support-for-gpll0_out_aux-c.patch | 9 +- ...k-Add-ipq9574-NSSCC-clock-and-reset-.patch | 12 - ...-clock-Controller-driver-for-IPQ9574.patch | 16 +- ...rm64-dts-qcom-ipq9574-Add-nsscc-node.patch | 9 +- ...ix-USB-vdda-pll-supply-for-ipq9574-r.patch | 11 +- ...pq9574-Add-PCS-UNIPHY-device-tree-su.patch | 7 +- ...ts-qcom-Add-IPQ9574-MDIO-device-node.patch | 9 +- ...com-Add-IPQ9574-PPE-base-device-node.patch | 7 +- ...4-dts-qcom-Add-EDMA-node-for-IPQ9574.patch | 7 +- ...ts-qcom-Add-IPQ9574-RDP433-port-node.patch | 19 +- ...lock-Add-clock-ID-for-IPQ-PCS-UNIPHY.patch | 6 - ...lcomm-Add-support-for-label-property.patch | 7 +- ...dd-missing-clock-for-nsscc-from-pcs-.patch | 7 +- ...dd-partition-table-for-ipq9574-rdp-c.patch | 7 +- ...-NVMEM-node-for-IPQ9574-RDP433-board.patch | 7 +- ...lcomm-ppe-Fix-unmet-dependency-with-.patch | 5 - ...dd-label-to-EDMA-port-for-IPQ9574-RD.patch | 17 +- 85 files changed, 414 insertions(+), 1316 deletions(-) diff --git a/target/linux/qualcommbe/patches-6.6/001-v6.8-arm64-dts-qcom-ipq9574-Add-common-RDP-dtsi-file.patch b/target/linux/qualcommbe/patches-6.6/001-v6.8-arm64-dts-qcom-ipq9574-Add-common-RDP-dtsi-file.patch index dc41c33c03..ac12d16428 100644 --- a/target/linux/qualcommbe/patches-6.6/001-v6.8-arm64-dts-qcom-ipq9574-Add-common-RDP-dtsi-file.patch +++ b/target/linux/qualcommbe/patches-6.6/001-v6.8-arm64-dts-qcom-ipq9574-Add-common-RDP-dtsi-file.patch @@ -20,9 +20,6 @@ Signed-off-by: Bjorn Andersson 6 files changed, 130 insertions(+), 345 deletions(-) create mode 100644 arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi -diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi -new file mode 100644 -index 000000000000..40a7aefd0540 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi @@ -0,0 +1,125 @@ @@ -151,8 +148,6 @@ index 000000000000..40a7aefd0540 +&xo_board_clk { + clock-frequency = <24000000>; +}; -diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts -index 2b093e02637b..f4f9199d4ab1 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts @@ -8,58 +8,12 @@ @@ -215,7 +210,7 @@ index 2b093e02637b..f4f9199d4ab1 100644 }; &sdhc_1 { -@@ -74,10 +28,6 @@ &sdhc_1 { +@@ -74,10 +28,6 @@ status = "okay"; }; @@ -226,7 +221,7 @@ index 2b093e02637b..f4f9199d4ab1 100644 &tlmm { sdc_default_state: sdc-default-state { clk-pins { -@@ -110,15 +60,4 @@ rclk-pins { +@@ -110,15 +60,4 @@ bias-pull-down; }; }; @@ -242,8 +237,6 @@ index 2b093e02637b..f4f9199d4ab1 100644 -&xo_board_clk { - clock-frequency = <24000000>; }; -diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts -index 877026ccc6e2..1bb8d96c9a82 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts @@ -8,69 +8,11 @@ @@ -317,7 +310,7 @@ index 877026ccc6e2..1bb8d96c9a82 100644 }; &sdhc_1 { -@@ -85,10 +27,6 @@ &sdhc_1 { +@@ -85,10 +27,6 @@ status = "okay"; }; @@ -328,7 +321,7 @@ index 877026ccc6e2..1bb8d96c9a82 100644 &tlmm { sdc_default_state: sdc-default-state { clk-pins { -@@ -122,30 +60,3 @@ rclk-pins { +@@ -122,30 +60,3 @@ }; }; }; @@ -359,8 +352,6 @@ index 877026ccc6e2..1bb8d96c9a82 100644 -&xo_board_clk { - clock-frequency = <24000000>; -}; -diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts -index c8fa54e1a62c..d36d1078763e 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts @@ -8,73 +8,10 @@ @@ -438,8 +429,6 @@ index c8fa54e1a62c..d36d1078763e 100644 -&xo_board_clk { - clock-frequency = <24000000>; }; -diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts -index f01de6628c3b..c30c9fbedf26 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts @@ -8,73 +8,10 @@ @@ -517,8 +506,6 @@ index f01de6628c3b..c30c9fbedf26 100644 -&xo_board_clk { - clock-frequency = <24000000>; }; -diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts -index 6efae3426cb8..0dc382f5d5ec 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts @@ -8,73 +8,9 @@ @@ -596,6 +583,3 @@ index 6efae3426cb8..0dc382f5d5ec 100644 -&xo_board_clk { - clock-frequency = <24000000>; }; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/002-01-v6.11-dt-bindings-clock-add-qca8386-qca8084-clock-and-rese.patch b/target/linux/qualcommbe/patches-6.6/002-01-v6.11-dt-bindings-clock-add-qca8386-qca8084-clock-and-rese.patch index 0e300ca56d..ed41e747e1 100644 --- a/target/linux/qualcommbe/patches-6.6/002-01-v6.11-dt-bindings-clock-add-qca8386-qca8084-clock-and-rese.patch +++ b/target/linux/qualcommbe/patches-6.6/002-01-v6.11-dt-bindings-clock-add-qca8386-qca8084-clock-and-rese.patch @@ -21,9 +21,6 @@ Signed-off-by: Bjorn Andersson create mode 100644 include/dt-bindings/clock/qcom,qca8k-nsscc.h create mode 100644 include/dt-bindings/reset/qcom,qca8k-nsscc.h -diff --git a/Documentation/devicetree/bindings/clock/qcom,qca8k-nsscc.yaml b/Documentation/devicetree/bindings/clock/qcom,qca8k-nsscc.yaml -new file mode 100644 -index 000000000000..61473385da2d --- /dev/null +++ b/Documentation/devicetree/bindings/clock/qcom,qca8k-nsscc.yaml @@ -0,0 +1,86 @@ @@ -113,9 +110,6 @@ index 000000000000..61473385da2d + }; + }; +... -diff --git a/include/dt-bindings/clock/qcom,qca8k-nsscc.h b/include/dt-bindings/clock/qcom,qca8k-nsscc.h -new file mode 100644 -index 000000000000..0ac3e4c69a1a --- /dev/null +++ b/include/dt-bindings/clock/qcom,qca8k-nsscc.h @@ -0,0 +1,101 @@ @@ -220,9 +214,6 @@ index 000000000000..0ac3e4c69a1a +#define NSS_CC_GEPHY2_SYS_CLK 90 +#define NSS_CC_GEPHY3_SYS_CLK 91 +#endif -diff --git a/include/dt-bindings/reset/qcom,qca8k-nsscc.h b/include/dt-bindings/reset/qcom,qca8k-nsscc.h -new file mode 100644 -index 000000000000..c71167a3bd41 --- /dev/null +++ b/include/dt-bindings/reset/qcom,qca8k-nsscc.h @@ -0,0 +1,76 @@ @@ -302,6 +293,3 @@ index 000000000000..c71167a3bd41 +#define NSS_CC_GLOBAL_ARES 66 +#define NSS_CC_XPCS_ARES 67 +#endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/002-02-v6.11-clk-qcom-add-clock-controller-driver-for-qca8386-qca.patch b/target/linux/qualcommbe/patches-6.6/002-02-v6.11-clk-qcom-add-clock-controller-driver-for-qca8386-qca.patch index d831bb6a75..fe670b1f02 100644 --- a/target/linux/qualcommbe/patches-6.6/002-02-v6.11-clk-qcom-add-clock-controller-driver-for-qca8386-qca.patch +++ b/target/linux/qualcommbe/patches-6.6/002-02-v6.11-clk-qcom-add-clock-controller-driver-for-qca8386-qca.patch @@ -32,11 +32,9 @@ Signed-off-by: Bjorn Andersson 3 files changed, 2231 insertions(+) create mode 100644 drivers/clk/qcom/nsscc-qca8k.c -diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig -index 20ba2eeb24ec..4432b1cce478 100644 --- a/drivers/clk/qcom/Kconfig +++ b/drivers/clk/qcom/Kconfig -@@ -249,6 +249,15 @@ config IPQ_GCC_9574 +@@ -204,6 +204,15 @@ config IPQ_GCC_9574 i2c, USB, SD/eMMC, etc. Select this for the root clock of ipq9574. @@ -52,11 +50,9 @@ index 20ba2eeb24ec..4432b1cce478 100644 config MSM_GCC_8660 tristate "MSM8660 Global Clock Controller" depends on ARM || COMPILE_TEST -diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile -index b7de8600dc3d..0241f00689bc 100644 --- a/drivers/clk/qcom/Makefile +++ b/drivers/clk/qcom/Makefile -@@ -36,6 +36,7 @@ obj-$(CONFIG_IPQ_GCC_806X) += gcc-ipq806x.o +@@ -31,6 +31,7 @@ obj-$(CONFIG_IPQ_GCC_806X) += gcc-ipq806 obj-$(CONFIG_IPQ_GCC_8074) += gcc-ipq8074.o obj-$(CONFIG_IPQ_GCC_9574) += gcc-ipq9574.o obj-$(CONFIG_IPQ_LCC_806X) += lcc-ipq806x.o @@ -64,9 +60,6 @@ index b7de8600dc3d..0241f00689bc 100644 obj-$(CONFIG_MDM_GCC_9607) += gcc-mdm9607.o obj-$(CONFIG_MDM_GCC_9615) += gcc-mdm9615.o obj-$(CONFIG_MSM_GCC_8660) += gcc-msm8660.o -diff --git a/drivers/clk/qcom/nsscc-qca8k.c b/drivers/clk/qcom/nsscc-qca8k.c -new file mode 100644 -index 000000000000..5c8324e2bcca --- /dev/null +++ b/drivers/clk/qcom/nsscc-qca8k.c @@ -0,0 +1,2221 @@ @@ -2291,6 +2284,3 @@ index 000000000000..5c8324e2bcca + +MODULE_DESCRIPTION("QCOM NSS_CC QCA8K Driver"); +MODULE_LICENSE("GPL"); --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/003-v6.11-arm64-dts-qcom-ipq9574-add-MDIO-bus.patch b/target/linux/qualcommbe/patches-6.6/003-v6.11-arm64-dts-qcom-ipq9574-add-MDIO-bus.patch index 90a7ad364c..43f256bb26 100644 --- a/target/linux/qualcommbe/patches-6.6/003-v6.11-arm64-dts-qcom-ipq9574-add-MDIO-bus.patch +++ b/target/linux/qualcommbe/patches-6.6/003-v6.11-arm64-dts-qcom-ipq9574-add-MDIO-bus.patch @@ -13,11 +13,9 @@ Signed-off-by: Bjorn Andersson arch/arm64/boot/dts/qcom/ipq9574.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -index 7f2e5cbf3bbb..ded02bc39275 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -@@ -232,6 +232,16 @@ rng: rng@e3000 { +@@ -218,6 +218,16 @@ clock-names = "core"; }; @@ -34,6 +32,3 @@ index 7f2e5cbf3bbb..ded02bc39275 100644 qfprom: efuse@a4000 { compatible = "qcom,ipq9574-qfprom", "qcom,qfprom"; reg = <0x000a4000 0x5a1>; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/004-01-v.610-clk-qcom-clk-rcg-introduce-support-for-multiple-conf.patch b/target/linux/qualcommbe/patches-6.6/004-01-v.610-clk-qcom-clk-rcg-introduce-support-for-multiple-conf.patch index c75cd16d6b..91d956240a 100644 --- a/target/linux/qualcommbe/patches-6.6/004-01-v.610-clk-qcom-clk-rcg-introduce-support-for-multiple-conf.patch +++ b/target/linux/qualcommbe/patches-6.6/004-01-v.610-clk-qcom-clk-rcg-introduce-support-for-multiple-conf.patch @@ -35,8 +35,6 @@ Signed-off-by: Bjorn Andersson drivers/clk/qcom/clk-rcg.h | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) -diff --git a/drivers/clk/qcom/clk-rcg.h b/drivers/clk/qcom/clk-rcg.h -index e6d84c8c7989..c50e6616d02c 100644 --- a/drivers/clk/qcom/clk-rcg.h +++ b/drivers/clk/qcom/clk-rcg.h @@ -17,6 +17,23 @@ struct freq_tbl { @@ -63,7 +61,7 @@ index e6d84c8c7989..c50e6616d02c 100644 /** * struct mn - M/N:D counter * @mnctr_en_bit: bit to enable mn counter -@@ -138,6 +155,7 @@ extern const struct clk_ops clk_dyn_rcg_ops; +@@ -138,6 +155,7 @@ extern const struct clk_ops clk_dyn_rcg_ * @safe_src_index: safe src index value * @parent_map: map from software's parent index to hardware's src_sel field * @freq_tbl: frequency table @@ -83,6 +81,3 @@ index e6d84c8c7989..c50e6616d02c 100644 struct clk_regmap clkr; u8 cfg_off; u32 parked_cfg; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/004-02-v6.10-clk-qcom-clk-rcg2-add-support-for-rcg2-freq-multi-op.patch b/target/linux/qualcommbe/patches-6.6/004-02-v6.10-clk-qcom-clk-rcg2-add-support-for-rcg2-freq-multi-op.patch index 94451fd636..7c329cb0c0 100644 --- a/target/linux/qualcommbe/patches-6.6/004-02-v6.10-clk-qcom-clk-rcg2-add-support-for-rcg2-freq-multi-op.patch +++ b/target/linux/qualcommbe/patches-6.6/004-02-v6.10-clk-qcom-clk-rcg2-add-support-for-rcg2-freq-multi-op.patch @@ -36,8 +36,6 @@ Signed-off-by: Bjorn Andersson drivers/clk/qcom/common.h | 2 + 4 files changed, 187 insertions(+) -diff --git a/drivers/clk/qcom/clk-rcg.h b/drivers/clk/qcom/clk-rcg.h -index c50e6616d02c..d7414361e432 100644 --- a/drivers/clk/qcom/clk-rcg.h +++ b/drivers/clk/qcom/clk-rcg.h @@ -190,6 +190,7 @@ struct clk_rcg2_gfx3d { @@ -48,11 +46,9 @@ index c50e6616d02c..d7414361e432 100644 extern const struct clk_ops clk_rcg2_mux_closest_ops; extern const struct clk_ops clk_edp_pixel_ops; extern const struct clk_ops clk_byte_ops; -diff --git a/drivers/clk/qcom/clk-rcg2.c b/drivers/clk/qcom/clk-rcg2.c -index 5183c74b074f..9b3aaa7f20ac 100644 --- a/drivers/clk/qcom/clk-rcg2.c +++ b/drivers/clk/qcom/clk-rcg2.c -@@ -260,6 +260,115 @@ static int _freq_tbl_determine_rate(struct clk_hw *hw, const struct freq_tbl *f, +@@ -260,6 +260,115 @@ static int _freq_tbl_determine_rate(stru return 0; } @@ -168,7 +164,7 @@ index 5183c74b074f..9b3aaa7f20ac 100644 static int clk_rcg2_determine_rate(struct clk_hw *hw, struct clk_rate_request *req) { -@@ -276,6 +385,14 @@ static int clk_rcg2_determine_floor_rate(struct clk_hw *hw, +@@ -276,6 +385,14 @@ static int clk_rcg2_determine_floor_rate return _freq_tbl_determine_rate(hw, rcg->freq_tbl, req, FLOOR); } @@ -183,7 +179,7 @@ index 5183c74b074f..9b3aaa7f20ac 100644 static int __clk_rcg2_configure(struct clk_rcg2 *rcg, const struct freq_tbl *f, u32 *_cfg) { -@@ -371,6 +488,30 @@ static int __clk_rcg2_set_rate(struct clk_hw *hw, unsigned long rate, +@@ -371,6 +488,30 @@ static int __clk_rcg2_set_rate(struct cl return clk_rcg2_configure(rcg, f); } @@ -214,7 +210,7 @@ index 5183c74b074f..9b3aaa7f20ac 100644 static int clk_rcg2_set_rate(struct clk_hw *hw, unsigned long rate, unsigned long parent_rate) { -@@ -383,6 +524,12 @@ static int clk_rcg2_set_floor_rate(struct clk_hw *hw, unsigned long rate, +@@ -383,6 +524,12 @@ static int clk_rcg2_set_floor_rate(struc return __clk_rcg2_set_rate(hw, rate, FLOOR); } @@ -227,7 +223,7 @@ index 5183c74b074f..9b3aaa7f20ac 100644 static int clk_rcg2_set_rate_and_parent(struct clk_hw *hw, unsigned long rate, unsigned long parent_rate, u8 index) { -@@ -395,6 +542,12 @@ static int clk_rcg2_set_floor_rate_and_parent(struct clk_hw *hw, +@@ -395,6 +542,12 @@ static int clk_rcg2_set_floor_rate_and_p return __clk_rcg2_set_rate(hw, rate, FLOOR); } @@ -240,7 +236,7 @@ index 5183c74b074f..9b3aaa7f20ac 100644 static int clk_rcg2_get_duty_cycle(struct clk_hw *hw, struct clk_duty *duty) { struct clk_rcg2 *rcg = to_clk_rcg2(hw); -@@ -505,6 +658,19 @@ const struct clk_ops clk_rcg2_floor_ops = { +@@ -505,6 +658,19 @@ const struct clk_ops clk_rcg2_floor_ops }; EXPORT_SYMBOL_GPL(clk_rcg2_floor_ops); @@ -260,11 +256,9 @@ index 5183c74b074f..9b3aaa7f20ac 100644 const struct clk_ops clk_rcg2_mux_closest_ops = { .determine_rate = __clk_mux_determine_rate_closest, .get_parent = clk_rcg2_get_parent, -diff --git a/drivers/clk/qcom/common.c b/drivers/clk/qcom/common.c -index 75f09e6e057e..48f81e3a5e80 100644 --- a/drivers/clk/qcom/common.c +++ b/drivers/clk/qcom/common.c -@@ -41,6 +41,24 @@ struct freq_tbl *qcom_find_freq(const struct freq_tbl *f, unsigned long rate) +@@ -41,6 +41,24 @@ struct freq_tbl *qcom_find_freq(const st } EXPORT_SYMBOL_GPL(qcom_find_freq); @@ -289,11 +283,9 @@ index 75f09e6e057e..48f81e3a5e80 100644 const struct freq_tbl *qcom_find_freq_floor(const struct freq_tbl *f, unsigned long rate) { -diff --git a/drivers/clk/qcom/common.h b/drivers/clk/qcom/common.h -index 9c8f7b798d9f..2d4a8a837e6c 100644 --- a/drivers/clk/qcom/common.h +++ b/drivers/clk/qcom/common.h -@@ -45,6 +45,8 @@ extern const struct freq_tbl *qcom_find_freq(const struct freq_tbl *f, +@@ -45,6 +45,8 @@ extern const struct freq_tbl *qcom_find_ unsigned long rate); extern const struct freq_tbl *qcom_find_freq_floor(const struct freq_tbl *f, unsigned long rate); @@ -302,6 +294,3 @@ index 9c8f7b798d9f..2d4a8a837e6c 100644 extern void qcom_pll_set_fsm_mode(struct regmap *m, u32 reg, u8 bias_count, u8 lock_count); extern int qcom_find_src_index(struct clk_hw *hw, const struct parent_map *map, --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/005-v6.11-clk-qcom-branch-Add-clk_branch2_prepare_ops.patch b/target/linux/qualcommbe/patches-6.6/005-v6.11-clk-qcom-branch-Add-clk_branch2_prepare_ops.patch index 7790af54ee..1f35ac2002 100644 --- a/target/linux/qualcommbe/patches-6.6/005-v6.11-clk-qcom-branch-Add-clk_branch2_prepare_ops.patch +++ b/target/linux/qualcommbe/patches-6.6/005-v6.11-clk-qcom-branch-Add-clk_branch2_prepare_ops.patch @@ -20,11 +20,9 @@ Signed-off-by: Bjorn Andersson drivers/clk/qcom/clk-branch.h | 1 + 2 files changed, 8 insertions(+) -diff --git a/drivers/clk/qcom/clk-branch.c b/drivers/clk/qcom/clk-branch.c -index c1dba33ac31a..229480c5b075 100644 --- a/drivers/clk/qcom/clk-branch.c +++ b/drivers/clk/qcom/clk-branch.c -@@ -191,3 +191,10 @@ const struct clk_ops clk_branch_simple_ops = { +@@ -153,3 +153,10 @@ const struct clk_ops clk_branch_simple_o .is_enabled = clk_is_enabled_regmap, }; EXPORT_SYMBOL_GPL(clk_branch_simple_ops); @@ -35,18 +33,13 @@ index c1dba33ac31a..229480c5b075 100644 + .is_prepared = clk_is_enabled_regmap, +}; +EXPORT_SYMBOL_GPL(clk_branch2_prepare_ops); -diff --git a/drivers/clk/qcom/clk-branch.h b/drivers/clk/qcom/clk-branch.h -index f1b3b635ff32..292756435f53 100644 --- a/drivers/clk/qcom/clk-branch.h +++ b/drivers/clk/qcom/clk-branch.h -@@ -109,6 +109,7 @@ extern const struct clk_ops clk_branch2_ops; +@@ -85,6 +85,7 @@ extern const struct clk_ops clk_branch_o + extern const struct clk_ops clk_branch2_ops; extern const struct clk_ops clk_branch_simple_ops; extern const struct clk_ops clk_branch2_aon_ops; +extern const struct clk_ops clk_branch2_prepare_ops; #define to_clk_branch(_hw) \ container_of(to_clk_regmap(_hw), struct clk_branch, clkr) - --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/006-v6.11-clk-qcom-common-commonize-qcom_cc_really_probe.patch b/target/linux/qualcommbe/patches-6.6/006-v6.11-clk-qcom-common-commonize-qcom_cc_really_probe.patch index d5db3712df..ce181b4791 100644 --- a/target/linux/qualcommbe/patches-6.6/006-v6.11-clk-qcom-common-commonize-qcom_cc_really_probe.patch +++ b/target/linux/qualcommbe/patches-6.6/006-v6.11-clk-qcom-common-commonize-qcom_cc_really_probe.patch @@ -131,11 +131,9 @@ Signed-off-by: Bjorn Andersson drivers/clk/qcom/videocc-sm8550.c | 2 +- 105 files changed, 108 insertions(+), 109 deletions(-) -diff --git a/drivers/clk/qcom/apss-ipq6018.c b/drivers/clk/qcom/apss-ipq6018.c -index e6295b832686..c89d126ebac3 100644 --- a/drivers/clk/qcom/apss-ipq6018.c +++ b/drivers/clk/qcom/apss-ipq6018.c -@@ -123,7 +123,7 @@ static int apss_ipq6018_probe(struct platform_device *pdev) +@@ -89,7 +89,7 @@ static int apss_ipq6018_probe(struct pla if (!regmap) return -ENODEV; @@ -144,11 +142,9 @@ index e6295b832686..c89d126ebac3 100644 } static struct platform_driver apss_ipq6018_driver = { -diff --git a/drivers/clk/qcom/camcc-sc7280.c b/drivers/clk/qcom/camcc-sc7280.c -index da29d3b953ee..accd257632df 100644 --- a/drivers/clk/qcom/camcc-sc7280.c +++ b/drivers/clk/qcom/camcc-sc7280.c -@@ -2481,7 +2481,7 @@ static int cam_cc_sc7280_probe(struct platform_device *pdev) +@@ -2462,7 +2462,7 @@ static int cam_cc_sc7280_probe(struct pl clk_lucid_pll_configure(&cam_cc_pll5, regmap, &cam_cc_pll5_config); clk_lucid_pll_configure(&cam_cc_pll6, regmap, &cam_cc_pll6_config); @@ -157,11 +153,9 @@ index da29d3b953ee..accd257632df 100644 } static struct platform_driver cam_cc_sc7280_driver = { -diff --git a/drivers/clk/qcom/camcc-sdm845.c b/drivers/clk/qcom/camcc-sdm845.c -index 8466d03e0d05..40022a10f8c0 100644 --- a/drivers/clk/qcom/camcc-sdm845.c +++ b/drivers/clk/qcom/camcc-sdm845.c -@@ -1735,7 +1735,7 @@ static int cam_cc_sdm845_probe(struct platform_device *pdev) +@@ -1735,7 +1735,7 @@ static int cam_cc_sdm845_probe(struct pl cam_cc_pll_config.l = 0x14; clk_fabia_pll_configure(&cam_cc_pll3, regmap, &cam_cc_pll_config); @@ -170,11 +164,9 @@ index 8466d03e0d05..40022a10f8c0 100644 } static struct platform_driver cam_cc_sdm845_driver = { -diff --git a/drivers/clk/qcom/camcc-sm6350.c b/drivers/clk/qcom/camcc-sm6350.c -index c6fe684aa780..f6634cc8663e 100644 --- a/drivers/clk/qcom/camcc-sm6350.c +++ b/drivers/clk/qcom/camcc-sm6350.c -@@ -1879,7 +1879,7 @@ static int camcc_sm6350_probe(struct platform_device *pdev) +@@ -1879,7 +1879,7 @@ static int camcc_sm6350_probe(struct pla clk_agera_pll_configure(&camcc_pll2, regmap, &camcc_pll2_config); clk_fabia_pll_configure(&camcc_pll3, regmap, &camcc_pll3_config); @@ -183,11 +175,9 @@ index c6fe684aa780..f6634cc8663e 100644 } static struct platform_driver camcc_sm6350_driver = { -diff --git a/drivers/clk/qcom/camcc-sm8250.c b/drivers/clk/qcom/camcc-sm8250.c -index 96103eeda586..34d2f17520dc 100644 --- a/drivers/clk/qcom/camcc-sm8250.c +++ b/drivers/clk/qcom/camcc-sm8250.c -@@ -2433,7 +2433,7 @@ static int cam_cc_sm8250_probe(struct platform_device *pdev) +@@ -2433,7 +2433,7 @@ static int cam_cc_sm8250_probe(struct pl clk_lucid_pll_configure(&cam_cc_pll3, regmap, &cam_cc_pll3_config); clk_lucid_pll_configure(&cam_cc_pll4, regmap, &cam_cc_pll4_config); @@ -196,11 +186,9 @@ index 96103eeda586..34d2f17520dc 100644 } static struct platform_driver cam_cc_sm8250_driver = { -diff --git a/drivers/clk/qcom/camcc-sm8450.c b/drivers/clk/qcom/camcc-sm8450.c -index 51338a2884d2..26b78eed15ef 100644 --- a/drivers/clk/qcom/camcc-sm8450.c +++ b/drivers/clk/qcom/camcc-sm8450.c -@@ -2839,7 +2839,7 @@ static int cam_cc_sm8450_probe(struct platform_device *pdev) +@@ -2839,7 +2839,7 @@ static int cam_cc_sm8450_probe(struct pl clk_lucid_evo_pll_configure(&cam_cc_pll7, regmap, &cam_cc_pll7_config); clk_lucid_evo_pll_configure(&cam_cc_pll8, regmap, &cam_cc_pll8_config); @@ -209,11 +197,9 @@ index 51338a2884d2..26b78eed15ef 100644 } static struct platform_driver cam_cc_sm8450_driver = { -diff --git a/drivers/clk/qcom/common.c b/drivers/clk/qcom/common.c -index 1e79f05d5226..c92e10c60322 100644 --- a/drivers/clk/qcom/common.c +++ b/drivers/clk/qcom/common.c -@@ -252,11 +252,10 @@ static struct clk_hw *qcom_cc_clk_hw_get(struct of_phandle_args *clkspec, +@@ -252,11 +252,10 @@ static struct clk_hw *qcom_cc_clk_hw_get return cc->rclks[idx] ? &cc->rclks[idx]->hw : NULL; } @@ -226,7 +212,7 @@ index 1e79f05d5226..c92e10c60322 100644 struct qcom_reset_controller *reset; struct qcom_cc *cc; struct gdsc_desc *scd; -@@ -333,7 +332,7 @@ int qcom_cc_probe(struct platform_device *pdev, const struct qcom_cc_desc *desc) +@@ -333,7 +332,7 @@ int qcom_cc_probe(struct platform_device if (IS_ERR(regmap)) return PTR_ERR(regmap); @@ -235,7 +221,7 @@ index 1e79f05d5226..c92e10c60322 100644 } EXPORT_SYMBOL_GPL(qcom_cc_probe); -@@ -351,7 +350,7 @@ int qcom_cc_probe_by_index(struct platform_device *pdev, int index, +@@ -351,7 +350,7 @@ int qcom_cc_probe_by_index(struct platfo if (IS_ERR(regmap)) return PTR_ERR(regmap); @@ -244,11 +230,9 @@ index 1e79f05d5226..c92e10c60322 100644 } EXPORT_SYMBOL_GPL(qcom_cc_probe_by_index); -diff --git a/drivers/clk/qcom/common.h b/drivers/clk/qcom/common.h -index 2d4a8a837e6c..d048bdeeba10 100644 --- a/drivers/clk/qcom/common.h +++ b/drivers/clk/qcom/common.h -@@ -60,7 +60,7 @@ extern int qcom_cc_register_sleep_clk(struct device *dev); +@@ -60,7 +60,7 @@ extern int qcom_cc_register_sleep_clk(st extern struct regmap *qcom_cc_map(struct platform_device *pdev, const struct qcom_cc_desc *desc); @@ -257,24 +241,20 @@ index 2d4a8a837e6c..d048bdeeba10 100644 const struct qcom_cc_desc *desc, struct regmap *regmap); extern int qcom_cc_probe(struct platform_device *pdev, -diff --git a/drivers/clk/qcom/dispcc-qcm2290.c b/drivers/clk/qcom/dispcc-qcm2290.c -index 654a10d53e5c..449ffea2295d 100644 --- a/drivers/clk/qcom/dispcc-qcm2290.c +++ b/drivers/clk/qcom/dispcc-qcm2290.c -@@ -522,7 +522,7 @@ static int disp_cc_qcm2290_probe(struct platform_device *pdev) - /* Keep some clocks always-on */ - qcom_branch_set_clk_en(regmap, 0x604c); /* DISP_CC_XO_CLK */ +@@ -522,7 +522,7 @@ static int disp_cc_qcm2290_probe(struct + /* Keep DISP_CC_XO_CLK always-ON */ + regmap_update_bits(regmap, 0x604c, BIT(0), BIT(0)); - ret = qcom_cc_really_probe(pdev, &disp_cc_qcm2290_desc, regmap); + ret = qcom_cc_really_probe(&pdev->dev, &disp_cc_qcm2290_desc, regmap); if (ret) { dev_err(&pdev->dev, "Failed to register DISP CC clocks\n"); return ret; -diff --git a/drivers/clk/qcom/dispcc-sc7180.c b/drivers/clk/qcom/dispcc-sc7180.c -index 38d7859981c7..4710247be530 100644 --- a/drivers/clk/qcom/dispcc-sc7180.c +++ b/drivers/clk/qcom/dispcc-sc7180.c -@@ -713,7 +713,7 @@ static int disp_cc_sc7180_probe(struct platform_device *pdev) +@@ -713,7 +713,7 @@ static int disp_cc_sc7180_probe(struct p clk_fabia_pll_configure(&disp_cc_pll0, regmap, &disp_cc_pll_config); @@ -283,24 +263,20 @@ index 38d7859981c7..4710247be530 100644 } static struct platform_driver disp_cc_sc7180_driver = { -diff --git a/drivers/clk/qcom/dispcc-sc7280.c b/drivers/clk/qcom/dispcc-sc7280.c -index fbeb8fccb99a..db0745954894 100644 --- a/drivers/clk/qcom/dispcc-sc7280.c +++ b/drivers/clk/qcom/dispcc-sc7280.c -@@ -881,7 +881,7 @@ static int disp_cc_sc7280_probe(struct platform_device *pdev) - /* Keep some clocks always-on */ - qcom_branch_set_clk_en(regmap, 0x5008); /* DISP_CC_XO_CLK */ +@@ -884,7 +884,7 @@ static int disp_cc_sc7280_probe(struct p + */ + regmap_update_bits(regmap, 0x5008, BIT(0), BIT(0)); - return qcom_cc_really_probe(pdev, &disp_cc_sc7280_desc, regmap); + return qcom_cc_really_probe(&pdev->dev, &disp_cc_sc7280_desc, regmap); } static struct platform_driver disp_cc_sc7280_driver = { -diff --git a/drivers/clk/qcom/dispcc-sc8280xp.c b/drivers/clk/qcom/dispcc-sc8280xp.c -index 91172f5b2f15..f1ca9ae0b33f 100644 --- a/drivers/clk/qcom/dispcc-sc8280xp.c +++ b/drivers/clk/qcom/dispcc-sc8280xp.c -@@ -3172,7 +3172,7 @@ static int disp_cc_sc8280xp_probe(struct platform_device *pdev) +@@ -3172,7 +3172,7 @@ static int disp_cc_sc8280xp_probe(struct clk_lucid_pll_configure(clkr_to_alpha_clk_pll(desc->clks[DISP_CC_PLL1]), regmap, &disp_cc_pll1_config); clk_lucid_pll_configure(clkr_to_alpha_clk_pll(desc->clks[DISP_CC_PLL2]), regmap, &disp_cc_pll2_config); @@ -309,11 +285,9 @@ index 91172f5b2f15..f1ca9ae0b33f 100644 if (ret) { dev_err(&pdev->dev, "Failed to register display clock controller\n"); goto out_pm_runtime_put; -diff --git a/drivers/clk/qcom/dispcc-sdm845.c b/drivers/clk/qcom/dispcc-sdm845.c -index b84fdd17c3d8..e6139e8f74dc 100644 --- a/drivers/clk/qcom/dispcc-sdm845.c +++ b/drivers/clk/qcom/dispcc-sdm845.c -@@ -863,7 +863,7 @@ static int disp_cc_sdm845_probe(struct platform_device *pdev) +@@ -863,7 +863,7 @@ static int disp_cc_sdm845_probe(struct p /* Enable hardware clock gating for DSI and MDP clocks */ regmap_update_bits(regmap, 0x8000, 0x7f0, 0x7f0); @@ -322,24 +296,20 @@ index b84fdd17c3d8..e6139e8f74dc 100644 } static struct platform_driver disp_cc_sdm845_driver = { -diff --git a/drivers/clk/qcom/dispcc-sm6115.c b/drivers/clk/qcom/dispcc-sm6115.c -index bd07f26af35a..939887f82ecc 100644 --- a/drivers/clk/qcom/dispcc-sm6115.c +++ b/drivers/clk/qcom/dispcc-sm6115.c -@@ -586,7 +586,7 @@ static int disp_cc_sm6115_probe(struct platform_device *pdev) - /* Keep some clocks always-on */ - qcom_branch_set_clk_en(regmap, 0x604c); /* DISP_CC_XO_CLK */ +@@ -586,7 +586,7 @@ static int disp_cc_sm6115_probe(struct p + /* Keep DISP_CC_XO_CLK always-ON */ + regmap_update_bits(regmap, 0x604c, BIT(0), BIT(0)); - ret = qcom_cc_really_probe(pdev, &disp_cc_sm6115_desc, regmap); + ret = qcom_cc_really_probe(&pdev->dev, &disp_cc_sm6115_desc, regmap); if (ret) { dev_err(&pdev->dev, "Failed to register DISP CC clocks\n"); return ret; -diff --git a/drivers/clk/qcom/dispcc-sm6125.c b/drivers/clk/qcom/dispcc-sm6125.c -index 85e07731cce2..51c7492816fb 100644 --- a/drivers/clk/qcom/dispcc-sm6125.c +++ b/drivers/clk/qcom/dispcc-sm6125.c -@@ -682,7 +682,7 @@ static int disp_cc_sm6125_probe(struct platform_device *pdev) +@@ -682,7 +682,7 @@ static int disp_cc_sm6125_probe(struct p clk_alpha_pll_configure(&disp_cc_pll0, regmap, &disp_cc_pll0_config); @@ -348,11 +318,9 @@ index 85e07731cce2..51c7492816fb 100644 } static struct platform_driver disp_cc_sm6125_driver = { -diff --git a/drivers/clk/qcom/dispcc-sm6350.c b/drivers/clk/qcom/dispcc-sm6350.c -index f712cbef9456..50facb36701a 100644 --- a/drivers/clk/qcom/dispcc-sm6350.c +++ b/drivers/clk/qcom/dispcc-sm6350.c -@@ -761,7 +761,7 @@ static int disp_cc_sm6350_probe(struct platform_device *pdev) +@@ -761,7 +761,7 @@ static int disp_cc_sm6350_probe(struct p clk_fabia_pll_configure(&disp_cc_pll0, regmap, &disp_cc_pll0_config); @@ -361,11 +329,9 @@ index f712cbef9456..50facb36701a 100644 } static struct platform_driver disp_cc_sm6350_driver = { -diff --git a/drivers/clk/qcom/dispcc-sm6375.c b/drivers/clk/qcom/dispcc-sm6375.c -index 2d42f85f184b..167dd369a794 100644 --- a/drivers/clk/qcom/dispcc-sm6375.c +++ b/drivers/clk/qcom/dispcc-sm6375.c -@@ -583,7 +583,7 @@ static int disp_cc_sm6375_probe(struct platform_device *pdev) +@@ -583,7 +583,7 @@ static int disp_cc_sm6375_probe(struct p clk_lucid_pll_configure(&disp_cc_pll0, regmap, &disp_cc_pll0_config); @@ -374,50 +340,42 @@ index 2d42f85f184b..167dd369a794 100644 } static struct platform_driver disp_cc_sm6375_driver = { -diff --git a/drivers/clk/qcom/dispcc-sm8250.c b/drivers/clk/qcom/dispcc-sm8250.c -index 43307c8a342c..5a09009b7289 100644 --- a/drivers/clk/qcom/dispcc-sm8250.c +++ b/drivers/clk/qcom/dispcc-sm8250.c -@@ -1366,7 +1366,7 @@ static int disp_cc_sm8250_probe(struct platform_device *pdev) - /* Keep some clocks always-on */ - qcom_branch_set_clk_en(regmap, 0x605c); /* DISP_CC_XO_CLK */ +@@ -1376,7 +1376,7 @@ static int disp_cc_sm8250_probe(struct p + /* DISP_CC_XO_CLK always-on */ + regmap_update_bits(regmap, 0x605c, BIT(0), BIT(0)); - ret = qcom_cc_really_probe(pdev, &disp_cc_sm8250_desc, regmap); + ret = qcom_cc_really_probe(&pdev->dev, &disp_cc_sm8250_desc, regmap); pm_runtime_put(&pdev->dev); -diff --git a/drivers/clk/qcom/dispcc-sm8450.c b/drivers/clk/qcom/dispcc-sm8450.c -index 5d028871624e..d1d3f60789ee 100644 --- a/drivers/clk/qcom/dispcc-sm8450.c +++ b/drivers/clk/qcom/dispcc-sm8450.c -@@ -1778,7 +1778,7 @@ static int disp_cc_sm8450_probe(struct platform_device *pdev) - /* Keep some clocks always-on */ - qcom_branch_set_clk_en(regmap, 0xe05c); /* DISP_CC_XO_CLK */ +@@ -1781,7 +1781,7 @@ static int disp_cc_sm8450_probe(struct p + */ + regmap_update_bits(regmap, 0xe05c, BIT(0), BIT(0)); - ret = qcom_cc_really_probe(pdev, &disp_cc_sm8450_desc, regmap); + ret = qcom_cc_really_probe(&pdev->dev, &disp_cc_sm8450_desc, regmap); if (ret) goto err_put_rpm; -diff --git a/drivers/clk/qcom/dispcc-sm8550.c b/drivers/clk/qcom/dispcc-sm8550.c -index 88f9347ab77c..31ae46f180a5 100644 --- a/drivers/clk/qcom/dispcc-sm8550.c +++ b/drivers/clk/qcom/dispcc-sm8550.c -@@ -1771,7 +1771,7 @@ static int disp_cc_sm8550_probe(struct platform_device *pdev) - /* Keep some clocks always-on */ - qcom_branch_set_clk_en(regmap, 0xe054); /* DISP_CC_XO_CLK */ +@@ -1774,7 +1774,7 @@ static int disp_cc_sm8550_probe(struct p + */ + regmap_update_bits(regmap, 0xe054, BIT(0), BIT(0)); - ret = qcom_cc_really_probe(pdev, &disp_cc_sm8550_desc, regmap); + ret = qcom_cc_really_probe(&pdev->dev, &disp_cc_sm8550_desc, regmap); if (ret) goto err_put_rpm; -diff --git a/drivers/clk/qcom/gcc-ipq5018.c b/drivers/clk/qcom/gcc-ipq5018.c -index c1732d70e3a2..70f5dcb96700 100644 --- a/drivers/clk/qcom/gcc-ipq5018.c +++ b/drivers/clk/qcom/gcc-ipq5018.c -@@ -3698,7 +3698,7 @@ static int gcc_ipq5018_probe(struct platform_device *pdev) +@@ -3697,7 +3697,7 @@ static int gcc_ipq5018_probe(struct plat clk_alpha_pll_configure(&ubi32_pll_main, regmap, &ubi32_pll_config); @@ -426,11 +384,9 @@ index c1732d70e3a2..70f5dcb96700 100644 } static struct platform_driver gcc_ipq5018_driver = { -diff --git a/drivers/clk/qcom/gcc-ipq6018.c b/drivers/clk/qcom/gcc-ipq6018.c -index 7e69de34c310..9e5885101366 100644 --- a/drivers/clk/qcom/gcc-ipq6018.c +++ b/drivers/clk/qcom/gcc-ipq6018.c -@@ -4642,7 +4642,7 @@ static int gcc_ipq6018_probe(struct platform_device *pdev) +@@ -4604,7 +4604,7 @@ static int gcc_ipq6018_probe(struct plat clk_alpha_pll_configure(&nss_crypto_pll_main, regmap, &nss_crypto_pll_config); @@ -439,11 +395,9 @@ index 7e69de34c310..9e5885101366 100644 } static struct platform_driver gcc_ipq6018_driver = { -diff --git a/drivers/clk/qcom/gcc-ipq8074.c b/drivers/clk/qcom/gcc-ipq8074.c -index d2be56c5892d..32fd01ef469a 100644 --- a/drivers/clk/qcom/gcc-ipq8074.c +++ b/drivers/clk/qcom/gcc-ipq8074.c -@@ -4760,7 +4760,7 @@ static int gcc_ipq8074_probe(struct platform_device *pdev) +@@ -4728,7 +4728,7 @@ static int gcc_ipq8074_probe(struct plat clk_alpha_pll_configure(&nss_crypto_pll_main, regmap, &nss_crypto_pll_config); @@ -452,11 +406,9 @@ index d2be56c5892d..32fd01ef469a 100644 } static struct platform_driver gcc_ipq8074_driver = { -diff --git a/drivers/clk/qcom/gcc-mdm9607.c b/drivers/clk/qcom/gcc-mdm9607.c -index fb290e73ce94..6e6068b168e6 100644 --- a/drivers/clk/qcom/gcc-mdm9607.c +++ b/drivers/clk/qcom/gcc-mdm9607.c -@@ -1604,7 +1604,7 @@ static int gcc_mdm9607_probe(struct platform_device *pdev) +@@ -1604,7 +1604,7 @@ static int gcc_mdm9607_probe(struct plat /* Vote for GPLL0 to turn on. Needed by acpuclock. */ regmap_update_bits(regmap, 0x45000, BIT(0), BIT(0)); @@ -465,11 +417,9 @@ index fb290e73ce94..6e6068b168e6 100644 } static struct platform_driver gcc_mdm9607_driver = { -diff --git a/drivers/clk/qcom/gcc-mdm9615.c b/drivers/clk/qcom/gcc-mdm9615.c -index aec7c4a1d3de..33987b957737 100644 --- a/drivers/clk/qcom/gcc-mdm9615.c +++ b/drivers/clk/qcom/gcc-mdm9615.c -@@ -1736,7 +1736,7 @@ static int gcc_mdm9615_probe(struct platform_device *pdev) +@@ -1736,7 +1736,7 @@ static int gcc_mdm9615_probe(struct plat if (IS_ERR(regmap)) return PTR_ERR(regmap); @@ -478,11 +428,9 @@ index aec7c4a1d3de..33987b957737 100644 } static struct platform_driver gcc_mdm9615_driver = { -diff --git a/drivers/clk/qcom/gcc-msm8917.c b/drivers/clk/qcom/gcc-msm8917.c -index f2b8729e4198..3e2a2ae2ee6e 100644 --- a/drivers/clk/qcom/gcc-msm8917.c +++ b/drivers/clk/qcom/gcc-msm8917.c -@@ -3270,7 +3270,7 @@ static int gcc_msm8917_probe(struct platform_device *pdev) +@@ -3270,7 +3270,7 @@ static int gcc_msm8917_probe(struct plat clk_alpha_pll_configure(&gpll3_early, regmap, &gpll3_early_config); @@ -491,11 +439,9 @@ index f2b8729e4198..3e2a2ae2ee6e 100644 } static const struct of_device_id gcc_msm8917_match_table[] = { -diff --git a/drivers/clk/qcom/gcc-msm8939.c b/drivers/clk/qcom/gcc-msm8939.c -index 7b9a3e99b589..7431c9a65044 100644 --- a/drivers/clk/qcom/gcc-msm8939.c +++ b/drivers/clk/qcom/gcc-msm8939.c -@@ -4108,7 +4108,7 @@ static int gcc_msm8939_probe(struct platform_device *pdev) +@@ -4004,7 +4004,7 @@ static int gcc_msm8939_probe(struct plat clk_pll_configure_sr_hpm_lp(&gpll3, regmap, &gpll3_config, true); clk_pll_configure_sr_hpm_lp(&gpll4, regmap, &gpll4_config, true); @@ -504,11 +450,9 @@ index 7b9a3e99b589..7431c9a65044 100644 } static struct platform_driver gcc_msm8939_driver = { -diff --git a/drivers/clk/qcom/gcc-msm8953.c b/drivers/clk/qcom/gcc-msm8953.c -index 7563bff58118..855a61966f3e 100644 --- a/drivers/clk/qcom/gcc-msm8953.c +++ b/drivers/clk/qcom/gcc-msm8953.c -@@ -4220,7 +4220,7 @@ static int gcc_msm8953_probe(struct platform_device *pdev) +@@ -4216,7 +4216,7 @@ static int gcc_msm8953_probe(struct plat clk_alpha_pll_configure(&gpll3_early, regmap, &gpll3_early_config); @@ -517,11 +461,9 @@ index 7563bff58118..855a61966f3e 100644 } static const struct of_device_id gcc_msm8953_match_table[] = { -diff --git a/drivers/clk/qcom/gcc-msm8976.c b/drivers/clk/qcom/gcc-msm8976.c -index 7fac0ca594aa..399f22033c29 100644 --- a/drivers/clk/qcom/gcc-msm8976.c +++ b/drivers/clk/qcom/gcc-msm8976.c -@@ -4129,7 +4129,7 @@ static int gcc_msm8976_probe(struct platform_device *pdev) +@@ -4129,7 +4129,7 @@ static int gcc_msm8976_probe(struct plat if (ret) return ret; @@ -530,11 +472,9 @@ index 7fac0ca594aa..399f22033c29 100644 } static struct platform_driver gcc_msm8976_driver = { -diff --git a/drivers/clk/qcom/gcc-msm8996.c b/drivers/clk/qcom/gcc-msm8996.c -index e7b03a17514a..4fc667b94cf2 100644 --- a/drivers/clk/qcom/gcc-msm8996.c +++ b/drivers/clk/qcom/gcc-msm8996.c -@@ -3620,7 +3620,7 @@ static int gcc_msm8996_probe(struct platform_device *pdev) +@@ -3620,7 +3620,7 @@ static int gcc_msm8996_probe(struct plat */ regmap_update_bits(regmap, 0x52008, BIT(21), BIT(21)); @@ -543,11 +483,9 @@ index e7b03a17514a..4fc667b94cf2 100644 } static struct platform_driver gcc_msm8996_driver = { -diff --git a/drivers/clk/qcom/gcc-msm8998.c b/drivers/clk/qcom/gcc-msm8998.c -index 5f8c87c1793f..90b66caba2cd 100644 --- a/drivers/clk/qcom/gcc-msm8998.c +++ b/drivers/clk/qcom/gcc-msm8998.c -@@ -3292,7 +3292,7 @@ static int gcc_msm8998_probe(struct platform_device *pdev) +@@ -3292,7 +3292,7 @@ static int gcc_msm8998_probe(struct plat regmap_write(regmap, GCC_MMSS_MISC, 0x10003); regmap_write(regmap, GCC_GPU_MISC, 0x10003); @@ -556,11 +494,9 @@ index 5f8c87c1793f..90b66caba2cd 100644 } static const struct of_device_id gcc_msm8998_match_table[] = { -diff --git a/drivers/clk/qcom/gcc-qcm2290.c b/drivers/clk/qcom/gcc-qcm2290.c -index 48995e50c6bd..9a6703365e61 100644 --- a/drivers/clk/qcom/gcc-qcm2290.c +++ b/drivers/clk/qcom/gcc-qcm2290.c -@@ -2994,7 +2994,7 @@ static int gcc_qcm2290_probe(struct platform_device *pdev) +@@ -2994,7 +2994,7 @@ static int gcc_qcm2290_probe(struct plat clk_alpha_pll_configure(&gpll8, regmap, &gpll8_config); clk_alpha_pll_configure(&gpll9, regmap, &gpll9_config); @@ -569,11 +505,9 @@ index 48995e50c6bd..9a6703365e61 100644 } static struct platform_driver gcc_qcm2290_driver = { -diff --git a/drivers/clk/qcom/gcc-qcs404.c b/drivers/clk/qcom/gcc-qcs404.c -index a39c4990b29d..c3cfd572e7c1 100644 --- a/drivers/clk/qcom/gcc-qcs404.c +++ b/drivers/clk/qcom/gcc-qcs404.c -@@ -2824,7 +2824,7 @@ static int gcc_qcs404_probe(struct platform_device *pdev) +@@ -2825,7 +2825,7 @@ static int gcc_qcs404_probe(struct platf clk_alpha_pll_configure(&gpll3_out_main, regmap, &gpll3_config); @@ -582,11 +516,9 @@ index a39c4990b29d..c3cfd572e7c1 100644 } static struct platform_driver gcc_qcs404_driver = { -diff --git a/drivers/clk/qcom/gcc-qdu1000.c b/drivers/clk/qcom/gcc-qdu1000.c -index 9f42d2601464..dbe9e9437939 100644 --- a/drivers/clk/qcom/gcc-qdu1000.c +++ b/drivers/clk/qcom/gcc-qdu1000.c -@@ -2674,7 +2674,7 @@ static int gcc_qdu1000_probe(struct platform_device *pdev) +@@ -2674,7 +2674,7 @@ static int gcc_qdu1000_probe(struct plat if (ret) return ret; @@ -595,24 +527,20 @@ index 9f42d2601464..dbe9e9437939 100644 if (ret) return dev_err_probe(&pdev->dev, ret, "Failed to register GCC clocks\n"); -diff --git a/drivers/clk/qcom/gcc-sa8775p.c b/drivers/clk/qcom/gcc-sa8775p.c -index 5bcbfbf52cb9..9f31ce4cea18 100644 --- a/drivers/clk/qcom/gcc-sa8775p.c +++ b/drivers/clk/qcom/gcc-sa8775p.c -@@ -4753,7 +4753,7 @@ static int gcc_sa8775p_probe(struct platform_device *pdev) - qcom_branch_set_clk_en(regmap, 0x34004); /* GCC_VIDEO_AHB_CLK */ - qcom_branch_set_clk_en(regmap, 0x34024); /* GCC_VIDEO_XO_CLK */ +@@ -4798,7 +4798,7 @@ static int gcc_sa8775p_probe(struct plat + regmap_update_bits(regmap, 0x34004, BIT(0), BIT(0)); + regmap_update_bits(regmap, 0x34024, BIT(0), BIT(0)); - return qcom_cc_really_probe(pdev, &gcc_sa8775p_desc, regmap); + return qcom_cc_really_probe(&pdev->dev, &gcc_sa8775p_desc, regmap); } static struct platform_driver gcc_sa8775p_driver = { -diff --git a/drivers/clk/qcom/gcc-sc7180.c b/drivers/clk/qcom/gcc-sc7180.c -index 6a5f785c0ced..4a49ad7a9e5b 100644 --- a/drivers/clk/qcom/gcc-sc7180.c +++ b/drivers/clk/qcom/gcc-sc7180.c -@@ -2458,7 +2458,7 @@ static int gcc_sc7180_probe(struct platform_device *pdev) +@@ -2462,7 +2462,7 @@ static int gcc_sc7180_probe(struct platf if (ret) return ret; @@ -621,11 +549,9 @@ index 6a5f785c0ced..4a49ad7a9e5b 100644 } static struct platform_driver gcc_sc7180_driver = { -diff --git a/drivers/clk/qcom/gcc-sc7280.c b/drivers/clk/qcom/gcc-sc7280.c -index b937d513b814..4502926a2691 100644 --- a/drivers/clk/qcom/gcc-sc7280.c +++ b/drivers/clk/qcom/gcc-sc7280.c -@@ -3481,7 +3481,7 @@ static int gcc_sc7280_probe(struct platform_device *pdev) +@@ -3475,7 +3475,7 @@ static int gcc_sc7280_probe(struct platf if (ret) return ret; @@ -634,11 +560,9 @@ index b937d513b814..4502926a2691 100644 } static struct platform_driver gcc_sc7280_driver = { -diff --git a/drivers/clk/qcom/gcc-sc8180x.c b/drivers/clk/qcom/gcc-sc8180x.c -index ad905affd376..ad135bfa4c76 100644 --- a/drivers/clk/qcom/gcc-sc8180x.c +++ b/drivers/clk/qcom/gcc-sc8180x.c -@@ -4623,7 +4623,7 @@ static int gcc_sc8180x_probe(struct platform_device *pdev) +@@ -4555,7 +4555,7 @@ static int gcc_sc8180x_probe(struct plat regmap_update_bits(regmap, 0x4d110, 0x3, 0x3); regmap_update_bits(regmap, 0x71028, 0x3, 0x3); @@ -647,11 +571,9 @@ index ad905affd376..ad135bfa4c76 100644 } static struct platform_driver gcc_sc8180x_driver = { -diff --git a/drivers/clk/qcom/gcc-sc8280xp.c b/drivers/clk/qcom/gcc-sc8280xp.c -index 082d7b5504eb..5f11760cf73f 100644 --- a/drivers/clk/qcom/gcc-sc8280xp.c +++ b/drivers/clk/qcom/gcc-sc8280xp.c -@@ -7558,7 +7558,7 @@ static int gcc_sc8280xp_probe(struct platform_device *pdev) +@@ -7563,7 +7563,7 @@ static int gcc_sc8280xp_probe(struct pla if (ret) goto err_put_rpm; @@ -660,11 +582,9 @@ index 082d7b5504eb..5f11760cf73f 100644 if (ret) goto err_put_rpm; -diff --git a/drivers/clk/qcom/gcc-sdm660.c b/drivers/clk/qcom/gcc-sdm660.c -index c4fe70871b6d..df79298a1a25 100644 --- a/drivers/clk/qcom/gcc-sdm660.c +++ b/drivers/clk/qcom/gcc-sdm660.c -@@ -2474,7 +2474,7 @@ static int gcc_sdm660_probe(struct platform_device *pdev) +@@ -2474,7 +2474,7 @@ static int gcc_sdm660_probe(struct platf if (ret) return ret; @@ -673,11 +593,9 @@ index c4fe70871b6d..df79298a1a25 100644 } static struct platform_driver gcc_sdm660_driver = { -diff --git a/drivers/clk/qcom/gcc-sdm845.c b/drivers/clk/qcom/gcc-sdm845.c -index ea4c3bf4fb9b..dc3aa7014c3e 100644 --- a/drivers/clk/qcom/gcc-sdm845.c +++ b/drivers/clk/qcom/gcc-sdm845.c -@@ -4011,7 +4011,7 @@ static int gcc_sdm845_probe(struct platform_device *pdev) +@@ -4011,7 +4011,7 @@ static int gcc_sdm845_probe(struct platf return ret; gcc_desc = of_device_get_match_data(&pdev->dev); @@ -686,50 +604,42 @@ index ea4c3bf4fb9b..dc3aa7014c3e 100644 } static struct platform_driver gcc_sdm845_driver = { -diff --git a/drivers/clk/qcom/gcc-sdx55.c b/drivers/clk/qcom/gcc-sdx55.c -index 26279b8d321a..84c507656e8f 100644 --- a/drivers/clk/qcom/gcc-sdx55.c +++ b/drivers/clk/qcom/gcc-sdx55.c -@@ -1616,7 +1616,7 @@ static int gcc_sdx55_probe(struct platform_device *pdev) - regmap_update_bits(regmap, 0x6d008, BIT(21), BIT(21)); /* GCC_CPUSS_AHB_CLK */ - regmap_update_bits(regmap, 0x6d008, BIT(22), BIT(22)); /* GCC_CPUSS_GNOC_CLK */ +@@ -1620,7 +1620,7 @@ static int gcc_sdx55_probe(struct platfo + regmap_update_bits(regmap, 0x6d008, BIT(21), BIT(21)); + regmap_update_bits(regmap, 0x6d008, BIT(22), BIT(22)); - return qcom_cc_really_probe(pdev, &gcc_sdx55_desc, regmap); + return qcom_cc_really_probe(&pdev->dev, &gcc_sdx55_desc, regmap); } static struct platform_driver gcc_sdx55_driver = { -diff --git a/drivers/clk/qcom/gcc-sdx65.c b/drivers/clk/qcom/gcc-sdx65.c -index 8fde6463574b..fe297c606f97 100644 --- a/drivers/clk/qcom/gcc-sdx65.c +++ b/drivers/clk/qcom/gcc-sdx65.c -@@ -1580,7 +1580,7 @@ static int gcc_sdx65_probe(struct platform_device *pdev) - regmap_update_bits(regmap, 0x6d008, BIT(21), BIT(21)); /* GCC_CPUSS_AHB_CLK */ - regmap_update_bits(regmap, 0x6d008, BIT(22), BIT(22)); /* GCC_CPUSS_GNOC_CLK */ +@@ -1583,7 +1583,7 @@ static int gcc_sdx65_probe(struct platfo + regmap_update_bits(regmap, 0x6d008, BIT(21), BIT(21)); + regmap_update_bits(regmap, 0x6d008, BIT(22), BIT(22)); - return qcom_cc_really_probe(pdev, &gcc_sdx65_desc, regmap); + return qcom_cc_really_probe(&pdev->dev, &gcc_sdx65_desc, regmap); } static struct platform_driver gcc_sdx65_driver = { -diff --git a/drivers/clk/qcom/gcc-sdx75.c b/drivers/clk/qcom/gcc-sdx75.c -index c51338f08ef1..453a6bf8e878 100644 --- a/drivers/clk/qcom/gcc-sdx75.c +++ b/drivers/clk/qcom/gcc-sdx75.c -@@ -2940,7 +2940,7 @@ static int gcc_sdx75_probe(struct platform_device *pdev) - qcom_branch_set_clk_en(regmap, 0x3e004); /* GCC_AHB_PCIE_LINK_CLK */ - qcom_branch_set_clk_en(regmap, 0x3e008); /* GCC_XO_PCIE_LINK_CLK */ +@@ -2944,7 +2944,7 @@ static int gcc_sdx75_probe(struct platfo + regmap_update_bits(regmap, 0x3e004, BIT(0), BIT(0)); + regmap_update_bits(regmap, 0x3e008, BIT(0), BIT(0)); - return qcom_cc_really_probe(pdev, &gcc_sdx75_desc, regmap); + return qcom_cc_really_probe(&pdev->dev, &gcc_sdx75_desc, regmap); } static struct platform_driver gcc_sdx75_driver = { -diff --git a/drivers/clk/qcom/gcc-sm6115.c b/drivers/clk/qcom/gcc-sm6115.c -index 167e344ad399..4c3804701e24 100644 --- a/drivers/clk/qcom/gcc-sm6115.c +++ b/drivers/clk/qcom/gcc-sm6115.c -@@ -3513,7 +3513,7 @@ static int gcc_sm6115_probe(struct platform_device *pdev) +@@ -3513,7 +3513,7 @@ static int gcc_sm6115_probe(struct platf clk_alpha_pll_configure(&gpll10, regmap, &gpll10_config); clk_alpha_pll_configure(&gpll11, regmap, &gpll11_config); @@ -738,11 +648,9 @@ index 167e344ad399..4c3804701e24 100644 } static struct platform_driver gcc_sm6115_driver = { -diff --git a/drivers/clk/qcom/gcc-sm6125.c b/drivers/clk/qcom/gcc-sm6125.c -index da554efee2ce..07bb1e5c4a30 100644 --- a/drivers/clk/qcom/gcc-sm6125.c +++ b/drivers/clk/qcom/gcc-sm6125.c -@@ -4161,7 +4161,7 @@ static int gcc_sm6125_probe(struct platform_device *pdev) +@@ -4161,7 +4161,7 @@ static int gcc_sm6125_probe(struct platf if (ret) return ret; @@ -751,11 +659,9 @@ index da554efee2ce..07bb1e5c4a30 100644 } static struct platform_driver gcc_sm6125_driver = { -diff --git a/drivers/clk/qcom/gcc-sm6350.c b/drivers/clk/qcom/gcc-sm6350.c -index cf4a7b6e0b23..0dcc8eeb77e6 100644 --- a/drivers/clk/qcom/gcc-sm6350.c +++ b/drivers/clk/qcom/gcc-sm6350.c -@@ -2559,7 +2559,7 @@ static int gcc_sm6350_probe(struct platform_device *pdev) +@@ -2559,7 +2559,7 @@ static int gcc_sm6350_probe(struct platf if (ret) return ret; @@ -764,11 +670,9 @@ index cf4a7b6e0b23..0dcc8eeb77e6 100644 } static struct platform_driver gcc_sm6350_driver = { -diff --git a/drivers/clk/qcom/gcc-sm6375.c b/drivers/clk/qcom/gcc-sm6375.c -index ac1ed2d728f9..f47dc2808095 100644 --- a/drivers/clk/qcom/gcc-sm6375.c +++ b/drivers/clk/qcom/gcc-sm6375.c -@@ -3892,7 +3892,7 @@ static int gcc_sm6375_probe(struct platform_device *pdev) +@@ -3895,7 +3895,7 @@ static int gcc_sm6375_probe(struct platf clk_lucid_pll_configure(&gpll8, regmap, &gpll8_config); clk_zonda_pll_configure(&gpll9, regmap, &gpll9_config); @@ -777,11 +681,9 @@ index ac1ed2d728f9..f47dc2808095 100644 } static struct platform_driver gcc_sm6375_driver = { -diff --git a/drivers/clk/qcom/gcc-sm7150.c b/drivers/clk/qcom/gcc-sm7150.c -index b0c50ebb86be..7eabaf0e1b57 100644 --- a/drivers/clk/qcom/gcc-sm7150.c +++ b/drivers/clk/qcom/gcc-sm7150.c -@@ -3017,7 +3017,7 @@ static int gcc_sm7150_probe(struct platform_device *pdev) +@@ -3022,7 +3022,7 @@ static int gcc_sm7150_probe(struct platf if (ret) return ret; @@ -790,24 +692,20 @@ index b0c50ebb86be..7eabaf0e1b57 100644 } static struct platform_driver gcc_sm7150_driver = { -diff --git a/drivers/clk/qcom/gcc-sm8150.c b/drivers/clk/qcom/gcc-sm8150.c -index 1f748141d12c..cefceb780889 100644 --- a/drivers/clk/qcom/gcc-sm8150.c +++ b/drivers/clk/qcom/gcc-sm8150.c -@@ -3797,7 +3797,7 @@ static int gcc_sm8150_probe(struct platform_device *pdev) - if (ret) - dev_err_probe(&pdev->dev, ret, "Failed to register with DFS!\n"); +@@ -3786,7 +3786,7 @@ static int gcc_sm8150_probe(struct platf + regmap_update_bits(regmap, 0x4d110, 0x3, 0x3); + regmap_update_bits(regmap, 0x71028, 0x3, 0x3); - return qcom_cc_really_probe(pdev, &gcc_sm8150_desc, regmap); + return qcom_cc_really_probe(&pdev->dev, &gcc_sm8150_desc, regmap); } static struct platform_driver gcc_sm8150_driver = { -diff --git a/drivers/clk/qcom/gcc-sm8250.c b/drivers/clk/qcom/gcc-sm8250.c -index e630bfa2d0c1..991cd8b8d597 100644 --- a/drivers/clk/qcom/gcc-sm8250.c +++ b/drivers/clk/qcom/gcc-sm8250.c -@@ -3656,7 +3656,7 @@ static int gcc_sm8250_probe(struct platform_device *pdev) +@@ -3661,7 +3661,7 @@ static int gcc_sm8250_probe(struct platf if (ret) return ret; @@ -816,11 +714,9 @@ index e630bfa2d0c1..991cd8b8d597 100644 } static struct platform_driver gcc_sm8250_driver = { -diff --git a/drivers/clk/qcom/gcc-sm8350.c b/drivers/clk/qcom/gcc-sm8350.c -index fc0402e8a2a7..2d94f3046b71 100644 --- a/drivers/clk/qcom/gcc-sm8350.c +++ b/drivers/clk/qcom/gcc-sm8350.c -@@ -3822,7 +3822,7 @@ static int gcc_sm8350_probe(struct platform_device *pdev) +@@ -3826,7 +3826,7 @@ static int gcc_sm8350_probe(struct platf /* FORCE_MEM_CORE_ON for ufs phy ice core clocks */ regmap_update_bits(regmap, gcc_ufs_phy_ice_core_clk.halt_reg, BIT(14), BIT(14)); @@ -829,24 +725,20 @@ index fc0402e8a2a7..2d94f3046b71 100644 } static struct platform_driver gcc_sm8350_driver = { -diff --git a/drivers/clk/qcom/gcc-sm8450.c b/drivers/clk/qcom/gcc-sm8450.c -index e86c58bc5e48..639a9a955914 100644 --- a/drivers/clk/qcom/gcc-sm8450.c +++ b/drivers/clk/qcom/gcc-sm8450.c -@@ -3289,7 +3289,7 @@ static int gcc_sm8450_probe(struct platform_device *pdev) - qcom_branch_set_clk_en(regmap, 0x42004); /* GCC_VIDEO_AHB_CLK */ - qcom_branch_set_clk_en(regmap, 0x42028); /* GCC_VIDEO_XO_CLK */ +@@ -3294,7 +3294,7 @@ static int gcc_sm8450_probe(struct platf + regmap_update_bits(regmap, 0x42004, BIT(0), BIT(0)); + regmap_update_bits(regmap, 0x42028, BIT(0), BIT(0)); - return qcom_cc_really_probe(pdev, &gcc_sm8450_desc, regmap); + return qcom_cc_really_probe(&pdev->dev, &gcc_sm8450_desc, regmap); } static struct platform_driver gcc_sm8450_driver = { -diff --git a/drivers/clk/qcom/gcc-sm8550.c b/drivers/clk/qcom/gcc-sm8550.c -index 26d7349e7642..7944ddb4b47d 100644 --- a/drivers/clk/qcom/gcc-sm8550.c +++ b/drivers/clk/qcom/gcc-sm8550.c -@@ -3364,7 +3364,7 @@ static int gcc_sm8550_probe(struct platform_device *pdev) +@@ -3369,7 +3369,7 @@ static int gcc_sm8550_probe(struct platf /* Clear GDSC_SLEEP_ENA_VOTE to stop votes being auto-removed in sleep. */ regmap_write(regmap, 0x52024, 0x0); @@ -855,11 +747,9 @@ index 26d7349e7642..7944ddb4b47d 100644 } static struct platform_driver gcc_sm8550_driver = { -diff --git a/drivers/clk/qcom/gpucc-msm8998.c b/drivers/clk/qcom/gpucc-msm8998.c -index 7b1cb44e31b2..9efeab2691ba 100644 --- a/drivers/clk/qcom/gpucc-msm8998.c +++ b/drivers/clk/qcom/gpucc-msm8998.c -@@ -334,7 +334,7 @@ static int gpucc_msm8998_probe(struct platform_device *pdev) +@@ -334,7 +334,7 @@ static int gpucc_msm8998_probe(struct pl /* tweak droop detector (GPUCC_GPU_DD_WRAP_CTRL) to reduce leakage */ regmap_write_bits(regmap, gfx3d_clk.clkr.enable_reg, BIT(0), BIT(0)); @@ -868,11 +758,9 @@ index 7b1cb44e31b2..9efeab2691ba 100644 } static struct platform_driver gpucc_msm8998_driver = { -diff --git a/drivers/clk/qcom/gpucc-sa8775p.c b/drivers/clk/qcom/gpucc-sa8775p.c -index 1167c42da39d..ac7552b146c7 100644 --- a/drivers/clk/qcom/gpucc-sa8775p.c +++ b/drivers/clk/qcom/gpucc-sa8775p.c -@@ -598,7 +598,7 @@ static int gpu_cc_sa8775p_probe(struct platform_device *pdev) +@@ -599,7 +599,7 @@ static int gpu_cc_sa8775p_probe(struct p clk_lucid_evo_pll_configure(&gpu_cc_pll0, regmap, &gpu_cc_pll0_config); clk_lucid_evo_pll_configure(&gpu_cc_pll1, regmap, &gpu_cc_pll1_config); @@ -881,11 +769,9 @@ index 1167c42da39d..ac7552b146c7 100644 } static struct platform_driver gpu_cc_sa8775p_driver = { -diff --git a/drivers/clk/qcom/gpucc-sc7180.c b/drivers/clk/qcom/gpucc-sc7180.c -index 66f5b48cbf87..08f3983d016f 100644 --- a/drivers/clk/qcom/gpucc-sc7180.c +++ b/drivers/clk/qcom/gpucc-sc7180.c -@@ -241,7 +241,7 @@ static int gpu_cc_sc7180_probe(struct platform_device *pdev) +@@ -241,7 +241,7 @@ static int gpu_cc_sc7180_probe(struct pl value = 0xF << CX_GMU_CBCR_WAKE_SHIFT | 0xF << CX_GMU_CBCR_SLEEP_SHIFT; regmap_update_bits(regmap, 0x1098, mask, value); @@ -894,12 +780,10 @@ index 66f5b48cbf87..08f3983d016f 100644 } static struct platform_driver gpu_cc_sc7180_driver = { -diff --git a/drivers/clk/qcom/gpucc-sc7280.c b/drivers/clk/qcom/gpucc-sc7280.c -index ebda57eac979..bd699a624517 100644 --- a/drivers/clk/qcom/gpucc-sc7280.c +++ b/drivers/clk/qcom/gpucc-sc7280.c -@@ -469,7 +469,7 @@ static int gpu_cc_sc7280_probe(struct platform_device *pdev) - qcom_branch_set_clk_en(regmap, 0x1098); /* GPUCC_CX_GMU_CLK */ +@@ -465,7 +465,7 @@ static int gpu_cc_sc7280_probe(struct pl + regmap_update_bits(regmap, 0x1098, BIT(0), BIT(0)); regmap_update_bits(regmap, 0x1098, BIT(13), BIT(13)); - return qcom_cc_really_probe(pdev, &gpu_cc_sc7280_desc, regmap); @@ -907,24 +791,20 @@ index ebda57eac979..bd699a624517 100644 } static struct platform_driver gpu_cc_sc7280_driver = { -diff --git a/drivers/clk/qcom/gpucc-sc8280xp.c b/drivers/clk/qcom/gpucc-sc8280xp.c -index 3611d2d1823d..c96be61e3f47 100644 --- a/drivers/clk/qcom/gpucc-sc8280xp.c +++ b/drivers/clk/qcom/gpucc-sc8280xp.c -@@ -449,7 +449,7 @@ static int gpu_cc_sc8280xp_probe(struct platform_device *pdev) - qcom_branch_set_clk_en(regmap, 0x1170); /* GPU_CC_CB_CLK */ - qcom_branch_set_clk_en(regmap, 0x109c); /* GPU_CC_CXO_CLK */ +@@ -451,7 +451,7 @@ static int gpu_cc_sc8280xp_probe(struct + regmap_update_bits(regmap, 0x1170, BIT(0), BIT(0)); + regmap_update_bits(regmap, 0x109c, BIT(0), BIT(0)); - ret = qcom_cc_really_probe(pdev, &gpu_cc_sc8280xp_desc, regmap); + ret = qcom_cc_really_probe(&pdev->dev, &gpu_cc_sc8280xp_desc, regmap); pm_runtime_put(&pdev->dev); return ret; -diff --git a/drivers/clk/qcom/gpucc-sdm660.c b/drivers/clk/qcom/gpucc-sdm660.c -index a52d98b7cf4c..3ae1b80e38d9 100644 --- a/drivers/clk/qcom/gpucc-sdm660.c +++ b/drivers/clk/qcom/gpucc-sdm660.c -@@ -330,7 +330,7 @@ static int gpucc_sdm660_probe(struct platform_device *pdev) +@@ -330,7 +330,7 @@ static int gpucc_sdm660_probe(struct pla gpu_pll_config.alpha_hi = 0x8a; clk_alpha_pll_configure(&gpu_pll1_pll_out_main, regmap, &gpu_pll_config); @@ -933,11 +813,9 @@ index a52d98b7cf4c..3ae1b80e38d9 100644 } static struct platform_driver gpucc_sdm660_driver = { -diff --git a/drivers/clk/qcom/gpucc-sdm845.c b/drivers/clk/qcom/gpucc-sdm845.c -index c87c3215dfe3..ef26690cf504 100644 --- a/drivers/clk/qcom/gpucc-sdm845.c +++ b/drivers/clk/qcom/gpucc-sdm845.c -@@ -192,7 +192,7 @@ static int gpu_cc_sdm845_probe(struct platform_device *pdev) +@@ -192,7 +192,7 @@ static int gpu_cc_sdm845_probe(struct pl value = 0xf << CX_GMU_CBCR_WAKE_SHIFT | 0xf << CX_GMU_CBCR_SLEEP_SHIFT; regmap_update_bits(regmap, 0x1098, mask, value); @@ -946,11 +824,9 @@ index c87c3215dfe3..ef26690cf504 100644 } static struct platform_driver gpu_cc_sdm845_driver = { -diff --git a/drivers/clk/qcom/gpucc-sm6115.c b/drivers/clk/qcom/gpucc-sm6115.c -index 9793dd9a2596..d43c86cf73a5 100644 --- a/drivers/clk/qcom/gpucc-sm6115.c +++ b/drivers/clk/qcom/gpucc-sm6115.c -@@ -488,7 +488,7 @@ static int gpu_cc_sm6115_probe(struct platform_device *pdev) +@@ -488,7 +488,7 @@ static int gpu_cc_sm6115_probe(struct pl qcom_branch_set_force_mem_core(regmap, gpu_cc_gx_gfx3d_clk, true); qcom_branch_set_force_periph_on(regmap, gpu_cc_gx_gfx3d_clk, true); @@ -959,11 +835,9 @@ index 9793dd9a2596..d43c86cf73a5 100644 } static struct platform_driver gpu_cc_sm6115_driver = { -diff --git a/drivers/clk/qcom/gpucc-sm6125.c b/drivers/clk/qcom/gpucc-sm6125.c -index b719a48fe706..ed6a6e505801 100644 --- a/drivers/clk/qcom/gpucc-sm6125.c +++ b/drivers/clk/qcom/gpucc-sm6125.c -@@ -409,7 +409,7 @@ static int gpu_cc_sm6125_probe(struct platform_device *pdev) +@@ -409,7 +409,7 @@ static int gpu_cc_sm6125_probe(struct pl qcom_branch_set_force_mem_core(regmap, gpu_cc_gx_gfx3d_clk, true); qcom_branch_set_force_periph_on(regmap, gpu_cc_gx_gfx3d_clk, true); @@ -972,11 +846,9 @@ index b719a48fe706..ed6a6e505801 100644 } static struct platform_driver gpu_cc_sm6125_driver = { -diff --git a/drivers/clk/qcom/gpucc-sm6350.c b/drivers/clk/qcom/gpucc-sm6350.c -index 0bcbba2a2943..1e12ad8948db 100644 --- a/drivers/clk/qcom/gpucc-sm6350.c +++ b/drivers/clk/qcom/gpucc-sm6350.c -@@ -502,7 +502,7 @@ static int gpu_cc_sm6350_probe(struct platform_device *pdev) +@@ -502,7 +502,7 @@ static int gpu_cc_sm6350_probe(struct pl value = 0xF << CX_GMU_CBCR_WAKE_SHIFT | 0xF << CX_GMU_CBCR_SLEEP_SHIFT; regmap_update_bits(regmap, 0x1098, mask, value); @@ -985,11 +857,9 @@ index 0bcbba2a2943..1e12ad8948db 100644 } static struct platform_driver gpu_cc_sm6350_driver = { -diff --git a/drivers/clk/qcom/gpucc-sm6375.c b/drivers/clk/qcom/gpucc-sm6375.c -index 4e9a30a080d3..41f59024143e 100644 --- a/drivers/clk/qcom/gpucc-sm6375.c +++ b/drivers/clk/qcom/gpucc-sm6375.c -@@ -455,7 +455,7 @@ static int gpucc_sm6375_probe(struct platform_device *pdev) +@@ -455,7 +455,7 @@ static int gpucc_sm6375_probe(struct pla clk_lucid_pll_configure(&gpucc_pll0, regmap, &gpucc_pll0_config); clk_lucid_pll_configure(&gpucc_pll1, regmap, &gpucc_pll1_config); @@ -998,11 +868,9 @@ index 4e9a30a080d3..41f59024143e 100644 pm_runtime_put(&pdev->dev); return ret; -diff --git a/drivers/clk/qcom/gpucc-sm8150.c b/drivers/clk/qcom/gpucc-sm8150.c -index 135601629cba..d711464a71b6 100644 --- a/drivers/clk/qcom/gpucc-sm8150.c +++ b/drivers/clk/qcom/gpucc-sm8150.c -@@ -304,7 +304,7 @@ static int gpu_cc_sm8150_probe(struct platform_device *pdev) +@@ -304,7 +304,7 @@ static int gpu_cc_sm8150_probe(struct pl clk_trion_pll_configure(&gpu_cc_pll1, regmap, &gpu_cc_pll1_config); @@ -1011,11 +879,9 @@ index 135601629cba..d711464a71b6 100644 } static struct platform_driver gpu_cc_sm8150_driver = { -diff --git a/drivers/clk/qcom/gpucc-sm8250.c b/drivers/clk/qcom/gpucc-sm8250.c -index 012bd1380f55..113b486a6d2f 100644 --- a/drivers/clk/qcom/gpucc-sm8250.c +++ b/drivers/clk/qcom/gpucc-sm8250.c -@@ -320,7 +320,7 @@ static int gpu_cc_sm8250_probe(struct platform_device *pdev) +@@ -320,7 +320,7 @@ static int gpu_cc_sm8250_probe(struct pl value = 0xf << CX_GMU_CBCR_WAKE_SHIFT | 0xf << CX_GMU_CBCR_SLEEP_SHIFT; regmap_update_bits(regmap, 0x1098, mask, value); @@ -1024,11 +890,9 @@ index 012bd1380f55..113b486a6d2f 100644 } static struct platform_driver gpu_cc_sm8250_driver = { -diff --git a/drivers/clk/qcom/gpucc-sm8350.c b/drivers/clk/qcom/gpucc-sm8350.c -index 9437d316d145..f6bb8244dd40 100644 --- a/drivers/clk/qcom/gpucc-sm8350.c +++ b/drivers/clk/qcom/gpucc-sm8350.c -@@ -604,7 +604,7 @@ static int gpu_cc_sm8350_probe(struct platform_device *pdev) +@@ -605,7 +605,7 @@ static int gpu_cc_sm8350_probe(struct pl clk_lucid_pll_configure(&gpu_cc_pll0, regmap, &gpu_cc_pll0_config); clk_lucid_pll_configure(&gpu_cc_pll1, regmap, &gpu_cc_pll1_config); @@ -1037,11 +901,9 @@ index 9437d316d145..f6bb8244dd40 100644 } static const struct of_device_id gpu_cc_sm8350_match_table[] = { -diff --git a/drivers/clk/qcom/gpucc-sm8450.c b/drivers/clk/qcom/gpucc-sm8450.c -index 7b329a803289..b3c5d6923cd2 100644 --- a/drivers/clk/qcom/gpucc-sm8450.c +++ b/drivers/clk/qcom/gpucc-sm8450.c -@@ -751,7 +751,7 @@ static int gpu_cc_sm8450_probe(struct platform_device *pdev) +@@ -751,7 +751,7 @@ static int gpu_cc_sm8450_probe(struct pl clk_lucid_evo_pll_configure(&gpu_cc_pll0, regmap, &gpu_cc_pll0_config); clk_lucid_evo_pll_configure(&gpu_cc_pll1, regmap, &gpu_cc_pll1_config); @@ -1050,24 +912,20 @@ index 7b329a803289..b3c5d6923cd2 100644 } static struct platform_driver gpu_cc_sm8450_driver = { -diff --git a/drivers/clk/qcom/gpucc-sm8550.c b/drivers/clk/qcom/gpucc-sm8550.c -index 4fc69c6026e5..7486edf56160 100644 --- a/drivers/clk/qcom/gpucc-sm8550.c +++ b/drivers/clk/qcom/gpucc-sm8550.c -@@ -579,7 +579,7 @@ static int gpu_cc_sm8550_probe(struct platform_device *pdev) - qcom_branch_set_clk_en(regmap, 0x9004); /* GPU_CC_CXO_AON_CLK */ - qcom_branch_set_clk_en(regmap, 0x900c); /* GPU_CC_DEMET_CLK */ +@@ -585,7 +585,7 @@ static int gpu_cc_sm8550_probe(struct pl + regmap_update_bits(regmap, 0x9004, BIT(0), BIT(0)); + regmap_update_bits(regmap, 0x900c, BIT(0), BIT(0)); - return qcom_cc_really_probe(pdev, &gpu_cc_sm8550_desc, regmap); + return qcom_cc_really_probe(&pdev->dev, &gpu_cc_sm8550_desc, regmap); } static struct platform_driver gpu_cc_sm8550_driver = { -diff --git a/drivers/clk/qcom/lcc-ipq806x.c b/drivers/clk/qcom/lcc-ipq806x.c -index fa8cda63cf20..bf5320a43e8c 100644 --- a/drivers/clk/qcom/lcc-ipq806x.c +++ b/drivers/clk/qcom/lcc-ipq806x.c -@@ -454,7 +454,7 @@ static int lcc_ipq806x_probe(struct platform_device *pdev) +@@ -454,7 +454,7 @@ static int lcc_ipq806x_probe(struct plat /* Enable PLL4 source on the LPASS Primary PLL Mux */ regmap_write(regmap, 0xc4, 0x1); @@ -1076,11 +934,9 @@ index fa8cda63cf20..bf5320a43e8c 100644 } static struct platform_driver lcc_ipq806x_driver = { -diff --git a/drivers/clk/qcom/lcc-msm8960.c b/drivers/clk/qcom/lcc-msm8960.c -index e725e7b9c456..d53bf315e9c3 100644 --- a/drivers/clk/qcom/lcc-msm8960.c +++ b/drivers/clk/qcom/lcc-msm8960.c -@@ -481,7 +481,7 @@ static int lcc_msm8960_probe(struct platform_device *pdev) +@@ -481,7 +481,7 @@ static int lcc_msm8960_probe(struct plat /* Enable PLL4 source on the LPASS Primary PLL Mux */ regmap_write(regmap, 0xc4, 0x1); @@ -1089,11 +945,9 @@ index e725e7b9c456..d53bf315e9c3 100644 } static struct platform_driver lcc_msm8960_driver = { -diff --git a/drivers/clk/qcom/lpassaudiocc-sc7280.c b/drivers/clk/qcom/lpassaudiocc-sc7280.c -index c43d0b1af7f7..45e726477086 100644 --- a/drivers/clk/qcom/lpassaudiocc-sc7280.c +++ b/drivers/clk/qcom/lpassaudiocc-sc7280.c -@@ -772,7 +772,7 @@ static int lpass_audio_cc_sc7280_probe(struct platform_device *pdev) +@@ -772,7 +772,7 @@ static int lpass_audio_cc_sc7280_probe(s regmap_write(regmap, 0x4, 0x3b); regmap_write(regmap, 0x8, 0xff05); @@ -1102,7 +956,7 @@ index c43d0b1af7f7..45e726477086 100644 if (ret) { dev_err(&pdev->dev, "Failed to register LPASS AUDIO CC clocks\n"); goto exit; -@@ -847,7 +847,7 @@ static int lpass_aon_cc_sc7280_probe(struct platform_device *pdev) +@@ -847,7 +847,7 @@ static int lpass_aon_cc_sc7280_probe(str clk_lucid_pll_configure(&lpass_aon_cc_pll, regmap, &lpass_aon_cc_pll_config); @@ -1111,11 +965,9 @@ index c43d0b1af7f7..45e726477086 100644 if (ret) { dev_err(&pdev->dev, "Failed to register LPASS AON CC clocks\n"); goto exit; -diff --git a/drivers/clk/qcom/lpasscorecc-sc7180.c b/drivers/clk/qcom/lpasscorecc-sc7180.c -index 8ac72d26087e..726c6378752f 100644 --- a/drivers/clk/qcom/lpasscorecc-sc7180.c +++ b/drivers/clk/qcom/lpasscorecc-sc7180.c -@@ -411,7 +411,7 @@ static int lpass_core_cc_sc7180_probe(struct platform_device *pdev) +@@ -414,7 +414,7 @@ static int lpass_core_cc_sc7180_probe(st clk_fabia_pll_configure(&lpass_lpaaudio_dig_pll, regmap, &lpass_lpaaudio_dig_pll_config); @@ -1124,11 +976,9 @@ index 8ac72d26087e..726c6378752f 100644 pm_runtime_mark_last_busy(&pdev->dev); exit: -diff --git a/drivers/clk/qcom/lpasscorecc-sc7280.c b/drivers/clk/qcom/lpasscorecc-sc7280.c -index a2f1e6ad6da4..b0888cd2460b 100644 --- a/drivers/clk/qcom/lpasscorecc-sc7280.c +++ b/drivers/clk/qcom/lpasscorecc-sc7280.c -@@ -406,7 +406,7 @@ static int lpass_core_cc_sc7280_probe(struct platform_device *pdev) +@@ -406,7 +406,7 @@ static int lpass_core_cc_sc7280_probe(st clk_lucid_pll_configure(&lpass_core_cc_dig_pll, regmap, &lpass_core_cc_dig_pll_config); @@ -1137,11 +987,9 @@ index a2f1e6ad6da4..b0888cd2460b 100644 } static struct platform_driver lpass_core_cc_sc7280_driver = { -diff --git a/drivers/clk/qcom/mmcc-msm8960.c b/drivers/clk/qcom/mmcc-msm8960.c -index 50638ab341ec..1061322534c4 100644 --- a/drivers/clk/qcom/mmcc-msm8960.c +++ b/drivers/clk/qcom/mmcc-msm8960.c -@@ -3122,7 +3122,7 @@ static int mmcc_msm8960_probe(struct platform_device *pdev) +@@ -3128,7 +3128,7 @@ static int mmcc_msm8960_probe(struct pla clk_pll_configure_sr(&pll15, regmap, &pll15_config, false); @@ -1150,11 +998,9 @@ index 50638ab341ec..1061322534c4 100644 } static struct platform_driver mmcc_msm8960_driver = { -diff --git a/drivers/clk/qcom/mmcc-msm8974.c b/drivers/clk/qcom/mmcc-msm8974.c -index 36f460b78be2..d5bcb09ebd0c 100644 --- a/drivers/clk/qcom/mmcc-msm8974.c +++ b/drivers/clk/qcom/mmcc-msm8974.c -@@ -2768,7 +2768,7 @@ static int mmcc_msm8974_probe(struct platform_device *pdev) +@@ -2786,7 +2786,7 @@ static int mmcc_msm8974_probe(struct pla msm8226_clock_override(); } @@ -1163,11 +1009,9 @@ index 36f460b78be2..d5bcb09ebd0c 100644 } static struct platform_driver mmcc_msm8974_driver = { -diff --git a/drivers/clk/qcom/mmcc-msm8994.c b/drivers/clk/qcom/mmcc-msm8994.c -index f19080cf715b..78e5083eaf0f 100644 --- a/drivers/clk/qcom/mmcc-msm8994.c +++ b/drivers/clk/qcom/mmcc-msm8994.c -@@ -2602,7 +2602,7 @@ static int mmcc_msm8994_probe(struct platform_device *pdev) +@@ -2602,7 +2602,7 @@ static int mmcc_msm8994_probe(struct pla clk_alpha_pll_configure(&mmpll3_early, regmap, &mmpll_p_config); clk_alpha_pll_configure(&mmpll5_early, regmap, &mmpll_p_config); @@ -1176,11 +1020,9 @@ index f19080cf715b..78e5083eaf0f 100644 } static struct platform_driver mmcc_msm8994_driver = { -diff --git a/drivers/clk/qcom/mmcc-msm8996.c b/drivers/clk/qcom/mmcc-msm8996.c -index 92287d40c3a5..1a32c6eb8217 100644 --- a/drivers/clk/qcom/mmcc-msm8996.c +++ b/drivers/clk/qcom/mmcc-msm8996.c -@@ -3626,7 +3626,7 @@ static int mmcc_msm8996_probe(struct platform_device *pdev) +@@ -3626,7 +3626,7 @@ static int mmcc_msm8996_probe(struct pla /* Disable the NoC FSM for mmss_mmagic_cfg_ahb_clk */ regmap_update_bits(regmap, 0x5054, BIT(15), 0); @@ -1189,11 +1031,9 @@ index 92287d40c3a5..1a32c6eb8217 100644 } static struct platform_driver mmcc_msm8996_driver = { -diff --git a/drivers/clk/qcom/mmcc-msm8998.c b/drivers/clk/qcom/mmcc-msm8998.c -index 275fb3b71ede..5738445a8656 100644 --- a/drivers/clk/qcom/mmcc-msm8998.c +++ b/drivers/clk/qcom/mmcc-msm8998.c -@@ -2866,7 +2866,7 @@ static int mmcc_msm8998_probe(struct platform_device *pdev) +@@ -2866,7 +2866,7 @@ static int mmcc_msm8998_probe(struct pla if (IS_ERR(regmap)) return PTR_ERR(regmap); @@ -1202,11 +1042,9 @@ index 275fb3b71ede..5738445a8656 100644 } static struct platform_driver mmcc_msm8998_driver = { -diff --git a/drivers/clk/qcom/mmcc-sdm660.c b/drivers/clk/qcom/mmcc-sdm660.c -index 4b8380c2d648..98ba5b4518fb 100644 --- a/drivers/clk/qcom/mmcc-sdm660.c +++ b/drivers/clk/qcom/mmcc-sdm660.c -@@ -2847,7 +2847,7 @@ static int mmcc_660_probe(struct platform_device *pdev) +@@ -2851,7 +2851,7 @@ static int mmcc_660_probe(struct platfor clk_alpha_pll_configure(&mmpll8, regmap, &mmpll8_config); clk_alpha_pll_configure(&mmpll10, regmap, &mmpll10_config); @@ -1215,11 +1053,9 @@ index 4b8380c2d648..98ba5b4518fb 100644 } static struct platform_driver mmcc_660_driver = { -diff --git a/drivers/clk/qcom/tcsrcc-sm8550.c b/drivers/clk/qcom/tcsrcc-sm8550.c -index 552a3eb1fd91..e5e8f2e82b94 100644 --- a/drivers/clk/qcom/tcsrcc-sm8550.c +++ b/drivers/clk/qcom/tcsrcc-sm8550.c -@@ -166,7 +166,7 @@ static int tcsr_cc_sm8550_probe(struct platform_device *pdev) +@@ -180,7 +180,7 @@ static int tcsr_cc_sm8550_probe(struct p if (IS_ERR(regmap)) return PTR_ERR(regmap); @@ -1228,11 +1064,9 @@ index 552a3eb1fd91..e5e8f2e82b94 100644 } static struct platform_driver tcsr_cc_sm8550_driver = { -diff --git a/drivers/clk/qcom/videocc-sc7180.c b/drivers/clk/qcom/videocc-sc7180.c -index ae0f812f83e8..d7f845480396 100644 --- a/drivers/clk/qcom/videocc-sc7180.c +++ b/drivers/clk/qcom/videocc-sc7180.c -@@ -226,7 +226,7 @@ static int video_cc_sc7180_probe(struct platform_device *pdev) +@@ -226,7 +226,7 @@ static int video_cc_sc7180_probe(struct /* Keep VIDEO_CC_XO_CLK ALWAYS-ON */ regmap_update_bits(regmap, 0x984, 0x1, 0x1); @@ -1241,11 +1075,9 @@ index ae0f812f83e8..d7f845480396 100644 } static struct platform_driver video_cc_sc7180_driver = { -diff --git a/drivers/clk/qcom/videocc-sc7280.c b/drivers/clk/qcom/videocc-sc7280.c -index 119a3ed6eb6a..317b325d6daf 100644 --- a/drivers/clk/qcom/videocc-sc7280.c +++ b/drivers/clk/qcom/videocc-sc7280.c -@@ -305,7 +305,7 @@ static int video_cc_sc7280_probe(struct platform_device *pdev) +@@ -298,7 +298,7 @@ static int video_cc_sc7280_probe(struct clk_lucid_pll_configure(&video_pll0, regmap, &video_pll0_config); @@ -1254,11 +1086,9 @@ index 119a3ed6eb6a..317b325d6daf 100644 } static struct platform_driver video_cc_sc7280_driver = { -diff --git a/drivers/clk/qcom/videocc-sdm845.c b/drivers/clk/qcom/videocc-sdm845.c -index 80095a283a86..f77a07779477 100644 --- a/drivers/clk/qcom/videocc-sdm845.c +++ b/drivers/clk/qcom/videocc-sdm845.c -@@ -329,7 +329,7 @@ static int video_cc_sdm845_probe(struct platform_device *pdev) +@@ -329,7 +329,7 @@ static int video_cc_sdm845_probe(struct clk_fabia_pll_configure(&video_pll0, regmap, &video_pll0_config); @@ -1267,11 +1097,9 @@ index 80095a283a86..f77a07779477 100644 } static struct platform_driver video_cc_sdm845_driver = { -diff --git a/drivers/clk/qcom/videocc-sm8150.c b/drivers/clk/qcom/videocc-sm8150.c -index 554631aa279b..daab3237eec1 100644 --- a/drivers/clk/qcom/videocc-sm8150.c +++ b/drivers/clk/qcom/videocc-sm8150.c -@@ -262,7 +262,7 @@ static int video_cc_sm8150_probe(struct platform_device *pdev) +@@ -250,7 +250,7 @@ static int video_cc_sm8150_probe(struct /* Keep VIDEO_CC_XO_CLK ALWAYS-ON */ regmap_update_bits(regmap, 0x984, 0x1, 0x1); @@ -1280,58 +1108,47 @@ index 554631aa279b..daab3237eec1 100644 } static struct platform_driver video_cc_sm8150_driver = { -diff --git a/drivers/clk/qcom/videocc-sm8250.c b/drivers/clk/qcom/videocc-sm8250.c -index 914eddd0ae15..d7e0c32284c1 100644 --- a/drivers/clk/qcom/videocc-sm8250.c +++ b/drivers/clk/qcom/videocc-sm8250.c -@@ -387,7 +387,7 @@ static int video_cc_sm8250_probe(struct platform_device *pdev) - qcom_branch_set_clk_en(regmap, 0xe58); /* VIDEO_CC_AHB_CLK */ - qcom_branch_set_clk_en(regmap, 0xeec); /* VIDEO_CC_XO_CLK */ +@@ -387,7 +387,7 @@ static int video_cc_sm8250_probe(struct + regmap_update_bits(regmap, 0xe58, BIT(0), BIT(0)); + regmap_update_bits(regmap, 0xeec, BIT(0), BIT(0)); - ret = qcom_cc_really_probe(pdev, &video_cc_sm8250_desc, regmap); + ret = qcom_cc_really_probe(&pdev->dev, &video_cc_sm8250_desc, regmap); pm_runtime_put(&pdev->dev); -diff --git a/drivers/clk/qcom/videocc-sm8350.c b/drivers/clk/qcom/videocc-sm8350.c -index f7aec28d4c87..5bd6fe3e1298 100644 --- a/drivers/clk/qcom/videocc-sm8350.c +++ b/drivers/clk/qcom/videocc-sm8350.c -@@ -562,7 +562,7 @@ static int video_cc_sm8350_probe(struct platform_device *pdev) - qcom_branch_set_clk_en(regmap, 0xe58); /* VIDEO_CC_AHB_CLK */ - qcom_branch_set_clk_en(regmap, video_cc_xo_clk_cbcr); /* VIDEO_CC_XO_CLK */ +@@ -566,7 +566,7 @@ static int video_cc_sm8350_probe(struct + regmap_update_bits(regmap, 0xe58, BIT(0), BIT(0)); + regmap_update_bits(regmap, video_cc_xo_clk_cbcr, BIT(0), BIT(0)); - ret = qcom_cc_really_probe(pdev, &video_cc_sm8350_desc, regmap); + ret = qcom_cc_really_probe(&pdev->dev, &video_cc_sm8350_desc, regmap); pm_runtime_put(&pdev->dev); return ret; -diff --git a/drivers/clk/qcom/videocc-sm8450.c b/drivers/clk/qcom/videocc-sm8450.c -index 67df40f16423..ed9163d64244 100644 --- a/drivers/clk/qcom/videocc-sm8450.c +++ b/drivers/clk/qcom/videocc-sm8450.c -@@ -428,7 +428,7 @@ static int video_cc_sm8450_probe(struct platform_device *pdev) - qcom_branch_set_clk_en(regmap, 0x8130); /* VIDEO_CC_SLEEP_CLK */ - qcom_branch_set_clk_en(regmap, 0x8114); /* VIDEO_CC_XO_CLK */ +@@ -433,7 +433,7 @@ static int video_cc_sm8450_probe(struct + regmap_update_bits(regmap, 0x8130, BIT(0), BIT(0)); + regmap_update_bits(regmap, 0x8114, BIT(0), BIT(0)); - ret = qcom_cc_really_probe(pdev, &video_cc_sm8450_desc, regmap); + ret = qcom_cc_really_probe(&pdev->dev, &video_cc_sm8450_desc, regmap); pm_runtime_put(&pdev->dev); -diff --git a/drivers/clk/qcom/videocc-sm8550.c b/drivers/clk/qcom/videocc-sm8550.c -index d73f747d2474..4d36362db1d0 100644 --- a/drivers/clk/qcom/videocc-sm8550.c +++ b/drivers/clk/qcom/videocc-sm8550.c -@@ -433,7 +433,7 @@ static int video_cc_sm8550_probe(struct platform_device *pdev) - qcom_branch_set_clk_en(regmap, 0x8140); /* VIDEO_CC_SLEEP_CLK */ - qcom_branch_set_clk_en(regmap, 0x8124); /* VIDEO_CC_XO_CLK */ +@@ -440,7 +440,7 @@ static int video_cc_sm8550_probe(struct + regmap_update_bits(regmap, 0x8140, BIT(0), BIT(0)); + regmap_update_bits(regmap, 0x8124, BIT(0), BIT(0)); - ret = qcom_cc_really_probe(pdev, &video_cc_sm8550_desc, regmap); + ret = qcom_cc_really_probe(&pdev->dev, &video_cc_sm8550_desc, regmap); pm_runtime_put(&pdev->dev); --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/007-v6.11-net-phy-introduce-core-support-for-phy-mode-10g-qxgm.patch b/target/linux/qualcommbe/patches-6.6/007-v6.11-net-phy-introduce-core-support-for-phy-mode-10g-qxgm.patch index 8b0f93a7e8..31a3dc84bb 100644 --- a/target/linux/qualcommbe/patches-6.6/007-v6.11-net-phy-introduce-core-support-for-phy-mode-10g-qxgm.patch +++ b/target/linux/qualcommbe/patches-6.6/007-v6.11-net-phy-introduce-core-support-for-phy-mode-10g-qxgm.patch @@ -25,11 +25,9 @@ Signed-off-by: Paolo Abeni include/linux/phylink.h | 1 + 5 files changed, 20 insertions(+), 1 deletion(-) -diff --git a/Documentation/networking/phy.rst b/Documentation/networking/phy.rst -index 1283240d7620..f64641417c54 100644 --- a/Documentation/networking/phy.rst +++ b/Documentation/networking/phy.rst -@@ -327,6 +327,12 @@ Some of the interface modes are described below: +@@ -327,6 +327,12 @@ Some of the interface modes are describe This is the Penta SGMII mode, it is similar to QSGMII but it combines 5 SGMII lines into a single link compared to 4 on QSGMII. @@ -42,11 +40,9 @@ index 1283240d7620..f64641417c54 100644 Pause frames / flow control =========================== -diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c -index 15f349e5995a..a235ea2264a7 100644 --- a/drivers/net/phy/phy-core.c +++ b/drivers/net/phy/phy-core.c -@@ -141,6 +141,7 @@ int phy_interface_num_ports(phy_interface_t interface) +@@ -141,6 +141,7 @@ int phy_interface_num_ports(phy_interfac return 1; case PHY_INTERFACE_MODE_QSGMII: case PHY_INTERFACE_MODE_QUSGMII: @@ -54,11 +50,9 @@ index 15f349e5995a..a235ea2264a7 100644 return 4; case PHY_INTERFACE_MODE_PSGMII: return 5; -diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c -index 02427378acfd..6c24c48dcf0f 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c -@@ -231,6 +231,7 @@ static int phylink_interface_max_speed(phy_interface_t interface) +@@ -231,6 +231,7 @@ static int phylink_interface_max_speed(p return SPEED_1000; case PHY_INTERFACE_MODE_2500BASEX: @@ -66,7 +60,7 @@ index 02427378acfd..6c24c48dcf0f 100644 return SPEED_2500; case PHY_INTERFACE_MODE_5GBASER: -@@ -500,7 +501,11 @@ static unsigned long phylink_get_capabilities(phy_interface_t interface, +@@ -500,7 +501,11 @@ unsigned long phylink_get_capabilities(p switch (interface) { case PHY_INTERFACE_MODE_USXGMII: @@ -79,19 +73,17 @@ index 02427378acfd..6c24c48dcf0f 100644 fallthrough; case PHY_INTERFACE_MODE_RGMII_TXID: -@@ -926,6 +931,7 @@ static int phylink_parse_mode(struct phylink *pl, - case PHY_INTERFACE_MODE_5GBASER: - case PHY_INTERFACE_MODE_25GBASER: +@@ -956,6 +961,7 @@ static int phylink_parse_mode(struct phy + phylink_set(pl->supported, 25000baseSR_Full); + fallthrough; case PHY_INTERFACE_MODE_USXGMII: + case PHY_INTERFACE_MODE_10G_QXGMII: case PHY_INTERFACE_MODE_10GKR: case PHY_INTERFACE_MODE_10GBASER: - case PHY_INTERFACE_MODE_XLGMII: -diff --git a/include/linux/phy.h b/include/linux/phy.h -index e6e83304558e..205fccfc0f60 100644 + phylink_set(pl->supported, 10baseT_Half); --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -128,6 +128,7 @@ extern const int phy_10gbit_features_array[1]; +@@ -125,6 +125,7 @@ extern const int phy_10gbit_features_arr * @PHY_INTERFACE_MODE_10GKR: 10GBASE-KR - with Clause 73 AN * @PHY_INTERFACE_MODE_QUSGMII: Quad Universal SGMII * @PHY_INTERFACE_MODE_1000BASEKX: 1000Base-KX - with Clause 73 AN @@ -99,7 +91,7 @@ index e6e83304558e..205fccfc0f60 100644 * @PHY_INTERFACE_MODE_MAX: Book keeping * * Describes the interface between the MAC and PHY. -@@ -168,6 +169,7 @@ typedef enum { +@@ -165,6 +166,7 @@ typedef enum { PHY_INTERFACE_MODE_10GKR, PHY_INTERFACE_MODE_QUSGMII, PHY_INTERFACE_MODE_1000BASEKX, @@ -107,7 +99,7 @@ index e6e83304558e..205fccfc0f60 100644 PHY_INTERFACE_MODE_MAX, } phy_interface_t; -@@ -289,6 +291,8 @@ static inline const char *phy_modes(phy_interface_t interface) +@@ -286,6 +288,8 @@ static inline const char *phy_modes(phy_ return "100base-x"; case PHY_INTERFACE_MODE_QUSGMII: return "qusgmii"; @@ -116,11 +108,9 @@ index e6e83304558e..205fccfc0f60 100644 default: return "unknown"; } -diff --git a/include/linux/phylink.h b/include/linux/phylink.h -index a30a692acc32..2381e07429a2 100644 --- a/include/linux/phylink.h +++ b/include/linux/phylink.h -@@ -124,6 +130,7 @@ static unsigned int phylink_pcs_neg_mode(unsigned int mode, +@@ -128,6 +128,7 @@ static inline unsigned int phylink_pcs_n case PHY_INTERFACE_MODE_QSGMII: case PHY_INTERFACE_MODE_QUSGMII: case PHY_INTERFACE_MODE_USXGMII: @@ -128,7 +118,7 @@ index a30a692acc32..2381e07429a2 100644 /* These protocols are designed for use with a PHY which * communicates its negotiation result back to the MAC via * inband communication. Note: there exist PHYs that run -@@ -654,6 +654,7 @@ static inline int phylink_get_link_timer_ns(phy_interface_t interface) +@@ -714,6 +715,7 @@ static inline int phylink_get_link_timer case PHY_INTERFACE_MODE_SGMII: case PHY_INTERFACE_MODE_QSGMII: case PHY_INTERFACE_MODE_USXGMII: @@ -136,6 +126,3 @@ index a30a692acc32..2381e07429a2 100644 return 1600000; case PHY_INTERFACE_MODE_1000BASEX: --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/008-v6.9-clk-Provide-managed-helper-to-get-and-enable-bulk-cl.patch b/target/linux/qualcommbe/patches-6.6/008-v6.9-clk-Provide-managed-helper-to-get-and-enable-bulk-cl.patch index ab61f0b658..c803a7bd2c 100644 --- a/target/linux/qualcommbe/patches-6.6/008-v6.9-clk-Provide-managed-helper-to-get-and-enable-bulk-cl.patch +++ b/target/linux/qualcommbe/patches-6.6/008-v6.9-clk-Provide-managed-helper-to-get-and-enable-bulk-cl.patch @@ -18,11 +18,9 @@ Signed-off-by: Stephen Boyd include/linux/clk.h | 22 ++++++++++++++++++++++ 2 files changed, 62 insertions(+) -diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c -index 737aa70e2cb3..90e6078fb6e1 100644 --- a/drivers/clk/clk-devres.c +++ b/drivers/clk/clk-devres.c -@@ -182,6 +182,46 @@ int __must_check devm_clk_bulk_get_all(struct device *dev, +@@ -182,6 +182,46 @@ int __must_check devm_clk_bulk_get_all(s } EXPORT_SYMBOL_GPL(devm_clk_bulk_get_all); @@ -69,15 +67,12 @@ index 737aa70e2cb3..90e6078fb6e1 100644 static int devm_clk_match(struct device *dev, void *res, void *data) { struct clk **c = res; -diff --git a/include/linux/clk.h b/include/linux/clk.h -index 06f1b292f8a0..0f44d3863de2 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h -@@ -478,6 +478,22 @@ int __must_check devm_clk_bulk_get_optional(struct device *dev, int num_clks, - int __must_check devm_clk_bulk_get_all(struct device *dev, +@@ -479,6 +479,22 @@ int __must_check devm_clk_bulk_get_all(s struct clk_bulk_data **clks); -+/** + /** + * devm_clk_bulk_get_all_enable - Get and enable all clocks of the consumer (managed) + * @dev: device for clock "consumer" + * @clks: pointer to the clk_bulk_data table of consumer @@ -93,10 +88,11 @@ index 06f1b292f8a0..0f44d3863de2 100644 +int __must_check devm_clk_bulk_get_all_enable(struct device *dev, + struct clk_bulk_data **clks); + - /** ++/** * devm_clk_get - lookup and obtain a managed reference to a clock producer. * @dev: device for clock "consumer" -@@ -968,6 +984,12 @@ static inline int __must_check devm_clk_bulk_get_all(struct device *dev, + * @id: clock consumer ID +@@ -968,6 +984,12 @@ static inline int __must_check devm_clk_ return 0; } @@ -109,6 +105,3 @@ index 06f1b292f8a0..0f44d3863de2 100644 static inline struct clk *devm_get_clk_from_child(struct device *dev, struct device_node *np, const char *con_id) { --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/009-v6.13-clk-Provide-devm_clk_bulk_get_all_enabled-helper.patch b/target/linux/qualcommbe/patches-6.6/009-v6.13-clk-Provide-devm_clk_bulk_get_all_enabled-helper.patch index 8d9bd9ce01..cf43ed1a6d 100644 --- a/target/linux/qualcommbe/patches-6.6/009-v6.13-clk-Provide-devm_clk_bulk_get_all_enabled-helper.patch +++ b/target/linux/qualcommbe/patches-6.6/009-v6.13-clk-Provide-devm_clk_bulk_get_all_enabled-helper.patch @@ -34,11 +34,9 @@ Signed-off-by: Stephen Boyd include/linux/clk.h | 21 ++++++++++++++++----- 2 files changed, 21 insertions(+), 9 deletions(-) -diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c -index 82ae1f26e634..5368d92d9b39 100644 --- a/drivers/clk/clk-devres.c +++ b/drivers/clk/clk-devres.c -@@ -218,8 +218,8 @@ static void devm_clk_bulk_release_all_enable(struct device *dev, void *res) +@@ -190,8 +190,8 @@ static void devm_clk_bulk_release_all_en clk_bulk_put_all(devres->num_clks, devres->clks); } @@ -49,7 +47,7 @@ index 82ae1f26e634..5368d92d9b39 100644 { struct clk_bulk_devres *devres; int ret; -@@ -244,11 +244,12 @@ int __must_check devm_clk_bulk_get_all_enable(struct device *dev, +@@ -216,11 +216,12 @@ int __must_check devm_clk_bulk_get_all_e } else { clk_bulk_put_all(devres->num_clks, devres->clks); devres_free(devres); @@ -64,11 +62,9 @@ index 82ae1f26e634..5368d92d9b39 100644 static int devm_clk_match(struct device *dev, void *res, void *data) { -diff --git a/include/linux/clk.h b/include/linux/clk.h -index 851a0f2cf42c..1dcee6d701e4 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h -@@ -496,11 +496,13 @@ int __must_check devm_clk_bulk_get_all(struct device *dev, +@@ -479,11 +479,13 @@ int __must_check devm_clk_bulk_get_all(s struct clk_bulk_data **clks); /** @@ -84,7 +80,7 @@ index 851a0f2cf42c..1dcee6d701e4 100644 * * This helper function allows drivers to get all clocks of the * consumer and enables them in one operation with management. -@@ -508,8 +510,8 @@ int __must_check devm_clk_bulk_get_all(struct device *dev, +@@ -491,8 +493,8 @@ int __must_check devm_clk_bulk_get_all(s * is unbound. */ @@ -95,7 +91,7 @@ index 851a0f2cf42c..1dcee6d701e4 100644 /** * devm_clk_get - lookup and obtain a managed reference to a clock producer. -@@ -1034,7 +1036,7 @@ static inline int __must_check devm_clk_bulk_get_all(struct device *dev, +@@ -984,7 +986,7 @@ static inline int __must_check devm_clk_ return 0; } @@ -104,7 +100,7 @@ index 851a0f2cf42c..1dcee6d701e4 100644 struct clk_bulk_data **clks) { return 0; -@@ -1136,6 +1138,15 @@ static inline void clk_restore_context(void) {} +@@ -1086,6 +1088,15 @@ static inline void clk_restore_context(v #endif @@ -120,6 +116,3 @@ index 851a0f2cf42c..1dcee6d701e4 100644 /* clk_prepare_enable helps cases using clk_enable in non-atomic context. */ static inline int clk_prepare_enable(struct clk *clk) { --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/010-01-v6.11-dt-bindings-clock-Add-PCIe-pipe-related-clocks-for-I.patch b/target/linux/qualcommbe/patches-6.6/010-01-v6.11-dt-bindings-clock-Add-PCIe-pipe-related-clocks-for-I.patch index 3580795aa5..d03253d706 100644 --- a/target/linux/qualcommbe/patches-6.6/010-01-v6.11-dt-bindings-clock-Add-PCIe-pipe-related-clocks-for-I.patch +++ b/target/linux/qualcommbe/patches-6.6/010-01-v6.11-dt-bindings-clock-Add-PCIe-pipe-related-clocks-for-I.patch @@ -13,8 +13,6 @@ Signed-off-by: Bjorn Andersson include/dt-bindings/clock/qcom,ipq9574-gcc.h | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/include/dt-bindings/clock/qcom,ipq9574-gcc.h b/include/dt-bindings/clock/qcom,ipq9574-gcc.h -index 08fd3a37acaa..52123c5a09fa 100644 --- a/include/dt-bindings/clock/qcom,ipq9574-gcc.h +++ b/include/dt-bindings/clock/qcom,ipq9574-gcc.h @@ -216,4 +216,8 @@ @@ -26,6 +24,3 @@ index 08fd3a37acaa..52123c5a09fa 100644 +#define GCC_PCIE2_PIPE_CLK 212 +#define GCC_PCIE3_PIPE_CLK 213 #endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/010-02-v6.11-clk-qcom-gcc-ipq9574-Add-PCIe-pipe-clocks.patch b/target/linux/qualcommbe/patches-6.6/010-02-v6.11-clk-qcom-gcc-ipq9574-Add-PCIe-pipe-clocks.patch index 05a634a1c6..eb38b15861 100644 --- a/target/linux/qualcommbe/patches-6.6/010-02-v6.11-clk-qcom-gcc-ipq9574-Add-PCIe-pipe-clocks.patch +++ b/target/linux/qualcommbe/patches-6.6/010-02-v6.11-clk-qcom-gcc-ipq9574-Add-PCIe-pipe-clocks.patch @@ -14,11 +14,9 @@ Signed-off-by: Bjorn Andersson drivers/clk/qcom/gcc-ipq9574.c | 76 ++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) -diff --git a/drivers/clk/qcom/gcc-ipq9574.c b/drivers/clk/qcom/gcc-ipq9574.c -index 0a3f846695b8..bc3e17f34295 100644 --- a/drivers/clk/qcom/gcc-ipq9574.c +++ b/drivers/clk/qcom/gcc-ipq9574.c -@@ -1569,6 +1569,24 @@ static struct clk_regmap_phy_mux pcie0_pipe_clk_src = { +@@ -1569,6 +1569,24 @@ static struct clk_regmap_phy_mux pcie0_p }, }; @@ -43,7 +41,7 @@ index 0a3f846695b8..bc3e17f34295 100644 static struct clk_regmap_phy_mux pcie1_pipe_clk_src = { .reg = 0x29064, .clkr = { -@@ -1583,6 +1601,24 @@ static struct clk_regmap_phy_mux pcie1_pipe_clk_src = { +@@ -1583,6 +1601,24 @@ static struct clk_regmap_phy_mux pcie1_p }, }; @@ -68,7 +66,7 @@ index 0a3f846695b8..bc3e17f34295 100644 static struct clk_regmap_phy_mux pcie2_pipe_clk_src = { .reg = 0x2a064, .clkr = { -@@ -1597,6 +1633,24 @@ static struct clk_regmap_phy_mux pcie2_pipe_clk_src = { +@@ -1597,6 +1633,24 @@ static struct clk_regmap_phy_mux pcie2_p }, }; @@ -93,7 +91,7 @@ index 0a3f846695b8..bc3e17f34295 100644 static struct clk_regmap_phy_mux pcie3_pipe_clk_src = { .reg = 0x2b064, .clkr = { -@@ -1611,6 +1665,24 @@ static struct clk_regmap_phy_mux pcie3_pipe_clk_src = { +@@ -1611,6 +1665,24 @@ static struct clk_regmap_phy_mux pcie3_p }, }; @@ -118,7 +116,7 @@ index 0a3f846695b8..bc3e17f34295 100644 static const struct freq_tbl ftbl_pcie_rchng_clk_src[] = { F(24000000, P_XO, 1, 0, 0), F(100000000, P_GPLL0, 8, 0, 0), -@@ -4141,6 +4213,10 @@ static struct clk_regmap *gcc_ipq9574_clks[] = { +@@ -4143,6 +4215,10 @@ static struct clk_regmap *gcc_ipq9574_cl [GCC_SNOC_PCIE1_1LANE_S_CLK] = &gcc_snoc_pcie1_1lane_s_clk.clkr, [GCC_SNOC_PCIE2_2LANE_S_CLK] = &gcc_snoc_pcie2_2lane_s_clk.clkr, [GCC_SNOC_PCIE3_2LANE_S_CLK] = &gcc_snoc_pcie3_2lane_s_clk.clkr, @@ -129,6 +127,3 @@ index 0a3f846695b8..bc3e17f34295 100644 }; static const struct qcom_reset_map gcc_ipq9574_resets[] = { --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/011-v6.11-arm64-dts-qcom-ipq9574-drop-power-domain-cells-prope.patch b/target/linux/qualcommbe/patches-6.6/011-v6.11-arm64-dts-qcom-ipq9574-drop-power-domain-cells-prope.patch index ed8e3e9e5d..85e9b618c3 100644 --- a/target/linux/qualcommbe/patches-6.6/011-v6.11-arm64-dts-qcom-ipq9574-drop-power-domain-cells-prope.patch +++ b/target/linux/qualcommbe/patches-6.6/011-v6.11-arm64-dts-qcom-ipq9574-drop-power-domain-cells-prope.patch @@ -15,11 +15,9 @@ Signed-off-by: Bjorn Andersson arch/arm64/boot/dts/qcom/ipq9574.dtsi | 1 - 1 file changed, 1 deletion(-) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -index ded02bc39275..d21937b09b4b 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -@@ -315,7 +315,6 @@ gcc: clock-controller@1800000 { +@@ -296,7 +296,6 @@ <0>; #clock-cells = <1>; #reset-cells = <1>; @@ -27,6 +25,3 @@ index ded02bc39275..d21937b09b4b 100644 }; tcsr_mutex: hwlock@1905000 { --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/012-01-v6.11-interconnect-icc-clk-Specify-master-slave-ids.patch b/target/linux/qualcommbe/patches-6.6/012-01-v6.11-interconnect-icc-clk-Specify-master-slave-ids.patch index eae33982b2..281558cfa2 100644 --- a/target/linux/qualcommbe/patches-6.6/012-01-v6.11-interconnect-icc-clk-Specify-master-slave-ids.patch +++ b/target/linux/qualcommbe/patches-6.6/012-01-v6.11-interconnect-icc-clk-Specify-master-slave-ids.patch @@ -23,11 +23,9 @@ Signed-off-by: Bjorn Andersson include/linux/interconnect-clk.h | 2 ++ 3 files changed, 11 insertions(+), 4 deletions(-) -diff --git a/drivers/clk/qcom/clk-cbf-8996.c b/drivers/clk/qcom/clk-cbf-8996.c -index 76bf523431b8..f5fd1ff9c6c9 100644 --- a/drivers/clk/qcom/clk-cbf-8996.c +++ b/drivers/clk/qcom/clk-cbf-8996.c -@@ -226,7 +226,12 @@ static int qcom_msm8996_cbf_icc_register(struct platform_device *pdev, struct cl +@@ -237,7 +237,12 @@ static int qcom_msm8996_cbf_icc_register struct device *dev = &pdev->dev; struct clk *clk = devm_clk_hw_get_clk(dev, cbf_hw, "cbf"); const struct icc_clk_data data[] = { @@ -41,11 +39,9 @@ index 76bf523431b8..f5fd1ff9c6c9 100644 }; struct icc_provider *provider; -diff --git a/drivers/interconnect/icc-clk.c b/drivers/interconnect/icc-clk.c -index d787f2ea36d9..2be193fd7d8f 100644 --- a/drivers/interconnect/icc-clk.c +++ b/drivers/interconnect/icc-clk.c -@@ -108,7 +108,7 @@ struct icc_provider *icc_clk_register(struct device *dev, +@@ -109,7 +109,7 @@ struct icc_provider *icc_clk_register(st for (i = 0, j = 0; i < num_clocks; i++) { qp->clocks[i].clk = data[i].clk; @@ -54,7 +50,7 @@ index d787f2ea36d9..2be193fd7d8f 100644 if (IS_ERR(node)) { ret = PTR_ERR(node); goto err; -@@ -118,10 +118,10 @@ struct icc_provider *icc_clk_register(struct device *dev, +@@ -119,10 +119,10 @@ struct icc_provider *icc_clk_register(st node->data = &qp->clocks[i]; icc_node_add(node, provider); /* link to the next node, slave */ @@ -67,8 +63,6 @@ index d787f2ea36d9..2be193fd7d8f 100644 if (IS_ERR(node)) { ret = PTR_ERR(node); goto err; -diff --git a/include/linux/interconnect-clk.h b/include/linux/interconnect-clk.h -index 0cd80112bea5..170898faaacb 100644 --- a/include/linux/interconnect-clk.h +++ b/include/linux/interconnect-clk.h @@ -11,6 +11,8 @@ struct device; @@ -80,6 +74,3 @@ index 0cd80112bea5..170898faaacb 100644 }; struct icc_provider *icc_clk_register(struct device *dev, --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/012-02-v6.11-dt-bindings-interconnect-Add-Qualcomm-IPQ9574-suppor.patch b/target/linux/qualcommbe/patches-6.6/012-02-v6.11-dt-bindings-interconnect-Add-Qualcomm-IPQ9574-suppor.patch index f822003a57..130abfcbe1 100644 --- a/target/linux/qualcommbe/patches-6.6/012-02-v6.11-dt-bindings-interconnect-Add-Qualcomm-IPQ9574-suppor.patch +++ b/target/linux/qualcommbe/patches-6.6/012-02-v6.11-dt-bindings-interconnect-Add-Qualcomm-IPQ9574-suppor.patch @@ -22,8 +22,6 @@ Signed-off-by: Bjorn Andersson 2 files changed, 62 insertions(+) create mode 100644 include/dt-bindings/interconnect/qcom,ipq9574.h -diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq9574-gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,ipq9574-gcc.yaml -index 944a0ea79cd6..824781cbdf34 100644 --- a/Documentation/devicetree/bindings/clock/qcom,ipq9574-gcc.yaml +++ b/Documentation/devicetree/bindings/clock/qcom,ipq9574-gcc.yaml @@ -33,6 +33,9 @@ properties: @@ -36,9 +34,6 @@ index 944a0ea79cd6..824781cbdf34 100644 required: - compatible - clocks -diff --git a/include/dt-bindings/interconnect/qcom,ipq9574.h b/include/dt-bindings/interconnect/qcom,ipq9574.h -new file mode 100644 -index 000000000000..42019335c7dd --- /dev/null +++ b/include/dt-bindings/interconnect/qcom,ipq9574.h @@ -0,0 +1,59 @@ @@ -101,6 +96,3 @@ index 000000000000..42019335c7dd +#define SLAVE_NSSNOC_IMEM_AHB 9 + +#endif /* INTERCONNECT_QCOM_IPQ9574_H */ --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/012-03-v6.11-interconnect-icc-clk-Add-devm_icc_clk_register.patch b/target/linux/qualcommbe/patches-6.6/012-03-v6.11-interconnect-icc-clk-Add-devm_icc_clk_register.patch index ae86828196..c1ad657551 100644 --- a/target/linux/qualcommbe/patches-6.6/012-03-v6.11-interconnect-icc-clk-Add-devm_icc_clk_register.patch +++ b/target/linux/qualcommbe/patches-6.6/012-03-v6.11-interconnect-icc-clk-Add-devm_icc_clk_register.patch @@ -16,11 +16,9 @@ Signed-off-by: Bjorn Andersson include/linux/interconnect-clk.h | 2 ++ 2 files changed, 20 insertions(+) -diff --git a/drivers/interconnect/icc-clk.c b/drivers/interconnect/icc-clk.c -index 2be193fd7d8f..f788db15cd76 100644 --- a/drivers/interconnect/icc-clk.c +++ b/drivers/interconnect/icc-clk.c -@@ -148,6 +148,24 @@ struct icc_provider *icc_clk_register(struct device *dev, +@@ -147,6 +147,24 @@ err: } EXPORT_SYMBOL_GPL(icc_clk_register); @@ -45,11 +43,9 @@ index 2be193fd7d8f..f788db15cd76 100644 /** * icc_clk_unregister() - unregister a previously registered clk interconnect provider * @provider: provider returned by icc_clk_register() -diff --git a/include/linux/interconnect-clk.h b/include/linux/interconnect-clk.h -index 170898faaacb..9bcee3e9c56c 100644 --- a/include/linux/interconnect-clk.h +++ b/include/linux/interconnect-clk.h -@@ -19,6 +19,8 @@ struct icc_provider *icc_clk_register(struct device *dev, +@@ -19,6 +19,8 @@ struct icc_provider *icc_clk_register(st unsigned int first_id, unsigned int num_clocks, const struct icc_clk_data *data); @@ -58,6 +54,3 @@ index 170898faaacb..9bcee3e9c56c 100644 void icc_clk_unregister(struct icc_provider *provider); #endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/012-04-v6.11-clk-qcom-common-Add-interconnect-clocks-support.patch b/target/linux/qualcommbe/patches-6.6/012-04-v6.11-clk-qcom-common-Add-interconnect-clocks-support.patch index e0af1be618..1702f26f69 100644 --- a/target/linux/qualcommbe/patches-6.6/012-04-v6.11-clk-qcom-common-Add-interconnect-clocks-support.patch +++ b/target/linux/qualcommbe/patches-6.6/012-04-v6.11-clk-qcom-common-Add-interconnect-clocks-support.patch @@ -23,8 +23,6 @@ Signed-off-by: Bjorn Andersson drivers/clk/qcom/common.h | 9 +++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) -diff --git a/drivers/clk/qcom/common.c b/drivers/clk/qcom/common.c -index c92e10c60322..ea3788ba46f7 100644 --- a/drivers/clk/qcom/common.c +++ b/drivers/clk/qcom/common.c @@ -8,6 +8,7 @@ @@ -35,7 +33,7 @@ index c92e10c60322..ea3788ba46f7 100644 #include #include -@@ -252,6 +253,38 @@ static struct clk_hw *qcom_cc_clk_hw_get(struct of_phandle_args *clkspec, +@@ -252,6 +253,38 @@ static struct clk_hw *qcom_cc_clk_hw_get return cc->rclks[idx] ? &cc->rclks[idx]->hw : NULL; } @@ -74,7 +72,7 @@ index c92e10c60322..ea3788ba46f7 100644 int qcom_cc_really_probe(struct device *dev, const struct qcom_cc_desc *desc, struct regmap *regmap) { -@@ -320,7 +353,7 @@ int qcom_cc_really_probe(struct device *dev, +@@ -320,7 +353,7 @@ int qcom_cc_really_probe(struct device * if (ret) return ret; @@ -83,8 +81,6 @@ index c92e10c60322..ea3788ba46f7 100644 } EXPORT_SYMBOL_GPL(qcom_cc_really_probe); -diff --git a/drivers/clk/qcom/common.h b/drivers/clk/qcom/common.h -index d048bdeeba10..7e57f8fe8ea6 100644 --- a/drivers/clk/qcom/common.h +++ b/drivers/clk/qcom/common.h @@ -19,6 +19,12 @@ struct clk_hw; @@ -110,6 +106,3 @@ index d048bdeeba10..7e57f8fe8ea6 100644 }; /** --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/012-05-v6.11-clk-qcom-ipq9574-Use-icc-clk-for-enabling-NoC-relate.patch b/target/linux/qualcommbe/patches-6.6/012-05-v6.11-clk-qcom-ipq9574-Use-icc-clk-for-enabling-NoC-relate.patch index bbcecdc8cc..ba597fc5e3 100644 --- a/target/linux/qualcommbe/patches-6.6/012-05-v6.11-clk-qcom-ipq9574-Use-icc-clk-for-enabling-NoC-relate.patch +++ b/target/linux/qualcommbe/patches-6.6/012-05-v6.11-clk-qcom-ipq9574-Use-icc-clk-for-enabling-NoC-relate.patch @@ -16,11 +16,9 @@ Signed-off-by: Bjorn Andersson drivers/clk/qcom/gcc-ipq9574.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) -diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig -index 1231eae51556..11ae28430dad 100644 --- a/drivers/clk/qcom/Kconfig +++ b/drivers/clk/qcom/Kconfig -@@ -14,6 +14,8 @@ menuconfig COMMON_CLK_QCOM +@@ -17,6 +17,8 @@ menuconfig COMMON_CLK_QCOM select RATIONAL select REGMAP_MMIO select RESET_CONTROLLER @@ -29,8 +27,6 @@ index 1231eae51556..11ae28430dad 100644 if COMMON_CLK_QCOM -diff --git a/drivers/clk/qcom/gcc-ipq9574.c b/drivers/clk/qcom/gcc-ipq9574.c -index bc3e17f34295..f08a447370bd 100644 --- a/drivers/clk/qcom/gcc-ipq9574.c +++ b/drivers/clk/qcom/gcc-ipq9574.c @@ -4,6 +4,8 @@ @@ -50,7 +46,7 @@ index bc3e17f34295..f08a447370bd 100644 #include "clk-alpha-pll.h" #include "clk-branch.h" -@@ -4377,6 +4380,32 @@ static const struct qcom_reset_map gcc_ipq9574_resets[] = { +@@ -4379,6 +4382,32 @@ static const struct qcom_reset_map gcc_i [GCC_WCSS_Q6_TBU_BCR] = { 0x12054, 0 }, }; @@ -83,7 +79,7 @@ index bc3e17f34295..f08a447370bd 100644 static const struct of_device_id gcc_ipq9574_match_table[] = { { .compatible = "qcom,ipq9574-gcc" }, { } -@@ -4399,6 +4428,9 @@ static const struct qcom_cc_desc gcc_ipq9574_desc = { +@@ -4401,6 +4430,9 @@ static const struct qcom_cc_desc gcc_ipq .num_resets = ARRAY_SIZE(gcc_ipq9574_resets), .clk_hws = gcc_ipq9574_hws, .num_clk_hws = ARRAY_SIZE(gcc_ipq9574_hws), @@ -93,7 +89,7 @@ index bc3e17f34295..f08a447370bd 100644 }; static int gcc_ipq9574_probe(struct platform_device *pdev) -@@ -4411,6 +4443,7 @@ static struct platform_driver gcc_ipq9574_driver = { +@@ -4413,6 +4445,7 @@ static struct platform_driver gcc_ipq957 .driver = { .name = "qcom,gcc-ipq9574", .of_match_table = gcc_ipq9574_match_table, @@ -101,6 +97,3 @@ index bc3e17f34295..f08a447370bd 100644 }, }; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/012-06-v6.11-arm64-dts-qcom-ipq9574-Add-icc-provider-ability-to-g.patch b/target/linux/qualcommbe/patches-6.6/012-06-v6.11-arm64-dts-qcom-ipq9574-Add-icc-provider-ability-to-g.patch index b5f9c0f297..d24889c525 100644 --- a/target/linux/qualcommbe/patches-6.6/012-06-v6.11-arm64-dts-qcom-ipq9574-Add-icc-provider-ability-to-g.patch +++ b/target/linux/qualcommbe/patches-6.6/012-06-v6.11-arm64-dts-qcom-ipq9574-Add-icc-provider-ability-to-g.patch @@ -21,8 +21,6 @@ Signed-off-by: Bjorn Andersson arch/arm64/boot/dts/qcom/ipq9574.dtsi | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -index 04ba09a9156c..48dfafea46a7 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi @@ -8,6 +8,7 @@ @@ -33,7 +31,7 @@ index 04ba09a9156c..48dfafea46a7 100644 #include #include #include -@@ -315,6 +316,7 @@ gcc: clock-controller@1800000 { +@@ -296,6 +297,7 @@ <0>; #clock-cells = <1>; #reset-cells = <1>; @@ -41,6 +39,3 @@ index 04ba09a9156c..48dfafea46a7 100644 }; tcsr_mutex: hwlock@1905000 { --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/013-01-v6.7-cpufreq-qcom-nvmem-Enable-cpufreq-for-ipq53xx.patch b/target/linux/qualcommbe/patches-6.6/013-01-v6.7-cpufreq-qcom-nvmem-Enable-cpufreq-for-ipq53xx.patch index ed97bca367..3aec1a91b6 100644 --- a/target/linux/qualcommbe/patches-6.6/013-01-v6.7-cpufreq-qcom-nvmem-Enable-cpufreq-for-ipq53xx.patch +++ b/target/linux/qualcommbe/patches-6.6/013-01-v6.7-cpufreq-qcom-nvmem-Enable-cpufreq-for-ipq53xx.patch @@ -27,23 +27,19 @@ Signed-off-by: Viresh Kumar drivers/cpufreq/qcom-cpufreq-nvmem.c | 6 ++++++ 2 files changed, 7 insertions(+) -diff --git a/drivers/cpufreq/cpufreq-dt-platdev.c b/drivers/cpufreq/cpufreq-dt-platdev.c -index 07181913448f..53da25589e5f 100644 --- a/drivers/cpufreq/cpufreq-dt-platdev.c +++ b/drivers/cpufreq/cpufreq-dt-platdev.c -@@ -180,6 +180,7 @@ static const struct of_device_id blocklist[] __initconst = { +@@ -177,6 +177,7 @@ static const struct of_device_id blockli + { .compatible = "ti,am625", }, { .compatible = "ti,am62a7", }, - { .compatible = "ti,am62p5", }, + { .compatible = "qcom,ipq5332", }, { .compatible = "qcom,ipq8064", }, { .compatible = "qcom,apq8064", }, { .compatible = "qcom,msm8974", }, -diff --git a/drivers/cpufreq/qcom-cpufreq-nvmem.c b/drivers/cpufreq/qcom-cpufreq-nvmem.c -index 158c0e139185..4f7af70169e0 100644 --- a/drivers/cpufreq/qcom-cpufreq-nvmem.c +++ b/drivers/cpufreq/qcom-cpufreq-nvmem.c -@@ -183,6 +183,11 @@ static int qcom_cpufreq_kryo_name_version(struct device *cpu_dev, +@@ -152,6 +152,11 @@ static int qcom_cpufreq_kryo_name_versio switch (msm_id) { case QCOM_ID_MSM8996: case QCOM_ID_APQ8096: @@ -55,7 +51,7 @@ index 158c0e139185..4f7af70169e0 100644 drv->versions = 1 << (unsigned int)(*speedbin); break; case QCOM_ID_MSM8996SG: -@@ -541,6 +546,7 @@ static const struct of_device_id qcom_cpufreq_match_list[] __initconst = { +@@ -353,6 +358,7 @@ static const struct of_device_id qcom_cp { .compatible = "qcom,apq8096", .data = &match_data_kryo }, { .compatible = "qcom,msm8996", .data = &match_data_kryo }, { .compatible = "qcom,qcs404", .data = &match_data_qcs404 }, @@ -63,6 +59,3 @@ index 158c0e139185..4f7af70169e0 100644 { .compatible = "qcom,ipq8064", .data = &match_data_krait }, { .compatible = "qcom,apq8064", .data = &match_data_krait }, { .compatible = "qcom,msm8974", .data = &match_data_krait }, --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/013-02-v6.7-v6.8-cpufreq-qcom-nvmem-Introduce-cpufreq-for-ipq95xx.patch b/target/linux/qualcommbe/patches-6.6/013-02-v6.7-v6.8-cpufreq-qcom-nvmem-Introduce-cpufreq-for-ipq95xx.patch index b3954d19b0..0b5e921c95 100644 --- a/target/linux/qualcommbe/patches-6.6/013-02-v6.7-v6.8-cpufreq-qcom-nvmem-Introduce-cpufreq-for-ipq95xx.patch +++ b/target/linux/qualcommbe/patches-6.6/013-02-v6.7-v6.8-cpufreq-qcom-nvmem-Introduce-cpufreq-for-ipq95xx.patch @@ -23,23 +23,19 @@ Signed-off-by: Viresh Kumar drivers/cpufreq/qcom-cpufreq-nvmem.c | 6 ++++++ 2 files changed, 7 insertions(+) -diff --git a/drivers/cpufreq/cpufreq-dt-platdev.c b/drivers/cpufreq/cpufreq-dt-platdev.c -index 53da25589e5f..bd1e1357cef8 100644 --- a/drivers/cpufreq/cpufreq-dt-platdev.c +++ b/drivers/cpufreq/cpufreq-dt-platdev.c -@@ -184,6 +184,7 @@ static const struct of_device_id blocklist[] __initconst = { +@@ -179,6 +179,7 @@ static const struct of_device_id blockli - { .compatible = "qcom,ipq5332", }, + { .compatible = "qcom,ipq5332", }, { .compatible = "qcom,ipq8064", }, + { .compatible = "qcom,ipq9574", }, { .compatible = "qcom,apq8064", }, { .compatible = "qcom,msm8974", }, { .compatible = "qcom,msm8960", }, -diff --git a/drivers/cpufreq/qcom-cpufreq-nvmem.c b/drivers/cpufreq/qcom-cpufreq-nvmem.c -index 4f7af70169e0..6355a39418c5 100644 --- a/drivers/cpufreq/qcom-cpufreq-nvmem.c +++ b/drivers/cpufreq/qcom-cpufreq-nvmem.c -@@ -188,6 +188,11 @@ static int qcom_cpufreq_kryo_name_version(struct device *cpu_dev, +@@ -157,6 +157,11 @@ static int qcom_cpufreq_kryo_name_versio case QCOM_ID_IPQ5312: case QCOM_ID_IPQ5302: case QCOM_ID_IPQ5300: @@ -51,7 +47,7 @@ index 4f7af70169e0..6355a39418c5 100644 drv->versions = 1 << (unsigned int)(*speedbin); break; case QCOM_ID_MSM8996SG: -@@ -551,6 +556,7 @@ static const struct of_device_id qcom_cpufreq_match_list[] __initconst = { +@@ -361,6 +366,7 @@ static const struct of_device_id qcom_cp { .compatible = "qcom,ipq5332", .data = &match_data_kryo }, { .compatible = "qcom,ipq8064", .data = &match_data_krait }, { .compatible = "qcom,apq8064", .data = &match_data_krait }, @@ -59,6 +55,3 @@ index 4f7af70169e0..6355a39418c5 100644 { .compatible = "qcom,msm8974", .data = &match_data_krait }, { .compatible = "qcom,msm8960", .data = &match_data_krait }, {}, --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/014-v6.8-arm64-dts-qcom-ipq9574-populate-the-opp-table-based-.patch b/target/linux/qualcommbe/patches-6.6/014-v6.8-arm64-dts-qcom-ipq9574-populate-the-opp-table-based-.patch index 8aaf117f58..9e546d33c3 100644 --- a/target/linux/qualcommbe/patches-6.6/014-v6.8-arm64-dts-qcom-ipq9574-populate-the-opp-table-based-.patch +++ b/target/linux/qualcommbe/patches-6.6/014-v6.8-arm64-dts-qcom-ipq9574-populate-the-opp-table-based-.patch @@ -31,11 +31,9 @@ Signed-off-by: Bjorn Andersson arch/arm64/boot/dts/qcom/ipq9574.dtsi | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -index 8a72ad4afd03..d4b7e215fc92 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -@@ -106,42 +106,56 @@ memory@40000000 { +@@ -107,42 +107,56 @@ }; cpu_opp_table: opp-table-cpu { @@ -93,7 +91,7 @@ index 8a72ad4afd03..d4b7e215fc92 100644 clock-latency-ns = <200000>; }; }; -@@ -223,6 +237,11 @@ qfprom: efuse@a4000 { +@@ -234,6 +248,11 @@ reg = <0x000a4000 0x5a1>; #address-cells = <1>; #size-cells = <1>; @@ -105,6 +103,3 @@ index 8a72ad4afd03..d4b7e215fc92 100644 }; cryptobam: dma-controller@704000 { --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/015-v6.8-regulator-qcom_smd-Add-LDO5-MP5496-regulator.patch b/target/linux/qualcommbe/patches-6.6/015-v6.8-regulator-qcom_smd-Add-LDO5-MP5496-regulator.patch index 68f96ce62e..039c39c5c2 100644 --- a/target/linux/qualcommbe/patches-6.6/015-v6.8-regulator-qcom_smd-Add-LDO5-MP5496-regulator.patch +++ b/target/linux/qualcommbe/patches-6.6/015-v6.8-regulator-qcom_smd-Add-LDO5-MP5496-regulator.patch @@ -14,11 +14,9 @@ Signed-off-by: Mark Brown drivers/regulator/qcom_smd-regulator.c | 1 + 1 file changed, 1 insertion(+) -diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c -index 09c471a0ba2e..d1be9568025e 100644 --- a/drivers/regulator/qcom_smd-regulator.c +++ b/drivers/regulator/qcom_smd-regulator.c -@@ -796,6 +796,7 @@ static const struct rpm_regulator_data rpm_mp5496_regulators[] = { +@@ -796,6 +796,7 @@ static const struct rpm_regulator_data r { "s1", QCOM_SMD_RPM_SMPA, 1, &mp5496_smps, "s1" }, { "s2", QCOM_SMD_RPM_SMPA, 2, &mp5496_smps, "s2" }, { "l2", QCOM_SMD_RPM_LDOA, 2, &mp5496_ldoa2, "l2" }, @@ -26,6 +24,3 @@ index 09c471a0ba2e..d1be9568025e 100644 {} }; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/018-v6.14-clk-qcom-Add-CMN-PLL-clock-controller-driver-for-IPQ.patch b/target/linux/qualcommbe/patches-6.6/018-v6.14-clk-qcom-Add-CMN-PLL-clock-controller-driver-for-IPQ.patch index fedd582897..2b823d2fc9 100644 --- a/target/linux/qualcommbe/patches-6.6/018-v6.14-clk-qcom-Add-CMN-PLL-clock-controller-driver-for-IPQ.patch +++ b/target/linux/qualcommbe/patches-6.6/018-v6.14-clk-qcom-Add-CMN-PLL-clock-controller-driver-for-IPQ.patch @@ -32,11 +32,9 @@ Signed-off-by: Bjorn Andersson 3 files changed, 445 insertions(+) create mode 100644 drivers/clk/qcom/ipq-cmn-pll.c -diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig -index 42c257e4c433..2daff198aeb3 100644 --- a/drivers/clk/qcom/Kconfig +++ b/drivers/clk/qcom/Kconfig -@@ -199,6 +199,15 @@ config IPQ_APSS_6018 +@@ -141,6 +141,15 @@ config IPQ_APSS_6018 Say Y if you want to support CPU frequency scaling on ipq based devices. @@ -52,21 +50,16 @@ index 42c257e4c433..2daff198aeb3 100644 config IPQ_GCC_4019 tristate "IPQ4019 Global Clock Controller" help -diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile -index 1b749da9c13a..6665049cb8c8 100644 --- a/drivers/clk/qcom/Makefile +++ b/drivers/clk/qcom/Makefile -@@ -30,6 +30,7 @@ obj-$(CONFIG_CLK_X1P42100_GPUCC) += gpucc-x1p42100.o - obj-$(CONFIG_CLK_QCM2290_GPUCC) += gpucc-qcm2290.o +@@ -23,6 +23,7 @@ obj-$(CONFIG_APQ_MMCC_8084) += mmcc-apq8 + obj-$(CONFIG_CLK_GFM_LPASS_SM8250) += lpass-gfm-sm8250.o obj-$(CONFIG_IPQ_APSS_PLL) += apss-ipq-pll.o obj-$(CONFIG_IPQ_APSS_6018) += apss-ipq6018.o +obj-$(CONFIG_IPQ_CMN_PLL) += ipq-cmn-pll.o obj-$(CONFIG_IPQ_GCC_4019) += gcc-ipq4019.o obj-$(CONFIG_IPQ_GCC_5018) += gcc-ipq5018.o obj-$(CONFIG_IPQ_GCC_5332) += gcc-ipq5332.o -diff --git a/drivers/clk/qcom/ipq-cmn-pll.c b/drivers/clk/qcom/ipq-cmn-pll.c -new file mode 100644 -index 000000000000..432d4c4b7aa6 --- /dev/null +++ b/drivers/clk/qcom/ipq-cmn-pll.c @@ -0,0 +1,435 @@ @@ -505,6 +498,3 @@ index 000000000000..432d4c4b7aa6 + +MODULE_DESCRIPTION("Qualcomm Technologies, Inc. IPQ CMN PLL Driver"); +MODULE_LICENSE("GPL"); --- -2.47.1 - diff --git a/target/linux/qualcommbe/patches-6.6/019-01-v6.14-dt-bindings-clock-qcom-Add-CMN-PLL-clock-controller-.patch b/target/linux/qualcommbe/patches-6.6/019-01-v6.14-dt-bindings-clock-qcom-Add-CMN-PLL-clock-controller-.patch index 8d0d19945a..5c0b4e16f8 100644 --- a/target/linux/qualcommbe/patches-6.6/019-01-v6.14-dt-bindings-clock-qcom-Add-CMN-PLL-clock-controller-.patch +++ b/target/linux/qualcommbe/patches-6.6/019-01-v6.14-dt-bindings-clock-qcom-Add-CMN-PLL-clock-controller-.patch @@ -25,9 +25,6 @@ Signed-off-by: Bjorn Andersson create mode 100644 Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml create mode 100644 include/dt-bindings/clock/qcom,ipq-cmn-pll.h -diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml b/Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml -new file mode 100644 -index 000000000000..f869b3739be8 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml @@ -0,0 +1,77 @@ @@ -108,9 +105,6 @@ index 000000000000..f869b3739be8 + assigned-clock-rates-u64 = /bits/ 64 <12000000000>; + }; +... -diff --git a/include/dt-bindings/clock/qcom,ipq-cmn-pll.h b/include/dt-bindings/clock/qcom,ipq-cmn-pll.h -new file mode 100644 -index 000000000000..936e92b3b62c --- /dev/null +++ b/include/dt-bindings/clock/qcom,ipq-cmn-pll.h @@ -0,0 +1,22 @@ @@ -136,6 +130,3 @@ index 000000000000..936e92b3b62c +#define ETH2_50MHZ_CLK 8 +#define ETH_25MHZ_CLK 9 +#endif --- -2.47.1 - diff --git a/target/linux/qualcommbe/patches-6.6/019-02-v6.14-arm64-dts-qcom-ipq9574-Add-CMN-PLL-node.patch b/target/linux/qualcommbe/patches-6.6/019-02-v6.14-arm64-dts-qcom-ipq9574-Add-CMN-PLL-node.patch index 84f28cf83d..514df211ec 100644 --- a/target/linux/qualcommbe/patches-6.6/019-02-v6.14-arm64-dts-qcom-ipq9574-Add-CMN-PLL-node.patch +++ b/target/linux/qualcommbe/patches-6.6/019-02-v6.14-arm64-dts-qcom-ipq9574-Add-CMN-PLL-node.patch @@ -28,8 +28,6 @@ Signed-off-by: Bjorn Andersson arch/arm64/boot/dts/qcom/ipq9574.dtsi | 26 ++++++++++++++++++- 2 files changed, 41 insertions(+), 2 deletions(-) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi -index 91e104b0f865..bb1ff79360d3 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi @@ -3,7 +3,7 @@ @@ -41,7 +39,7 @@ index 91e104b0f865..bb1ff79360d3 100644 */ /dts-v1/; -@@ -164,6 +164,21 @@ &usb3 { +@@ -120,6 +120,21 @@ status = "okay"; }; @@ -63,8 +61,6 @@ index 91e104b0f865..bb1ff79360d3 100644 +&xo_clk { + clock-frequency = <48000000>; +}; -diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -index 00ee3290c181..c543c3492e93 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi @@ -3,10 +3,11 @@ @@ -80,7 +76,7 @@ index 00ee3290c181..c543c3492e93 100644 #include #include #include -@@ -19,6 +20,12 @@ / { +@@ -19,6 +20,12 @@ #size-cells = <2>; clocks { @@ -93,7 +89,7 @@ index 00ee3290c181..c543c3492e93 100644 sleep_clk: sleep-clk { compatible = "fixed-clock"; #clock-cells = <0>; -@@ -28,6 +35,11 @@ xo_board_clk: xo-board-clk { +@@ -28,6 +35,11 @@ compatible = "fixed-clock"; #clock-cells = <0>; }; @@ -105,7 +101,7 @@ index 00ee3290c181..c543c3492e93 100644 }; cpus { -@@ -335,6 +347,18 @@ pcie1_phy: phy@fc000 { +@@ -243,6 +255,18 @@ status = "disabled"; }; @@ -124,6 +120,3 @@ index 00ee3290c181..c543c3492e93 100644 qfprom: efuse@a4000 { compatible = "qcom,ipq9574-qfprom", "qcom,qfprom"; reg = <0x000a4000 0x5a1>; --- -2.47.1 - diff --git a/target/linux/qualcommbe/patches-6.6/019-03-v6.14-arm64-dts-qcom-ipq9574-Update-xo_board_clk-to-use-fi.patch b/target/linux/qualcommbe/patches-6.6/019-03-v6.14-arm64-dts-qcom-ipq9574-Update-xo_board_clk-to-use-fi.patch index 0654895165..062e9ecabb 100644 --- a/target/linux/qualcommbe/patches-6.6/019-03-v6.14-arm64-dts-qcom-ipq9574-Update-xo_board_clk-to-use-fi.patch +++ b/target/linux/qualcommbe/patches-6.6/019-03-v6.14-arm64-dts-qcom-ipq9574-Update-xo_board_clk-to-use-fi.patch @@ -17,11 +17,9 @@ Signed-off-by: Bjorn Andersson arch/arm64/boot/dts/qcom/ipq9574.dtsi | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi -index bb1ff79360d3..ae12f069f26f 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi -@@ -175,8 +175,13 @@ &ref_48mhz_clk { +@@ -131,8 +131,13 @@ clock-mult = <1>; }; @@ -36,11 +34,9 @@ index bb1ff79360d3..ae12f069f26f 100644 }; &xo_clk { -diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -index c543c3492e93..3e93484e7e32 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -@@ -32,7 +32,8 @@ sleep_clk: sleep-clk { +@@ -32,7 +32,8 @@ }; xo_board_clk: xo-board-clk { @@ -50,6 +46,3 @@ index c543c3492e93..3e93484e7e32 100644 #clock-cells = <0>; }; --- -2.47.1 - diff --git a/target/linux/qualcommbe/patches-6.6/100-06-spi-spi-qpic-add-driver-for-QCOM-SPI-NAND-flash-Inte.patch b/target/linux/qualcommbe/patches-6.6/100-06-spi-spi-qpic-add-driver-for-QCOM-SPI-NAND-flash-Inte.patch index d5babb1fea..62f29cba3c 100644 --- a/target/linux/qualcommbe/patches-6.6/100-06-spi-spi-qpic-add-driver-for-QCOM-SPI-NAND-flash-Inte.patch +++ b/target/linux/qualcommbe/patches-6.6/100-06-spi-spi-qpic-add-driver-for-QCOM-SPI-NAND-flash-Inte.patch @@ -209,11 +209,9 @@ Change in [v1] 5 files changed, 1654 insertions(+) create mode 100644 drivers/spi/spi-qpic-snand.c -diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile -index da1586a36574..db516a45f0c5 100644 --- a/drivers/mtd/nand/Makefile +++ b/drivers/mtd/nand/Makefile -@@ -3,7 +3,11 @@ +@@ -4,7 +4,11 @@ nandcore-objs := core.o bbt.o obj-$(CONFIG_MTD_NAND_CORE) += nandcore.o obj-$(CONFIG_MTD_NAND_ECC_MEDIATEK) += ecc-mtk.o obj-$(CONFIG_MTD_NAND_MTK_BMT) += mtk_bmt.o mtk_bmt_v2.o mtk_bmt_bbt.o mtk_bmt_nmbm.o @@ -225,11 +223,9 @@ index da1586a36574..db516a45f0c5 100644 obj-y += onenand/ obj-y += raw/ obj-y += spi/ -diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig -index f51f9466e518..1aaf93964429 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig -@@ -920,6 +920,15 @@ config SPI_QCOM_QSPI +@@ -870,6 +870,15 @@ config SPI_QCOM_QSPI help QSPI(Quad SPI) driver for Qualcomm QSPI controller. @@ -245,11 +241,9 @@ index f51f9466e518..1aaf93964429 100644 config SPI_QUP tristate "Qualcomm SPI controller with QUP interface" depends on ARCH_QCOM || COMPILE_TEST -diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile -index aea5e54de195..3309b7bb2445 100644 --- a/drivers/spi/Makefile +++ b/drivers/spi/Makefile -@@ -115,6 +115,7 @@ obj-$(CONFIG_SPI_PXA2XX) += spi-pxa2xx-platform.o +@@ -110,6 +110,7 @@ obj-$(CONFIG_SPI_PXA2XX) += spi-pxa2xx- obj-$(CONFIG_SPI_PXA2XX_PCI) += spi-pxa2xx-pci.o obj-$(CONFIG_SPI_QCOM_GENI) += spi-geni-qcom.o obj-$(CONFIG_SPI_QCOM_QSPI) += spi-qcom-qspi.o @@ -257,9 +251,6 @@ index aea5e54de195..3309b7bb2445 100644 obj-$(CONFIG_SPI_QUP) += spi-qup.o obj-$(CONFIG_SPI_ROCKCHIP) += spi-rockchip.o obj-$(CONFIG_SPI_ROCKCHIP_SFC) += spi-rockchip-sfc.o -diff --git a/drivers/spi/spi-qpic-snand.c b/drivers/spi/spi-qpic-snand.c -new file mode 100644 -index 000000000000..1ba562a9369e --- /dev/null +++ b/drivers/spi/spi-qpic-snand.c @@ -0,0 +1,1633 @@ @@ -1896,11 +1887,9 @@ index 000000000000..1ba562a9369e +MODULE_AUTHOR("Md Sadre Alam "); +MODULE_LICENSE("GPL"); + -diff --git a/include/linux/mtd/nand-qpic-common.h b/include/linux/mtd/nand-qpic-common.h -index e79c79775eb8..7dba89654d6c 100644 --- a/include/linux/mtd/nand-qpic-common.h +++ b/include/linux/mtd/nand-qpic-common.h -@@ -322,6 +322,10 @@ struct nandc_regs { +@@ -325,6 +325,10 @@ struct nandc_regs { __le32 read_location_last1; __le32 read_location_last2; __le32 read_location_last3; @@ -1911,7 +1900,7 @@ index e79c79775eb8..7dba89654d6c 100644 __le32 erased_cw_detect_cfg_clr; __le32 erased_cw_detect_cfg_set; -@@ -336,6 +340,7 @@ struct nandc_regs { +@@ -339,6 +343,7 @@ struct nandc_regs { * * @core_clk: controller clock * @aon_clk: another controller clock @@ -1919,7 +1908,7 @@ index e79c79775eb8..7dba89654d6c 100644 * * @regs: a contiguous chunk of memory for DMA register * writes. contains the register values to be -@@ -345,6 +350,7 @@ struct nandc_regs { +@@ -348,6 +353,7 @@ struct nandc_regs { * initialized via DT match data * * @controller: base controller structure @@ -1927,7 +1916,7 @@ index e79c79775eb8..7dba89654d6c 100644 * @host_list: list containing all the chips attached to the * controller * -@@ -389,6 +395,7 @@ struct qcom_nand_controller { +@@ -392,6 +398,7 @@ struct qcom_nand_controller { const struct qcom_nandc_props *props; struct nand_controller *controller; @@ -1935,5 +1924,3 @@ index e79c79775eb8..7dba89654d6c 100644 struct list_head host_list; union { --- -2.34.1 diff --git a/target/linux/qualcommbe/patches-6.6/101-arm64-dts-qcom-ipq9574-Add-SPI-nand-support.patch b/target/linux/qualcommbe/patches-6.6/101-arm64-dts-qcom-ipq9574-Add-SPI-nand-support.patch index aa211eea6e..0b8eac37cb 100644 --- a/target/linux/qualcommbe/patches-6.6/101-arm64-dts-qcom-ipq9574-Add-SPI-nand-support.patch +++ b/target/linux/qualcommbe/patches-6.6/101-arm64-dts-qcom-ipq9574-Add-SPI-nand-support.patch @@ -56,7 +56,7 @@ Change in [v1] --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts -@@ -121,6 +121,49 @@ +@@ -59,4 +59,47 @@ bias-pull-down; }; }; @@ -104,11 +104,9 @@ Change in [v1] + nand-ecc-step-size = <512>; + }; }; - - &usb_0_dwc3 { --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -@@ -300,6 +300,33 @@ +@@ -355,6 +355,33 @@ reg = <0x01937000 0x21000>; }; diff --git a/target/linux/qualcommbe/patches-6.6/102-arm64-dts-qcom-ipq9574-Disable-eMMC-node.patch b/target/linux/qualcommbe/patches-6.6/102-arm64-dts-qcom-ipq9574-Disable-eMMC-node.patch index 57a16f7467..8e362b8e60 100644 --- a/target/linux/qualcommbe/patches-6.6/102-arm64-dts-qcom-ipq9574-Disable-eMMC-node.patch +++ b/target/linux/qualcommbe/patches-6.6/102-arm64-dts-qcom-ipq9574-Disable-eMMC-node.patch @@ -54,7 +54,7 @@ Change in [v1] --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts -@@ -82,7 +82,7 @@ +@@ -24,7 +24,7 @@ mmc-hs400-enhanced-strobe; max-frequency = <384000000>; bus-width = <8>; @@ -62,4 +62,4 @@ Change in [v1] + status = "disabled"; }; - &sleep_clk { + &tlmm { diff --git a/target/linux/qualcommbe/patches-6.6/103-01-dt-bindings-net-Document-Qualcomm-QCA8084-PHY-packag.patch b/target/linux/qualcommbe/patches-6.6/103-01-dt-bindings-net-Document-Qualcomm-QCA8084-PHY-packag.patch index 260df88c80..6bd3f00b6c 100644 --- a/target/linux/qualcommbe/patches-6.6/103-01-dt-bindings-net-Document-Qualcomm-QCA8084-PHY-packag.patch +++ b/target/linux/qualcommbe/patches-6.6/103-01-dt-bindings-net-Document-Qualcomm-QCA8084-PHY-packag.patch @@ -24,9 +24,6 @@ Signed-off-by: Luo Jie create mode 100644 Documentation/devicetree/bindings/net/qcom,qca8084.yaml create mode 100644 include/dt-bindings/net/qcom,qca808x.h -diff --git a/Documentation/devicetree/bindings/net/qcom,qca8084.yaml b/Documentation/devicetree/bindings/net/qcom,qca8084.yaml -new file mode 100644 -index 000000000000..efa1fa4ebfdc --- /dev/null +++ b/Documentation/devicetree/bindings/net/qcom,qca8084.yaml @@ -0,0 +1,198 @@ @@ -228,9 +225,6 @@ index 000000000000..efa1fa4ebfdc + }; + }; + }; -diff --git a/include/dt-bindings/net/qcom,qca808x.h b/include/dt-bindings/net/qcom,qca808x.h -new file mode 100644 -index 000000000000..c3a2830445ea --- /dev/null +++ b/include/dt-bindings/net/qcom,qca808x.h @@ -0,0 +1,14 @@ @@ -248,6 +242,3 @@ index 000000000000..c3a2830445ea +#define QCA808X_PCS1_SGMII_MAC_PCS0_SGMII_PHY 2 + +#endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-02-net-phy-qca808x-Add-QCA8084-ethernet-phy-support.patch b/target/linux/qualcommbe/patches-6.6/103-02-net-phy-qca808x-Add-QCA8084-ethernet-phy-support.patch index 0e84685af0..f1a7c992b1 100644 --- a/target/linux/qualcommbe/patches-6.6/103-02-net-phy-qca808x-Add-QCA8084-ethernet-phy-support.patch +++ b/target/linux/qualcommbe/patches-6.6/103-02-net-phy-qca808x-Add-QCA8084-ethernet-phy-support.patch @@ -24,8 +24,6 @@ Signed-off-by: Luo Jie drivers/net/phy/qcom/qca808x.c | 62 ++++++++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 2 deletions(-) -diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c -index 5048304ccc9e..be46d16ca09f 100644 --- a/drivers/net/phy/qcom/qca808x.c +++ b/drivers/net/phy/qcom/qca808x.c @@ -86,9 +86,16 @@ @@ -46,7 +44,7 @@ index 5048304ccc9e..be46d16ca09f 100644 MODULE_LICENSE("GPL"); struct qca808x_priv { -@@ -153,7 +160,9 @@ static bool qca808x_is_prefer_master(struct phy_device *phydev) +@@ -153,7 +160,9 @@ static bool qca808x_is_prefer_master(str static bool qca808x_has_fast_retrain_or_slave_seed(struct phy_device *phydev) { @@ -57,7 +55,7 @@ index 5048304ccc9e..be46d16ca09f 100644 } static bool qca808x_is_1g_only(struct phy_device *phydev) -@@ -273,6 +282,23 @@ static int qca808x_read_status(struct phy_device *phydev) +@@ -273,6 +282,23 @@ static int qca808x_read_status(struct ph return ret; if (phydev->link) { @@ -81,7 +79,7 @@ index 5048304ccc9e..be46d16ca09f 100644 if (phydev->speed == SPEED_2500) phydev->interface = PHY_INTERFACE_MODE_2500BASEX; else -@@ -352,6 +378,18 @@ static int qca808x_cable_test_start(struct phy_device *phydev) +@@ -352,6 +378,18 @@ static int qca808x_cable_test_start(stru phy_write_mmd(phydev, MDIO_MMD_PCS, 0x807a, 0xc060); phy_write_mmd(phydev, MDIO_MMD_PCS, 0x807e, 0xb060); @@ -100,7 +98,7 @@ index 5048304ccc9e..be46d16ca09f 100644 return 0; } -@@ -651,12 +689,32 @@ static struct phy_driver qca808x_driver[] = { +@@ -651,12 +689,32 @@ static struct phy_driver qca808x_driver[ .led_hw_control_set = qca808x_led_hw_control_set, .led_hw_control_get = qca808x_led_hw_control_get, .led_polarity_set = qca808x_led_polarity_set, @@ -133,6 +131,3 @@ index 5048304ccc9e..be46d16ca09f 100644 { } }; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-03-net-phy-qca808x-Add-config_init-function-for-QCA8084.patch b/target/linux/qualcommbe/patches-6.6/103-03-net-phy-qca808x-Add-config_init-function-for-QCA8084.patch index f55e08dbe5..9b450d8a2f 100644 --- a/target/linux/qualcommbe/patches-6.6/103-03-net-phy-qca808x-Add-config_init-function-for-QCA8084.patch +++ b/target/linux/qualcommbe/patches-6.6/103-03-net-phy-qca808x-Add-config_init-function-for-QCA8084.patch @@ -22,8 +22,6 @@ Signed-off-by: Luo Jie drivers/net/phy/qcom/qca808x.c | 38 ++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) -diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c -index be46d16ca09f..c88fa59d4029 100644 --- a/drivers/net/phy/qcom/qca808x.c +++ b/drivers/net/phy/qcom/qca808x.c @@ -94,6 +94,15 @@ @@ -42,7 +40,7 @@ index be46d16ca09f..c88fa59d4029 100644 MODULE_DESCRIPTION("Qualcomm Atheros QCA808X PHY driver"); MODULE_AUTHOR("Matus Ujhelyi, Luo Jie"); MODULE_LICENSE("GPL"); -@@ -660,6 +669,34 @@ static int qca808x_led_polarity_set(struct phy_device *phydev, int index, +@@ -660,6 +669,34 @@ static int qca808x_led_polarity_set(stru active_low ? 0 : QCA808X_LED_ACTIVE_HIGH); } @@ -77,7 +75,7 @@ index be46d16ca09f..c88fa59d4029 100644 static struct phy_driver qca808x_driver[] = { { /* Qualcomm QCA8081 */ -@@ -708,6 +745,7 @@ static struct phy_driver qca808x_driver[] = { +@@ -708,6 +745,7 @@ static struct phy_driver qca808x_driver[ .soft_reset = qca808x_soft_reset, .cable_test_start = qca808x_cable_test_start, .cable_test_get_status = qca808x_cable_test_get_status, @@ -85,6 +83,3 @@ index be46d16ca09f..c88fa59d4029 100644 }, }; module_phy_driver(qca808x_driver); --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-04-net-phy-qca808x-Add-link_change_notify-function-for-.patch b/target/linux/qualcommbe/patches-6.6/103-04-net-phy-qca808x-Add-link_change_notify-function-for-.patch index 2510ec327c..4a41a9d9a8 100644 --- a/target/linux/qualcommbe/patches-6.6/103-04-net-phy-qca808x-Add-link_change_notify-function-for-.patch +++ b/target/linux/qualcommbe/patches-6.6/103-04-net-phy-qca808x-Add-link_change_notify-function-for-.patch @@ -13,8 +13,6 @@ Signed-off-by: Luo Jie drivers/net/phy/qcom/qca808x.c | 52 ++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) -diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c -index c88fa59d4029..029d5f9de6b8 100644 --- a/drivers/net/phy/qcom/qca808x.c +++ b/drivers/net/phy/qcom/qca808x.c @@ -103,6 +103,14 @@ @@ -32,7 +30,7 @@ index c88fa59d4029..029d5f9de6b8 100644 MODULE_DESCRIPTION("Qualcomm Atheros QCA808X PHY driver"); MODULE_AUTHOR("Matus Ujhelyi, Luo Jie"); MODULE_LICENSE("GPL"); -@@ -697,6 +705,49 @@ static int qca8084_config_init(struct phy_device *phydev) +@@ -697,6 +705,49 @@ static int qca8084_config_init(struct ph QCA8084_MSE_THRESHOLD_2P5G_VAL); } @@ -82,7 +80,7 @@ index c88fa59d4029..029d5f9de6b8 100644 static struct phy_driver qca808x_driver[] = { { /* Qualcomm QCA8081 */ -@@ -746,6 +797,7 @@ static struct phy_driver qca808x_driver[] = { +@@ -746,6 +797,7 @@ static struct phy_driver qca808x_driver[ .cable_test_start = qca808x_cable_test_start, .cable_test_get_status = qca808x_cable_test_get_status, .config_init = qca8084_config_init, @@ -90,6 +88,3 @@ index c88fa59d4029..029d5f9de6b8 100644 }, }; module_phy_driver(qca808x_driver); --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-05-net-phy-qca808x-Add-register-access-support-routines.patch b/target/linux/qualcommbe/patches-6.6/103-05-net-phy-qca808x-Add-register-access-support-routines.patch index 7986a6c908..2612bc3940 100644 --- a/target/linux/qualcommbe/patches-6.6/103-05-net-phy-qca808x-Add-register-access-support-routines.patch +++ b/target/linux/qualcommbe/patches-6.6/103-05-net-phy-qca808x-Add-register-access-support-routines.patch @@ -19,8 +19,6 @@ Signed-off-by: Luo Jie drivers/net/phy/qcom/qca808x.c | 88 ++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) -diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c -index 029d5f9de6b8..8873474146e8 100644 --- a/drivers/net/phy/qcom/qca808x.c +++ b/drivers/net/phy/qcom/qca808x.c @@ -111,6 +111,22 @@ @@ -125,6 +123,3 @@ index 029d5f9de6b8..8873474146e8 100644 static int qca808x_phy_fast_retrain_config(struct phy_device *phydev) { int ret; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-06-net-phy-qca808x-Add-QCA8084-probe-function.patch b/target/linux/qualcommbe/patches-6.6/103-06-net-phy-qca808x-Add-QCA8084-probe-function.patch index ad8bc0294a..b4d79e7318 100644 --- a/target/linux/qualcommbe/patches-6.6/103-06-net-phy-qca808x-Add-QCA8084-probe-function.patch +++ b/target/linux/qualcommbe/patches-6.6/103-06-net-phy-qca808x-Add-QCA8084-probe-function.patch @@ -17,8 +17,6 @@ Signed-off-by: Luo Jie drivers/net/phy/qcom/qca808x.c | 91 ++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) -diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c -index 8873474146e8..85bb299fe0a3 100644 --- a/drivers/net/phy/qcom/qca808x.c +++ b/drivers/net/phy/qcom/qca808x.c @@ -2,6 +2,8 @@ @@ -52,7 +50,7 @@ index 8873474146e8..85bb299fe0a3 100644 MODULE_DESCRIPTION("Qualcomm Atheros QCA808X PHY driver"); MODULE_AUTHOR("Matus Ujhelyi, Luo Jie"); MODULE_LICENSE("GPL"); -@@ -836,6 +853,79 @@ static void qca8084_link_change_notify(struct phy_device *phydev) +@@ -836,6 +853,79 @@ static void qca8084_link_change_notify(s QCA8084_IPG_10_TO_11_EN : 0); } @@ -132,7 +130,7 @@ index 8873474146e8..85bb299fe0a3 100644 static struct phy_driver qca808x_driver[] = { { /* Qualcomm QCA8081 */ -@@ -886,6 +976,7 @@ static struct phy_driver qca808x_driver[] = { +@@ -886,6 +976,7 @@ static struct phy_driver qca808x_driver[ .cable_test_get_status = qca808x_cable_test_get_status, .config_init = qca8084_config_init, .link_change_notify = qca8084_link_change_notify, @@ -140,6 +138,3 @@ index 8873474146e8..85bb299fe0a3 100644 }, }; module_phy_driver(qca808x_driver); --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-07-net-phy-qca808x-Add-package-clocks-and-resets-for-QC.patch b/target/linux/qualcommbe/patches-6.6/103-07-net-phy-qca808x-Add-package-clocks-and-resets-for-QC.patch index 78111f7982..75fc7cc3cf 100644 --- a/target/linux/qualcommbe/patches-6.6/103-07-net-phy-qca808x-Add-package-clocks-and-resets-for-QC.patch +++ b/target/linux/qualcommbe/patches-6.6/103-07-net-phy-qca808x-Add-package-clocks-and-resets-for-QC.patch @@ -17,8 +17,6 @@ Signed-off-by: Luo Jie drivers/net/phy/qcom/qca808x.c | 67 ++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 3 deletions(-) -diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c -index 85bb299fe0a3..632cad1ad190 100644 --- a/drivers/net/phy/qcom/qca808x.c +++ b/drivers/net/phy/qcom/qca808x.c @@ -4,6 +4,7 @@ @@ -29,7 +27,7 @@ index 85bb299fe0a3..632cad1ad190 100644 #include "qcom.h" -@@ -148,10 +149,35 @@ MODULE_DESCRIPTION("Qualcomm Atheros QCA808X PHY driver"); +@@ -148,10 +149,35 @@ MODULE_DESCRIPTION("Qualcomm Atheros QCA MODULE_AUTHOR("Matus Ujhelyi, Luo Jie"); MODULE_LICENSE("GPL"); @@ -65,7 +63,7 @@ index 85bb299fe0a3..632cad1ad190 100644 static int __qca8084_set_page(struct mii_bus *bus, u16 sw_addr, u16 page) { return __mdiobus_write(bus, QCA8084_HIGH_ADDR_PREFIX | (sw_addr >> 5), -@@ -853,11 +879,24 @@ static void qca8084_link_change_notify(struct phy_device *phydev) +@@ -853,11 +879,24 @@ static void qca8084_link_change_notify(s QCA8084_IPG_10_TO_11_EN : 0); } @@ -91,7 +89,7 @@ index 85bb299fe0a3..632cad1ad190 100644 /* Program the MDIO address of PHY and PCS optionally, the MDIO * address 0-6 is used for PHY and PCS MDIO devices by default. -@@ -889,17 +928,39 @@ static int qca8084_phy_package_probe_once(struct phy_device *phydev) +@@ -889,17 +928,39 @@ static int qca8084_phy_package_probe_onc set |= FIELD_PREP(QCA8084_PCS_ADDR1_MASK, addr[5]); set |= FIELD_PREP(QCA8084_PCS_ADDR2_MASK, addr[6]); @@ -133,6 +131,3 @@ index 85bb299fe0a3..632cad1ad190 100644 if (ret) return ret; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-08-net-phy-qca808x-Add-QCA8084-package-init-function.patch b/target/linux/qualcommbe/patches-6.6/103-08-net-phy-qca808x-Add-QCA8084-package-init-function.patch index fd951cebdd..aa71046c14 100644 --- a/target/linux/qualcommbe/patches-6.6/103-08-net-phy-qca808x-Add-QCA8084-package-init-function.patch +++ b/target/linux/qualcommbe/patches-6.6/103-08-net-phy-qca808x-Add-QCA8084-package-init-function.patch @@ -14,8 +14,6 @@ Signed-off-by: Luo Jie drivers/net/phy/qcom/qca808x.c | 115 +++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) -diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c -index 632cad1ad190..459f8e8a9749 100644 --- a/drivers/net/phy/qcom/qca808x.c +++ b/drivers/net/phy/qcom/qca808x.c @@ -1,5 +1,6 @@ @@ -47,7 +45,7 @@ index 632cad1ad190..459f8e8a9749 100644 struct clk *clk[PACKAGE_CLK_MAX]; }; -@@ -808,10 +817,107 @@ static int qca808x_led_polarity_set(struct phy_device *phydev, int index, +@@ -808,10 +817,107 @@ static int qca808x_led_polarity_set(stru active_low ? 0 : QCA808X_LED_ACTIVE_HIGH); } @@ -155,7 +153,7 @@ index 632cad1ad190..459f8e8a9749 100644 if (phydev->interface == PHY_INTERFACE_MODE_10G_QXGMII) __set_bit(PHY_INTERFACE_MODE_10G_QXGMII, phydev->possible_interfaces); -@@ -948,6 +1054,15 @@ static int qca8084_phy_package_probe_once(struct phy_device *phydev) +@@ -948,6 +1054,15 @@ static int qca8084_phy_package_probe_onc return dev_err_probe(&phydev->mdio.dev, PTR_ERR(rstc), "package reset not ready\n"); @@ -171,6 +169,3 @@ index 632cad1ad190..459f8e8a9749 100644 /* Deassert PHY package. */ return reset_control_deassert(rstc); } --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-11-net-pcs-Add-driver-for-Qualcomm-IPQ-UNIPHY-PCS.patch b/target/linux/qualcommbe/patches-6.6/103-11-net-pcs-Add-driver-for-Qualcomm-IPQ-UNIPHY-PCS.patch index e463e69563..785b1dce56 100644 --- a/target/linux/qualcommbe/patches-6.6/103-11-net-pcs-Add-driver-for-Qualcomm-IPQ-UNIPHY-PCS.patch +++ b/target/linux/qualcommbe/patches-6.6/103-11-net-pcs-Add-driver-for-Qualcomm-IPQ-UNIPHY-PCS.patch @@ -42,11 +42,9 @@ Signed-off-by: Lei Wei # QUALCOMM NAND CONTROLLER DRIVER # M: Manivannan Sadhasivam # L: linux-mtd@lists.infradead.org -diff --git a/drivers/net/pcs/Kconfig b/drivers/net/pcs/Kconfig -index f6aa437473de..796004de6a31 100644 --- a/drivers/net/pcs/Kconfig +++ b/drivers/net/pcs/Kconfig -@@ -33,4 +33,14 @@ config PCS_RZN1_MIIC +@@ -44,4 +44,14 @@ config PCS_RZN1_MIIC on RZ/N1 SoCs. This PCS converts MII to RMII/RGMII or can be set in pass-through mode for MII. @@ -61,18 +59,13 @@ index f6aa437473de..796004de6a31 100644 + These modes help to support various combination of ethernet switch/PHY on + IPQ SoC based boards. endmenu -diff --git a/drivers/net/pcs/Makefile b/drivers/net/pcs/Makefile -index 4f7920618b90..f95cdff03c7f 100644 --- a/drivers/net/pcs/Makefile +++ b/drivers/net/pcs/Makefile -@@ -8,3 +8,4 @@ obj-$(CONFIG_PCS_XPCS) += pcs_xpcs.o +@@ -8,3 +8,4 @@ obj-$(CONFIG_PCS_LYNX) += pcs-lynx.o obj-$(CONFIG_PCS_MTK_LYNXI) += pcs-mtk-lynxi.o obj-$(CONFIG_PCS_RZN1_MIIC) += pcs-rzn1-miic.o obj-$(CONFIG_PCS_MTK_USXGMII) += pcs-mtk-usxgmii.o +obj-$(CONFIG_PCS_QCOM_IPQ_UNIPHY) += pcs-qcom-ipq-uniphy.o -diff --git a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c -new file mode 100644 -index 000000000000..837de629d0b2 --- /dev/null +++ b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c @@ -0,0 +1,943 @@ @@ -1019,9 +1012,6 @@ index 000000000000..837de629d0b2 +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Qualcomm IPQ UNIPHY PCS driver"); +MODULE_AUTHOR("Lei Wei "); -diff --git a/include/linux/pcs/pcs-qcom-ipq-uniphy.h b/include/linux/pcs/pcs-qcom-ipq-uniphy.h -new file mode 100644 -index 000000000000..4a617bcb32f4 --- /dev/null +++ b/include/linux/pcs/pcs-qcom-ipq-uniphy.h @@ -0,0 +1,13 @@ @@ -1038,6 +1028,3 @@ index 000000000000..4a617bcb32f4 +void ipq_unipcs_destroy(struct phylink_pcs *pcs); + +#endif /* __LINUX_PCS_QCOM_IPQ_UNIPHY_H */ --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-12-net-pcs-Add-10GBASER-interface-mode-support-to-IPQ-U.patch b/target/linux/qualcommbe/patches-6.6/103-12-net-pcs-Add-10GBASER-interface-mode-support-to-IPQ-U.patch index ea1567590b..77029b6faa 100644 --- a/target/linux/qualcommbe/patches-6.6/103-12-net-pcs-Add-10GBASER-interface-mode-support-to-IPQ-U.patch +++ b/target/linux/qualcommbe/patches-6.6/103-12-net-pcs-Add-10GBASER-interface-mode-support-to-IPQ-U.patch @@ -12,8 +12,6 @@ Signed-off-by: Lei Wei drivers/net/pcs/pcs-qcom-ipq-uniphy.c | 48 +++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) -diff --git a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c -index 837de629d0b2..68a1715531ef 100644 --- a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c +++ b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c @@ -57,6 +57,9 @@ @@ -26,7 +24,7 @@ index 837de629d0b2..68a1715531ef 100644 #define XPCS_DIG_CTRL 0x38000 #define XPCS_USXG_ADPT_RESET BIT(10) #define XPCS_USXG_EN BIT(9) -@@ -320,6 +323,23 @@ static void ipq_unipcs_get_state_usxgmii(struct ipq_uniphy_pcs *qunipcs, +@@ -320,6 +323,23 @@ static void ipq_unipcs_get_state_usxgmii state->duplex = DUPLEX_HALF; } @@ -50,7 +48,7 @@ index 837de629d0b2..68a1715531ef 100644 static int ipq_unipcs_config_mode(struct ipq_uniphy_pcs *qunipcs, phy_interface_t interface) { -@@ -354,6 +374,7 @@ static int ipq_unipcs_config_mode(struct ipq_uniphy_pcs *qunipcs, +@@ -354,6 +374,7 @@ static int ipq_unipcs_config_mode(struct PCS_MODE_PSGMII); break; case PHY_INTERFACE_MODE_USXGMII: @@ -58,7 +56,7 @@ index 837de629d0b2..68a1715531ef 100644 rate = 312500000; ipq_unipcs_reg_modify32(qunipcs, PCS_MODE_CTRL, PCS_MODE_SEL_MASK, -@@ -461,6 +482,25 @@ static int ipq_unipcs_config_usxgmii(struct ipq_uniphy_pcs *qunipcs, +@@ -461,6 +482,25 @@ static int ipq_unipcs_config_usxgmii(str return 0; } @@ -84,7 +82,7 @@ index 837de629d0b2..68a1715531ef 100644 static unsigned long ipq_unipcs_clock_rate_get_gmii(int speed) { unsigned long rate = 0; -@@ -527,6 +567,7 @@ ipq_unipcs_link_up_clock_rate_set(struct ipq_uniphy_pcs_ch *qunipcs_ch, +@@ -527,6 +567,7 @@ ipq_unipcs_link_up_clock_rate_set(struct rate = ipq_unipcs_clock_rate_get_gmii(speed); break; case PHY_INTERFACE_MODE_USXGMII: @@ -92,7 +90,7 @@ index 837de629d0b2..68a1715531ef 100644 rate = ipq_unipcs_clock_rate_get_xgmii(speed); break; default: -@@ -644,6 +685,9 @@ static void ipq_unipcs_get_state(struct phylink_pcs *pcs, +@@ -644,6 +685,9 @@ static void ipq_unipcs_get_state(struct case PHY_INTERFACE_MODE_USXGMII: ipq_unipcs_get_state_usxgmii(qunipcs, state); break; @@ -102,7 +100,7 @@ index 837de629d0b2..68a1715531ef 100644 default: break; } -@@ -675,6 +719,8 @@ static int ipq_unipcs_config(struct phylink_pcs *pcs, +@@ -675,6 +719,8 @@ static int ipq_unipcs_config(struct phyl case PHY_INTERFACE_MODE_USXGMII: return ipq_unipcs_config_usxgmii(qunipcs, neg_mode, interface); @@ -111,7 +109,7 @@ index 837de629d0b2..68a1715531ef 100644 default: dev_err(qunipcs->dev, "interface %s not supported\n", phy_modes(interface)); -@@ -705,6 +751,8 @@ static void ipq_unipcs_link_up(struct phylink_pcs *pcs, +@@ -705,6 +751,8 @@ static void ipq_unipcs_link_up(struct ph case PHY_INTERFACE_MODE_USXGMII: ipq_unipcs_link_up_config_usxgmii(qunipcs, speed); break; @@ -120,6 +118,3 @@ index 837de629d0b2..68a1715531ef 100644 default: dev_err(qunipcs->dev, "interface %s not supported\n", phy_modes(interface)); --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-13-net-pcs-Add-2500BASEX-interface-mode-support-to-IPQ-.patch b/target/linux/qualcommbe/patches-6.6/103-13-net-pcs-Add-2500BASEX-interface-mode-support-to-IPQ-.patch index ed58d927b9..c086216038 100644 --- a/target/linux/qualcommbe/patches-6.6/103-13-net-pcs-Add-2500BASEX-interface-mode-support-to-IPQ-.patch +++ b/target/linux/qualcommbe/patches-6.6/103-13-net-pcs-Add-2500BASEX-interface-mode-support-to-IPQ-.patch @@ -15,8 +15,6 @@ Signed-off-by: Lei Wei drivers/net/pcs/pcs-qcom-ipq-uniphy.c | 95 +++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) -diff --git a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c -index 68a1715531ef..ed9c55a6c0fa 100644 --- a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c +++ b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c @@ -25,6 +25,7 @@ @@ -27,7 +25,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644 #define PCS_MODE_XPCS FIELD_PREP(PCS_MODE_SEL_MASK, 0x10) #define PCS_MODE_AN_MODE BIT(0) -@@ -282,6 +283,24 @@ static void ipq_unipcs_get_state_sgmii(struct ipq_uniphy_pcs *qunipcs, +@@ -282,6 +283,24 @@ static void ipq_unipcs_get_state_sgmii(s state->pause |= MLO_PAUSE_RX; } @@ -52,7 +50,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644 static void ipq_unipcs_get_state_usxgmii(struct ipq_uniphy_pcs *qunipcs, struct phylink_link_state *state) { -@@ -373,6 +392,12 @@ static int ipq_unipcs_config_mode(struct ipq_uniphy_pcs *qunipcs, +@@ -373,6 +392,12 @@ static int ipq_unipcs_config_mode(struct PCS_MODE_SEL_MASK | PCS_MODE_AN_MODE, PCS_MODE_PSGMII); break; @@ -65,7 +63,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644 case PHY_INTERFACE_MODE_USXGMII: case PHY_INTERFACE_MODE_10GBASER: rate = 312500000; -@@ -450,6 +475,22 @@ static int ipq_unipcs_config_sgmii(struct ipq_uniphy_pcs *qunipcs, +@@ -450,6 +475,22 @@ err: return ret; } @@ -88,7 +86,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644 static int ipq_unipcs_config_usxgmii(struct ipq_uniphy_pcs *qunipcs, unsigned int neg_mode, phy_interface_t interface) -@@ -522,6 +563,21 @@ static unsigned long ipq_unipcs_clock_rate_get_gmii(int speed) +@@ -522,6 +563,21 @@ static unsigned long ipq_unipcs_clock_ra return rate; } @@ -110,7 +108,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644 static unsigned long ipq_unipcs_clock_rate_get_xgmii(int speed) { unsigned long rate = 0; -@@ -566,6 +622,9 @@ ipq_unipcs_link_up_clock_rate_set(struct ipq_uniphy_pcs_ch *qunipcs_ch, +@@ -566,6 +622,9 @@ ipq_unipcs_link_up_clock_rate_set(struct case PHY_INTERFACE_MODE_PSGMII: rate = ipq_unipcs_clock_rate_get_gmii(speed); break; @@ -120,7 +118,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644 case PHY_INTERFACE_MODE_USXGMII: case PHY_INTERFACE_MODE_10GBASER: rate = ipq_unipcs_clock_rate_get_xgmii(speed); -@@ -627,6 +686,21 @@ static void ipq_unipcs_link_up_config_sgmii(struct ipq_uniphy_pcs *qunipcs, +@@ -627,6 +686,21 @@ pcs_adapter_reset: PCS_CHANNEL_ADPT_RESET); } @@ -142,7 +140,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644 static void ipq_unipcs_link_up_config_usxgmii(struct ipq_uniphy_pcs *qunipcs, int speed) { -@@ -669,6 +743,17 @@ static void ipq_unipcs_link_up_config_usxgmii(struct ipq_uniphy_pcs *qunipcs, +@@ -669,6 +743,17 @@ static void ipq_unipcs_link_up_config_us XPCS_USXG_ADPT_RESET); } @@ -160,7 +158,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644 static void ipq_unipcs_get_state(struct phylink_pcs *pcs, struct phylink_link_state *state) { -@@ -682,6 +767,9 @@ static void ipq_unipcs_get_state(struct phylink_pcs *pcs, +@@ -682,6 +767,9 @@ static void ipq_unipcs_get_state(struct case PHY_INTERFACE_MODE_PSGMII: ipq_unipcs_get_state_sgmii(qunipcs, channel, state); break; @@ -170,7 +168,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644 case PHY_INTERFACE_MODE_USXGMII: ipq_unipcs_get_state_usxgmii(qunipcs, state); break; -@@ -716,6 +804,8 @@ static int ipq_unipcs_config(struct phylink_pcs *pcs, +@@ -716,6 +804,8 @@ static int ipq_unipcs_config(struct phyl case PHY_INTERFACE_MODE_PSGMII: return ipq_unipcs_config_sgmii(qunipcs, channel, neg_mode, interface); @@ -179,7 +177,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644 case PHY_INTERFACE_MODE_USXGMII: return ipq_unipcs_config_usxgmii(qunipcs, neg_mode, interface); -@@ -748,6 +838,10 @@ static void ipq_unipcs_link_up(struct phylink_pcs *pcs, +@@ -748,6 +838,10 @@ static void ipq_unipcs_link_up(struct ph ipq_unipcs_link_up_config_sgmii(qunipcs, channel, neg_mode, speed); break; @@ -190,7 +188,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644 case PHY_INTERFACE_MODE_USXGMII: ipq_unipcs_link_up_config_usxgmii(qunipcs, speed); break; -@@ -761,6 +855,7 @@ static void ipq_unipcs_link_up(struct phylink_pcs *pcs, +@@ -761,6 +855,7 @@ static void ipq_unipcs_link_up(struct ph } static const struct phylink_pcs_ops ipq_unipcs_phylink_ops = { @@ -198,6 +196,3 @@ index 68a1715531ef..ed9c55a6c0fa 100644 .pcs_get_state = ipq_unipcs_get_state, .pcs_config = ipq_unipcs_config, .pcs_link_up = ipq_unipcs_link_up, --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-14-net-pcs-Add-1000BASEX-interface-mode-support-to-IPQ-.patch b/target/linux/qualcommbe/patches-6.6/103-14-net-pcs-Add-1000BASEX-interface-mode-support-to-IPQ-.patch index 4c0c9c31f8..12dfdfe6e5 100644 --- a/target/linux/qualcommbe/patches-6.6/103-14-net-pcs-Add-1000BASEX-interface-mode-support-to-IPQ-.patch +++ b/target/linux/qualcommbe/patches-6.6/103-14-net-pcs-Add-1000BASEX-interface-mode-support-to-IPQ-.patch @@ -12,8 +12,6 @@ Signed-off-by: Lei Wei drivers/net/pcs/pcs-qcom-ipq-uniphy.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) -diff --git a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c -index ed9c55a6c0fa..820d197744e8 100644 --- a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c +++ b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c @@ -27,6 +27,9 @@ @@ -26,7 +24,7 @@ index ed9c55a6c0fa..820d197744e8 100644 #define PCS_MODE_AN_MODE BIT(0) #define PCS_CHANNEL_CTRL(x) (0x480 + 0x18 * (x)) -@@ -392,6 +395,13 @@ static int ipq_unipcs_config_mode(struct ipq_uniphy_pcs *qunipcs, +@@ -392,6 +395,13 @@ static int ipq_unipcs_config_mode(struct PCS_MODE_SEL_MASK | PCS_MODE_AN_MODE, PCS_MODE_PSGMII); break; @@ -40,7 +38,7 @@ index ed9c55a6c0fa..820d197744e8 100644 case PHY_INTERFACE_MODE_2500BASEX: rate = 312500000; ipq_unipcs_reg_modify32(qunipcs, PCS_MODE_CTRL, -@@ -620,6 +630,7 @@ ipq_unipcs_link_up_clock_rate_set(struct ipq_uniphy_pcs_ch *qunipcs_ch, +@@ -620,6 +630,7 @@ ipq_unipcs_link_up_clock_rate_set(struct case PHY_INTERFACE_MODE_SGMII: case PHY_INTERFACE_MODE_QSGMII: case PHY_INTERFACE_MODE_PSGMII: @@ -48,7 +46,7 @@ index ed9c55a6c0fa..820d197744e8 100644 rate = ipq_unipcs_clock_rate_get_gmii(speed); break; case PHY_INTERFACE_MODE_2500BASEX: -@@ -765,6 +776,10 @@ static void ipq_unipcs_get_state(struct phylink_pcs *pcs, +@@ -765,6 +776,10 @@ static void ipq_unipcs_get_state(struct case PHY_INTERFACE_MODE_SGMII: case PHY_INTERFACE_MODE_QSGMII: case PHY_INTERFACE_MODE_PSGMII: @@ -59,7 +57,7 @@ index ed9c55a6c0fa..820d197744e8 100644 ipq_unipcs_get_state_sgmii(qunipcs, channel, state); break; case PHY_INTERFACE_MODE_2500BASEX: -@@ -802,6 +817,7 @@ static int ipq_unipcs_config(struct phylink_pcs *pcs, +@@ -802,6 +817,7 @@ static int ipq_unipcs_config(struct phyl case PHY_INTERFACE_MODE_SGMII: case PHY_INTERFACE_MODE_QSGMII: case PHY_INTERFACE_MODE_PSGMII: @@ -67,7 +65,7 @@ index ed9c55a6c0fa..820d197744e8 100644 return ipq_unipcs_config_sgmii(qunipcs, channel, neg_mode, interface); case PHY_INTERFACE_MODE_2500BASEX: -@@ -818,6 +834,11 @@ static int ipq_unipcs_config(struct phylink_pcs *pcs, +@@ -818,6 +834,11 @@ static int ipq_unipcs_config(struct phyl }; } @@ -79,7 +77,7 @@ index ed9c55a6c0fa..820d197744e8 100644 static void ipq_unipcs_link_up(struct phylink_pcs *pcs, unsigned int neg_mode, phy_interface_t interface, -@@ -835,6 +856,7 @@ static void ipq_unipcs_link_up(struct phylink_pcs *pcs, +@@ -835,6 +856,7 @@ static void ipq_unipcs_link_up(struct ph case PHY_INTERFACE_MODE_SGMII: case PHY_INTERFACE_MODE_QSGMII: case PHY_INTERFACE_MODE_PSGMII: @@ -87,7 +85,7 @@ index ed9c55a6c0fa..820d197744e8 100644 ipq_unipcs_link_up_config_sgmii(qunipcs, channel, neg_mode, speed); break; -@@ -858,6 +880,7 @@ static const struct phylink_pcs_ops ipq_unipcs_phylink_ops = { +@@ -858,6 +880,7 @@ static const struct phylink_pcs_ops ipq_ .pcs_validate = ipq_unipcs_validate, .pcs_get_state = ipq_unipcs_get_state, .pcs_config = ipq_unipcs_config, @@ -95,6 +93,3 @@ index ed9c55a6c0fa..820d197744e8 100644 .pcs_link_up = ipq_unipcs_link_up, }; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-15-net-pcs-Add-10G_QXGMII-interface-mode-support-to-IPQ.patch b/target/linux/qualcommbe/patches-6.6/103-15-net-pcs-Add-10G_QXGMII-interface-mode-support-to-IPQ.patch index 7da55c07d5..f0136e5745 100644 --- a/target/linux/qualcommbe/patches-6.6/103-15-net-pcs-Add-10G_QXGMII-interface-mode-support-to-IPQ.patch +++ b/target/linux/qualcommbe/patches-6.6/103-15-net-pcs-Add-10G_QXGMII-interface-mode-support-to-IPQ.patch @@ -13,8 +13,6 @@ Signed-off-by: Lei Wei drivers/net/pcs/pcs-qcom-ipq-uniphy.c | 174 +++++++++++++++++++++----- 1 file changed, 142 insertions(+), 32 deletions(-) -diff --git a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c -index 820d197744e8..a98180c91632 100644 --- a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c +++ b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c @@ -50,6 +50,9 @@ @@ -81,7 +79,7 @@ index 820d197744e8..a98180c91632 100644 struct clk *clk[PCS_CLK_MAX]; struct reset_control *reset[PCS_RESET_MAX]; struct ipq_unipcs_raw_clk raw_clk[PCS_RAW_CLK_MAX]; -@@ -215,39 +237,55 @@ static const struct clk_ops ipq_unipcs_raw_clk_ops = { +@@ -215,39 +237,55 @@ static const struct clk_ops ipq_unipcs_r static u32 ipq_unipcs_reg_read32(struct ipq_uniphy_pcs *qunipcs, u32 reg) { @@ -151,7 +149,7 @@ index 820d197744e8..a98180c91632 100644 static void ipq_unipcs_get_state_sgmii(struct ipq_uniphy_pcs *qunipcs, int channel, struct phylink_link_state *state) -@@ -305,11 +343,15 @@ static void ipq_unipcs_get_state_2500basex(struct ipq_uniphy_pcs *qunipcs, +@@ -305,11 +343,15 @@ static void ipq_unipcs_get_state_2500bas } static void ipq_unipcs_get_state_usxgmii(struct ipq_uniphy_pcs *qunipcs, @@ -169,7 +167,7 @@ index 820d197744e8..a98180c91632 100644 state->link = !!(val & XPCS_USXG_AN_LINK_STS); -@@ -415,6 +457,15 @@ static int ipq_unipcs_config_mode(struct ipq_uniphy_pcs *qunipcs, +@@ -415,6 +457,15 @@ static int ipq_unipcs_config_mode(struct PCS_MODE_SEL_MASK, PCS_MODE_XPCS); break; @@ -185,7 +183,7 @@ index 820d197744e8..a98180c91632 100644 default: dev_err(qunipcs->dev, "interface %s not supported\n", phy_modes(interface)); -@@ -502,35 +553,82 @@ static int ipq_unipcs_config_2500basex(struct ipq_uniphy_pcs *qunipcs, +@@ -502,35 +553,82 @@ static int ipq_unipcs_config_2500basex(s } static int ipq_unipcs_config_usxgmii(struct ipq_uniphy_pcs *qunipcs, @@ -220,6 +218,9 @@ index 820d197744e8..a98180c91632 100644 - ipq_unipcs_reg_modify32(qunipcs, XPCS_MII_AN_CTRL, - XPCS_MII_AN_8BIT, - XPCS_MII_AN_8BIT); +- +- ipq_unipcs_reg_modify32(qunipcs, XPCS_MII_CTRL, +- XPCS_MII_AN_EN, XPCS_MII_AN_EN); + if (interface == PHY_INTERFACE_MODE_10G_QXGMII) { + ipq_unipcs_reg_modify32(qunipcs, XPCS_KR_CTRL, + XPCS_USXG_MODE_MASK, @@ -229,9 +230,7 @@ index 820d197744e8..a98180c91632 100644 + ipq_unipcs_reg_modify32(qunipcs, XPCS_DIG_STS, + XPCS_DIG_STS_AM_COUNT, + 0x6018); - -- ipq_unipcs_reg_modify32(qunipcs, XPCS_MII_CTRL, -- XPCS_MII_AN_EN, XPCS_MII_AN_EN); ++ + ipq_unipcs_reg_modify32(qunipcs, XPCS_DIG_CTRL, + XPCS_SOFT_RESET, + XPCS_SOFT_RESET); @@ -276,7 +275,7 @@ index 820d197744e8..a98180c91632 100644 } static int ipq_unipcs_config_10gbaser(struct ipq_uniphy_pcs *qunipcs, -@@ -638,6 +736,7 @@ ipq_unipcs_link_up_clock_rate_set(struct ipq_uniphy_pcs_ch *qunipcs_ch, +@@ -638,6 +736,7 @@ ipq_unipcs_link_up_clock_rate_set(struct break; case PHY_INTERFACE_MODE_USXGMII: case PHY_INTERFACE_MODE_10GBASER: @@ -284,7 +283,7 @@ index 820d197744e8..a98180c91632 100644 rate = ipq_unipcs_clock_rate_get_xgmii(speed); break; default: -@@ -713,9 +812,10 @@ static void ipq_unipcs_link_up_config_2500basex(struct ipq_uniphy_pcs *qunipcs, +@@ -713,9 +812,10 @@ static void ipq_unipcs_link_up_config_25 } static void ipq_unipcs_link_up_config_usxgmii(struct ipq_uniphy_pcs *qunipcs, @@ -296,7 +295,7 @@ index 820d197744e8..a98180c91632 100644 switch (speed) { case SPEED_10000: -@@ -744,14 +844,20 @@ static void ipq_unipcs_link_up_config_usxgmii(struct ipq_uniphy_pcs *qunipcs, +@@ -744,14 +844,20 @@ static void ipq_unipcs_link_up_config_us val |= XPCS_DUPLEX_FULL; /* Config XPCS speed */ @@ -321,7 +320,7 @@ index 820d197744e8..a98180c91632 100644 } static int ipq_unipcs_validate(struct phylink_pcs *pcs, -@@ -786,7 +892,8 @@ static void ipq_unipcs_get_state(struct phylink_pcs *pcs, +@@ -786,7 +892,8 @@ static void ipq_unipcs_get_state(struct ipq_unipcs_get_state_2500basex(qunipcs, channel, state); break; case PHY_INTERFACE_MODE_USXGMII: @@ -331,7 +330,7 @@ index 820d197744e8..a98180c91632 100644 break; case PHY_INTERFACE_MODE_10GBASER: ipq_unipcs_get_state_10gbaser(qunipcs, state); -@@ -823,7 +930,8 @@ static int ipq_unipcs_config(struct phylink_pcs *pcs, +@@ -823,7 +930,8 @@ static int ipq_unipcs_config(struct phyl case PHY_INTERFACE_MODE_2500BASEX: return ipq_unipcs_config_2500basex(qunipcs, interface); case PHY_INTERFACE_MODE_USXGMII: @@ -341,7 +340,7 @@ index 820d197744e8..a98180c91632 100644 neg_mode, interface); case PHY_INTERFACE_MODE_10GBASER: return ipq_unipcs_config_10gbaser(qunipcs, interface); -@@ -865,7 +973,8 @@ static void ipq_unipcs_link_up(struct phylink_pcs *pcs, +@@ -865,7 +973,8 @@ static void ipq_unipcs_link_up(struct ph channel, speed); break; case PHY_INTERFACE_MODE_USXGMII: @@ -351,7 +350,7 @@ index 820d197744e8..a98180c91632 100644 break; case PHY_INTERFACE_MODE_10GBASER: break; -@@ -1082,6 +1191,7 @@ static int ipq_uniphy_probe(struct platform_device *pdev) +@@ -1082,6 +1191,7 @@ static int ipq_uniphy_probe(struct platf return ret; mutex_init(&priv->shared_lock); @@ -359,6 +358,3 @@ index 820d197744e8..a98180c91632 100644 platform_set_drvdata(pdev, priv); --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-18-net-ethernet-qualcomm-Add-PPE-driver-for-IPQ9574-SoC.patch b/target/linux/qualcommbe/patches-6.6/103-18-net-ethernet-qualcomm-Add-PPE-driver-for-IPQ9574-SoC.patch index 8872005376..e660d33063 100644 --- a/target/linux/qualcommbe/patches-6.6/103-18-net-ethernet-qualcomm-Add-PPE-driver-for-IPQ9574-SoC.patch +++ b/target/linux/qualcommbe/patches-6.6/103-18-net-ethernet-qualcomm-Add-PPE-driver-for-IPQ9574-SoC.patch @@ -36,8 +36,6 @@ Signed-off-by: Luo Jie create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe.c create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe.h -diff --git a/drivers/net/ethernet/qualcomm/Kconfig b/drivers/net/ethernet/qualcomm/Kconfig -index 9210ff360fdc..8cc24da48777 100644 --- a/drivers/net/ethernet/qualcomm/Kconfig +++ b/drivers/net/ethernet/qualcomm/Kconfig @@ -61,6 +61,21 @@ config QCOM_EMAC @@ -62,8 +60,6 @@ index 9210ff360fdc..8cc24da48777 100644 source "drivers/net/ethernet/qualcomm/rmnet/Kconfig" endif # NET_VENDOR_QUALCOMM -diff --git a/drivers/net/ethernet/qualcomm/Makefile b/drivers/net/ethernet/qualcomm/Makefile -index 9250976dd884..166a59aea363 100644 --- a/drivers/net/ethernet/qualcomm/Makefile +++ b/drivers/net/ethernet/qualcomm/Makefile @@ -11,4 +11,5 @@ qcauart-objs := qca_uart.o @@ -72,9 +68,6 @@ index 9250976dd884..166a59aea363 100644 +obj-$(CONFIG_QCOM_PPE) += ppe/ obj-$(CONFIG_RMNET) += rmnet/ -diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile -new file mode 100644 -index 000000000000..63d50d3b4f2e --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/Makefile @@ -0,0 +1,7 @@ @@ -85,9 +78,6 @@ index 000000000000..63d50d3b4f2e + +obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o +qcom-ppe-objs := ppe.o -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.c b/drivers/net/ethernet/qualcomm/ppe/ppe.c -new file mode 100644 -index 000000000000..14998ac771c7 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/ppe.c @@ -0,0 +1,225 @@ @@ -316,9 +306,6 @@ index 000000000000..14998ac771c7 + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Qualcomm IPQ PPE driver"); -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.h b/drivers/net/ethernet/qualcomm/ppe/ppe.h -new file mode 100644 -index 000000000000..733d77f4063d --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/ppe.h @@ -0,0 +1,36 @@ @@ -358,6 +345,3 @@ index 000000000000..733d77f4063d + struct icc_bulk_data icc_paths[] __counted_by(num_icc_paths); +}; +#endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-19-net-ethernet-qualcomm-Add-PPE-buffer-manager-configu.patch b/target/linux/qualcommbe/patches-6.6/103-19-net-ethernet-qualcomm-Add-PPE-buffer-manager-configu.patch index cc470b46b5..e72069c1fa 100644 --- a/target/linux/qualcommbe/patches-6.6/103-19-net-ethernet-qualcomm-Add-PPE-buffer-manager-configu.patch +++ b/target/linux/qualcommbe/patches-6.6/103-19-net-ethernet-qualcomm-Add-PPE-buffer-manager-configu.patch @@ -23,8 +23,6 @@ Signed-off-by: Luo Jie create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_config.h create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile -index 63d50d3b4f2e..410a7bb54cfe 100644 --- a/drivers/net/ethernet/qualcomm/ppe/Makefile +++ b/drivers/net/ethernet/qualcomm/ppe/Makefile @@ -4,4 +4,4 @@ @@ -33,8 +31,6 @@ index 63d50d3b4f2e..410a7bb54cfe 100644 obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o -qcom-ppe-objs := ppe.o +qcom-ppe-objs := ppe.o ppe_config.o -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.c b/drivers/net/ethernet/qualcomm/ppe/ppe.c -index 14998ac771c7..443706291ce0 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe.c @@ -15,6 +15,7 @@ @@ -45,7 +41,7 @@ index 14998ac771c7..443706291ce0 100644 #define PPE_PORT_MAX 8 #define PPE_CLK_RATE 353000000 -@@ -201,6 +202,10 @@ static int qcom_ppe_probe(struct platform_device *pdev) +@@ -201,6 +202,10 @@ static int qcom_ppe_probe(struct platfor if (ret) return dev_err_probe(dev, ret, "PPE clock config failed\n"); @@ -56,9 +52,6 @@ index 14998ac771c7..443706291ce0 100644 platform_set_drvdata(pdev, ppe_dev); return 0; -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c -new file mode 100644 -index 000000000000..0ba4efdfd509 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c @@ -0,0 +1,181 @@ @@ -243,9 +236,6 @@ index 000000000000..0ba4efdfd509 +{ + return ppe_config_bm(ppe_dev); +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h -new file mode 100644 -index 000000000000..7e66019de799 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h @@ -0,0 +1,10 @@ @@ -259,9 +249,6 @@ index 000000000000..7e66019de799 + +int ppe_hw_config(struct ppe_device *ppe_dev); +#endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -new file mode 100644 -index 000000000000..bf25e0acc0f6 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -0,0 +1,54 @@ @@ -319,6 +306,3 @@ index 000000000000..bf25e0acc0f6 + u32p_replace_bits((u32 *)(tbl_cfg) + 0x1, value, PPE_BM_PORT_FC_W1_PRE_ALLOC) + +#endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-20-net-ethernet-qualcomm-Add-PPE-queue-management-confi.patch b/target/linux/qualcommbe/patches-6.6/103-20-net-ethernet-qualcomm-Add-PPE-queue-management-confi.patch index e24fb6987b..fb432a767f 100644 --- a/target/linux/qualcommbe/patches-6.6/103-20-net-ethernet-qualcomm-Add-PPE-queue-management-confi.patch +++ b/target/linux/qualcommbe/patches-6.6/103-20-net-ethernet-qualcomm-Add-PPE-queue-management-confi.patch @@ -18,8 +18,6 @@ Signed-off-by: Luo Jie drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 82 ++++++++ 2 files changed, 257 insertions(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c -index 0ba4efdfd509..4192fdc8d3a3 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c @@ -43,6 +43,27 @@ struct ppe_bm_port_config { @@ -50,7 +48,7 @@ index 0ba4efdfd509..4192fdc8d3a3 100644 static int ipq9574_ppe_bm_group_config = 1550; static struct ppe_bm_port_config ipq9574_ppe_bm_port_config[] = { { -@@ -91,6 +112,31 @@ static struct ppe_bm_port_config ipq9574_ppe_bm_port_config[] = { +@@ -91,6 +112,31 @@ static struct ppe_bm_port_config ipq9574 }, }; @@ -82,7 +80,7 @@ index 0ba4efdfd509..4192fdc8d3a3 100644 static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id, struct ppe_bm_port_config port_cfg) { -@@ -175,7 +221,135 @@ static int ppe_config_bm(struct ppe_device *ppe_dev) +@@ -175,7 +221,135 @@ bm_config_fail: return ret; } @@ -219,8 +217,6 @@ index 0ba4efdfd509..4192fdc8d3a3 100644 + + return ppe_config_qm(ppe_dev); } -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -index bf25e0acc0f6..0bc13979e5e2 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -11,6 +11,14 @@ @@ -317,6 +313,3 @@ index bf25e0acc0f6..0bc13979e5e2 100644 +#define PPE_ENQ_OPR_TBL_ENQ_DISABLE BIT(0) + #endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-21-net-ethernet-qualcomm-Add-PPE-scheduler-config.patch b/target/linux/qualcommbe/patches-6.6/103-21-net-ethernet-qualcomm-Add-PPE-scheduler-config.patch index 01716e322d..7a51c3e666 100644 --- a/target/linux/qualcommbe/patches-6.6/103-21-net-ethernet-qualcomm-Add-PPE-scheduler-config.patch +++ b/target/linux/qualcommbe/patches-6.6/103-21-net-ethernet-qualcomm-Add-PPE-scheduler-config.patch @@ -20,8 +20,6 @@ Signed-off-by: Luo Jie create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_api.c create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_api.h -diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile -index 410a7bb54cfe..e4e5c94fde3e 100644 --- a/drivers/net/ethernet/qualcomm/ppe/Makefile +++ b/drivers/net/ethernet/qualcomm/ppe/Makefile @@ -4,4 +4,4 @@ @@ -30,9 +28,6 @@ index 410a7bb54cfe..e4e5c94fde3e 100644 obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o -qcom-ppe-objs := ppe.o ppe_config.o +qcom-ppe-objs := ppe.o ppe_config.o ppe_api.o -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.c b/drivers/net/ethernet/qualcomm/ppe/ppe_api.c -new file mode 100644 -index 000000000000..ba35fc151e2c --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.c @@ -0,0 +1,40 @@ @@ -76,9 +71,6 @@ index 000000000000..ba35fc151e2c + + return ppe_queue_scheduler_set(ppe_dev, node_id, level, port, sch_cfg); +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h -new file mode 100644 -index 000000000000..ee5b47d06991 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h @@ -0,0 +1,21 @@ @@ -103,8 +95,6 @@ index 000000000000..ee5b47d06991 +int ppe_queue_priority_set(struct ppe_device *ppe_dev, + int queue_id, int priority); +#endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c -index 4192fdc8d3a3..bdef26da6fd3 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c @@ -13,6 +13,7 @@ @@ -185,7 +175,7 @@ index 4192fdc8d3a3..bdef26da6fd3 100644 static int ipq9574_ppe_bm_group_config = 1550; static struct ppe_bm_port_config ipq9574_ppe_bm_port_config[] = { { -@@ -137,6 +192,707 @@ static struct ppe_qm_queue_config ipq9574_ppe_qm_queue_config[] = { +@@ -137,6 +192,707 @@ static struct ppe_qm_queue_config ipq957 }, }; @@ -893,7 +883,7 @@ index 4192fdc8d3a3..bdef26da6fd3 100644 static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id, struct ppe_bm_port_config port_cfg) { -@@ -343,6 +1099,126 @@ static int ppe_config_qm(struct ppe_device *ppe_dev) +@@ -343,6 +1099,126 @@ qm_config_fail: return ret; } @@ -1020,7 +1010,7 @@ index 4192fdc8d3a3..bdef26da6fd3 100644 int ppe_hw_config(struct ppe_device *ppe_dev) { int ret; -@@ -351,5 +1227,9 @@ int ppe_hw_config(struct ppe_device *ppe_dev) +@@ -351,5 +1227,9 @@ int ppe_hw_config(struct ppe_device *ppe if (ret) return ret; @@ -1031,8 +1021,6 @@ index 4192fdc8d3a3..bdef26da6fd3 100644 + + return ppe_config_scheduler(ppe_dev); } -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h -index 7e66019de799..167a114031fd 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h @@ -6,5 +6,31 @@ @@ -1067,8 +1055,6 @@ index 7e66019de799..167a114031fd 100644 + int node_id, bool flow_level, int *port, + struct ppe_qos_scheduler_cfg *scheduler_cfg); #endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -index 0bc13979e5e2..0279f1023bcf 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -11,14 +11,108 @@ @@ -1180,6 +1166,3 @@ index 0bc13979e5e2..0279f1023bcf 100644 #define PPE_BM_PORT_FC_MODE_ADDR 0x600100 #define PPE_BM_PORT_FC_MODE_INC 0x4 #define PPE_BM_PORT_FC_MODE_EN BIT(0) --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-22-net-ethernet-qualcomm-Initialize-PPE-queue-settings.patch b/target/linux/qualcommbe/patches-6.6/103-22-net-ethernet-qualcomm-Initialize-PPE-queue-settings.patch index 5b6bf5abcb..dd70cf29ee 100644 --- a/target/linux/qualcommbe/patches-6.6/103-22-net-ethernet-qualcomm-Initialize-PPE-queue-settings.patch +++ b/target/linux/qualcommbe/patches-6.6/103-22-net-ethernet-qualcomm-Initialize-PPE-queue-settings.patch @@ -20,11 +20,9 @@ Signed-off-by: Luo Jie drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 16 + 5 files changed, 496 insertions(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.c b/drivers/net/ethernet/qualcomm/ppe/ppe_api.c -index ba35fc151e2c..72d416e0ca44 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_api.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.c -@@ -38,3 +38,47 @@ int ppe_queue_priority_set(struct ppe_device *ppe_dev, +@@ -38,3 +38,47 @@ int ppe_queue_priority_set(struct ppe_de return ppe_queue_scheduler_set(ppe_dev, node_id, level, port, sch_cfg); } @@ -72,8 +70,6 @@ index ba35fc151e2c..72d416e0ca44 100644 + + return ppe_port_resource_get(ppe_dev, 0, type, res_start, res_end); +}; -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h -index ee5b47d06991..c8aa8945f90f 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h @@ -15,7 +15,41 @@ @@ -118,8 +114,6 @@ index ee5b47d06991..c8aa8945f90f 100644 +int ppe_edma_queue_resource_get(struct ppe_device *ppe_dev, int type, + int *res_start, int *res_end); #endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c -index bdef26da6fd3..ac90d33aecba 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c @@ -119,6 +119,34 @@ struct ppe_port_schedule_config { @@ -157,7 +151,7 @@ index bdef26da6fd3..ac90d33aecba 100644 static int ipq9574_ppe_bm_group_config = 1550; static struct ppe_bm_port_config ipq9574_ppe_bm_port_config[] = { { -@@ -648,6 +676,111 @@ static struct ppe_port_schedule_config ppe_qos_schedule_config[] = { +@@ -648,6 +676,111 @@ static struct ppe_port_schedule_config p }, }; @@ -269,7 +263,7 @@ index bdef26da6fd3..ac90d33aecba 100644 /* Set the first level scheduler configuration. */ static int ppe_scheduler_l0_queue_map_set(struct ppe_device *ppe_dev, int node_id, int port, -@@ -893,6 +1026,147 @@ int ppe_queue_scheduler_get(struct ppe_device *ppe_dev, +@@ -893,6 +1026,147 @@ int ppe_queue_scheduler_get(struct ppe_d port, scheduler_cfg); } @@ -417,7 +411,7 @@ index bdef26da6fd3..ac90d33aecba 100644 static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id, struct ppe_bm_port_config port_cfg) { -@@ -1219,6 +1493,88 @@ static int ppe_config_scheduler(struct ppe_device *ppe_dev) +@@ -1219,6 +1493,88 @@ sch_config_fail: return ret; }; @@ -506,7 +500,7 @@ index bdef26da6fd3..ac90d33aecba 100644 int ppe_hw_config(struct ppe_device *ppe_dev) { int ret; -@@ -1231,5 +1587,9 @@ int ppe_hw_config(struct ppe_device *ppe_dev) +@@ -1231,5 +1587,9 @@ int ppe_hw_config(struct ppe_device *ppe if (ret) return ret; @@ -517,8 +511,6 @@ index bdef26da6fd3..ac90d33aecba 100644 + + return ppe_dev_hw_init(ppe_dev); } -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h -index 167a114031fd..676c4ec45f6f 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h @@ -6,6 +6,13 @@ @@ -562,7 +554,7 @@ index 167a114031fd..676c4ec45f6f 100644 int ppe_hw_config(struct ppe_device *ppe_dev); int ppe_queue_scheduler_set(struct ppe_device *ppe_dev, int node_id, bool flow_level, int port, -@@ -33,4 +60,18 @@ int ppe_queue_scheduler_set(struct ppe_device *ppe_dev, +@@ -33,4 +60,18 @@ int ppe_queue_scheduler_set(struct ppe_d int ppe_queue_scheduler_get(struct ppe_device *ppe_dev, int node_id, bool flow_level, int *port, struct ppe_qos_scheduler_cfg *scheduler_cfg); @@ -581,8 +573,6 @@ index 167a114031fd..676c4ec45f6f 100644 +int ppe_port_resource_get(struct ppe_device *ppe_dev, int port, int type, + int *res_start, int *res_end); #endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -index 0279f1023bcf..1f6828237f94 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -153,6 +153,22 @@ @@ -608,6 +598,3 @@ index 0279f1023bcf..1f6828237f94 100644 /* PPE unicast queue (0-255) configurations. */ #define PPE_AC_UNI_QUEUE_CFG_TBL_ADDR 0x848000 #define PPE_AC_UNI_QUEUE_CFG_TBL_NUM 256 --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-23-net-ethernet-qualcomm-Add-PPE-service-code-config.patch b/target/linux/qualcommbe/patches-6.6/103-23-net-ethernet-qualcomm-Add-PPE-service-code-config.patch index 3a390ef229..d4b9cfc4d5 100644 --- a/target/linux/qualcommbe/patches-6.6/103-23-net-ethernet-qualcomm-Add-PPE-service-code-config.patch +++ b/target/linux/qualcommbe/patches-6.6/103-23-net-ethernet-qualcomm-Add-PPE-service-code-config.patch @@ -20,8 +20,6 @@ Signed-off-by: Luo Jie drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 48 ++++++ 4 files changed, 290 insertions(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h -index c8aa8945f90f..ecdae4b95667 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h @@ -18,6 +18,9 @@ @@ -34,8 +32,6 @@ index c8aa8945f90f..ecdae4b95667 100644 /** * enum ppe_queue_class_type - PPE queue class type * @PPE_QUEUE_CLASS_PRIORITY: Queue offset configured from internal priority -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c -index ac90d33aecba..a8e7a536a6e0 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c @@ -8,6 +8,7 @@ @@ -46,7 +42,7 @@ index ac90d33aecba..a8e7a536a6e0 100644 #include #include #include -@@ -1167,6 +1168,76 @@ int ppe_port_resource_get(struct ppe_device *ppe_dev, int port, int type, +@@ -1167,6 +1168,76 @@ int ppe_port_resource_get(struct ppe_dev return 0; } @@ -123,7 +119,7 @@ index ac90d33aecba..a8e7a536a6e0 100644 static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id, struct ppe_bm_port_config port_cfg) { -@@ -1569,10 +1640,35 @@ static int ppe_queue_dest_init(struct ppe_device *ppe_dev) +@@ -1569,10 +1640,35 @@ static int ppe_queue_dest_init(struct pp return 0; } @@ -160,8 +156,6 @@ index ac90d33aecba..a8e7a536a6e0 100644 } int ppe_hw_config(struct ppe_device *ppe_dev) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h -index 676c4ec45f6f..dcb557ed843c 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h @@ -6,6 +6,8 @@ @@ -317,7 +311,7 @@ index 676c4ec45f6f..dcb557ed843c 100644 int ppe_hw_config(struct ppe_device *ppe_dev); int ppe_queue_scheduler_set(struct ppe_device *ppe_dev, int node_id, bool flow_level, int port, -@@ -74,4 +213,7 @@ int ppe_queue_ucast_hash_class_set(struct ppe_device *ppe_dev, +@@ -74,4 +213,7 @@ int ppe_queue_ucast_hash_class_set(struc int class_offset); int ppe_port_resource_get(struct ppe_device *ppe_dev, int port, int type, int *res_start, int *res_end); @@ -325,8 +319,6 @@ index 676c4ec45f6f..dcb557ed843c 100644 + int servcode, + struct ppe_servcode_cfg cfg); #endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -index 1f6828237f94..3122743af98d 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -27,9 +27,57 @@ @@ -387,6 +379,3 @@ index 1f6828237f94..3122743af98d 100644 #define PPE_PSCH_SCH_DEPTH_CFG_ADDR 0x400000 #define PPE_PSCH_SCH_DEPTH_CFG_NUM 1 #define PPE_PSCH_SCH_DEPTH_CFG_INC 4 --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-24-net-ethernet-qualcomm-Add-PPE-port-control-config.patch b/target/linux/qualcommbe/patches-6.6/103-24-net-ethernet-qualcomm-Add-PPE-port-control-config.patch index a55b09b2bf..2751e2bc20 100644 --- a/target/linux/qualcommbe/patches-6.6/103-24-net-ethernet-qualcomm-Add-PPE-port-control-config.patch +++ b/target/linux/qualcommbe/patches-6.6/103-24-net-ethernet-qualcomm-Add-PPE-port-control-config.patch @@ -15,11 +15,9 @@ Signed-off-by: Luo Jie drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 50 ++++++++++ 3 files changed, 151 insertions(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c -index a8e7a536a6e0..18296a449d4e 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c -@@ -1238,6 +1238,50 @@ int ppe_servcode_config_set(struct ppe_device *ppe_dev, int servcode, +@@ -1238,6 +1238,50 @@ int ppe_servcode_config_set(struct ppe_d return regmap_write(ppe_dev->regmap, reg, val); } @@ -70,7 +68,7 @@ index a8e7a536a6e0..18296a449d4e 100644 static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id, struct ppe_bm_port_config port_cfg) { -@@ -1659,6 +1703,47 @@ static int ppe_servcode_init(struct ppe_device *ppe_dev) +@@ -1659,6 +1703,47 @@ static int ppe_servcode_init(struct ppe_ return ppe_servcode_config_set(ppe_dev, PPE_EDMA_SC_BYPASS_ID, servcode_cfg); } @@ -118,7 +116,7 @@ index a8e7a536a6e0..18296a449d4e 100644 /* Initialize PPE device to handle traffic correctly. */ static int ppe_dev_hw_init(struct ppe_device *ppe_dev) { -@@ -1668,7 +1753,11 @@ static int ppe_dev_hw_init(struct ppe_device *ppe_dev) +@@ -1668,7 +1753,11 @@ static int ppe_dev_hw_init(struct ppe_de if (ret) return ret; @@ -131,8 +129,6 @@ index a8e7a536a6e0..18296a449d4e 100644 } int ppe_hw_config(struct ppe_device *ppe_dev) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h -index dcb557ed843c..7f5d92c39dd3 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h @@ -192,6 +192,16 @@ struct ppe_servcode_cfg { @@ -152,14 +148,12 @@ index dcb557ed843c..7f5d92c39dd3 100644 int ppe_hw_config(struct ppe_device *ppe_dev); int ppe_queue_scheduler_set(struct ppe_device *ppe_dev, int node_id, bool flow_level, int port, -@@ -216,4 +226,5 @@ int ppe_port_resource_get(struct ppe_device *ppe_dev, int port, int type, +@@ -216,4 +226,5 @@ int ppe_port_resource_get(struct ppe_dev int ppe_servcode_config_set(struct ppe_device *ppe_dev, int servcode, struct ppe_servcode_cfg cfg); +int ppe_counter_set(struct ppe_device *ppe_dev, int port, bool enable); #endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -index 3122743af98d..e981a1c0e670 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -18,6 +18,11 @@ @@ -233,6 +227,3 @@ index 3122743af98d..e981a1c0e670 100644 #define PPE_IN_L2_SERVICE_TBL_ADDR 0x66000 #define PPE_IN_L2_SERVICE_TBL_NUM 256 #define PPE_IN_L2_SERVICE_TBL_INC 0x10 --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-25-net-ethernet-qualcomm-Add-PPE-RSS-hash-config.patch b/target/linux/qualcommbe/patches-6.6/103-25-net-ethernet-qualcomm-Add-PPE-RSS-hash-config.patch index 6ee4e340fd..eaefbf0905 100644 --- a/target/linux/qualcommbe/patches-6.6/103-25-net-ethernet-qualcomm-Add-PPE-RSS-hash-config.patch +++ b/target/linux/qualcommbe/patches-6.6/103-25-net-ethernet-qualcomm-Add-PPE-RSS-hash-config.patch @@ -15,11 +15,9 @@ Signed-off-by: Luo Jie drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 47 +++++ 3 files changed, 263 insertions(+), 2 deletions(-) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c -index 18296a449d4e..4363ea3cfb90 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c -@@ -1282,6 +1282,143 @@ int ppe_counter_set(struct ppe_device *ppe_dev, int port, bool enable) +@@ -1282,6 +1282,143 @@ int ppe_counter_set(struct ppe_device *p val); } @@ -163,7 +161,7 @@ index 18296a449d4e..4363ea3cfb90 100644 static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id, struct ppe_bm_port_config port_cfg) { -@@ -1324,7 +1461,7 @@ static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id, +@@ -1324,7 +1461,7 @@ static int ppe_config_bm_threshold(struc return regmap_update_bits(ppe_dev->regmap, reg, PPE_BM_PORT_FC_MODE_EN, val); @@ -172,7 +170,7 @@ index 18296a449d4e..4363ea3cfb90 100644 /* Configure the buffer threshold for the port flow control function. */ static int ppe_config_bm(struct ppe_device *ppe_dev) -@@ -1744,6 +1881,43 @@ static int ppe_port_ctrl_init(struct ppe_device *ppe_dev) +@@ -1744,6 +1881,43 @@ static int ppe_port_ctrl_init(struct ppe return ppe_counter_set(ppe_dev, 0, true); } @@ -216,7 +214,7 @@ index 18296a449d4e..4363ea3cfb90 100644 /* Initialize PPE device to handle traffic correctly. */ static int ppe_dev_hw_init(struct ppe_device *ppe_dev) { -@@ -1757,7 +1931,11 @@ static int ppe_dev_hw_init(struct ppe_device *ppe_dev) +@@ -1757,7 +1931,11 @@ static int ppe_dev_hw_init(struct ppe_de if (ret) return ret; @@ -229,8 +227,6 @@ index 18296a449d4e..4363ea3cfb90 100644 } int ppe_hw_config(struct ppe_device *ppe_dev) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h -index 7f5d92c39dd3..6dd91bc45908 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h @@ -15,6 +15,11 @@ @@ -281,15 +277,13 @@ index 7f5d92c39dd3..6dd91bc45908 100644 int ppe_hw_config(struct ppe_device *ppe_dev); int ppe_queue_scheduler_set(struct ppe_device *ppe_dev, int node_id, bool flow_level, int port, -@@ -227,4 +261,6 @@ int ppe_servcode_config_set(struct ppe_device *ppe_dev, +@@ -227,4 +261,6 @@ int ppe_servcode_config_set(struct ppe_d int servcode, struct ppe_servcode_cfg cfg); int ppe_counter_set(struct ppe_device *ppe_dev, int port, bool enable); +int ppe_rss_hash_config_set(struct ppe_device *ppe_dev, int mode, + struct ppe_rss_hash_cfg hash_cfg); #endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -index e981a1c0e670..29001a2599d8 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -23,6 +23,53 @@ @@ -346,6 +340,3 @@ index e981a1c0e670..29001a2599d8 100644 #define PPE_BM_SCH_CFG_TBL_ADDR 0xc000 #define PPE_BM_SCH_CFG_TBL_NUM 128 #define PPE_BM_SCH_CFG_TBL_INC 0x10 --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-26-net-ethernet-qualcomm-Add-PPE-queue-map-function.patch b/target/linux/qualcommbe/patches-6.6/103-26-net-ethernet-qualcomm-Add-PPE-queue-map-function.patch index c390be4b82..38405cc7fe 100644 --- a/target/linux/qualcommbe/patches-6.6/103-26-net-ethernet-qualcomm-Add-PPE-queue-map-function.patch +++ b/target/linux/qualcommbe/patches-6.6/103-26-net-ethernet-qualcomm-Add-PPE-queue-map-function.patch @@ -18,11 +18,9 @@ Signed-off-by: Luo Jie drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 5 +++ 5 files changed, 79 insertions(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.c b/drivers/net/ethernet/qualcomm/ppe/ppe_api.c -index 72d416e0ca44..6199c7025f66 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_api.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.c -@@ -82,3 +82,26 @@ int ppe_edma_queue_resource_get(struct ppe_device *ppe_dev, int type, +@@ -82,3 +82,26 @@ int ppe_edma_queue_resource_get(struct p return ppe_port_resource_get(ppe_dev, 0, type, res_start, res_end); }; @@ -49,22 +47,18 @@ index 72d416e0ca44..6199c7025f66 100644 + + return ppe_ring_queue_map_set(ppe_dev, ring_id, queue_bmap); +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h -index ecdae4b95667..2135b5383bcd 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h -@@ -55,4 +55,6 @@ int ppe_edma_queue_offset_config(struct ppe_device *ppe_dev, +@@ -55,4 +55,6 @@ int ppe_edma_queue_offset_config(struct int index, int queue_offset); int ppe_edma_queue_resource_get(struct ppe_device *ppe_dev, int type, int *res_start, int *res_end); +int ppe_edma_ring_to_queues_config(struct ppe_device *ppe_dev, int ring_id, + int num, int queues[] __counted_by(num)); #endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c -index 4363ea3cfb90..a19a6472e4ed 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c -@@ -1419,6 +1419,28 @@ int ppe_rss_hash_config_set(struct ppe_device *ppe_dev, int mode, +@@ -1419,6 +1419,28 @@ int ppe_rss_hash_config_set(struct ppe_d return 0; } @@ -93,7 +87,7 @@ index 4363ea3cfb90..a19a6472e4ed 100644 static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id, struct ppe_bm_port_config port_cfg) { -@@ -1918,6 +1940,23 @@ static int ppe_rss_hash_init(struct ppe_device *ppe_dev) +@@ -1918,6 +1940,23 @@ static int ppe_rss_hash_init(struct ppe_ return ppe_rss_hash_config_set(ppe_dev, PPE_RSS_HASH_MODE_IPV6, hash_cfg); } @@ -117,7 +111,7 @@ index 4363ea3cfb90..a19a6472e4ed 100644 /* Initialize PPE device to handle traffic correctly. */ static int ppe_dev_hw_init(struct ppe_device *ppe_dev) { -@@ -1935,7 +1974,11 @@ static int ppe_dev_hw_init(struct ppe_device *ppe_dev) +@@ -1935,7 +1974,11 @@ static int ppe_dev_hw_init(struct ppe_de if (ret) return ret; @@ -130,8 +124,6 @@ index 4363ea3cfb90..a19a6472e4ed 100644 } int ppe_hw_config(struct ppe_device *ppe_dev) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h -index 6dd91bc45908..9be749800f14 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h @@ -20,6 +20,8 @@ @@ -143,7 +135,7 @@ index 6dd91bc45908..9be749800f14 100644 /** * struct ppe_qos_scheduler_cfg - PPE QoS scheduler configuration. * @flow_id: PPE flow ID. -@@ -263,4 +265,7 @@ int ppe_servcode_config_set(struct ppe_device *ppe_dev, +@@ -263,4 +265,7 @@ int ppe_servcode_config_set(struct ppe_d int ppe_counter_set(struct ppe_device *ppe_dev, int port, bool enable); int ppe_rss_hash_config_set(struct ppe_device *ppe_dev, int mode, struct ppe_rss_hash_cfg hash_cfg); @@ -151,8 +143,6 @@ index 6dd91bc45908..9be749800f14 100644 + int ring_id, + u32 *queue_map); #endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -index 29001a2599d8..8c6cd6b52b0f 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -212,6 +212,11 @@ @@ -167,6 +157,3 @@ index 29001a2599d8..8c6cd6b52b0f 100644 #define PPE_DEQ_OPR_TBL_ADDR 0x430000 #define PPE_DEQ_OPR_TBL_NUM 300 #define PPE_DEQ_OPR_TBL_INC 0x10 --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-27-net-ethernet-qualcomm-Add-PPE-L2-bridge-initializati.patch b/target/linux/qualcommbe/patches-6.6/103-27-net-ethernet-qualcomm-Add-PPE-L2-bridge-initializati.patch index 99845d3a59..24e1edf23a 100644 --- a/target/linux/qualcommbe/patches-6.6/103-27-net-ethernet-qualcomm-Add-PPE-L2-bridge-initializati.patch +++ b/target/linux/qualcommbe/patches-6.6/103-27-net-ethernet-qualcomm-Add-PPE-L2-bridge-initializati.patch @@ -17,11 +17,9 @@ Signed-off-by: Lei Wei drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 54 +++++++++++++++ 2 files changed, 121 insertions(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c -index a19a6472e4ed..621f4f0ba9e2 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c -@@ -1957,6 +1957,68 @@ static int ppe_queues_to_ring_init(struct ppe_device *ppe_dev) +@@ -1957,6 +1957,68 @@ static int ppe_queues_to_ring_init(struc return ppe_ring_queue_map_set(ppe_dev, 0, queue_bmap); } @@ -90,7 +88,7 @@ index a19a6472e4ed..621f4f0ba9e2 100644 /* Initialize PPE device to handle traffic correctly. */ static int ppe_dev_hw_init(struct ppe_device *ppe_dev) { -@@ -1978,7 +2040,11 @@ static int ppe_dev_hw_init(struct ppe_device *ppe_dev) +@@ -1978,7 +2040,11 @@ static int ppe_dev_hw_init(struct ppe_de if (ret) return ret; @@ -103,8 +101,6 @@ index a19a6472e4ed..621f4f0ba9e2 100644 } int ppe_hw_config(struct ppe_device *ppe_dev) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -index 8c6cd6b52b0f..7f06843e4151 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -126,6 +126,18 @@ @@ -182,6 +178,3 @@ index 8c6cd6b52b0f..7f06843e4151 100644 #define PPE_TL_SERVICE_TBL_ADDR 0x306000 #define PPE_TL_SERVICE_TBL_NUM 256 #define PPE_TL_SERVICE_TBL_INC 4 --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-28-net-ethernet-qualcomm-Add-PPE-debugfs-support.patch b/target/linux/qualcommbe/patches-6.6/103-28-net-ethernet-qualcomm-Add-PPE-debugfs-support.patch index 314771763c..6c3f408cee 100644 --- a/target/linux/qualcommbe/patches-6.6/103-28-net-ethernet-qualcomm-Add-PPE-debugfs-support.patch +++ b/target/linux/qualcommbe/patches-6.6/103-28-net-ethernet-qualcomm-Add-PPE-debugfs-support.patch @@ -19,8 +19,6 @@ Signed-off-by: Luo Jie create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.h -diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile -index e4e5c94fde3e..227af2168224 100644 --- a/drivers/net/ethernet/qualcomm/ppe/Makefile +++ b/drivers/net/ethernet/qualcomm/ppe/Makefile @@ -4,4 +4,4 @@ @@ -29,8 +27,6 @@ index e4e5c94fde3e..227af2168224 100644 obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o -qcom-ppe-objs := ppe.o ppe_config.o ppe_api.o +qcom-ppe-objs := ppe.o ppe_config.o ppe_api.o ppe_debugfs.o -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.c b/drivers/net/ethernet/qualcomm/ppe/ppe.c -index 443706291ce0..8cf6c1161c4b 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe.c @@ -16,6 +16,7 @@ @@ -41,7 +37,7 @@ index 443706291ce0..8cf6c1161c4b 100644 #define PPE_PORT_MAX 8 #define PPE_CLK_RATE 353000000 -@@ -206,11 +207,20 @@ static int qcom_ppe_probe(struct platform_device *pdev) +@@ -206,11 +207,20 @@ static int qcom_ppe_probe(struct platfor if (ret) return dev_err_probe(dev, ret, "PPE HW config failed\n"); @@ -62,7 +58,7 @@ index 443706291ce0..8cf6c1161c4b 100644 static const struct of_device_id qcom_ppe_of_match[] = { { .compatible = "qcom,ipq9574-ppe" }, {}, -@@ -223,6 +233,7 @@ static struct platform_driver qcom_ppe_driver = { +@@ -223,6 +233,7 @@ static struct platform_driver qcom_ppe_d .of_match_table = qcom_ppe_of_match, }, .probe = qcom_ppe_probe, @@ -70,8 +66,6 @@ index 443706291ce0..8cf6c1161c4b 100644 }; module_platform_driver(qcom_ppe_driver); -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.h b/drivers/net/ethernet/qualcomm/ppe/ppe.h -index 733d77f4063d..a2a5d1901547 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe.h @@ -11,6 +11,7 @@ @@ -98,9 +92,6 @@ index 733d77f4063d..a2a5d1901547 100644 unsigned int num_icc_paths; struct icc_bulk_data icc_paths[] __counted_by(num_icc_paths); }; -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c b/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c -new file mode 100644 -index 000000000000..1cd4c491e724 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c @@ -0,0 +1,725 @@ @@ -829,9 +820,6 @@ index 000000000000..1cd4c491e724 + debugfs_remove_recursive(ppe_dev->debugfs_root); + ppe_dev->debugfs_root = NULL; +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.h -new file mode 100644 -index 000000000000..a979fcf9d742 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.h @@ -0,0 +1,16 @@ @@ -851,8 +839,6 @@ index 000000000000..a979fcf9d742 +void ppe_debugfs_teardown(struct ppe_device *ppe_dev); + +#endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -index 7f06843e4151..e84633d0f572 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -23,6 +23,43 @@ @@ -981,6 +967,3 @@ index 7f06843e4151..e84633d0f572 100644 #define PPE_ENQ_OPR_TBL_ADDR 0x85c000 #define PPE_ENQ_OPR_TBL_NUM 300 #define PPE_ENQ_OPR_TBL_INC 0x10 --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-32-net-ethernet-qualcomm-Add-phylink-support-for-PPE-MA.patch b/target/linux/qualcommbe/patches-6.6/103-32-net-ethernet-qualcomm-Add-phylink-support-for-PPE-MA.patch index d89ae3af54..c791719926 100644 --- a/target/linux/qualcommbe/patches-6.6/103-32-net-ethernet-qualcomm-Add-phylink-support-for-PPE-MA.patch +++ b/target/linux/qualcommbe/patches-6.6/103-32-net-ethernet-qualcomm-Add-phylink-support-for-PPE-MA.patch @@ -20,8 +20,6 @@ Signed-off-by: Lei Wei create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_port.c create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_port.h -diff --git a/drivers/net/ethernet/qualcomm/Kconfig b/drivers/net/ethernet/qualcomm/Kconfig -index 8cc24da48777..a96f6acd4561 100644 --- a/drivers/net/ethernet/qualcomm/Kconfig +++ b/drivers/net/ethernet/qualcomm/Kconfig @@ -66,6 +66,9 @@ config QCOM_PPE @@ -34,8 +32,6 @@ index 8cc24da48777..a96f6acd4561 100644 help This driver supports the Qualcomm Technologies, Inc. packet process engine (PPE) available with IPQ SoC. The PPE houses -diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile -index 227af2168224..76cdc423a8cc 100644 --- a/drivers/net/ethernet/qualcomm/ppe/Makefile +++ b/drivers/net/ethernet/qualcomm/ppe/Makefile @@ -4,4 +4,4 @@ @@ -44,8 +40,6 @@ index 227af2168224..76cdc423a8cc 100644 obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o -qcom-ppe-objs := ppe.o ppe_config.o ppe_api.o ppe_debugfs.o +qcom-ppe-objs := ppe.o ppe_config.o ppe_api.o ppe_debugfs.o ppe_port.o -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.c b/drivers/net/ethernet/qualcomm/ppe/ppe.c -index 8cf6c1161c4b..bcf21c838e05 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe.c @@ -17,6 +17,7 @@ @@ -56,7 +50,7 @@ index 8cf6c1161c4b..bcf21c838e05 100644 #define PPE_PORT_MAX 8 #define PPE_CLK_RATE 353000000 -@@ -207,6 +208,11 @@ static int qcom_ppe_probe(struct platform_device *pdev) +@@ -207,6 +208,11 @@ static int qcom_ppe_probe(struct platfor if (ret) return dev_err_probe(dev, ret, "PPE HW config failed\n"); @@ -68,7 +62,7 @@ index 8cf6c1161c4b..bcf21c838e05 100644 ppe_debugfs_setup(ppe_dev); platform_set_drvdata(pdev, ppe_dev); -@@ -219,6 +225,9 @@ static void qcom_ppe_remove(struct platform_device *pdev) +@@ -219,6 +225,9 @@ static void qcom_ppe_remove(struct platf ppe_dev = platform_get_drvdata(pdev); ppe_debugfs_teardown(ppe_dev); @@ -78,8 +72,6 @@ index 8cf6c1161c4b..bcf21c838e05 100644 } static const struct of_device_id qcom_ppe_of_match[] = { -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.h b/drivers/net/ethernet/qualcomm/ppe/ppe.h -index a2a5d1901547..020d5df2c5e3 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe.h @@ -20,6 +20,7 @@ struct dentry; @@ -98,9 +90,6 @@ index a2a5d1901547..020d5df2c5e3 100644 unsigned int num_icc_paths; struct icc_bulk_data icc_paths[] __counted_by(num_icc_paths); }; -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c -new file mode 100644 -index 000000000000..dcc13889089e --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c @@ -0,0 +1,728 @@ @@ -832,9 +821,6 @@ index 000000000000..dcc13889089e + ppe_port_clock_deinit(ppe_port); + } +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h -new file mode 100644 -index 000000000000..194f65815011 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h @@ -0,0 +1,76 @@ @@ -914,8 +900,6 @@ index 000000000000..194f65815011 + struct net_device *netdev); +void ppe_port_phylink_destroy(struct ppe_port *ppe_port); +#endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -index e84633d0f572..34b659ac0c37 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -7,6 +7,17 @@ @@ -1053,6 +1037,3 @@ index e84633d0f572..34b659ac0c37 100644 +#define XGMAC_CNTRST BIT(0) + #endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-33-net-ethernet-qualcomm-Add-PPE-port-MAC-MIB-statistic.patch b/target/linux/qualcommbe/patches-6.6/103-33-net-ethernet-qualcomm-Add-PPE-port-MAC-MIB-statistic.patch index e3a57a976f..edf62dd057 100644 --- a/target/linux/qualcommbe/patches-6.6/103-33-net-ethernet-qualcomm-Add-PPE-port-MAC-MIB-statistic.patch +++ b/target/linux/qualcommbe/patches-6.6/103-33-net-ethernet-qualcomm-Add-PPE-port-MAC-MIB-statistic.patch @@ -16,8 +16,6 @@ Signed-off-by: Lei Wei drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 91 ++++ 3 files changed, 569 insertions(+) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c -index dcc13889089e..284ee14b8d03 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c @@ -23,6 +23,122 @@ @@ -143,7 +141,7 @@ index dcc13889089e..284ee14b8d03 100644 /* PPE port clock and reset name */ static const char * const ppe_port_clk_rst_name[] = { [PPE_PORT_CLK_RST_MAC] = "port_mac", -@@ -30,6 +146,322 @@ static const char * const ppe_port_clk_rst_name[] = { +@@ -30,6 +146,322 @@ static const char * const ppe_port_clk_r [PPE_PORT_CLK_RST_TX] = "port_tx", }; @@ -466,7 +464,7 @@ index dcc13889089e..284ee14b8d03 100644 /* PPE port and MAC reset */ static int ppe_port_mac_reset(struct ppe_port *ppe_port) { -@@ -261,6 +693,9 @@ static void ppe_port_mac_link_up(struct phylink_config *config, +@@ -261,6 +693,9 @@ static void ppe_port_mac_link_up(struct int ret, port = ppe_port->port_id; u32 reg, val; @@ -476,7 +474,7 @@ index dcc13889089e..284ee14b8d03 100644 if (mac_type == PPE_MAC_TYPE_GMAC) ret = ppe_port_gmac_link_up(ppe_port, speed, duplex, tx_pause, rx_pause); -@@ -306,6 +741,9 @@ static void ppe_port_mac_link_down(struct phylink_config *config, +@@ -306,6 +741,9 @@ static void ppe_port_mac_link_down(struc int ret, port = ppe_port->port_id; u32 reg; @@ -486,7 +484,7 @@ index dcc13889089e..284ee14b8d03 100644 /* Disable PPE port TX */ reg = PPE_PORT_BRIDGE_CTRL_ADDR + PPE_PORT_BRIDGE_CTRL_INC * port; ret = regmap_update_bits(ppe_dev->regmap, reg, -@@ -627,6 +1065,27 @@ static int ppe_port_mac_hw_init(struct ppe_port *ppe_port) +@@ -627,6 +1065,27 @@ static int ppe_port_mac_hw_init(struct p return ret; } @@ -514,7 +512,7 @@ index dcc13889089e..284ee14b8d03 100644 /** * ppe_port_mac_init() - Initialization of PPE ports for the PPE device * @ppe_dev: PPE device -@@ -693,6 +1152,12 @@ int ppe_port_mac_init(struct ppe_device *ppe_dev) +@@ -693,6 +1152,12 @@ int ppe_port_mac_init(struct ppe_device goto err_port_node; } @@ -527,8 +525,6 @@ index dcc13889089e..284ee14b8d03 100644 i++; } -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h -index 194f65815011..a524d90e1446 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h @@ -8,6 +8,8 @@ @@ -560,7 +556,7 @@ index 194f65815011..a524d90e1446 100644 }; /** -@@ -73,4 +81,9 @@ void ppe_port_mac_deinit(struct ppe_device *ppe_dev); +@@ -73,4 +81,9 @@ void ppe_port_mac_deinit(struct ppe_devi int ppe_port_phylink_setup(struct ppe_port *ppe_port, struct net_device *netdev); void ppe_port_phylink_destroy(struct ppe_port *ppe_port); @@ -570,8 +566,6 @@ index 194f65815011..a524d90e1446 100644 +void ppe_port_get_stats64(struct ppe_port *ppe_port, + struct rtnl_link_stats64 *s); #endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -index 34b659ac0c37..2cd5bd9fa446 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -606,6 +606,48 @@ @@ -677,6 +671,3 @@ index 34b659ac0c37..2cd5bd9fa446 100644 +#define XGMAC_RXDISCARDBYTE_GB_ADDR 0x9B4 + #endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-34-net-ethernet-qualcomm-Add-PPE-port-MAC-address-and-E.patch b/target/linux/qualcommbe/patches-6.6/103-34-net-ethernet-qualcomm-Add-PPE-port-MAC-address-and-E.patch index fc8f955666..110c6c6e47 100644 --- a/target/linux/qualcommbe/patches-6.6/103-34-net-ethernet-qualcomm-Add-PPE-port-MAC-address-and-E.patch +++ b/target/linux/qualcommbe/patches-6.6/103-34-net-ethernet-qualcomm-Add-PPE-port-MAC-address-and-E.patch @@ -15,11 +15,9 @@ Signed-off-by: Lei Wei drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 29 ++++++++ 3 files changed, 107 insertions(+) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c -index 284ee14b8d03..a9781e1197f7 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c -@@ -462,6 +462,81 @@ void ppe_port_get_stats64(struct ppe_port *ppe_port, +@@ -462,6 +462,81 @@ void ppe_port_get_stats64(struct ppe_por } } @@ -101,8 +99,6 @@ index 284ee14b8d03..a9781e1197f7 100644 /* PPE port and MAC reset */ static int ppe_port_mac_reset(struct ppe_port *ppe_port) { -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h -index a524d90e1446..2234c9bfbd9a 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h @@ -8,6 +8,7 @@ @@ -113,15 +109,13 @@ index a524d90e1446..2234c9bfbd9a 100644 struct rtnl_link_stats64; /** -@@ -86,4 +87,6 @@ void ppe_port_get_strings(struct ppe_port *ppe_port, u32 stringset, u8 *data); +@@ -86,4 +87,6 @@ void ppe_port_get_strings(struct ppe_por void ppe_port_get_ethtool_stats(struct ppe_port *ppe_port, u64 *data); void ppe_port_get_stats64(struct ppe_port *ppe_port, struct rtnl_link_stats64 *s); +int ppe_port_set_mac_address(struct ppe_port *ppe_port, const u8 *addr); +int ppe_port_set_mac_eee(struct ppe_port *ppe_port, struct ethtool_eee *eee); #endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -index 2cd5bd9fa446..6e6e469247c8 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -18,6 +18,16 @@ @@ -174,6 +168,3 @@ index 2cd5bd9fa446..6e6e469247c8 100644 /* XGMAC management counters control register */ #define XGMAC_MMC_CTRL_ADDR 0x800 #define XGMAC_MCF BIT(3) --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-35-net-ethernet-qualcomm-Add-API-to-configure-PPE-port-.patch b/target/linux/qualcommbe/patches-6.6/103-35-net-ethernet-qualcomm-Add-API-to-configure-PPE-port-.patch index e75a9c027c..9d19e5eca8 100644 --- a/target/linux/qualcommbe/patches-6.6/103-35-net-ethernet-qualcomm-Add-API-to-configure-PPE-port-.patch +++ b/target/linux/qualcommbe/patches-6.6/103-35-net-ethernet-qualcomm-Add-API-to-configure-PPE-port-.patch @@ -15,11 +15,9 @@ Signed-off-by: Luo Jie drivers/net/ethernet/qualcomm/ppe/ppe_port.h | 1 + 2 files changed, 45 insertions(+) -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c -index a9781e1197f7..52820e2eedf8 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c -@@ -537,6 +537,50 @@ int ppe_port_set_mac_eee(struct ppe_port *ppe_port, struct ethtool_keee *eee) +@@ -537,6 +537,50 @@ int ppe_port_set_mac_eee(struct ppe_port return ret; } @@ -70,16 +68,11 @@ index a9781e1197f7..52820e2eedf8 100644 /* PPE port and MAC reset */ static int ppe_port_mac_reset(struct ppe_port *ppe_port) { -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h -index 2234c9bfbd9a..8234e86fb401 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h -@@ -89,4 +89,5 @@ void ppe_port_get_stats64(struct ppe_port *ppe_port, +@@ -89,4 +89,5 @@ void ppe_port_get_stats64(struct ppe_por struct rtnl_link_stats64 *s); int ppe_port_set_mac_address(struct ppe_port *ppe_port, const u8 *addr); int ppe_port_set_mac_eee(struct ppe_port *ppe_port, struct ethtool_eee *eee); +int ppe_port_set_maxframe(struct ppe_port *ppe_port, int maxframe_size); #endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-38-net-ethernet-qualcomm-Add-EDMA-support-for-QCOM-IPQ9.patch b/target/linux/qualcommbe/patches-6.6/103-38-net-ethernet-qualcomm-Add-EDMA-support-for-QCOM-IPQ9.patch index 8aab02bb04..ae52143282 100644 --- a/target/linux/qualcommbe/patches-6.6/103-38-net-ethernet-qualcomm-Add-EDMA-support-for-QCOM-IPQ9.patch +++ b/target/linux/qualcommbe/patches-6.6/103-38-net-ethernet-qualcomm-Add-EDMA-support-for-QCOM-IPQ9.patch @@ -21,8 +21,6 @@ Signed-off-by: Suruchi Agarwal create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma.c create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma.h -diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile -index 76cdc423a8cc..7fea135ceb36 100644 --- a/drivers/net/ethernet/qualcomm/ppe/Makefile +++ b/drivers/net/ethernet/qualcomm/ppe/Makefile @@ -5,3 +5,6 @@ @@ -33,9 +31,6 @@ index 76cdc423a8cc..7fea135ceb36 100644 +#EDMA +qcom-ppe-objs += edma.o \ No newline at end of file -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.c b/drivers/net/ethernet/qualcomm/ppe/edma.c -new file mode 100644 -index 000000000000..d7bf1f39e9e1 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma.c @@ -0,0 +1,456 @@ @@ -495,9 +490,6 @@ index 000000000000..d7bf1f39e9e1 + + return 0; +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h -new file mode 100644 -index 000000000000..6bad51c976dd --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma.h @@ -0,0 +1,99 @@ @@ -600,8 +592,6 @@ index 000000000000..6bad51c976dd +int edma_setup(struct ppe_device *ppe_dev); + +#endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.c b/drivers/net/ethernet/qualcomm/ppe/ppe.c -index bcf21c838e05..93f92be9dc41 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe.c @@ -14,6 +14,7 @@ @@ -612,7 +602,7 @@ index bcf21c838e05..93f92be9dc41 100644 #include "ppe.h" #include "ppe_config.h" #include "ppe_debugfs.h" -@@ -208,10 +209,16 @@ static int qcom_ppe_probe(struct platform_device *pdev) +@@ -208,10 +209,16 @@ static int qcom_ppe_probe(struct platfor if (ret) return dev_err_probe(dev, ret, "PPE HW config failed\n"); @@ -630,7 +620,7 @@ index bcf21c838e05..93f92be9dc41 100644 ppe_debugfs_setup(ppe_dev); platform_set_drvdata(pdev, ppe_dev); -@@ -226,6 +233,7 @@ static void qcom_ppe_remove(struct platform_device *pdev) +@@ -226,6 +233,7 @@ static void qcom_ppe_remove(struct platf ppe_dev = platform_get_drvdata(pdev); ppe_debugfs_teardown(ppe_dev); ppe_port_mac_deinit(ppe_dev); @@ -638,8 +628,6 @@ index bcf21c838e05..93f92be9dc41 100644 platform_set_drvdata(pdev, NULL); } -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h -index 6e6e469247c8..f2a60776a40a 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h @@ -788,4 +788,257 @@ @@ -900,6 +888,3 @@ index 6e6e469247c8..f2a60776a40a 100644 +#define EDMA_RXDESC2FILL_MAP_RXDESC_MASK 0x7 + #endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-39-net-ethernet-qualcomm-Add-netdevice-support-for-QCOM.patch b/target/linux/qualcommbe/patches-6.6/103-39-net-ethernet-qualcomm-Add-netdevice-support-for-QCOM.patch index 4d89b875a3..487364242b 100644 --- a/target/linux/qualcommbe/patches-6.6/103-39-net-ethernet-qualcomm-Add-netdevice-support-for-QCOM.patch +++ b/target/linux/qualcommbe/patches-6.6/103-39-net-ethernet-qualcomm-Add-netdevice-support-for-QCOM.patch @@ -20,8 +20,6 @@ Signed-off-by: Suruchi Agarwal create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_port.c create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_port.h -diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile -index 7fea135ceb36..e26677644aa9 100644 --- a/drivers/net/ethernet/qualcomm/ppe/Makefile +++ b/drivers/net/ethernet/qualcomm/ppe/Makefile @@ -7,4 +7,4 @@ obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o @@ -32,8 +30,6 @@ index 7fea135ceb36..e26677644aa9 100644 \ No newline at end of file +qcom-ppe-objs += edma.o edma_port.o \ No newline at end of file -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h -index 6bad51c976dd..5261002f883d 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma.h +++ b/drivers/net/ethernet/qualcomm/ppe/edma.h @@ -26,6 +26,9 @@ @@ -46,9 +42,6 @@ index 6bad51c976dd..5261002f883d 100644 /** * struct edma_ring_info - EDMA ring data structure. * @max_rings: Maximum number of rings -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.c b/drivers/net/ethernet/qualcomm/ppe/edma_port.c -new file mode 100644 -index 000000000000..6292b83d746d --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.c @@ -0,0 +1,270 @@ @@ -322,9 +315,6 @@ index 000000000000..6292b83d746d + + return ret; +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.h b/drivers/net/ethernet/qualcomm/ppe/edma_port.h -new file mode 100644 -index 000000000000..0f2deb39556e --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.h @@ -0,0 +1,31 @@ @@ -359,8 +349,6 @@ index 000000000000..0f2deb39556e +void edma_port_destroy(struct ppe_port *port); +int edma_port_setup(struct ppe_port *port); +#endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c -index 52820e2eedf8..05c52ba07aef 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c @@ -13,6 +13,7 @@ @@ -371,7 +359,7 @@ index 52820e2eedf8..05c52ba07aef 100644 #include "ppe.h" #include "ppe_port.h" #include "ppe_regs.h" -@@ -1277,12 +1278,26 @@ int ppe_port_mac_init(struct ppe_device *ppe_dev) +@@ -1277,12 +1278,26 @@ int ppe_port_mac_init(struct ppe_device goto err_port_node; } @@ -398,7 +386,7 @@ index 52820e2eedf8..05c52ba07aef 100644 err_port_clk: for (j = 0; j < i; j++) ppe_port_clock_deinit(&ppe_ports->port[j]); -@@ -1307,6 +1322,10 @@ void ppe_port_mac_deinit(struct ppe_device *ppe_dev) +@@ -1307,6 +1322,10 @@ void ppe_port_mac_deinit(struct ppe_devi for (i = 0; i < ppe_dev->ports->num; i++) { ppe_port = &ppe_dev->ports->port[i]; @@ -409,6 +397,3 @@ index 52820e2eedf8..05c52ba07aef 100644 ppe_port_clock_deinit(ppe_port); } } --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-40-net-ethernet-qualcomm-Add-Rx-Ethernet-DMA-support.patch b/target/linux/qualcommbe/patches-6.6/103-40-net-ethernet-qualcomm-Add-Rx-Ethernet-DMA-support.patch index 9392ed8b58..621a5f5359 100644 --- a/target/linux/qualcommbe/patches-6.6/103-40-net-ethernet-qualcomm-Add-Rx-Ethernet-DMA-support.patch +++ b/target/linux/qualcommbe/patches-6.6/103-40-net-ethernet-qualcomm-Add-Rx-Ethernet-DMA-support.patch @@ -26,8 +26,6 @@ Signed-off-by: Suruchi Agarwal create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_rx.c create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_rx.h -diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile -index e26677644aa9..3fd607ce42de 100644 --- a/drivers/net/ethernet/qualcomm/ppe/Makefile +++ b/drivers/net/ethernet/qualcomm/ppe/Makefile @@ -7,4 +7,4 @@ obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o @@ -38,8 +36,6 @@ index e26677644aa9..3fd607ce42de 100644 \ No newline at end of file +qcom-ppe-objs += edma.o edma_cfg_rx.o edma_port.o edma_rx.o \ No newline at end of file -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.c b/drivers/net/ethernet/qualcomm/ppe/edma.c -index d7bf1f39e9e1..134f6b95c294 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma.c +++ b/drivers/net/ethernet/qualcomm/ppe/edma.c @@ -18,12 +18,23 @@ @@ -66,7 +62,7 @@ index d7bf1f39e9e1..134f6b95c294 100644 /* Priority to multi-queue mapping. */ static u8 edma_pri_map[PPE_QUEUE_INTER_PRI_NUM] = { -@@ -178,6 +189,59 @@ static int edma_configure_ucast_prio_map_tbl(void) +@@ -178,6 +189,59 @@ static int edma_configure_ucast_prio_map return ret; } @@ -262,7 +258,7 @@ index d7bf1f39e9e1..134f6b95c294 100644 kfree(edma_ctx->netdev_arr); } -@@ -428,6 +584,7 @@ int edma_setup(struct ppe_device *ppe_dev) +@@ -428,6 +584,7 @@ int edma_setup(struct ppe_device *ppe_de edma_ctx->hw_info = &ipq9574_hw_info; edma_ctx->ppe_dev = ppe_dev; @@ -270,7 +266,7 @@ index d7bf1f39e9e1..134f6b95c294 100644 /* Configure the EDMA common clocks. */ ret = edma_clock_init(); -@@ -450,6 +607,16 @@ int edma_setup(struct ppe_device *ppe_dev) +@@ -450,6 +607,16 @@ int edma_setup(struct ppe_device *ppe_de return ret; } @@ -287,8 +283,6 @@ index d7bf1f39e9e1..134f6b95c294 100644 dev_info(dev, "EDMA configuration successful\n"); return 0; -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h -index 5261002f883d..778df7997d9f 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma.h +++ b/drivers/net/ethernet/qualcomm/ppe/edma.h @@ -6,6 +6,7 @@ @@ -341,9 +335,6 @@ index 5261002f883d..778df7997d9f 100644 extern struct edma_context *edma_ctx; void edma_destroy(struct ppe_device *ppe_dev); -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c -new file mode 100644 -index 000000000000..18e4ada6a076 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c @@ -0,0 +1,964 @@ @@ -1311,9 +1302,6 @@ index 000000000000..18e4ada6a076 + + return 0; +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h -new file mode 100644 -index 000000000000..3c84ef4ea85c --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h @@ -0,0 +1,48 @@ @@ -1365,8 +1353,6 @@ index 000000000000..3c84ef4ea85c +int edma_cfg_rx_rps(struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos); +#endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.c b/drivers/net/ethernet/qualcomm/ppe/edma_port.c -index 6292b83d746d..bbb5823408fd 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_port.c +++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.c @@ -12,12 +12,39 @@ @@ -1409,7 +1395,7 @@ index 6292b83d746d..bbb5823408fd 100644 static u16 __maybe_unused edma_port_select_queue(__maybe_unused struct net_device *netdev, __maybe_unused struct sk_buff *skb, __maybe_unused struct net_device *sb_dev) -@@ -172,6 +199,7 @@ void edma_port_destroy(struct ppe_port *port) +@@ -172,6 +199,7 @@ void edma_port_destroy(struct ppe_port * int port_id = port->port_id; struct net_device *netdev = edma_ctx->netdev_arr[port_id - 1]; @@ -1417,7 +1403,7 @@ index 6292b83d746d..bbb5823408fd 100644 unregister_netdev(netdev); free_netdev(netdev); ppe_port_phylink_destroy(port); -@@ -232,6 +260,13 @@ int edma_port_setup(struct ppe_port *port) +@@ -232,6 +260,13 @@ int edma_port_setup(struct ppe_port *por port_id, netdev->dev_addr); } @@ -1431,7 +1417,7 @@ index 6292b83d746d..bbb5823408fd 100644 netdev_dbg(netdev, "Configuring the port %s(qcom-id:%d)\n", netdev->name, port_id); -@@ -263,8 +298,10 @@ int edma_port_setup(struct ppe_port *port) +@@ -263,8 +298,10 @@ int edma_port_setup(struct ppe_port *por register_netdev_fail: ppe_port_phylink_destroy(port); port_phylink_setup_fail: @@ -1443,15 +1429,12 @@ index 6292b83d746d..bbb5823408fd 100644 return ret; } -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.h b/drivers/net/ethernet/qualcomm/ppe/edma_port.h -index 0f2deb39556e..75f544a4f324 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_port.h +++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.h -@@ -14,15 +14,46 @@ - | NETIF_F_TSO \ +@@ -15,14 +15,45 @@ | NETIF_F_TSO6) -+/** + /** + * struct edma_port_rx_stats - EDMA RX per CPU stats for the port. + * @rx_pkts: Number of Rx packets + * @rx_bytes: Number of Rx bytes @@ -1479,7 +1462,7 @@ index 0f2deb39556e..75f544a4f324 100644 + struct edma_port_rx_stats __percpu *rx_stats; +}; + - /** ++/** * struct edma_port_priv - EDMA port priv structure. * @ppe_port: Pointer to PPE port * @netdev: Corresponding netdevice @@ -1494,9 +1477,6 @@ index 0f2deb39556e..75f544a4f324 100644 unsigned long flags; }; -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_rx.c b/drivers/net/ethernet/qualcomm/ppe/edma_rx.c -new file mode 100644 -index 000000000000..a1eb533410ce --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma_rx.c @@ -0,0 +1,622 @@ @@ -2122,9 +2102,6 @@ index 000000000000..a1eb533410ce + + return IRQ_HANDLED; +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_rx.h b/drivers/net/ethernet/qualcomm/ppe/edma_rx.h -new file mode 100644 -index 000000000000..4a262a066808 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma_rx.h @@ -0,0 +1,287 @@ @@ -2415,6 +2392,3 @@ index 000000000000..4a262a066808 +int edma_rx_alloc_buffer(struct edma_rxfill_ring *rxfill_ring, int alloc_count); +int edma_rx_napi_poll(struct napi_struct *napi, int budget); +#endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-41-net-ethernet-qualcomm-Add-Tx-Ethernet-DMA-support.patch b/target/linux/qualcommbe/patches-6.6/103-41-net-ethernet-qualcomm-Add-Tx-Ethernet-DMA-support.patch index 9a190c72f3..1e842fabda 100644 --- a/target/linux/qualcommbe/patches-6.6/103-41-net-ethernet-qualcomm-Add-Tx-Ethernet-DMA-support.patch +++ b/target/linux/qualcommbe/patches-6.6/103-41-net-ethernet-qualcomm-Add-Tx-Ethernet-DMA-support.patch @@ -26,8 +26,6 @@ Signed-off-by: Suruchi Agarwal create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_tx.c create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_tx.h -diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile -index 3fd607ce42de..b358bfd781fb 100644 --- a/drivers/net/ethernet/qualcomm/ppe/Makefile +++ b/drivers/net/ethernet/qualcomm/ppe/Makefile @@ -7,4 +7,4 @@ obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o @@ -37,8 +35,6 @@ index 3fd607ce42de..b358bfd781fb 100644 -qcom-ppe-objs += edma.o edma_cfg_rx.o edma_port.o edma_rx.o \ No newline at end of file +qcom-ppe-objs += edma.o edma_cfg_rx.o edma_cfg_tx.o edma_port.o edma_rx.o edma_tx.o -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.c b/drivers/net/ethernet/qualcomm/ppe/edma.c -index 134f6b95c294..739fcfbde0f9 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma.c +++ b/drivers/net/ethernet/qualcomm/ppe/edma.c @@ -18,6 +18,7 @@ @@ -57,7 +53,7 @@ index 134f6b95c294..739fcfbde0f9 100644 static char **edma_rxdesc_irq_name; /* Module params. */ -@@ -192,22 +194,59 @@ static int edma_configure_ucast_prio_map_tbl(void) +@@ -192,22 +194,59 @@ static int edma_configure_ucast_prio_map static int edma_irq_register(void) { struct edma_hw_info *hw_info = edma_ctx->hw_info; @@ -192,7 +188,7 @@ index 134f6b95c294..739fcfbde0f9 100644 ret = edma_cfg_rx_rings(); if (ret) { -@@ -520,6 +586,7 @@ static int edma_hw_configure(void) +@@ -520,6 +586,7 @@ configure_ucast_prio_map_tbl_failed: edma_cfg_rx_napi_delete(); edma_cfg_rx_rings_disable(); edma_cfg_rx_rings_failed: @@ -200,7 +196,7 @@ index 134f6b95c294..739fcfbde0f9 100644 edma_cfg_rx_rings_cleanup(); edma_alloc_rings_failed: free_netdev(edma_ctx->dummy_dev); -@@ -538,13 +605,27 @@ static int edma_hw_configure(void) +@@ -538,13 +605,27 @@ dummy_dev_alloc_failed: void edma_destroy(struct ppe_device *ppe_dev) { struct edma_hw_info *hw_info = edma_ctx->hw_info; @@ -229,7 +225,7 @@ index 134f6b95c294..739fcfbde0f9 100644 for (i = 0; i < rx->num_rings; i++) { synchronize_irq(edma_ctx->intr_info.intr_rx[i]); free_irq(edma_ctx->intr_info.intr_rx[i], -@@ -560,6 +641,7 @@ void edma_destroy(struct ppe_device *ppe_dev) +@@ -560,6 +641,7 @@ void edma_destroy(struct ppe_device *ppe edma_cfg_rx_napi_delete(); edma_cfg_rx_rings_disable(); edma_cfg_rx_rings_cleanup(); @@ -237,7 +233,7 @@ index 134f6b95c294..739fcfbde0f9 100644 free_netdev(edma_ctx->dummy_dev); kfree(edma_ctx->netdev_arr); -@@ -585,6 +667,7 @@ int edma_setup(struct ppe_device *ppe_dev) +@@ -585,6 +667,7 @@ int edma_setup(struct ppe_device *ppe_de edma_ctx->hw_info = &ipq9574_hw_info; edma_ctx->ppe_dev = ppe_dev; edma_ctx->rx_buf_size = rx_buff_size; @@ -245,8 +241,6 @@ index 134f6b95c294..739fcfbde0f9 100644 /* Configure the EDMA common clocks. */ ret = edma_clock_init(); -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h -index 778df7997d9f..fb8ccbfbaf41 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma.h +++ b/drivers/net/ethernet/qualcomm/ppe/edma.h @@ -7,6 +7,7 @@ @@ -281,9 +275,6 @@ index 778df7997d9f..fb8ccbfbaf41 100644 }; /* Global EDMA context */ -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c -new file mode 100644 -index 000000000000..f704c654b2cd --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c @@ -0,0 +1,648 @@ @@ -935,9 +926,6 @@ index 000000000000..f704c654b2cd + + netdev_dbg(netdev, "Tx NAPI budget: %d\n", hw_info->napi_budget_tx); +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h -new file mode 100644 -index 000000000000..4840c601fc86 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h @@ -0,0 +1,28 @@ @@ -969,8 +957,6 @@ index 000000000000..4840c601fc86 +void edma_cfg_tx_rings_disable(u32 port_id); +void edma_cfg_tx_fill_per_port_tx_map(struct net_device *netdev, u32 macid); +#endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.c b/drivers/net/ethernet/qualcomm/ppe/edma_port.c -index bbb5823408fd..afa2b6479822 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_port.c +++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.c @@ -13,6 +13,7 @@ @@ -981,7 +967,7 @@ index bbb5823408fd..afa2b6479822 100644 #include "edma_port.h" #include "ppe_regs.h" -@@ -35,6 +36,15 @@ static int edma_port_stats_alloc(struct net_device *netdev) +@@ -35,6 +36,15 @@ static int edma_port_stats_alloc(struct return -ENOMEM; } @@ -997,7 +983,7 @@ index bbb5823408fd..afa2b6479822 100644 return 0; } -@@ -43,6 +53,28 @@ static void edma_port_stats_free(struct net_device *netdev) +@@ -43,6 +53,28 @@ static void edma_port_stats_free(struct struct edma_port_priv *port_priv = (struct edma_port_priv *)netdev_priv(netdev); free_percpu(port_priv->pcpu_stats.rx_stats); @@ -1026,7 +1012,7 @@ index bbb5823408fd..afa2b6479822 100644 } static u16 __maybe_unused edma_port_select_queue(__maybe_unused struct net_device *netdev, -@@ -60,6 +92,7 @@ static int edma_port_open(struct net_device *netdev) +@@ -60,6 +92,7 @@ static int edma_port_open(struct net_dev { struct edma_port_priv *port_priv = (struct edma_port_priv *)netdev_priv(netdev); struct ppe_port *ppe_port; @@ -1034,7 +1020,7 @@ index bbb5823408fd..afa2b6479822 100644 if (!port_priv) return -EINVAL; -@@ -74,10 +107,14 @@ static int edma_port_open(struct net_device *netdev) +@@ -74,10 +107,14 @@ static int edma_port_open(struct net_dev netdev->wanted_features |= EDMA_NETDEV_FEATURES; ppe_port = port_priv->ppe_port; @@ -1049,7 +1035,7 @@ index bbb5823408fd..afa2b6479822 100644 netif_start_queue(netdev); return 0; -@@ -87,13 +124,21 @@ static int edma_port_close(struct net_device *netdev) +@@ -87,13 +124,21 @@ static int edma_port_close(struct net_de { struct edma_port_priv *port_priv = (struct edma_port_priv *)netdev_priv(netdev); struct ppe_port *ppe_port; @@ -1071,7 +1057,7 @@ index bbb5823408fd..afa2b6479822 100644 /* Phylink close. */ if (ppe_port->phylink) -@@ -137,6 +182,92 @@ static netdev_features_t edma_port_feature_check(__maybe_unused struct sk_buff * +@@ -137,6 +182,92 @@ static netdev_features_t edma_port_featu return features; } @@ -1164,7 +1150,7 @@ index bbb5823408fd..afa2b6479822 100644 static void edma_port_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats) { -@@ -179,6 +310,7 @@ static int edma_port_set_mac_address(struct net_device *netdev, void *macaddr) +@@ -179,6 +310,7 @@ static int edma_port_set_mac_address(str static const struct net_device_ops edma_port_netdev_ops = { .ndo_open = edma_port_open, .ndo_stop = edma_port_close, @@ -1172,7 +1158,7 @@ index bbb5823408fd..afa2b6479822 100644 .ndo_get_stats64 = edma_port_get_stats64, .ndo_set_mac_address = edma_port_set_mac_address, .ndo_validate_addr = eth_validate_addr, -@@ -199,6 +331,7 @@ void edma_port_destroy(struct ppe_port *port) +@@ -199,6 +331,7 @@ void edma_port_destroy(struct ppe_port * int port_id = port->port_id; struct net_device *netdev = edma_ctx->netdev_arr[port_id - 1]; @@ -1180,7 +1166,7 @@ index bbb5823408fd..afa2b6479822 100644 edma_port_stats_free(netdev); unregister_netdev(netdev); free_netdev(netdev); -@@ -276,6 +409,8 @@ int edma_port_setup(struct ppe_port *port) +@@ -276,6 +409,8 @@ int edma_port_setup(struct ppe_port *por */ edma_ctx->netdev_arr[port_id - 1] = netdev; @@ -1189,7 +1175,7 @@ index bbb5823408fd..afa2b6479822 100644 /* Setup phylink. */ ret = ppe_port_phylink_setup(port, netdev); if (ret) { -@@ -298,6 +433,7 @@ int edma_port_setup(struct ppe_port *port) +@@ -298,6 +433,7 @@ int edma_port_setup(struct ppe_port *por register_netdev_fail: ppe_port_phylink_destroy(port); port_phylink_setup_fail: @@ -1197,8 +1183,6 @@ index bbb5823408fd..afa2b6479822 100644 edma_ctx->netdev_arr[port_id - 1] = NULL; edma_port_stats_free(netdev); stats_alloc_fail: -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.h b/drivers/net/ethernet/qualcomm/ppe/edma_port.h -index 75f544a4f324..b67eddabd41c 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_port.h +++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.h @@ -7,6 +7,8 @@ @@ -1210,11 +1194,10 @@ index 75f544a4f324..b67eddabd41c 100644 #define EDMA_NETDEV_FEATURES (NETIF_F_FRAGLIST \ | NETIF_F_SG \ | NETIF_F_RXCSUM \ -@@ -34,12 +36,44 @@ struct edma_port_rx_stats { - struct u64_stats_sync syncp; +@@ -35,11 +37,43 @@ struct edma_port_rx_stats { }; -+/** + /** + * struct edma_port_tx_stats - EDMA TX port per CPU stats for the port. + * @tx_pkts: Number of Tx packets + * @tx_bytes: Number of Tx bytes @@ -1244,7 +1227,7 @@ index 75f544a4f324..b67eddabd41c 100644 + struct u64_stats_sync syncp; +}; + - /** ++/** * struct edma_port_pcpu_stats - EDMA per cpu stats data structure for the port. * @rx_stats: Per CPU Rx statistics + * @tx_stats: Per CPU Tx statistics @@ -1263,9 +1246,6 @@ index 75f544a4f324..b67eddabd41c 100644 unsigned long flags; }; -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_tx.c b/drivers/net/ethernet/qualcomm/ppe/edma_tx.c -new file mode 100644 -index 000000000000..47876c142df5 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma_tx.c @@ -0,0 +1,808 @@ @@ -2077,9 +2057,6 @@ index 000000000000..47876c142df5 + + return EDMA_TX_OK; +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_tx.h b/drivers/net/ethernet/qualcomm/ppe/edma_tx.h -new file mode 100644 -index 000000000000..c09a4e0f6a42 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma_tx.h @@ -0,0 +1,302 @@ @@ -2385,6 +2362,3 @@ index 000000000000..c09a4e0f6a42 + struct net_device *netdev, struct sk_buff **segs); + +#endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-42-net-ethernet-qualcomm-Add-miscellaneous-error-interr.patch b/target/linux/qualcommbe/patches-6.6/103-42-net-ethernet-qualcomm-Add-miscellaneous-error-interr.patch index df61e9f83f..a841ed2846 100644 --- a/target/linux/qualcommbe/patches-6.6/103-42-net-ethernet-qualcomm-Add-miscellaneous-error-interr.patch +++ b/target/linux/qualcommbe/patches-6.6/103-42-net-ethernet-qualcomm-Add-miscellaneous-error-interr.patch @@ -20,8 +20,6 @@ Signed-off-by: Suruchi Agarwal 5 files changed, 580 insertions(+), 2 deletions(-) create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_debugfs.c -diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile -index b358bfd781fb..45e1b103ec7a 100644 --- a/drivers/net/ethernet/qualcomm/ppe/Makefile +++ b/drivers/net/ethernet/qualcomm/ppe/Makefile @@ -7,4 +7,4 @@ obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o @@ -30,15 +28,12 @@ index b358bfd781fb..45e1b103ec7a 100644 #EDMA -qcom-ppe-objs += edma.o edma_cfg_rx.o edma_cfg_tx.o edma_port.o edma_rx.o edma_tx.o +qcom-ppe-objs += edma.o edma_cfg_rx.o edma_cfg_tx.o edma_debugfs.o edma_port.o edma_rx.o edma_tx.o -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.c b/drivers/net/ethernet/qualcomm/ppe/edma.c -index 739fcfbde0f9..0e16f8ab545f 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma.c +++ b/drivers/net/ethernet/qualcomm/ppe/edma.c -@@ -151,6 +151,42 @@ static int edma_clock_init(void) - return 0; +@@ -152,6 +152,42 @@ static int edma_clock_init(void) } -+/** + /** + * edma_err_stats_alloc - Allocate stats memory + * + * Allocate memory for per-CPU error stats. @@ -74,10 +69,11 @@ index 739fcfbde0f9..0e16f8ab545f 100644 + } +} + - /** ++/** * edma_configure_ucast_prio_map_tbl - Configure unicast priority map table. * -@@ -191,11 +227,113 @@ static int edma_configure_ucast_prio_map_tbl(void) + * Map int_priority values to priority class and initialize +@@ -191,11 +227,113 @@ static int edma_configure_ucast_prio_map return ret; } @@ -225,7 +221,7 @@ index 739fcfbde0f9..0e16f8ab545f 100644 edma_cfg_rx_rings_disable(); -@@ -614,6 +770,7 @@ void edma_destroy(struct ppe_device *ppe_dev) +@@ -614,6 +770,7 @@ void edma_destroy(struct ppe_device *ppe edma_cfg_tx_disable_interrupts(i); edma_cfg_rx_disable_interrupts(); @@ -233,7 +229,7 @@ index 739fcfbde0f9..0e16f8ab545f 100644 /* Free IRQ for TXCMPL rings. */ for (i = 0; i < txcmpl->num_rings; i++) { -@@ -634,6 +791,10 @@ void edma_destroy(struct ppe_device *ppe_dev) +@@ -634,6 +791,10 @@ void edma_destroy(struct ppe_device *ppe } kfree(edma_rxdesc_irq_name); @@ -244,7 +240,7 @@ index 739fcfbde0f9..0e16f8ab545f 100644 kfree(edma_ctx->intr_info.intr_rx); kfree(edma_ctx->intr_info.intr_txcmpl); -@@ -699,6 +860,7 @@ int edma_setup(struct ppe_device *ppe_dev) +@@ -699,6 +860,7 @@ int edma_setup(struct ppe_device *ppe_de } edma_cfg_rx_enable_interrupts(); @@ -252,15 +248,12 @@ index 739fcfbde0f9..0e16f8ab545f 100644 dev_info(dev, "EDMA configuration successful\n"); -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h -index fb8ccbfbaf41..6500d21b9eba 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma.h +++ b/drivers/net/ethernet/qualcomm/ppe/edma.h -@@ -36,6 +36,30 @@ - ((((head) - (tail)) + \ +@@ -37,6 +37,30 @@ (max)) & ((max) - 1)); }) -+/** + /** + * struct edma_err_stats - EDMA error stats + * @edma_axi_read_err: AXI read error + * @edma_axi_write_err: AXI write error @@ -284,9 +277,10 @@ index fb8ccbfbaf41..6500d21b9eba 100644 + struct u64_stats_sync syncp; +}; + - /** ++/** * struct edma_ring_info - EDMA ring data structure. * @max_rings: Maximum number of rings + * @ring_start: Ring start ID @@ -97,6 +121,7 @@ struct edma_intr_info { * @rx_rings: Rx Desc Rings, SW is consumer * @tx_rings: Tx Descriptor Ring, SW is producer @@ -315,9 +309,6 @@ index fb8ccbfbaf41..6500d21b9eba 100644 +void edma_debugfs_teardown(void); +int edma_debugfs_setup(struct ppe_device *ppe_dev); #endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_debugfs.c b/drivers/net/ethernet/qualcomm/ppe/edma_debugfs.c -new file mode 100644 -index 000000000000..671062d4ee72 --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma_debugfs.c @@ -0,0 +1,370 @@ @@ -691,8 +682,6 @@ index 000000000000..671062d4ee72 + stats_dentry = NULL; + return -ENOMEM; +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c b/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c -index 1cd4c491e724..f325fcf1e17e 100644 --- a/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c +++ b/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c @@ -6,9 +6,11 @@ @@ -707,7 +696,7 @@ index 1cd4c491e724..f325fcf1e17e 100644 #include "ppe.h" #include "ppe_config.h" #include "ppe_debugfs.h" -@@ -711,15 +713,30 @@ static const struct file_operations ppe_debugfs_packet_counter_fops = { +@@ -711,15 +713,30 @@ static const struct file_operations ppe_ void ppe_debugfs_setup(struct ppe_device *ppe_dev) { @@ -738,6 +727,3 @@ index 1cd4c491e724..f325fcf1e17e 100644 debugfs_remove_recursive(ppe_dev->debugfs_root); ppe_dev->debugfs_root = NULL; } --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-43-net-ethernet-qualcomm-Add-ethtool-support-for-EDMA.patch b/target/linux/qualcommbe/patches-6.6/103-43-net-ethernet-qualcomm-Add-ethtool-support-for-EDMA.patch index c4fd0aefcd..bbd0746a03 100644 --- a/target/linux/qualcommbe/patches-6.6/103-43-net-ethernet-qualcomm-Add-ethtool-support-for-EDMA.patch +++ b/target/linux/qualcommbe/patches-6.6/103-43-net-ethernet-qualcomm-Add-ethtool-support-for-EDMA.patch @@ -15,8 +15,6 @@ Signed-off-by: Pavithra R 4 files changed, 297 insertions(+), 1 deletion(-) create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_ethtool.c -diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile -index 45e1b103ec7a..cb9d30889d06 100644 --- a/drivers/net/ethernet/qualcomm/ppe/Makefile +++ b/drivers/net/ethernet/qualcomm/ppe/Makefile @@ -7,4 +7,4 @@ obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o @@ -25,19 +23,14 @@ index 45e1b103ec7a..cb9d30889d06 100644 #EDMA -qcom-ppe-objs += edma.o edma_cfg_rx.o edma_cfg_tx.o edma_debugfs.o edma_port.o edma_rx.o edma_tx.o +qcom-ppe-objs += edma.o edma_cfg_rx.o edma_cfg_tx.o edma_debugfs.o edma_port.o edma_rx.o edma_tx.o edma_ethtool.o -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h -index 6500d21b9eba..ac6d2fcc2983 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma.h +++ b/drivers/net/ethernet/qualcomm/ppe/edma.h -@@ -151,4 +151,5 @@ void edma_destroy(struct ppe_device *ppe_dev); +@@ -151,4 +151,5 @@ void edma_destroy(struct ppe_device *ppe int edma_setup(struct ppe_device *ppe_dev); void edma_debugfs_teardown(void); int edma_debugfs_setup(struct ppe_device *ppe_dev); +void edma_set_ethtool_ops(struct net_device *netdev); #endif -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_ethtool.c b/drivers/net/ethernet/qualcomm/ppe/edma_ethtool.c -new file mode 100644 -index 000000000000..eabc1e11b16f --- /dev/null +++ b/drivers/net/ethernet/qualcomm/ppe/edma_ethtool.c @@ -0,0 +1,294 @@ @@ -335,11 +328,9 @@ index 000000000000..eabc1e11b16f +{ + netdev->ethtool_ops = &edma_ethtool_ops; +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.c b/drivers/net/ethernet/qualcomm/ppe/edma_port.c -index afa2b6479822..0b3b769a4a49 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_port.c +++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.c -@@ -380,6 +380,7 @@ int edma_port_setup(struct ppe_port *port) +@@ -380,6 +380,7 @@ int edma_port_setup(struct ppe_port *por netdev->priv_flags |= IFF_LIVE_ADDR_CHANGE; netdev->netdev_ops = &edma_port_netdev_ops; netdev->gso_max_segs = GSO_MAX_SEGS; @@ -347,6 +338,3 @@ index afa2b6479822..0b3b769a4a49 100644 maddr = mac_addr; if (of_get_mac_address(np, maddr)) --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-44-net-ethernet-qualcomm-Add-module-parameters-for-driv.patch b/target/linux/qualcommbe/patches-6.6/103-44-net-ethernet-qualcomm-Add-module-parameters-for-driv.patch index 48bca9dd30..91fc8082e9 100644 --- a/target/linux/qualcommbe/patches-6.6/103-44-net-ethernet-qualcomm-Add-module-parameters-for-driv.patch +++ b/target/linux/qualcommbe/patches-6.6/103-44-net-ethernet-qualcomm-Add-module-parameters-for-driv.patch @@ -19,8 +19,6 @@ Signed-off-by: Pavithra R drivers/net/ethernet/qualcomm/ppe/edma_tx.h | 4 +++ 7 files changed, 134 insertions(+), 4 deletions(-) -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.c b/drivers/net/ethernet/qualcomm/ppe/edma.c -index 0e16f8ab545f..ae9ca528fd55 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma.c +++ b/drivers/net/ethernet/qualcomm/ppe/edma.c @@ -38,6 +38,38 @@ static int rx_buff_size; @@ -62,7 +60,7 @@ index 0e16f8ab545f..ae9ca528fd55 100644 /* Priority to multi-queue mapping. */ static u8 edma_pri_map[PPE_QUEUE_INTER_PRI_NUM] = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7}; -@@ -828,7 +860,10 @@ int edma_setup(struct ppe_device *ppe_dev) +@@ -828,7 +860,10 @@ int edma_setup(struct ppe_device *ppe_de edma_ctx->hw_info = &ipq9574_hw_info; edma_ctx->ppe_dev = ppe_dev; edma_ctx->rx_buf_size = rx_buff_size; @@ -73,11 +71,9 @@ index 0e16f8ab545f..ae9ca528fd55 100644 /* Configure the EDMA common clocks. */ ret = edma_clock_init(); -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c -index 18e4ada6a076..bf8854976328 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c +++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c -@@ -166,6 +166,24 @@ static void edma_cfg_rx_desc_ring_configure(struct edma_rxdesc_ring *rxdesc_ring +@@ -166,6 +166,24 @@ static void edma_cfg_rx_desc_ring_config reg = EDMA_BASE_OFFSET + EDMA_REG_RXDESC_RING_SIZE(rxdesc_ring->ring_id); regmap_write(regmap, reg, data); @@ -102,7 +98,7 @@ index 18e4ada6a076..bf8854976328 100644 /* Configure the Mitigation timer */ data = EDMA_MICROSEC_TO_TIMER_UNIT(EDMA_RX_MITIGATION_TIMER_DEF, ppe_dev->clk_rate / MHZ); -@@ -176,7 +194,7 @@ static void edma_cfg_rx_desc_ring_configure(struct edma_rxdesc_ring *rxdesc_ring +@@ -176,7 +194,7 @@ static void edma_cfg_rx_desc_ring_config regmap_write(regmap, reg, data); /* Configure the Mitigation packet count */ @@ -134,8 +130,6 @@ index 18e4ada6a076..bf8854976328 100644 } /** -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h -index 3c84ef4ea85c..bd897dba286a 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h +++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h @@ -5,6 +5,15 @@ @@ -176,11 +170,9 @@ index 3c84ef4ea85c..bd897dba286a 100644 /* Default bitmap of cores for RPS to ARM cores */ #define EDMA_RX_DEFAULT_BITMAP ((1 << EDMA_MAX_CORE) - 1) -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c -index f704c654b2cd..771acebdaf75 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c +++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c -@@ -170,6 +170,24 @@ static void edma_cfg_txcmpl_ring_configure(struct edma_txcmpl_ring *txcmpl_ring) +@@ -170,6 +170,24 @@ static void edma_cfg_txcmpl_ring_configu reg = EDMA_BASE_OFFSET + EDMA_REG_TXCMPL_CTRL(txcmpl_ring->id); regmap_write(regmap, reg, EDMA_TXCMPL_RETMODE_OPAQUE); @@ -205,7 +197,7 @@ index f704c654b2cd..771acebdaf75 100644 /* Configure the Mitigation timer. */ data = EDMA_MICROSEC_TO_TIMER_UNIT(EDMA_TX_MITIGATION_TIMER_DEF, ppe_dev->clk_rate / MHZ); -@@ -180,7 +198,7 @@ static void edma_cfg_txcmpl_ring_configure(struct edma_txcmpl_ring *txcmpl_ring) +@@ -180,7 +198,7 @@ static void edma_cfg_txcmpl_ring_configu regmap_write(regmap, reg, data); /* Configure the Mitigation packet count. */ @@ -214,7 +206,7 @@ index f704c654b2cd..771acebdaf75 100644 << EDMA_TXCMPL_LOW_THRE_SHIFT; pr_debug("EDMA Tx mitigation packet count value: %d\n", data); reg = EDMA_BASE_OFFSET + EDMA_REG_TXCMPL_UGT_THRE(txcmpl_ring->id); -@@ -634,6 +652,13 @@ void edma_cfg_tx_napi_add(struct net_device *netdev, u32 port_id) +@@ -634,6 +652,13 @@ void edma_cfg_tx_napi_add(struct net_dev struct edma_txcmpl_ring *txcmpl_ring; u32 i, ring_idx; @@ -228,15 +220,13 @@ index f704c654b2cd..771acebdaf75 100644 /* Adding tx napi for a interface with each queue. */ for_each_possible_cpu(i) { ring_idx = ((port_id - 1) * num_possible_cpus()) + i; -@@ -644,5 +669,5 @@ void edma_cfg_tx_napi_add(struct net_device *netdev, u32 port_id) +@@ -644,5 +669,5 @@ void edma_cfg_tx_napi_add(struct net_dev netdev_dbg(netdev, "Napi added for txcmpl ring: %u\n", txcmpl_ring->id); } - netdev_dbg(netdev, "Tx NAPI budget: %d\n", hw_info->napi_budget_tx); + netdev_dbg(netdev, "Tx NAPI budget: %d\n", edma_tx_napi_budget); } -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h -index 4840c601fc86..608bbc5f93e8 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h +++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h @@ -5,12 +5,28 @@ @@ -268,8 +258,6 @@ index 4840c601fc86..608bbc5f93e8 100644 void edma_cfg_tx_rings(void); int edma_cfg_tx_rings_alloc(void); void edma_cfg_tx_rings_cleanup(void); -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_rx.h b/drivers/net/ethernet/qualcomm/ppe/edma_rx.h -index 4a262a066808..0ef8138b4530 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_rx.h +++ b/drivers/net/ethernet/qualcomm/ppe/edma_rx.h @@ -281,6 +281,10 @@ struct edma_rxdesc_ring { @@ -283,8 +271,6 @@ index 4a262a066808..0ef8138b4530 100644 irqreturn_t edma_rx_handle_irq(int irq, void *ctx); int edma_rx_alloc_buffer(struct edma_rxfill_ring *rxfill_ring, int alloc_count); int edma_rx_napi_poll(struct napi_struct *napi, int budget); -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_tx.h b/drivers/net/ethernet/qualcomm/ppe/edma_tx.h -index c09a4e0f6a42..c4fa63321d1f 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_tx.h +++ b/drivers/net/ethernet/qualcomm/ppe/edma_tx.h @@ -288,6 +288,10 @@ struct edma_txcmpl_ring { @@ -298,6 +284,3 @@ index c09a4e0f6a42..c4fa63321d1f 100644 enum edma_tx_status edma_tx_ring_xmit(struct net_device *netdev, struct sk_buff *skb, struct edma_txdesc_ring *txdesc_ring, --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/103-45-net-ethernet-qualcomm-Add-sysctl-for-RPS-bitmap.patch b/target/linux/qualcommbe/patches-6.6/103-45-net-ethernet-qualcomm-Add-sysctl-for-RPS-bitmap.patch index a591b3fe99..75851e889d 100644 --- a/target/linux/qualcommbe/patches-6.6/103-45-net-ethernet-qualcomm-Add-sysctl-for-RPS-bitmap.patch +++ b/target/linux/qualcommbe/patches-6.6/103-45-net-ethernet-qualcomm-Add-sysctl-for-RPS-bitmap.patch @@ -16,11 +16,9 @@ Signed-off-by: Pavithra R .../net/ethernet/qualcomm/ppe/edma_cfg_rx.h | 4 +++ 4 files changed, 56 insertions(+) -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.c b/drivers/net/ethernet/qualcomm/ppe/edma.c -index ae9ca528fd55..428c7b134feb 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma.c +++ b/drivers/net/ethernet/qualcomm/ppe/edma.c -@@ -797,6 +797,11 @@ void edma_destroy(struct ppe_device *ppe_dev) +@@ -797,6 +797,11 @@ void edma_destroy(struct ppe_device *ppe struct edma_ring_info *rx = hw_info->rx; u32 i; @@ -32,7 +30,7 @@ index ae9ca528fd55..428c7b134feb 100644 /* Disable interrupts. */ for (i = 1; i <= hw_info->max_ports; i++) edma_cfg_tx_disable_interrupts(i); -@@ -840,6 +845,17 @@ void edma_destroy(struct ppe_device *ppe_dev) +@@ -840,6 +845,17 @@ void edma_destroy(struct ppe_device *ppe kfree(edma_ctx->netdev_arr); } @@ -50,7 +48,7 @@ index ae9ca528fd55..428c7b134feb 100644 /** * edma_setup - EDMA Setup. * @ppe_dev: PPE device -@@ -865,6 +881,13 @@ int edma_setup(struct ppe_device *ppe_dev) +@@ -865,6 +881,13 @@ int edma_setup(struct ppe_device *ppe_de if (tx_requeue_stop != 0) edma_ctx->tx_requeue_stop = true; @@ -64,8 +62,6 @@ index ae9ca528fd55..428c7b134feb 100644 /* Configure the EDMA common clocks. */ ret = edma_clock_init(); if (ret) { -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h -index ac6d2fcc2983..3f3d253476f6 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma.h +++ b/drivers/net/ethernet/qualcomm/ppe/edma.h @@ -122,6 +122,7 @@ struct edma_intr_info { @@ -84,11 +80,9 @@ index ac6d2fcc2983..3f3d253476f6 100644 u32 rx_page_mode; u32 rx_buf_size; bool tx_requeue_stop; -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c -index bf8854976328..58021df6c950 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c +++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c -@@ -43,6 +43,8 @@ static u32 edma_rx_ring_queue_map[][EDMA_MAX_CORE] = {{ 0, 8, 16, 24 }, +@@ -43,6 +43,8 @@ static u32 edma_rx_ring_queue_map[][EDMA { 6, 14, 22, 30 }, { 7, 15, 23, 31 }}; @@ -126,8 +120,6 @@ index bf8854976328..58021df6c950 100644 + + return ret; +} -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h -index bd897dba286a..53d2e6b39794 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h +++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h @@ -49,6 +49,8 @@ @@ -146,6 +138,3 @@ index bd897dba286a..53d2e6b39794 100644 +int edma_cfg_rx_rps_bitmap(struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos); #endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/105-02-dt-bindings-clock-gcc-ipq9574-Add-definition-for-GPL.patch b/target/linux/qualcommbe/patches-6.6/105-02-dt-bindings-clock-gcc-ipq9574-Add-definition-for-GPL.patch index 4cb241c939..cfd923f064 100644 --- a/target/linux/qualcommbe/patches-6.6/105-02-dt-bindings-clock-gcc-ipq9574-Add-definition-for-GPL.patch +++ b/target/linux/qualcommbe/patches-6.6/105-02-dt-bindings-clock-gcc-ipq9574-Add-definition-for-GPL.patch @@ -13,8 +13,6 @@ Signed-off-by: Manikanta Mylavarapu include/dt-bindings/clock/qcom,ipq9574-gcc.h | 1 + 1 file changed, 1 insertion(+) -diff --git a/include/dt-bindings/clock/qcom,ipq9574-gcc.h b/include/dt-bindings/clock/qcom,ipq9574-gcc.h -index 52123c5a09fa..05ef3074c9da 100644 --- a/include/dt-bindings/clock/qcom,ipq9574-gcc.h +++ b/include/dt-bindings/clock/qcom,ipq9574-gcc.h @@ -220,4 +220,5 @@ @@ -23,6 +21,3 @@ index 52123c5a09fa..05ef3074c9da 100644 #define GCC_PCIE3_PIPE_CLK 213 +#define GPLL0_OUT_AUX 214 #endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/105-03-clk-qcom-gcc-ipq9574-Add-support-for-gpll0_out_aux-c.patch b/target/linux/qualcommbe/patches-6.6/105-03-clk-qcom-gcc-ipq9574-Add-support-for-gpll0_out_aux-c.patch index e90b855aae..512f842ddc 100644 --- a/target/linux/qualcommbe/patches-6.6/105-03-clk-qcom-gcc-ipq9574-Add-support-for-gpll0_out_aux-c.patch +++ b/target/linux/qualcommbe/patches-6.6/105-03-clk-qcom-gcc-ipq9574-Add-support-for-gpll0_out_aux-c.patch @@ -14,11 +14,9 @@ Signed-off-by: Manikanta Mylavarapu drivers/clk/qcom/gcc-ipq9574.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) -diff --git a/drivers/clk/qcom/gcc-ipq9574.c b/drivers/clk/qcom/gcc-ipq9574.c -index 645109f75b46..a458d69e1a98 100644 --- a/drivers/clk/qcom/gcc-ipq9574.c +++ b/drivers/clk/qcom/gcc-ipq9574.c -@@ -108,6 +108,20 @@ static struct clk_alpha_pll_postdiv gpll0 = { +@@ -108,6 +108,20 @@ static struct clk_alpha_pll_postdiv gpll }, }; @@ -39,7 +37,7 @@ index 645109f75b46..a458d69e1a98 100644 static struct clk_alpha_pll gpll4_main = { .offset = 0x22000, .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO], -@@ -4222,6 +4236,7 @@ static struct clk_regmap *gcc_ipq9574_clks[] = { +@@ -4222,6 +4236,7 @@ static struct clk_regmap *gcc_ipq9574_cl [GCC_PCIE1_PIPE_CLK] = &gcc_pcie1_pipe_clk.clkr, [GCC_PCIE2_PIPE_CLK] = &gcc_pcie2_pipe_clk.clkr, [GCC_PCIE3_PIPE_CLK] = &gcc_pcie3_pipe_clk.clkr, @@ -47,6 +45,3 @@ index 645109f75b46..a458d69e1a98 100644 }; static const struct qcom_reset_map gcc_ipq9574_resets[] = { --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/105-04-dt-bindings-clock-Add-ipq9574-NSSCC-clock-and-reset-.patch b/target/linux/qualcommbe/patches-6.6/105-04-dt-bindings-clock-Add-ipq9574-NSSCC-clock-and-reset-.patch index 1efd6ac098..edc0bf6a8c 100644 --- a/target/linux/qualcommbe/patches-6.6/105-04-dt-bindings-clock-Add-ipq9574-NSSCC-clock-and-reset-.patch +++ b/target/linux/qualcommbe/patches-6.6/105-04-dt-bindings-clock-Add-ipq9574-NSSCC-clock-and-reset-.patch @@ -18,9 +18,6 @@ Reviewed-by: Krzysztof Kozlowski create mode 100644 include/dt-bindings/clock/qcom,ipq9574-nsscc.h create mode 100644 include/dt-bindings/reset/qcom,ipq9574-nsscc.h -diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yaml b/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yaml -new file mode 100644 -index 000000000000..14a320079dbf --- /dev/null +++ b/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yaml @@ -0,0 +1,73 @@ @@ -97,9 +94,6 @@ index 000000000000..14a320079dbf + #power-domain-cells = <1>; + }; +... -diff --git a/include/dt-bindings/clock/qcom,ipq9574-nsscc.h b/include/dt-bindings/clock/qcom,ipq9574-nsscc.h -new file mode 100644 -index 000000000000..59d57d9c788c --- /dev/null +++ b/include/dt-bindings/clock/qcom,ipq9574-nsscc.h @@ -0,0 +1,152 @@ @@ -255,9 +249,6 @@ index 000000000000..59d57d9c788c +#define UBI32_PLL_MAIN 141 + +#endif -diff --git a/include/dt-bindings/reset/qcom,ipq9574-nsscc.h b/include/dt-bindings/reset/qcom,ipq9574-nsscc.h -new file mode 100644 -index 000000000000..6910db0cff51 --- /dev/null +++ b/include/dt-bindings/reset/qcom,ipq9574-nsscc.h @@ -0,0 +1,134 @@ @@ -395,6 +386,3 @@ index 000000000000..6910db0cff51 +#define NSSPORT6_RESET 123 + +#endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/105-05-clk-qcom-Add-NSS-clock-Controller-driver-for-IPQ9574.patch b/target/linux/qualcommbe/patches-6.6/105-05-clk-qcom-Add-NSS-clock-Controller-driver-for-IPQ9574.patch index cadb416191..f4111456d4 100644 --- a/target/linux/qualcommbe/patches-6.6/105-05-clk-qcom-Add-NSS-clock-Controller-driver-for-IPQ9574.patch +++ b/target/linux/qualcommbe/patches-6.6/105-05-clk-qcom-Add-NSS-clock-Controller-driver-for-IPQ9574.patch @@ -17,11 +17,9 @@ Signed-off-by: Manikanta Mylavarapu 3 files changed, 3088 insertions(+) create mode 100644 drivers/clk/qcom/nsscc-ipq9574.c -diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig -index a3e2a09e2105..b9a5cc9fd8c8 100644 --- a/drivers/clk/qcom/Kconfig +++ b/drivers/clk/qcom/Kconfig -@@ -255,6 +255,13 @@ config IPQ_GCC_9574 +@@ -215,6 +215,13 @@ config IPQ_GCC_9574 i2c, USB, SD/eMMC, etc. Select this for the root clock of ipq9574. @@ -34,12 +32,10 @@ index a3e2a09e2105..b9a5cc9fd8c8 100644 + config IPQ_NSSCC_QCA8K tristate "QCA8K(QCA8386 or QCA8084) NSS Clock Controller" - depends on MDIO_BUS -diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile -index 2b378667a63f..65b825a54c45 100644 + depends on MDIO_BUS || COMPILE_TEST --- a/drivers/clk/qcom/Makefile +++ b/drivers/clk/qcom/Makefile -@@ -36,6 +36,7 @@ obj-$(CONFIG_IPQ_GCC_6018) += gcc-ipq6018.o +@@ -31,6 +31,7 @@ obj-$(CONFIG_IPQ_GCC_6018) += gcc-ipq601 obj-$(CONFIG_IPQ_GCC_806X) += gcc-ipq806x.o obj-$(CONFIG_IPQ_GCC_8074) += gcc-ipq8074.o obj-$(CONFIG_IPQ_GCC_9574) += gcc-ipq9574.o @@ -47,9 +43,6 @@ index 2b378667a63f..65b825a54c45 100644 obj-$(CONFIG_IPQ_LCC_806X) += lcc-ipq806x.o obj-$(CONFIG_IPQ_NSSCC_QCA8K) += nsscc-qca8k.o obj-$(CONFIG_MDM_GCC_9607) += gcc-mdm9607.o -diff --git a/drivers/clk/qcom/nsscc-ipq9574.c b/drivers/clk/qcom/nsscc-ipq9574.c -new file mode 100644 -index 000000000000..d3e9aa391236 --- /dev/null +++ b/drivers/clk/qcom/nsscc-ipq9574.c @@ -0,0 +1,3080 @@ @@ -3133,6 +3126,3 @@ index 000000000000..d3e9aa391236 + +MODULE_DESCRIPTION("QTI NSS_CC IPQ9574 Driver"); +MODULE_LICENSE("GPL"); --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/105-06-arm64-dts-qcom-ipq9574-Add-nsscc-node.patch b/target/linux/qualcommbe/patches-6.6/105-06-arm64-dts-qcom-ipq9574-Add-nsscc-node.patch index bf3f72449f..fd5ed0504b 100644 --- a/target/linux/qualcommbe/patches-6.6/105-06-arm64-dts-qcom-ipq9574-Add-nsscc-node.patch +++ b/target/linux/qualcommbe/patches-6.6/105-06-arm64-dts-qcom-ipq9574-Add-nsscc-node.patch @@ -11,11 +11,9 @@ Signed-off-by: Manikanta Mylavarapu arch/arm64/boot/dts/qcom/ipq9574.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -index 08a82a5cf667..c113fff22f73 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -@@ -11,6 +11,8 @@ +@@ -12,6 +12,8 @@ #include #include #include @@ -24,7 +22,7 @@ index 08a82a5cf667..c113fff22f73 100644 #include / { -@@ -756,6 +758,26 @@ frame@b128000 { +@@ -804,6 +806,26 @@ status = "disabled"; }; }; @@ -51,6 +49,3 @@ index 08a82a5cf667..c113fff22f73 100644 }; thermal-zones { --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/106-arm64-dts-qcom-fix-USB-vdda-pll-supply-for-ipq9574-r.patch b/target/linux/qualcommbe/patches-6.6/106-arm64-dts-qcom-fix-USB-vdda-pll-supply-for-ipq9574-r.patch index cd33abda68..0f36d32cfa 100644 --- a/target/linux/qualcommbe/patches-6.6/106-arm64-dts-qcom-fix-USB-vdda-pll-supply-for-ipq9574-r.patch +++ b/target/linux/qualcommbe/patches-6.6/106-arm64-dts-qcom-fix-USB-vdda-pll-supply-for-ipq9574-r.patch @@ -13,11 +13,9 @@ Signed-off-by: Christian Marangi arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi -index 13b623603d37..68b71437c2b9 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi -@@ -249,7 +249,7 @@ ipq9574_s1: s1 { +@@ -75,7 +75,7 @@ regulator-max-microvolt = <1075000>; }; @@ -26,7 +24,7 @@ index 13b623603d37..68b71437c2b9 100644 regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; -@@ -290,7 +290,7 @@ &usb_0_dwc3 { +@@ -102,7 +102,7 @@ }; &usb_0_qmpphy { @@ -35,7 +33,7 @@ index 13b623603d37..68b71437c2b9 100644 vdda-phy-supply = <®ulator_fixed_0p925>; status = "okay"; -@@ -298,7 +298,7 @@ &usb_0_qmpphy { +@@ -110,7 +110,7 @@ &usb_0_qusbphy { vdd-supply = <®ulator_fixed_0p925>; @@ -44,6 +42,3 @@ index 13b623603d37..68b71437c2b9 100644 vdda-phy-dpdm-supply = <®ulator_fixed_3p3>; status = "okay"; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/200-01-arm64-dts-qcom-ipq9574-Add-PCS-UNIPHY-device-tree-su.patch b/target/linux/qualcommbe/patches-6.6/200-01-arm64-dts-qcom-ipq9574-Add-PCS-UNIPHY-device-tree-su.patch index 6f4a69a6ae..c020957aa7 100644 --- a/target/linux/qualcommbe/patches-6.6/200-01-arm64-dts-qcom-ipq9574-Add-PCS-UNIPHY-device-tree-su.patch +++ b/target/linux/qualcommbe/patches-6.6/200-01-arm64-dts-qcom-ipq9574-Add-PCS-UNIPHY-device-tree-su.patch @@ -19,8 +19,6 @@ Signed-off-by: Lei Wei arch/arm64/boot/dts/qcom/ipq9574.dtsi | 110 +++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -index 02cf318e3d17..ce3a1b5d70ea 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi @@ -3,7 +3,7 @@ @@ -32,7 +30,7 @@ index 02cf318e3d17..ce3a1b5d70ea 100644 */ #include -@@ -776,6 +776,114 @@ frame@b128000 { +@@ -826,6 +826,114 @@ #power-domain-cells = <1>; #interconnect-cells = <1>; }; @@ -147,6 +145,3 @@ index 02cf318e3d17..ce3a1b5d70ea 100644 }; thermal-zones { --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/200-02-arm64-dts-qcom-Add-IPQ9574-MDIO-device-node.patch b/target/linux/qualcommbe/patches-6.6/200-02-arm64-dts-qcom-Add-IPQ9574-MDIO-device-node.patch index 01ed26dacd..ff16521d91 100644 --- a/target/linux/qualcommbe/patches-6.6/200-02-arm64-dts-qcom-Add-IPQ9574-MDIO-device-node.patch +++ b/target/linux/qualcommbe/patches-6.6/200-02-arm64-dts-qcom-Add-IPQ9574-MDIO-device-node.patch @@ -13,11 +13,9 @@ Signed-off-by: Luo Jie arch/arm64/boot/dts/qcom/ipq9574.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -index 07a96d26b359..ef82935e7ef5 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -@@ -256,6 +256,8 @@ rng: rng@e3000 { +@@ -251,6 +251,8 @@ mdio: mdio@90000 { compatible = "qcom,ipq9574-mdio", "qcom,ipq4019-mdio"; reg = <0x00090000 0x64>; @@ -26,7 +24,7 @@ index 07a96d26b359..ef82935e7ef5 100644 #address-cells = <1>; #size-cells = <0>; clocks = <&gcc GCC_MDIO_AHB_CLK>; -@@ -315,6 +317,22 @@ tlmm: pinctrl@1000000 { +@@ -322,6 +324,22 @@ interrupt-controller; #interrupt-cells = <2>; @@ -49,6 +47,3 @@ index 07a96d26b359..ef82935e7ef5 100644 uart2_pins: uart2-state { pins = "gpio34", "gpio35"; function = "blsp2_uart"; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/200-03-arm64-dts-qcom-Add-IPQ9574-PPE-base-device-node.patch b/target/linux/qualcommbe/patches-6.6/200-03-arm64-dts-qcom-Add-IPQ9574-PPE-base-device-node.patch index 49c1ef3fa2..f33bb0ebdd 100644 --- a/target/linux/qualcommbe/patches-6.6/200-03-arm64-dts-qcom-Add-IPQ9574-PPE-base-device-node.patch +++ b/target/linux/qualcommbe/patches-6.6/200-03-arm64-dts-qcom-Add-IPQ9574-PPE-base-device-node.patch @@ -13,11 +13,9 @@ Signed-off-by: Luo Jie arch/arm64/boot/dts/qcom/ipq9574.dtsi | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -index ce3a1b5d70ea..07a96d26b359 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -@@ -884,6 +884,44 @@ pcsuniphy2_ch0: uniphy-ch@0 { +@@ -952,6 +952,44 @@ "ch_tx"; }; }; @@ -62,6 +60,3 @@ index ce3a1b5d70ea..07a96d26b359 100644 }; thermal-zones { --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/200-04-arm64-dts-qcom-Add-EDMA-node-for-IPQ9574.patch b/target/linux/qualcommbe/patches-6.6/200-04-arm64-dts-qcom-Add-EDMA-node-for-IPQ9574.patch index 61f7d376d8..8c3a0ac6e4 100644 --- a/target/linux/qualcommbe/patches-6.6/200-04-arm64-dts-qcom-Add-EDMA-node-for-IPQ9574.patch +++ b/target/linux/qualcommbe/patches-6.6/200-04-arm64-dts-qcom-Add-EDMA-node-for-IPQ9574.patch @@ -12,11 +12,9 @@ Signed-off-by: Pavithra R arch/arm64/boot/dts/qcom/ipq9574.dtsi | 68 +++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -index ef82935e7ef5..61f9a7ee7282 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -@@ -939,6 +939,74 @@ &gcc SLAVE_NSSNOC_MEMNOC>, +@@ -989,6 +989,74 @@ "nssnoc_memnoc", "memnoc_nssnoc", "memnoc_nssnoc_1"; @@ -91,6 +89,3 @@ index ef82935e7ef5..61f9a7ee7282 100644 }; }; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/200-05-arm64-dts-qcom-Add-IPQ9574-RDP433-port-node.patch b/target/linux/qualcommbe/patches-6.6/200-05-arm64-dts-qcom-Add-IPQ9574-RDP433-port-node.patch index 73c0c12493..d48b34293d 100644 --- a/target/linux/qualcommbe/patches-6.6/200-05-arm64-dts-qcom-Add-IPQ9574-RDP433-port-node.patch +++ b/target/linux/qualcommbe/patches-6.6/200-05-arm64-dts-qcom-Add-IPQ9574-RDP433-port-node.patch @@ -16,8 +16,6 @@ Signed-off-by: Lei Wei arch/arm64/boot/dts/qcom/ipq9574.dtsi | 2 +- 2 files changed, 169 insertions(+), 2 deletions(-) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts -index 1bb8d96c9a82..1bbe4c258c15 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts @@ -3,11 +3,13 @@ @@ -29,13 +27,13 @@ index 1bb8d96c9a82..1bbe4c258c15 100644 */ /dts-v1/; - + +#include + #include "ipq9574-rdp-common.dtsi" - + / { -@@ -15,6 +15,46 @@ / { +@@ -15,6 +17,46 @@ compatible = "qcom,ipq9574-ap-al02-c7", "qcom,ipq9574"; }; @@ -82,8 +80,8 @@ index 1bb8d96c9a82..1bbe4c258c15 100644 &sdhc_1 { pinctrl-0 = <&sdc_default_state>; pinctrl-names = "default"; -@@ -60,3 +100,130 @@ rclk-pins { - }; +@@ -103,3 +145,130 @@ + nand-ecc-step-size = <512>; }; }; + @@ -213,11 +211,9 @@ index 1bb8d96c9a82..1bbe4c258c15 100644 + }; + }; +}; -diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -index 61f9a7ee7282..5c7b47979b79 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -@@ -903,7 +903,7 @@ pcsuniphy2_ch0: uniphy-ch@0 { +@@ -953,7 +953,7 @@ }; }; @@ -226,6 +222,3 @@ index 61f9a7ee7282..5c7b47979b79 100644 compatible = "qcom,ipq9574-ppe"; reg = <0x3a000000 0xbef800>; ranges; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/300-dt-bindings-clock-Add-clock-ID-for-IPQ-PCS-UNIPHY.patch b/target/linux/qualcommbe/patches-6.6/300-dt-bindings-clock-Add-clock-ID-for-IPQ-PCS-UNIPHY.patch index c33bee9f02..a4aafc2fea 100644 --- a/target/linux/qualcommbe/patches-6.6/300-dt-bindings-clock-Add-clock-ID-for-IPQ-PCS-UNIPHY.patch +++ b/target/linux/qualcommbe/patches-6.6/300-dt-bindings-clock-Add-clock-ID-for-IPQ-PCS-UNIPHY.patch @@ -13,9 +13,6 @@ Signed-off-by: Christian Marangi 1 file changed, 13 insertions(+) create mode 100644 include/dt-bindings/clock/qcom,ipq-pcs-uniphy.h -diff --git a/include/dt-bindings/clock/qcom,ipq-pcs-uniphy.h b/include/dt-bindings/clock/qcom,ipq-pcs-uniphy.h -new file mode 100644 -index 000000000000..c47d7191cda5 --- /dev/null +++ b/include/dt-bindings/clock/qcom,ipq-pcs-uniphy.h @@ -0,0 +1,13 @@ @@ -32,6 +29,3 @@ index 000000000000..c47d7191cda5 +#define UNIPHY_NSS_TX_CLK 1 + +#endif --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/301-net-ethernet-qualcomm-Add-support-for-label-property.patch b/target/linux/qualcommbe/patches-6.6/301-net-ethernet-qualcomm-Add-support-for-label-property.patch index 2fb1260256..85a7bd6cd3 100644 --- a/target/linux/qualcommbe/patches-6.6/301-net-ethernet-qualcomm-Add-support-for-label-property.patch +++ b/target/linux/qualcommbe/patches-6.6/301-net-ethernet-qualcomm-Add-support-for-label-property.patch @@ -15,11 +15,9 @@ Signed-off-by: Christian Marangi drivers/net/ethernet/qualcomm/ppe/edma_port.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) -diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.c b/drivers/net/ethernet/qualcomm/ppe/edma_port.c -index 0b3b769a4a49..6730cee5d6c9 100644 --- a/drivers/net/ethernet/qualcomm/ppe/edma_port.c +++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.c -@@ -355,13 +355,25 @@ int edma_port_setup(struct ppe_port *port) +@@ -355,13 +355,25 @@ int edma_port_setup(struct ppe_port *por int port_id = port->port_id; struct net_device *netdev; u8 mac_addr[ETH_ALEN]; @@ -48,6 +46,3 @@ index 0b3b769a4a49..6730cee5d6c9 100644 return -ENOMEM; } --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/302-arm64-dts-qcom-Add-missing-clock-for-nsscc-from-pcs-.patch b/target/linux/qualcommbe/patches-6.6/302-arm64-dts-qcom-Add-missing-clock-for-nsscc-from-pcs-.patch index 34247e9c72..c7b7ea14b6 100644 --- a/target/linux/qualcommbe/patches-6.6/302-arm64-dts-qcom-Add-missing-clock-for-nsscc-from-pcs-.patch +++ b/target/linux/qualcommbe/patches-6.6/302-arm64-dts-qcom-Add-missing-clock-for-nsscc-from-pcs-.patch @@ -11,8 +11,6 @@ Signed-off-by: Christian Marangi arch/arm64/boot/dts/qcom/ipq9574.dtsi | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi -index 5aa456bc0e03..2785e1ba1ca9 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi @@ -14,6 +14,7 @@ @@ -23,7 +21,7 @@ index 5aa456bc0e03..2785e1ba1ca9 100644 #include / { -@@ -809,12 +810,12 @@ nsscc: clock-controller@39b00000 { +@@ -832,12 +833,12 @@ <&cmn_pll NSS_1200MHZ_CLK>, <&cmn_pll PPE_353MHZ_CLK>, <&gcc GPLL0_OUT_AUX>, @@ -42,6 +40,3 @@ index 5aa456bc0e03..2785e1ba1ca9 100644 <&gcc GCC_NSSCC_CLK>; #clock-cells = <1>; #reset-cells = <1>; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/303-arm64-dts-qcom-add-partition-table-for-ipq9574-rdp-c.patch b/target/linux/qualcommbe/patches-6.6/303-arm64-dts-qcom-add-partition-table-for-ipq9574-rdp-c.patch index c8917fa34e..526d559e34 100644 --- a/target/linux/qualcommbe/patches-6.6/303-arm64-dts-qcom-add-partition-table-for-ipq9574-rdp-c.patch +++ b/target/linux/qualcommbe/patches-6.6/303-arm64-dts-qcom-add-partition-table-for-ipq9574-rdp-c.patch @@ -11,11 +11,9 @@ Signed-off-by: Christian Marangi .../boot/dts/qcom/ipq9574-rdp-common.dtsi | 146 +++++++++++++++++- 1 file changed, 145 insertions(+), 1 deletion(-) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi -index 9a8692377176..13b623603d37 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi -@@ -74,11 +74,155 @@ &blsp1_spi0 { +@@ -44,11 +44,155 @@ status = "okay"; flash@0 { @@ -172,6 +170,3 @@ index 9a8692377176..13b623603d37 100644 }; }; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/304-dts-qcom-add-AQR-NVMEM-node-for-IPQ9574-RDP433-board.patch b/target/linux/qualcommbe/patches-6.6/304-dts-qcom-add-AQR-NVMEM-node-for-IPQ9574-RDP433-board.patch index b37a9d3bb7..4de13b73ab 100644 --- a/target/linux/qualcommbe/patches-6.6/304-dts-qcom-add-AQR-NVMEM-node-for-IPQ9574-RDP433-board.patch +++ b/target/linux/qualcommbe/patches-6.6/304-dts-qcom-add-AQR-NVMEM-node-for-IPQ9574-RDP433-board.patch @@ -11,11 +11,9 @@ Signed-off-by: Christian Marangi arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts | 6 ++++++ 1 file changed, 6 insertions(+) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts -index d56abe92c24e..44407ebbe06a 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts -@@ -49,11 +49,17 @@ phy3: ethernet-phy@13 { +@@ -49,11 +49,17 @@ phy4: ethernet-phy@8 { compatible ="ethernet-phy-ieee802.3-c45"; reg = <8>; @@ -33,6 +31,3 @@ index d56abe92c24e..44407ebbe06a 100644 }; }; --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/305-net-ethernet-qualcomm-ppe-Fix-unmet-dependency-with-.patch b/target/linux/qualcommbe/patches-6.6/305-net-ethernet-qualcomm-ppe-Fix-unmet-dependency-with-.patch index a2c7061438..8cb83ae4dc 100644 --- a/target/linux/qualcommbe/patches-6.6/305-net-ethernet-qualcomm-ppe-Fix-unmet-dependency-with-.patch +++ b/target/linux/qualcommbe/patches-6.6/305-net-ethernet-qualcomm-ppe-Fix-unmet-dependency-with-.patch @@ -18,8 +18,6 @@ Signed-off-by: Christian Marangi drivers/net/ethernet/qualcomm/Kconfig | 1 - 1 file changed, 1 deletion(-) -diff --git a/drivers/net/ethernet/qualcomm/Kconfig b/drivers/net/ethernet/qualcomm/Kconfig -index a96f6acd4561..364d7e8ea7bf 100644 --- a/drivers/net/ethernet/qualcomm/Kconfig +++ b/drivers/net/ethernet/qualcomm/Kconfig @@ -68,7 +68,6 @@ config QCOM_PPE @@ -30,6 +28,3 @@ index a96f6acd4561..364d7e8ea7bf 100644 help This driver supports the Qualcomm Technologies, Inc. packet process engine (PPE) available with IPQ SoC. The PPE houses --- -2.45.2 - diff --git a/target/linux/qualcommbe/patches-6.6/900-arm64-dts-qcom-Add-label-to-EDMA-port-for-IPQ9574-RD.patch b/target/linux/qualcommbe/patches-6.6/900-arm64-dts-qcom-Add-label-to-EDMA-port-for-IPQ9574-RD.patch index c5815a407d..f8c95d28d6 100644 --- a/target/linux/qualcommbe/patches-6.6/900-arm64-dts-qcom-Add-label-to-EDMA-port-for-IPQ9574-RD.patch +++ b/target/linux/qualcommbe/patches-6.6/900-arm64-dts-qcom-Add-label-to-EDMA-port-for-IPQ9574-RD.patch @@ -10,11 +10,9 @@ Signed-off-by: Christian Marangi arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts | 6 ++++++ 1 file changed, 6 insertions(+) -diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts -index f835ff9f4b28..d56abe92c24e 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts -@@ -112,6 +112,7 @@ port@1 { +@@ -161,6 +161,7 @@ reg = <1>; phy-mode = "qsgmii"; managed = "in-band-status"; @@ -22,7 +20,7 @@ index f835ff9f4b28..d56abe92c24e 100644 phy-handle = <&phy0>; pcs-handle = <&pcsuniphy0_ch0>; clocks = <&nsscc NSS_CC_PORT1_MAC_CLK>, -@@ -132,6 +133,7 @@ port@2 { +@@ -181,6 +182,7 @@ reg = <2>; phy-mode = "qsgmii"; managed = "in-band-status"; @@ -30,7 +28,7 @@ index f835ff9f4b28..d56abe92c24e 100644 phy-handle = <&phy1>; pcs-handle = <&pcsuniphy0_ch1>; clocks = <&nsscc NSS_CC_PORT2_MAC_CLK>, -@@ -152,6 +154,7 @@ port@3 { +@@ -201,6 +203,7 @@ reg = <3>; phy-mode = "qsgmii"; managed = "in-band-status"; @@ -38,7 +36,7 @@ index f835ff9f4b28..d56abe92c24e 100644 phy-handle = <&phy2>; pcs-handle = <&pcsuniphy0_ch2>; clocks = <&nsscc NSS_CC_PORT3_MAC_CLK>, -@@ -172,6 +175,7 @@ port@4 { +@@ -221,6 +224,7 @@ reg = <4>; phy-mode = "qsgmii"; managed = "in-band-status"; @@ -46,7 +44,7 @@ index f835ff9f4b28..d56abe92c24e 100644 phy-handle = <&phy3>; pcs-handle = <&pcsuniphy0_ch3>; clocks = <&nsscc NSS_CC_PORT4_MAC_CLK>, -@@ -192,6 +196,7 @@ port@5 { +@@ -241,6 +245,7 @@ reg = <5>; phy-mode = "usxgmii"; managed = "in-band-status"; @@ -54,7 +52,7 @@ index f835ff9f4b28..d56abe92c24e 100644 phy-handle = <&phy4>; pcs-handle = <&pcsuniphy1_ch0>; clocks = <&nsscc NSS_CC_PORT5_MAC_CLK>, -@@ -212,6 +217,7 @@ port@6 { +@@ -261,6 +266,7 @@ reg = <6>; phy-mode = "usxgmii"; managed = "in-band-status"; @@ -62,6 +60,3 @@ index f835ff9f4b28..d56abe92c24e 100644 phy-handle = <&phy5>; pcs-handle = <&pcsuniphy2_ch0>; clocks = <&nsscc NSS_CC_PORT6_MAC_CLK>, --- -2.45.2 - From 9790417109bb9ae0649f40016173e8622703b186 Mon Sep 17 00:00:00 2001 From: John Audia Date: Sun, 9 Feb 2025 10:10:31 -0500 Subject: [PATCH 05/13] kernel: bump 6.6 to 6.6.75 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.75 All patches automatically rebased. Signed-off-by: John Audia Link: https://github.com/openwrt/openwrt/pull/17822 Signed-off-by: Hauke Mehrtens --- include/kernel-6.6 | 4 ++-- ...-for-all-the-downstream-rpi-sound-card-dr.patch | 4 ++-- ...-device-quirks-for-Freeway-Airmouse-T3-an.patch | 2 +- ...-v3d-Suppress-all-but-the-first-MMU-error.patch | 6 +++--- ...-debugfs-end-points-to-query-GPU-usage-st.patch | 14 +++++++------- ...v3d-fix-up-register-addresses-for-V3D-7.x.patch | 12 ++++++------ ...jecting-with-source-address-failed-policy.patch | 14 +++++++------- .../generic/pending-6.6/834-ledtrig-libata.patch | 6 +++--- 8 files changed, 31 insertions(+), 31 deletions(-) diff --git a/include/kernel-6.6 b/include/kernel-6.6 index 277669c390..4586ce50c3 100644 --- a/include/kernel-6.6 +++ b/include/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .74 -LINUX_KERNEL_HASH-6.6.74 = f15e2b1a8bab0eba494b07858a5abc88d8f788e25f6fe4a572a77840bbd5494d +LINUX_VERSION-6.6 = .75 +LINUX_KERNEL_HASH-6.6.75 = f7dfb1fa9716ba139d0b4c8161535816d400dea21d5943f513448429b1790290 diff --git a/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch b/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch index fe0e2275f1..7808827ee8 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch @@ -14927,7 +14927,7 @@ Signed-off-by: Phil Elwell config SND_SOC_TFA989X tristate "NXP/Goodix TFA989X (TFA1) amplifiers" depends on I2C -@@ -2404,4 +2422,8 @@ config SND_SOC_LPASS_TX_MACRO +@@ -2405,4 +2423,8 @@ config SND_SOC_LPASS_TX_MACRO select SND_SOC_LPASS_MACRO_COMMON tristate "Qualcomm TX Macro in LPASS(Low Power Audio SubSystem)" @@ -17583,7 +17583,7 @@ Signed-off-by: Phil Elwell * For devices with more than one control interface, we assume the --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c -@@ -2249,6 +2249,8 @@ static const struct usb_audio_quirk_flag +@@ -2251,6 +2251,8 @@ static const struct usb_audio_quirk_flag QUIRK_FLAG_ALIGN_TRANSFER), DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */ QUIRK_FLAG_ALIGN_TRANSFER), diff --git a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch index a65d198d21..afdb5aca08 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch @@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1406,6 +1409,9 @@ +@@ -1405,6 +1408,9 @@ #define USB_VENDOR_ID_XIAOMI 0x2717 #define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014 diff --git a/target/linux/bcm27xx/patches-6.6/950-0183-drm-v3d-Suppress-all-but-the-first-MMU-error.patch b/target/linux/bcm27xx/patches-6.6/950-0183-drm-v3d-Suppress-all-but-the-first-MMU-error.patch index eeb65bbd40..d41fab9d94 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0183-drm-v3d-Suppress-all-but-the-first-MMU-error.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0183-drm-v3d-Suppress-all-but-the-first-MMU-error.patch @@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell --- a/drivers/gpu/drm/v3d/v3d_irq.c +++ b/drivers/gpu/drm/v3d/v3d_irq.c -@@ -181,6 +181,7 @@ v3d_hub_irq(int irq, void *arg) +@@ -189,6 +189,7 @@ v3d_hub_irq(int irq, void *arg) "GMP", }; const char *client = "?"; @@ -21,7 +21,7 @@ Signed-off-by: Phil Elwell V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL)); -@@ -190,6 +191,7 @@ v3d_hub_irq(int irq, void *arg) +@@ -198,6 +199,7 @@ v3d_hub_irq(int irq, void *arg) client = v3d41_axi_ids[axi_id]; } @@ -29,7 +29,7 @@ Signed-off-by: Phil Elwell dev_err(v3d->drm.dev, "MMU error from client %s (%d) at 0x%llx%s%s%s\n", client, axi_id, (long long)vio_addr, ((intsts & V3D_HUB_INT_MMU_WRV) ? -@@ -198,6 +200,7 @@ v3d_hub_irq(int irq, void *arg) +@@ -206,6 +208,7 @@ v3d_hub_irq(int irq, void *arg) ", pte invalid" : ""), ((intsts & V3D_HUB_INT_MMU_CAP) ? ", cap exceeded" : "")); diff --git a/target/linux/bcm27xx/patches-6.6/950-0464-drm-v3d-New-debugfs-end-points-to-query-GPU-usage-st.patch b/target/linux/bcm27xx/patches-6.6/950-0464-drm-v3d-New-debugfs-end-points-to-query-GPU-usage-st.patch index 01e267fd48..6e546e6754 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0464-drm-v3d-New-debugfs-end-points-to-query-GPU-usage-st.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0464-drm-v3d-New-debugfs-end-points-to-query-GPU-usage-st.patch @@ -257,31 +257,31 @@ Signed-off-by: Jose Maria Casanova Crespo + v3d->gpu_queue_stats[V3D_BIN].last_exec_end = local_clock(); trace_v3d_bcl_irq(&v3d->drm, fence->seqno); - dma_fence_signal(&fence->base); -@@ -110,6 +112,7 @@ v3d_irq(int irq, void *arg) + +@@ -112,6 +114,7 @@ v3d_irq(int irq, void *arg) if (intsts & V3D_INT_FRDONE) { struct v3d_fence *fence = to_v3d_fence(v3d->render_job->base.irq_fence); + v3d->gpu_queue_stats[V3D_RENDER].last_exec_end = local_clock(); trace_v3d_rcl_irq(&v3d->drm, fence->seqno); - dma_fence_signal(&fence->base); -@@ -120,6 +123,7 @@ v3d_irq(int irq, void *arg) + +@@ -124,6 +127,7 @@ v3d_irq(int irq, void *arg) if (intsts & V3D_INT_CSDDONE) { struct v3d_fence *fence = to_v3d_fence(v3d->csd_job->base.irq_fence); + v3d->gpu_queue_stats[V3D_CSD].last_exec_end = local_clock(); trace_v3d_csd_irq(&v3d->drm, fence->seqno); - dma_fence_signal(&fence->base); -@@ -157,6 +161,7 @@ v3d_hub_irq(int irq, void *arg) + +@@ -163,6 +167,7 @@ v3d_hub_irq(int irq, void *arg) if (intsts & V3D_HUB_INT_TFUC) { struct v3d_fence *fence = to_v3d_fence(v3d->tfu_job->base.irq_fence); + v3d->gpu_queue_stats[V3D_TFU].last_exec_end = local_clock(); trace_v3d_tfu_irq(&v3d->drm, fence->seqno); - dma_fence_signal(&fence->base); + --- a/drivers/gpu/drm/v3d/v3d_sched.c +++ b/drivers/gpu/drm/v3d/v3d_sched.c @@ -19,6 +19,7 @@ diff --git a/target/linux/bcm27xx/patches-6.6/950-0555-drm-v3d-fix-up-register-addresses-for-V3D-7.x.patch b/target/linux/bcm27xx/patches-6.6/950-0555-drm-v3d-fix-up-register-addresses-for-V3D-7.x.patch index 560c2f627f..ca8a34e8e1 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0555-drm-v3d-fix-up-register-addresses-for-V3D-7.x.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0555-drm-v3d-fix-up-register-addresses-for-V3D-7.x.patch @@ -295,7 +295,7 @@ v2: fix kernel panic with debug-fs interface to list registers static irqreturn_t v3d_hub_irq(int irq, void *arg); -@@ -120,7 +121,8 @@ v3d_irq(int irq, void *arg) +@@ -124,7 +125,8 @@ v3d_irq(int irq, void *arg) status = IRQ_HANDLED; } @@ -305,7 +305,7 @@ v2: fix kernel panic with debug-fs interface to list registers struct v3d_fence *fence = to_v3d_fence(v3d->csd_job->base.irq_fence); v3d->gpu_queue_stats[V3D_CSD].last_exec_end = local_clock(); -@@ -134,7 +136,7 @@ v3d_irq(int irq, void *arg) +@@ -140,7 +142,7 @@ v3d_irq(int irq, void *arg) /* We shouldn't be triggering these if we have GMP in * always-allowed mode. */ @@ -314,7 +314,7 @@ v2: fix kernel panic with debug-fs interface to list registers dev_err(v3d->drm.dev, "GMP violation\n"); /* V3D 4.2 wires the hub and core IRQs together, so if we & -@@ -209,6 +211,11 @@ v3d_hub_irq(int irq, void *arg) +@@ -217,6 +219,11 @@ v3d_hub_irq(int irq, void *arg) status = IRQ_HANDLED; } @@ -326,7 +326,7 @@ v2: fix kernel panic with debug-fs interface to list registers return status; } -@@ -223,8 +230,8 @@ v3d_irq_init(struct v3d_dev *v3d) +@@ -231,8 +238,8 @@ v3d_irq_init(struct v3d_dev *v3d) * for us. */ for (core = 0; core < v3d->cores; core++) @@ -337,7 +337,7 @@ v2: fix kernel panic with debug-fs interface to list registers irq1 = platform_get_irq_optional(v3d_to_pdev(v3d), 1); if (irq1 == -EPROBE_DEFER) -@@ -268,12 +275,12 @@ v3d_irq_enable(struct v3d_dev *v3d) +@@ -276,12 +283,12 @@ v3d_irq_enable(struct v3d_dev *v3d) /* Enable our set of interrupts, masking out any others. */ for (core = 0; core < v3d->cores; core++) { @@ -354,7 +354,7 @@ v2: fix kernel panic with debug-fs interface to list registers } void -@@ -288,8 +295,8 @@ v3d_irq_disable(struct v3d_dev *v3d) +@@ -296,8 +303,8 @@ v3d_irq_disable(struct v3d_dev *v3d) /* Clear any pending interrupts we might have left. */ for (core = 0; core < v3d->cores; core++) diff --git a/target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 9cf9117d09..e239d20409 100644 --- a/target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -6284,6 +6315,8 @@ static int ip6_route_dev_notify(struct n +@@ -6299,6 +6330,8 @@ static int ip6_route_dev_notify(struct n #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); @@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -6295,6 +6328,7 @@ static int ip6_route_dev_notify(struct n +@@ -6310,6 +6343,7 @@ static int ip6_route_dev_notify(struct n in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); #ifdef CONFIG_IPV6_MULTIPLE_TABLES in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); #endif } -@@ -6495,6 +6529,8 @@ static int __net_init ip6_route_net_init +@@ -6510,6 +6544,8 @@ static int __net_init ip6_route_net_init #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.fib6_has_custom_rules = false; @@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, sizeof(*net->ipv6.ip6_prohibit_entry), GFP_KERNEL); -@@ -6505,11 +6541,21 @@ static int __net_init ip6_route_net_init +@@ -6520,11 +6556,21 @@ static int __net_init ip6_route_net_init ip6_template_metrics, true); INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->dst.rt_uncached); @@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, ip6_template_metrics, true); -@@ -6536,6 +6582,8 @@ out: +@@ -6551,6 +6597,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -6555,6 +6603,7 @@ static void __net_exit ip6_route_net_exi +@@ -6570,6 +6618,7 @@ static void __net_exit ip6_route_net_exi kfree(net->ipv6.ip6_null_entry); #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); @@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski kfree(net->ipv6.ip6_blk_hole_entry); #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); -@@ -6638,6 +6687,9 @@ void __init ip6_route_init_special_entri +@@ -6653,6 +6702,9 @@ void __init ip6_route_init_special_entri init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); diff --git a/target/linux/generic/pending-6.6/834-ledtrig-libata.patch b/target/linux/generic/pending-6.6/834-ledtrig-libata.patch index 672d0d54cf..75fe4dca90 100644 --- a/target/linux/generic/pending-6.6/834-ledtrig-libata.patch +++ b/target/linux/generic/pending-6.6/834-ledtrig-libata.patch @@ -73,7 +73,7 @@ Signed-off-by: Daniel Golle /* clear exclusive status */ if (unlikely(qc->flags & ATA_QCFLAG_CLEAR_EXCL && -@@ -5494,6 +5508,9 @@ struct ata_port *ata_port_alloc(struct a +@@ -5502,6 +5516,9 @@ struct ata_port *ata_port_alloc(struct a ap->stats.unhandled_irq = 1; ap->stats.idle_irq = 1; #endif @@ -83,7 +83,7 @@ Signed-off-by: Daniel Golle ata_sff_port_init(ap); return ap; -@@ -5507,6 +5524,12 @@ void ata_port_free(struct ata_port *ap) +@@ -5515,6 +5532,12 @@ void ata_port_free(struct ata_port *ap) kfree(ap->pmp_link); kfree(ap->slave_link); kfree(ap->ncq_sense_buf); @@ -96,7 +96,7 @@ Signed-off-by: Daniel Golle kfree(ap); } EXPORT_SYMBOL_GPL(ata_port_free); -@@ -5929,7 +5952,23 @@ int ata_host_register(struct ata_host *h +@@ -5937,7 +5960,23 @@ int ata_host_register(struct ata_host *h host->ports[i]->print_id = atomic_inc_return(&ata_print_id); host->ports[i]->local_port_no = i + 1; } From 84e370f16ca044896e6529d683067c17b565e6fa Mon Sep 17 00:00:00 2001 From: John Audia Date: Sun, 9 Feb 2025 07:49:50 -0500 Subject: [PATCH 06/13] kernel: bump 6.6 to 6.6.76 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.76 Manually rebased: bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch imx/patches-6.6/600-PCI-imx6-Start-link-at-max-gen-first-for-IMX8MM-and-IMX8MP.patch Removed upstreamed: bcm27xx/patches-6.6/950-1446-media-i2c-ov9282-Correct-the-exposure-offset.patch[1] bcm47xx/patches-6.6/701-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch[2] bcm53xx/patches-6.6/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch[3] ramips/patches-6.6/003-v6.14-clk-ralink-mtmips-remove-duplicated-xtal-clock-for-Ralink.patch[4] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.76&id=11c7649c9ec3dcaf0a7760551ad30747d9e02d81 2, 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.76&id=5e6e723675e54ced5200bcc367e2526badc4070c 4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.76&id=d0edcd0d18d700d76c61c091a24568b8b8c3b387 Build system: x86/64 Build-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Run-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Signed-off-by: John Audia Link: https://github.com/openwrt/openwrt/pull/17822 Signed-off-by: Hauke Mehrtens --- include/kernel-6.6 | 4 +-- .../105-uart-add-en7523-support.patch | 2 +- ...kip-reset-control-for-syscon-devices.patch | 8 ++--- .../900-unaligned_access_hacks.patch | 6 ++-- ...ci-add-quirk-for-host-controllers-th.patch | 4 +-- ...all-the-downstream-rpi-sound-card-dr.patch | 2 +- ...und-for-bogus-SET_DEQ_PENDING-endpoi.patch | 2 +- ...53x-Add-ti-tca9554-compatible-string.patch | 2 +- ...-quirks-add-link-TRB-quirk-for-VL805.patch | 2 +- ...5-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch | 6 ++-- ...mstb-Allow-to-build-for-ARCH_BCM2835.patch | 12 +++---- ...wc3-Set-DMA-and-coherent-masks-early.patch | 16 ++++----- ...rcmstb-Use-dynamic-GPIO-base-numbers.patch | 14 ++++---- ...-add-FS-LS-bus-instance-parkmode-dis.patch | 2 +- ...d-support-for-setting-NAK-enhancemen.patch | 2 +- ...-prevent-a-theoretical-race-on-non-c.patch | 2 +- ...c-ov9282-Correct-the-exposure-offset.patch | 31 ----------------- ...-announce-support-for-SER_RS485_RTS_.patch | 2 +- ...-frame-size-to-support-just-MTU-1500.patch | 33 ------------------- ...-frame-size-to-support-just-MTU-1500.patch | 33 ------------------- ...nand-Support-write-protection-settin.patch | 2 +- ...-to-use-SMP-threads-for-backlog-NAPI.patch | 8 ++--- ...-net-Make-USO-depend-on-CSUM-offload.patch | 6 ++-- ...64-if-device-if-driver-is-configured.patch | 2 +- ...-create-a-dummy-net_device-allocator.patch | 6 ++-- ...et-free_netdev-exit-earlier-if-dummy.patch | 2 +- .../hack-6.6/773-bgmac-add-srab-switch.patch | 4 +-- ...ow_offload-handle-netdevice-events-f.patch | 2 +- ...les-ignore-EOPNOTSUPP-on-flowtable-d.patch | 2 +- ...les-fix-bidirectional-offload-regres.patch | 6 ++-- ...0211_ptr-even-with-no-CFG82111-suppo.patch | 2 +- ...e-old-opp-to-config_clks-on-_set_opp.patch | 8 ++--- ...-max-gen-first-for-IMX8MM-and-IMX8MP.patch | 20 ++++++----- .../patches-6.6/410-bt-mtk-serial-fix.patch | 2 +- ...ommon-commonize-qcom_cc_really_probe.patch | 6 ++-- ...mmon-Add-interconnect-clocks-support.patch | 4 +-- ...s-add-mmc-related-clocks-for-SoCs-MT.patch | 8 ++--- ...ove-duplicated-xtal-clock-for-Ralink.patch | 28 ---------------- .../810-uvc-add-iPassion-iP2970-support.patch | 2 +- ...c3-add-optional-PHY-interface-clocks.patch | 2 +- ...t-8250-Add-dw-auto-flow-ctrl-support.patch | 2 +- ...ove-performance-usb-using-lowmem-for.patch | 2 +- 42 files changed, 94 insertions(+), 217 deletions(-) delete mode 100644 target/linux/bcm27xx/patches-6.6/950-1446-media-i2c-ov9282-Correct-the-exposure-offset.patch delete mode 100644 target/linux/bcm47xx/patches-6.6/701-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch delete mode 100644 target/linux/bcm53xx/patches-6.6/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch delete mode 100644 target/linux/ramips/patches-6.6/003-v6.14-clk-ralink-mtmips-remove-duplicated-xtal-clock-for-Ralink.patch diff --git a/include/kernel-6.6 b/include/kernel-6.6 index 4586ce50c3..0dcd32546d 100644 --- a/include/kernel-6.6 +++ b/include/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .75 -LINUX_KERNEL_HASH-6.6.75 = f7dfb1fa9716ba139d0b4c8161535816d400dea21d5943f513448429b1790290 +LINUX_VERSION-6.6 = .76 +LINUX_KERNEL_HASH-6.6.76 = 81168b15f0c64034a2ab553ae37a5a38b79c3fe10f69faccc9f374ced4eb13a0 diff --git a/target/linux/airoha/patches-6.6/105-uart-add-en7523-support.patch b/target/linux/airoha/patches-6.6/105-uart-add-en7523-support.patch index 38611b907c..80b6550be3 100644 --- a/target/linux/airoha/patches-6.6/105-uart-add-en7523-support.patch +++ b/target/linux/airoha/patches-6.6/105-uart-add-en7523-support.patch @@ -122,7 +122,7 @@ }; /* Uart divisor latch read */ -@@ -2880,6 +2888,12 @@ serial8250_do_set_termios(struct uart_po +@@ -2881,6 +2889,12 @@ serial8250_do_set_termios(struct uart_po serial8250_set_divisor(port, baud, quot, frac); diff --git a/target/linux/ath79/patches-6.6/820-mfd-syscon-support-skip-reset-control-for-syscon-devices.patch b/target/linux/ath79/patches-6.6/820-mfd-syscon-support-skip-reset-control-for-syscon-devices.patch index c73c8443b9..3bdc2faf3f 100644 --- a/target/linux/ath79/patches-6.6/820-mfd-syscon-support-skip-reset-control-for-syscon-devices.patch +++ b/target/linux/ath79/patches-6.6/820-mfd-syscon-support-skip-reset-control-for-syscon-devices.patch @@ -16,16 +16,16 @@ Signed-off-by: Shiji Yang --- a/drivers/mfd/syscon.c +++ b/drivers/mfd/syscon.c -@@ -52,7 +52,7 @@ static struct syscon *of_syscon_register +@@ -53,7 +53,7 @@ static struct syscon *of_syscon_register int ret; struct regmap_config syscon_config = syscon_regmap_config; struct resource res; - struct reset_control *reset; + struct reset_control *reset = NULL; - syscon = kzalloc(sizeof(*syscon), GFP_KERNEL); - if (!syscon) -@@ -134,7 +134,8 @@ static struct syscon *of_syscon_register + WARN_ON(!mutex_is_locked(&syscon_list_lock)); + +@@ -133,7 +133,8 @@ static struct syscon *of_syscon_register goto err_attach_clk; } diff --git a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch index 969cde5ce2..51f4f542d8 100644 --- a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch @@ -350,7 +350,7 @@ SVN-Revision: 35130 list_for_each_entry(p, head, list) { --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -622,48 +622,53 @@ static void tcp_options_write(struct tcp +@@ -625,48 +625,53 @@ static void tcp_options_write(struct tcp u16 options = opts->options; /* mungable copy */ if (unlikely(OPTION_MD5 & options)) { @@ -427,7 +427,7 @@ SVN-Revision: 35130 } if (unlikely(opts->num_sack_blocks)) { -@@ -671,16 +676,17 @@ static void tcp_options_write(struct tcp +@@ -674,16 +679,17 @@ static void tcp_options_write(struct tcp tp->duplicate_sack : tp->selective_acks; int this_sack; @@ -451,7 +451,7 @@ SVN-Revision: 35130 } tp->rx_opt.dsack = 0; -@@ -693,13 +699,14 @@ static void tcp_options_write(struct tcp +@@ -696,13 +702,14 @@ static void tcp_options_write(struct tcp if (foc->exp) { len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len; diff --git a/target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch b/target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch index 7dc38f0611..3898e05aae 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch @@ -28,7 +28,7 @@ We don't agree with upstream revert so undo it. pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) { --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -634,8 +634,11 @@ static int xhci_move_dequeue_past_td(str +@@ -635,8 +635,11 @@ static int xhci_move_dequeue_past_td(str struct xhci_ring *ep_ring; struct xhci_command *cmd; struct xhci_segment *new_seg; @@ -40,7 +40,7 @@ We don't agree with upstream revert so undo it. dma_addr_t addr; u64 hw_dequeue; bool cycle_found = false; -@@ -673,7 +676,27 @@ static int xhci_move_dequeue_past_td(str +@@ -674,7 +677,27 @@ static int xhci_move_dequeue_past_td(str hw_dequeue = xhci_get_hw_deq(xhci, dev, ep_index, stream_id); new_seg = ep_ring->deq_seg; new_deq = ep_ring->dequeue; diff --git a/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch b/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch index 7808827ee8..1d2f006258 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch @@ -17583,7 +17583,7 @@ Signed-off-by: Phil Elwell * For devices with more than one control interface, we assume the --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c -@@ -2251,6 +2251,8 @@ static const struct usb_audio_quirk_flag +@@ -2253,6 +2253,8 @@ static const struct usb_audio_quirk_flag QUIRK_FLAG_ALIGN_TRANSFER), DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */ QUIRK_FLAG_ALIGN_TRANSFER), diff --git a/target/linux/bcm27xx/patches-6.6/950-0162-usb-xhci-workaround-for-bogus-SET_DEQ_PENDING-endpoi.patch b/target/linux/bcm27xx/patches-6.6/950-0162-usb-xhci-workaround-for-bogus-SET_DEQ_PENDING-endpoi.patch index bae9286365..9d22d74510 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0162-usb-xhci-workaround-for-bogus-SET_DEQ_PENDING-endpoi.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0162-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 -@@ -739,9 +739,9 @@ deq_found: +@@ -740,9 +740,9 @@ deq_found: } if ((ep->ep_state & SET_DEQ_PENDING)) { diff --git a/target/linux/bcm27xx/patches-6.6/950-0416-gpio-pca953x-Add-ti-tca9554-compatible-string.patch b/target/linux/bcm27xx/patches-6.6/950-0416-gpio-pca953x-Add-ti-tca9554-compatible-string.patch index aa11729b71..be8e134cf6 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0416-gpio-pca953x-Add-ti-tca9554-compatible-string.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0416-gpio-pca953x-Add-ti-tca9554-compatible-string.patch @@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell --- a/drivers/gpio/gpio-pca953x.c +++ b/drivers/gpio/gpio-pca953x.c -@@ -1347,6 +1347,7 @@ static const struct of_device_id pca953x +@@ -1330,6 +1330,7 @@ static const struct of_device_id pca953x { .compatible = "ti,tca6424", .data = OF_953X(24, PCA_INT), }, { .compatible = "ti,tca9538", .data = OF_953X( 8, PCA_INT), }, { .compatible = "ti,tca9539", .data = OF_953X(16, PCA_INT), }, diff --git a/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch b/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch index 5547943880..2b267c7792 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch @@ -34,7 +34,7 @@ Signed-off-by: Jonathan Bell if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -729,6 +729,15 @@ static int xhci_move_dequeue_past_td(str +@@ -730,6 +730,15 @@ static int xhci_move_dequeue_past_td(str } while (!cycle_found || !td_last_trb_found); deq_found: diff --git a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch index 26abb99fe6..adf25d9495 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch @@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -3714,6 +3714,48 @@ static int xhci_align_td(struct xhci_hcd +@@ -3715,6 +3715,48 @@ static int xhci_align_td(struct xhci_hcd return 1; } @@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell /* This is very similar to what ehci-q.c qtd_fill() does */ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, struct urb *urb, int slot_id, unsigned int ep_index) -@@ -3870,6 +3912,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3871,6 +3913,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * } check_trb_math(urb, enqd_len); @@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id, start_cycle, start_trb); return 0; -@@ -4019,6 +4063,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * +@@ -4020,6 +4064,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * /* Event on completion */ field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state); diff --git a/target/linux/bcm27xx/patches-6.6/950-0509-gpio_brcmstb-Allow-to-build-for-ARCH_BCM2835.patch b/target/linux/bcm27xx/patches-6.6/950-0509-gpio_brcmstb-Allow-to-build-for-ARCH_BCM2835.patch index a6a976257b..cef1bf42a1 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0509-gpio_brcmstb-Allow-to-build-for-ARCH_BCM2835.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0509-gpio_brcmstb-Allow-to-build-for-ARCH_BCM2835.patch @@ -53,16 +53,16 @@ Signed-off-by: Phil Elwell help --- a/drivers/gpio/gpio-brcmstb.c +++ b/drivers/gpio/gpio-brcmstb.c -@@ -639,6 +639,8 @@ static int brcmstb_gpio_probe(struct pla +@@ -637,6 +637,8 @@ static int brcmstb_gpio_probe(struct pla #if defined(CONFIG_MIPS) && defined(__BIG_ENDIAN) flags = BGPIOF_BIG_ENDIAN_BYTE_ORDER; #endif + if (of_property_read_bool(np, "brcm,gpio-direct")) + flags |= BGPIOF_REG_DIRECT; - of_property_for_each_u32(np, "brcm,gpio-bank-widths", prop, p, - bank_width) { -@@ -688,7 +690,9 @@ static int brcmstb_gpio_probe(struct pla + of_property_for_each_u32(np, "brcm,gpio-bank-widths", bank_width) { + struct brcmstb_gpio_bank *bank; +@@ -685,7 +687,9 @@ static int brcmstb_gpio_probe(struct pla } gc->owner = THIS_MODULE; @@ -73,7 +73,7 @@ Signed-off-by: Phil Elwell if (!gc->label) { err = -ENOMEM; goto fail; -@@ -697,7 +701,7 @@ static int brcmstb_gpio_probe(struct pla +@@ -694,7 +698,7 @@ static int brcmstb_gpio_probe(struct pla gc->of_gpio_n_cells = 2; gc->of_xlate = brcmstb_gpio_of_xlate; /* not all ngpio lines are valid, will use bank width later */ @@ -82,7 +82,7 @@ Signed-off-by: Phil Elwell gc->offset = bank->id * MAX_GPIO_PER_BANK; if (priv->parent_irq > 0) gc->to_irq = brcmstb_gpio_to_irq; -@@ -706,8 +710,10 @@ static int brcmstb_gpio_probe(struct pla +@@ -703,8 +707,10 @@ static int brcmstb_gpio_probe(struct pla * Mask all interrupts by default, since wakeup interrupts may * be retained from S5 cold boot */ diff --git a/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch b/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch index db3b6cd828..8a469986f0 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch @@ -276,10 +276,10 @@ Signed-off-by: Jonathan Bell u8 tx_max_burst_prd = 0; u8 tx_fifo_resize_max_num; + u8 axi_pipe_limit; - const char *usb_psy_name; - int ret; -@@ -1527,6 +1566,9 @@ static void dwc3_get_properties(struct d + /* default to highest possible threshold */ + lpm_nyet_threshold = 0xf; +@@ -1525,6 +1564,9 @@ static void dwc3_get_properties(struct d */ tx_fifo_resize_max_num = 6; @@ -289,7 +289,7 @@ Signed-off-by: Jonathan Bell dwc->maximum_speed = usb_get_maximum_speed(dev); dwc->max_ssp_rate = usb_get_maximum_ssp_rate(dev); dwc->dr_mode = usb_get_dr_mode(dev); -@@ -1648,6 +1690,9 @@ static void dwc3_get_properties(struct d +@@ -1639,6 +1681,9 @@ static void dwc3_get_properties(struct d dwc->dis_split_quirk = device_property_read_bool(dev, "snps,dis-split-quirk"); @@ -299,7 +299,7 @@ Signed-off-by: Jonathan Bell dwc->lpm_nyet_threshold = lpm_nyet_threshold; dwc->tx_de_emphasis = tx_de_emphasis; -@@ -1665,6 +1710,8 @@ static void dwc3_get_properties(struct d +@@ -1656,6 +1701,8 @@ static void dwc3_get_properties(struct d dwc->tx_thr_num_pkt_prd = tx_thr_num_pkt_prd; dwc->tx_max_burst_prd = tx_max_burst_prd; @@ -308,9 +308,9 @@ Signed-off-by: Jonathan Bell dwc->imod_interval = 0; dwc->tx_fifo_resize_max_num = tx_fifo_resize_max_num; -@@ -1940,6 +1987,12 @@ static int dwc3_probe(struct platform_de - - dwc3_get_properties(dwc); +@@ -1952,6 +1999,12 @@ static int dwc3_probe(struct platform_de + if (IS_ERR(dwc->usb_psy)) + return dev_err_probe(dev, PTR_ERR(dwc->usb_psy), "couldn't get usb power supply\n"); + if (!dwc->sysdev_is_parent) { + ret = dma_set_mask_and_coherent(dwc->sysdev, DMA_BIT_MASK(64)); diff --git a/target/linux/bcm27xx/patches-6.6/950-0661-gpio-brcmstb-Use-dynamic-GPIO-base-numbers.patch b/target/linux/bcm27xx/patches-6.6/950-0661-gpio-brcmstb-Use-dynamic-GPIO-base-numbers.patch index 1f0907f399..2886d9427f 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0661-gpio-brcmstb-Use-dynamic-GPIO-base-numbers.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0661-gpio-brcmstb-Use-dynamic-GPIO-base-numbers.patch @@ -61,8 +61,8 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs") if (offset >= gc->ngpio || offset < 0) return -EINVAL; -@@ -598,8 +598,8 @@ static int brcmstb_gpio_probe(struct pla - const __be32 *p; +@@ -596,8 +596,8 @@ static int brcmstb_gpio_probe(struct pla + struct resource *res; u32 bank_width; int num_banks = 0; + int num_gpios = 0; @@ -71,7 +71,7 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs") unsigned long flags = 0; bool need_wakeup_event = false; -@@ -613,7 +613,6 @@ static int brcmstb_gpio_probe(struct pla +@@ -611,7 +611,6 @@ static int brcmstb_gpio_probe(struct pla if (IS_ERR(reg_base)) return PTR_ERR(reg_base); @@ -79,7 +79,7 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs") priv->reg_base = reg_base; priv->pdev = pdev; -@@ -655,7 +654,7 @@ static int brcmstb_gpio_probe(struct pla +@@ -652,7 +651,7 @@ static int brcmstb_gpio_probe(struct pla dev_dbg(dev, "Width 0 found: Empty bank @ %d\n", num_banks); num_banks++; @@ -88,7 +88,7 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs") continue; } -@@ -697,7 +696,7 @@ static int brcmstb_gpio_probe(struct pla +@@ -694,7 +693,7 @@ static int brcmstb_gpio_probe(struct pla err = -ENOMEM; goto fail; } @@ -97,7 +97,7 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs") gc->of_gpio_n_cells = 2; gc->of_xlate = brcmstb_gpio_of_xlate; /* not all ngpio lines are valid, will use bank width later */ -@@ -721,7 +720,7 @@ static int brcmstb_gpio_probe(struct pla +@@ -718,7 +717,7 @@ static int brcmstb_gpio_probe(struct pla bank->id); goto fail; } @@ -106,7 +106,7 @@ Fixes: 3b0213d56eb7 ("gpio: Add GPIO support for Broadcom STB SoCs") dev_dbg(dev, "bank=%d, base=%d, ngpio=%d, width=%d\n", bank->id, gc->base, gc->ngpio, bank->width); -@@ -732,7 +731,7 @@ static int brcmstb_gpio_probe(struct pla +@@ -729,7 +728,7 @@ static int brcmstb_gpio_probe(struct pla num_banks++; } diff --git a/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch b/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch index 0441512add..abd631b6f7 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch @@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell if (DWC3_VER_IS_WITHIN(DWC3, 290A, ANY) && (dwc->maximum_speed == USB_SPEED_HIGH || dwc->maximum_speed == USB_SPEED_FULL)) -@@ -1670,6 +1673,8 @@ static void dwc3_get_properties(struct d +@@ -1661,6 +1664,8 @@ static void dwc3_get_properties(struct d "snps,parkmode-disable-ss-quirk"); dwc->parkmode_disable_hs_quirk = device_property_read_bool(dev, "snps,parkmode-disable-hs-quirk"); diff --git a/target/linux/bcm27xx/patches-6.6/950-1359-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch b/target/linux/bcm27xx/patches-6.6/950-1359-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch index 8995f6f9dc..0ed02a82cf 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1359-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1359-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch @@ -35,7 +35,7 @@ Signed-off-by: Jonathan Bell if (dwc->parkmode_disable_ss_quirk) reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS; -@@ -1669,6 +1675,10 @@ static void dwc3_get_properties(struct d +@@ -1660,6 +1666,10 @@ static void dwc3_get_properties(struct d "snps,resume-hs-terminations"); dwc->ulpi_ext_vbus_drv = device_property_read_bool(dev, "snps,ulpi-ext-vbus-drv"); diff --git a/target/linux/bcm27xx/patches-6.6/950-1361-drivers-usb-xhci-prevent-a-theoretical-race-on-non-c.patch b/target/linux/bcm27xx/patches-6.6/950-1361-drivers-usb-xhci-prevent-a-theoretical-race-on-non-c.patch index c2f37a0fc1..50819fc7f2 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1361-drivers-usb-xhci-prevent-a-theoretical-race-on-non-c.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1361-drivers-usb-xhci-prevent-a-theoretical-race-on-non-c.patch @@ -28,7 +28,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -506,6 +506,19 @@ void xhci_ring_ep_doorbell(struct xhci_h +@@ -507,6 +507,19 @@ void xhci_ring_ep_doorbell(struct xhci_h trace_xhci_ring_ep_doorbell(slot_id, DB_VALUE(ep_index, stream_id)); diff --git a/target/linux/bcm27xx/patches-6.6/950-1446-media-i2c-ov9282-Correct-the-exposure-offset.patch b/target/linux/bcm27xx/patches-6.6/950-1446-media-i2c-ov9282-Correct-the-exposure-offset.patch deleted file mode 100644 index f673f547dd..0000000000 --- a/target/linux/bcm27xx/patches-6.6/950-1446-media-i2c-ov9282-Correct-the-exposure-offset.patch +++ /dev/null @@ -1,31 +0,0 @@ -From e23afbf2c7aae9264322eee8e5c72ca1887606df Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Mon, 9 Dec 2024 10:43:18 +0000 -Subject: [PATCH] media: i2c: ov9282: Correct the exposure offset - -The datasheet lists that "Maximum exposure time is frame -length -25 row periods, where frame length is set by -registers {0x380E, 0x380F}". -However this driver had OV9282_EXPOSURE_OFFSET set to 12 -which allowed that restriction to be violated, and would -result in very under-exposed images. - -Correct the offset. - -Fixes: 14ea315bbeb7 ("media: i2c: Add ov9282 camera sensor driver") -Signed-off-by: Dave Stevenson ---- - drivers/media/i2c/ov9282.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/media/i2c/ov9282.c -+++ b/drivers/media/i2c/ov9282.c -@@ -40,7 +40,7 @@ - /* Exposure control */ - #define OV9282_REG_EXPOSURE 0x3500 - #define OV9282_EXPOSURE_MIN 1 --#define OV9282_EXPOSURE_OFFSET 12 -+#define OV9282_EXPOSURE_OFFSET 25 - #define OV9282_EXPOSURE_STEP 1 - #define OV9282_EXPOSURE_DEFAULT 0x0282 - diff --git a/target/linux/bcm27xx/patches-6.6/950-1464-serial-sc16is7xx-announce-support-for-SER_RS485_RTS_.patch b/target/linux/bcm27xx/patches-6.6/950-1464-serial-sc16is7xx-announce-support-for-SER_RS485_RTS_.patch index f78402d0c5..2f52823afc 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1464-serial-sc16is7xx-announce-support-for-SER_RS485_RTS_.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1464-serial-sc16is7xx-announce-support-for-SER_RS485_RTS_.patch @@ -31,7 +31,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c -@@ -1457,7 +1457,7 @@ static int sc16is7xx_setup_mctrl_ports(s +@@ -1480,7 +1480,7 @@ static int sc16is7xx_setup_mctrl_ports(s } static const struct serial_rs485 sc16is7xx_rs485_supported = { diff --git a/target/linux/bcm47xx/patches-6.6/701-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch b/target/linux/bcm47xx/patches-6.6/701-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch deleted file mode 100644 index 3a2f4b06ed..0000000000 --- a/target/linux/bcm47xx/patches-6.6/701-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Fri, 10 Jun 2022 13:10:47 +0200 -Subject: [PATCH] bgmac: reduce max frame size to support just MTU 1500 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -bgmac allocates new replacement buffer before handling each received -frame. Allocating & DMA-preparing 9724 B each time consumes a lot of CPU -time. Ideally bgmac should just respect currently set MTU but it isn't -the case right now. For now just revert back to the old limited frame -size. - -This change bumps NAT masquarade speed by ~95%. - -Ref: 8c7da63978f1 ("bgmac: configure MTU and add support for frames beyond 8192 byte size") -Signed-off-by: Rafał Miłecki ---- - drivers/net/ethernet/broadcom/bgmac.h | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - ---- a/drivers/net/ethernet/broadcom/bgmac.h -+++ b/drivers/net/ethernet/broadcom/bgmac.h -@@ -328,8 +328,7 @@ - #define BGMAC_RX_FRAME_OFFSET 30 /* There are 2 unused bytes between header and real data */ - #define BGMAC_RX_BUF_OFFSET (NET_SKB_PAD + NET_IP_ALIGN - \ - BGMAC_RX_FRAME_OFFSET) --/* Jumbo frame size with FCS */ --#define BGMAC_RX_MAX_FRAME_SIZE 9724 -+#define BGMAC_RX_MAX_FRAME_SIZE 1536 - #define BGMAC_RX_BUF_SIZE (BGMAC_RX_FRAME_OFFSET + BGMAC_RX_MAX_FRAME_SIZE) - #define BGMAC_RX_ALLOC_SIZE (SKB_DATA_ALIGN(BGMAC_RX_BUF_SIZE + BGMAC_RX_BUF_OFFSET) + \ - SKB_DATA_ALIGN(sizeof(struct skb_shared_info))) diff --git a/target/linux/bcm53xx/patches-6.6/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch b/target/linux/bcm53xx/patches-6.6/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch deleted file mode 100644 index 3a2f4b06ed..0000000000 --- a/target/linux/bcm53xx/patches-6.6/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Fri, 10 Jun 2022 13:10:47 +0200 -Subject: [PATCH] bgmac: reduce max frame size to support just MTU 1500 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -bgmac allocates new replacement buffer before handling each received -frame. Allocating & DMA-preparing 9724 B each time consumes a lot of CPU -time. Ideally bgmac should just respect currently set MTU but it isn't -the case right now. For now just revert back to the old limited frame -size. - -This change bumps NAT masquarade speed by ~95%. - -Ref: 8c7da63978f1 ("bgmac: configure MTU and add support for frames beyond 8192 byte size") -Signed-off-by: Rafał Miłecki ---- - drivers/net/ethernet/broadcom/bgmac.h | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - ---- a/drivers/net/ethernet/broadcom/bgmac.h -+++ b/drivers/net/ethernet/broadcom/bgmac.h -@@ -328,8 +328,7 @@ - #define BGMAC_RX_FRAME_OFFSET 30 /* There are 2 unused bytes between header and real data */ - #define BGMAC_RX_BUF_OFFSET (NET_SKB_PAD + NET_IP_ALIGN - \ - BGMAC_RX_FRAME_OFFSET) --/* Jumbo frame size with FCS */ --#define BGMAC_RX_MAX_FRAME_SIZE 9724 -+#define BGMAC_RX_MAX_FRAME_SIZE 1536 - #define BGMAC_RX_BUF_SIZE (BGMAC_RX_FRAME_OFFSET + BGMAC_RX_MAX_FRAME_SIZE) - #define BGMAC_RX_ALLOC_SIZE (SKB_DATA_ALIGN(BGMAC_RX_BUF_SIZE + BGMAC_RX_BUF_OFFSET) + \ - SKB_DATA_ALIGN(sizeof(struct skb_shared_info))) diff --git a/target/linux/generic/backport-6.6/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch b/target/linux/generic/backport-6.6/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch index 257624164a..a7186208b2 100644 --- a/target/linux/generic/backport-6.6/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch +++ b/target/linux/generic/backport-6.6/400-v6.9-mtd-rawnand-brcmnand-Support-write-protection-settin.patch @@ -23,7 +23,7 @@ Link: https://lore.kernel.org/linux-mtd/20240223034758.13753-14-william.zhang@br --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c -@@ -3189,6 +3189,10 @@ int brcmnand_probe(struct platform_devic +@@ -3194,6 +3194,10 @@ int brcmnand_probe(struct platform_devic /* Disable XOR addressing */ brcmnand_rmw_reg(ctrl, BRCMNAND_CS_XOR, 0xff, 0, 0); diff --git a/target/linux/generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch b/target/linux/generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch index b3729e8b6c..3de258f953 100644 --- a/target/linux/generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch +++ b/target/linux/generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch @@ -250,7 +250,7 @@ Signed-off-by: Paolo Abeni return 0; } -@@ -11299,7 +11340,7 @@ static int dev_cpu_dead(unsigned int old +@@ -11303,7 +11344,7 @@ static int dev_cpu_dead(unsigned int old list_del_init(&napi->poll_list); if (napi->poll == process_backlog) @@ -259,7 +259,7 @@ Signed-off-by: Paolo Abeni else ____napi_schedule(sd, napi); } -@@ -11307,12 +11348,14 @@ static int dev_cpu_dead(unsigned int old +@@ -11311,12 +11352,14 @@ static int dev_cpu_dead(unsigned int old raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_enable(); @@ -278,7 +278,7 @@ Signed-off-by: Paolo Abeni /* Process offline CPU's input_pkt_queue */ while ((skb = __skb_dequeue(&oldsd->process_queue))) { -@@ -11575,6 +11618,38 @@ static struct pernet_operations __net_in +@@ -11579,6 +11622,38 @@ static struct pernet_operations __net_in * */ @@ -317,7 +317,7 @@ Signed-off-by: Paolo Abeni /* * This is called single threaded during boot, so no need * to take the rtnl semaphore. -@@ -11625,7 +11700,10 @@ static int __init net_dev_init(void) +@@ -11629,7 +11704,10 @@ static int __init net_dev_init(void) init_gro_hash(&sd->backlog); sd->backlog.poll = process_backlog; sd->backlog.weight = weight_p; diff --git a/target/linux/generic/backport-6.6/611-02-v6.11-net-Make-USO-depend-on-CSUM-offload.patch b/target/linux/generic/backport-6.6/611-02-v6.11-net-Make-USO-depend-on-CSUM-offload.patch index 6b5272d583..6cd162ff1c 100644 --- a/target/linux/generic/backport-6.6/611-02-v6.11-net-Make-USO-depend-on-CSUM-offload.patch +++ b/target/linux/generic/backport-6.6/611-02-v6.11-net-Make-USO-depend-on-CSUM-offload.patch @@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -9761,6 +9761,15 @@ static void netdev_sync_lower_features(s +@@ -9765,6 +9765,15 @@ static void netdev_sync_lower_features(s } } @@ -36,7 +36,7 @@ Signed-off-by: Jakub Kicinski static netdev_features_t netdev_fix_features(struct net_device *dev, netdev_features_t features) { -@@ -9842,15 +9851,9 @@ static netdev_features_t netdev_fix_feat +@@ -9846,15 +9855,9 @@ static netdev_features_t netdev_fix_feat features &= ~NETIF_F_LRO; } @@ -55,7 +55,7 @@ Signed-off-by: Jakub Kicinski } if ((features & NETIF_F_HW_TLS_RX) && !(features & NETIF_F_RXCSUM)) { -@@ -9858,6 +9861,11 @@ static netdev_features_t netdev_fix_feat +@@ -9862,6 +9865,11 @@ static netdev_features_t netdev_fix_feat features &= ~NETIF_F_HW_TLS_RX; } diff --git a/target/linux/generic/backport-6.6/612-v6.9-net-get-stats64-if-device-if-driver-is-configured.patch b/target/linux/generic/backport-6.6/612-v6.9-net-get-stats64-if-device-if-driver-is-configured.patch index 8f2c26d654..21ba0acc5b 100644 --- a/target/linux/generic/backport-6.6/612-v6.9-net-get-stats64-if-device-if-driver-is-configured.patch +++ b/target/linux/generic/backport-6.6/612-v6.9-net-get-stats64-if-device-if-driver-is-configured.patch @@ -18,7 +18,7 @@ Signed-off-by: Paolo Abeni --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -10668,6 +10668,8 @@ struct rtnl_link_stats64 *dev_get_stats( +@@ -10672,6 +10672,8 @@ struct rtnl_link_stats64 *dev_get_stats( ops->ndo_get_stats64(dev, storage); } else if (ops->ndo_get_stats) { netdev_stats_to_stats64(storage, ops->ndo_get_stats(dev)); diff --git a/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch b/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch index c8b4ccc300..c6718c8e22 100644 --- a/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch +++ b/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch @@ -49,7 +49,7 @@ Signed-off-by: David S. Miller unsigned char name_assign_type, --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -10355,25 +10355,12 @@ err_free_name: +@@ -10359,25 +10359,12 @@ err_free_name: } EXPORT_SYMBOL(register_netdevice); @@ -79,7 +79,7 @@ Signed-off-by: David S. Miller /* make sure we BUG if trying to hit standard * register/unregister code path */ -@@ -10393,12 +10380,32 @@ int init_dummy_netdev(struct net_device +@@ -10397,12 +10384,32 @@ int init_dummy_netdev(struct net_device * because users of this 'device' dont need to change * its refcount. */ @@ -113,7 +113,7 @@ Signed-off-by: David S. Miller /** * register_netdev - register a network device * @dev: device to register -@@ -10992,6 +10999,19 @@ void free_netdev(struct net_device *dev) +@@ -10996,6 +11003,19 @@ void free_netdev(struct net_device *dev) EXPORT_SYMBOL(free_netdev); /** diff --git a/target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch b/target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch index 5f7210812f..b3a592f078 100644 --- a/target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch +++ b/target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch @@ -23,7 +23,7 @@ Signed-off-by: David S. Miller --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -10985,7 +10985,8 @@ void free_netdev(struct net_device *dev) +@@ -10989,7 +10989,8 @@ void free_netdev(struct net_device *dev) dev->xdp_bulkq = NULL; /* Compatibility with error handling in drivers */ diff --git a/target/linux/generic/hack-6.6/773-bgmac-add-srab-switch.patch b/target/linux/generic/hack-6.6/773-bgmac-add-srab-switch.patch index 633cacd1e7..40634f9ed0 100644 --- a/target/linux/generic/hack-6.6/773-bgmac-add-srab-switch.patch +++ b/target/linux/generic/hack-6.6/773-bgmac-add-srab-switch.patch @@ -78,7 +78,7 @@ Signed-off-by: Hauke Mehrtens netif_napi_del(&bgmac->napi); --- a/drivers/net/ethernet/broadcom/bgmac.h +++ b/drivers/net/ethernet/broadcom/bgmac.h -@@ -388,6 +388,7 @@ +@@ -387,6 +387,7 @@ #define BGMAC_FEAT_CC4_IF_SW_TYPE_RGMII BIT(18) #define BGMAC_FEAT_CC7_IF_TYPE_RGMII BIT(19) #define BGMAC_FEAT_IDM_MASK BIT(20) @@ -86,7 +86,7 @@ Signed-off-by: Hauke Mehrtens struct bgmac_slot_info { union { -@@ -495,6 +496,9 @@ struct bgmac { +@@ -494,6 +495,9 @@ struct bgmac { void (*cmn_maskset32)(struct bgmac *bgmac, u16 offset, u32 mask, u32 set); int (*phy_connect)(struct bgmac *bgmac); diff --git a/target/linux/generic/pending-6.6/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch b/target/linux/generic/pending-6.6/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch index 750ca29287..c69be593f9 100644 --- a/target/linux/generic/pending-6.6/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch +++ b/target/linux/generic/pending-6.6/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch @@ -59,7 +59,7 @@ Signed-off-by: Pablo Neira Ayuso } --- a/net/netfilter/nft_flow_offload.c +++ b/net/netfilter/nft_flow_offload.c -@@ -480,47 +480,14 @@ static struct nft_expr_type nft_flow_off +@@ -486,47 +486,14 @@ static struct nft_expr_type nft_flow_off .owner = THIS_MODULE, }; diff --git a/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch b/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch index 6cb52d00a2..373b3e87ba 100644 --- a/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch +++ b/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch @@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c -@@ -8425,7 +8425,7 @@ static int nft_register_flowtable_net_ho +@@ -8470,7 +8470,7 @@ static int nft_register_flowtable_net_ho err = flowtable->data.type->setup(&flowtable->data, hook->ops.dev, FLOW_BLOCK_BIND); diff --git a/target/linux/generic/pending-6.6/704-netfilter-nf_tables-fix-bidirectional-offload-regres.patch b/target/linux/generic/pending-6.6/704-netfilter-nf_tables-fix-bidirectional-offload-regres.patch index d1d6fa3fe1..a538c3333e 100644 --- a/target/linux/generic/pending-6.6/704-netfilter-nf_tables-fix-bidirectional-offload-regres.patch +++ b/target/linux/generic/pending-6.6/704-netfilter-nf_tables-fix-bidirectional-offload-regres.patch @@ -14,9 +14,9 @@ Signed-off-by: Felix Fietkau --- a/net/netfilter/nft_flow_offload.c +++ b/net/netfilter/nft_flow_offload.c -@@ -361,6 +361,7 @@ static void nft_flow_offload_eval(const - ct->proto.tcp.seen[1].flags |= IP_CT_TCP_FLAG_BE_LIBERAL; - } +@@ -367,6 +367,7 @@ static void nft_flow_offload_eval(const + if (tcph) + flow_offload_ct_tcp(ct); + __set_bit(NF_FLOW_HW_BIDIRECTIONAL, &flow->flags); ret = flow_offload_add(flowtable, flow); diff --git a/target/linux/generic/pending-6.6/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch b/target/linux/generic/pending-6.6/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch index 1f07c0f62c..8679ffb13f 100644 --- a/target/linux/generic/pending-6.6/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch +++ b/target/linux/generic/pending-6.6/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch @@ -19,7 +19,7 @@ Signed-off-by: Christian Marangi +++ b/include/linux/netdevice.h @@ -2243,7 +2243,7 @@ struct net_device { #if IS_ENABLED(CONFIG_AX25) - void *ax25_ptr; + struct ax25_dev __rcu *ax25_ptr; #endif -#if IS_ENABLED(CONFIG_CFG80211) +#if IS_ENABLED(CONFIG_CFG80211_HEADERS) diff --git a/target/linux/generic/pending-6.6/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch b/target/linux/generic/pending-6.6/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch index 7f67091478..3da2aed0df 100644 --- a/target/linux/generic/pending-6.6/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch +++ b/target/linux/generic/pending-6.6/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch @@ -33,7 +33,7 @@ Signed-off-by: Christian Marangi return 0; --- a/drivers/opp/core.c +++ b/drivers/opp/core.c -@@ -902,7 +902,8 @@ static int _set_opp_voltage(struct devic +@@ -925,7 +925,8 @@ static int _set_opp_voltage(struct devic static int _opp_config_clk_single(struct device *dev, struct opp_table *opp_table, @@ -43,7 +43,7 @@ Signed-off-by: Christian Marangi { unsigned long *target = data; unsigned long freq; -@@ -934,8 +935,8 @@ _opp_config_clk_single(struct device *de +@@ -957,8 +958,8 @@ _opp_config_clk_single(struct device *de * the order in which they are present in the array while scaling up. */ int dev_pm_opp_config_clks_simple(struct device *dev, @@ -54,7 +54,7 @@ Signed-off-by: Christian Marangi { int ret, i; -@@ -1217,7 +1218,7 @@ static int _set_opp(struct device *dev, +@@ -1240,7 +1241,7 @@ static int _set_opp(struct device *dev, } if (opp_table->config_clks) { @@ -63,7 +63,7 @@ Signed-off-by: Christian Marangi if (ret) return ret; } -@@ -1292,7 +1293,7 @@ int dev_pm_opp_set_rate(struct device *d +@@ -1315,7 +1316,7 @@ int dev_pm_opp_set_rate(struct device *d * equivalent to a clk_set_rate() */ if (!_get_opp_count(opp_table)) { diff --git a/target/linux/imx/patches-6.6/600-PCI-imx6-Start-link-at-max-gen-first-for-IMX8MM-and-IMX8MP.patch b/target/linux/imx/patches-6.6/600-PCI-imx6-Start-link-at-max-gen-first-for-IMX8MM-and-IMX8MP.patch index 002c204462..95069c2c43 100644 --- a/target/linux/imx/patches-6.6/600-PCI-imx6-Start-link-at-max-gen-first-for-IMX8MM-and-IMX8MP.patch +++ b/target/linux/imx/patches-6.6/600-PCI-imx6-Start-link-at-max-gen-first-for-IMX8MM-and-IMX8MP.patch @@ -30,9 +30,9 @@ Signed-off-by: Tim Harvey #define IMX6_PCIE_FLAG_SUPPORTS_SUSPEND BIT(2) +#define IMX6_PCIE_FLAG_GEN1_LAST BIT(3) - struct imx6_pcie_drvdata { - enum imx6_pcie_variants variant; -@@ -876,26 +877,28 @@ static int imx6_pcie_start_link(struct d + #define IMX6_PCIE_MAX_CLKS 6 + +@@ -836,26 +837,28 @@ static int imx6_pcie_start_link(struct d u32 tmp; int ret; @@ -76,7 +76,7 @@ Signed-off-by: Tim Harvey /* Allow faster modes after the link is up */ dw_pcie_dbi_ro_wr_en(pci); tmp = dw_pcie_readl_dbi(pci, offset + PCI_EXP_LNKCAP); -@@ -929,18 +932,14 @@ static int imx6_pcie_start_link(struct d +@@ -889,18 +892,14 @@ static int imx6_pcie_start_link(struct d goto err_reset_phy; } } @@ -100,20 +100,22 @@ Signed-off-by: Tim Harvey return 0; err_reset_phy: -@@ -1505,12 +1504,14 @@ static const struct imx6_pcie_drvdata dr +@@ -1456,14 +1455,16 @@ static const struct imx6_pcie_drvdata dr }, [IMX8MM] = { .variant = IMX8MM, - .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, + .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND | -+ IMX6_PCIE_FLAG_GEN1_LAST, ++ IMX6_PCIE_FLAG_GEN1_LAST, .gpr = "fsl,imx8mm-iomuxc-gpr", + .clk_names = imx8mm_clks, + .clks_cnt = ARRAY_SIZE(imx8mm_clks), }, [IMX8MP] = { .variant = IMX8MP, - .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, + .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND | -+ IMX6_PCIE_FLAG_GEN1_LAST, ++ IMX6_PCIE_FLAG_GEN1_LAST, .gpr = "fsl,imx8mp-iomuxc-gpr", - }, - [IMX8MQ_EP] = { + .clk_names = imx8mm_clks, + .clks_cnt = ARRAY_SIZE(imx8mm_clks), diff --git a/target/linux/mediatek/patches-6.6/410-bt-mtk-serial-fix.patch b/target/linux/mediatek/patches-6.6/410-bt-mtk-serial-fix.patch index 53e92a6dd3..206dad7f23 100644 --- a/target/linux/mediatek/patches-6.6/410-bt-mtk-serial-fix.patch +++ b/target/linux/mediatek/patches-6.6/410-bt-mtk-serial-fix.patch @@ -19,7 +19,7 @@ }, [PORT_NPCM] = { .name = "Nuvoton 16550", -@@ -2774,6 +2774,11 @@ serial8250_do_set_termios(struct uart_po +@@ -2775,6 +2775,11 @@ serial8250_do_set_termios(struct uart_po unsigned long flags; unsigned int baud, quot, frac = 0; diff --git a/target/linux/qualcommbe/patches-6.6/006-v6.11-clk-qcom-common-commonize-qcom_cc_really_probe.patch b/target/linux/qualcommbe/patches-6.6/006-v6.11-clk-qcom-common-commonize-qcom_cc_really_probe.patch index ce181b4791..8d4153d70c 100644 --- a/target/linux/qualcommbe/patches-6.6/006-v6.11-clk-qcom-common-commonize-qcom_cc_really_probe.patch +++ b/target/linux/qualcommbe/patches-6.6/006-v6.11-clk-qcom-common-commonize-qcom_cc_really_probe.patch @@ -199,7 +199,7 @@ Signed-off-by: Bjorn Andersson static struct platform_driver cam_cc_sm8450_driver = { --- a/drivers/clk/qcom/common.c +++ b/drivers/clk/qcom/common.c -@@ -252,11 +252,10 @@ static struct clk_hw *qcom_cc_clk_hw_get +@@ -250,11 +250,10 @@ static struct clk_hw *qcom_cc_clk_hw_get return cc->rclks[idx] ? &cc->rclks[idx]->hw : NULL; } @@ -212,7 +212,7 @@ Signed-off-by: Bjorn Andersson struct qcom_reset_controller *reset; struct qcom_cc *cc; struct gdsc_desc *scd; -@@ -333,7 +332,7 @@ int qcom_cc_probe(struct platform_device +@@ -331,7 +330,7 @@ int qcom_cc_probe(struct platform_device if (IS_ERR(regmap)) return PTR_ERR(regmap); @@ -221,7 +221,7 @@ Signed-off-by: Bjorn Andersson } EXPORT_SYMBOL_GPL(qcom_cc_probe); -@@ -351,7 +350,7 @@ int qcom_cc_probe_by_index(struct platfo +@@ -349,7 +348,7 @@ int qcom_cc_probe_by_index(struct platfo if (IS_ERR(regmap)) return PTR_ERR(regmap); diff --git a/target/linux/qualcommbe/patches-6.6/012-04-v6.11-clk-qcom-common-Add-interconnect-clocks-support.patch b/target/linux/qualcommbe/patches-6.6/012-04-v6.11-clk-qcom-common-Add-interconnect-clocks-support.patch index 1702f26f69..402c58aed8 100644 --- a/target/linux/qualcommbe/patches-6.6/012-04-v6.11-clk-qcom-common-Add-interconnect-clocks-support.patch +++ b/target/linux/qualcommbe/patches-6.6/012-04-v6.11-clk-qcom-common-Add-interconnect-clocks-support.patch @@ -33,7 +33,7 @@ Signed-off-by: Bjorn Andersson #include #include -@@ -252,6 +253,38 @@ static struct clk_hw *qcom_cc_clk_hw_get +@@ -250,6 +251,38 @@ static struct clk_hw *qcom_cc_clk_hw_get return cc->rclks[idx] ? &cc->rclks[idx]->hw : NULL; } @@ -72,7 +72,7 @@ Signed-off-by: Bjorn Andersson int qcom_cc_really_probe(struct device *dev, const struct qcom_cc_desc *desc, struct regmap *regmap) { -@@ -320,7 +353,7 @@ int qcom_cc_really_probe(struct device * +@@ -318,7 +351,7 @@ int qcom_cc_really_probe(struct device * if (ret) return ret; diff --git a/target/linux/ramips/patches-6.6/002-03-v6.13-clk-ralink-mtmips-add-mmc-related-clocks-for-SoCs-MT.patch b/target/linux/ramips/patches-6.6/002-03-v6.13-clk-ralink-mtmips-add-mmc-related-clocks-for-SoCs-MT.patch index b90a19b7ca..076cda246e 100644 --- a/target/linux/ramips/patches-6.6/002-03-v6.13-clk-ralink-mtmips-add-mmc-related-clocks-for-SoCs-MT.patch +++ b/target/linux/ramips/patches-6.6/002-03-v6.13-clk-ralink-mtmips-add-mmc-related-clocks-for-SoCs-MT.patch @@ -42,7 +42,7 @@ Signed-off-by: Stephen Boyd { CLK_PERIPH("10300000.wmac", "xtal") } }; -@@ -272,8 +274,13 @@ static struct mtmips_clk_fixed rt3352_fi +@@ -271,8 +273,13 @@ static struct mtmips_clk_fixed rt3352_fi CLK_FIXED("periph", "xtal", 40000000) }; @@ -57,7 +57,7 @@ Signed-off-by: Stephen Boyd CLK_FIXED("periph", "xtal", 40000000) }; -@@ -328,6 +335,15 @@ static struct mtmips_clk_factor rt305x_f +@@ -327,6 +334,15 @@ static struct mtmips_clk_factor rt305x_f CLK_FACTOR("bus", "cpu", 1, 3) }; @@ -73,7 +73,7 @@ Signed-off-by: Stephen Boyd static int mtmips_register_factor_clocks(struct clk_hw_onecell_data *clk_data, struct mtmips_clk_priv *priv) { -@@ -811,10 +827,10 @@ static const struct mtmips_clk_data rt53 +@@ -810,10 +826,10 @@ static const struct mtmips_clk_data rt53 static const struct mtmips_clk_data mt7620_clk_data = { .clk_base = mt7620_clks_base, .num_clk_base = ARRAY_SIZE(mt7620_clks_base), @@ -88,7 +88,7 @@ Signed-off-by: Stephen Boyd .clk_periph = mt7620_pherip_clks, .num_clk_periph = ARRAY_SIZE(mt7620_pherip_clks), }; -@@ -824,8 +840,8 @@ static const struct mtmips_clk_data mt76 +@@ -823,8 +839,8 @@ static const struct mtmips_clk_data mt76 .num_clk_base = ARRAY_SIZE(mt76x8_clks_base), .clk_fixed = mt76x8_fixed_clocks, .num_clk_fixed = ARRAY_SIZE(mt76x8_fixed_clocks), diff --git a/target/linux/ramips/patches-6.6/003-v6.14-clk-ralink-mtmips-remove-duplicated-xtal-clock-for-Ralink.patch b/target/linux/ramips/patches-6.6/003-v6.14-clk-ralink-mtmips-remove-duplicated-xtal-clock-for-Ralink.patch deleted file mode 100644 index 71a32a0bc1..0000000000 --- a/target/linux/ramips/patches-6.6/003-v6.14-clk-ralink-mtmips-remove-duplicated-xtal-clock-for-Ralink.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 830d8062d25581cf0beaa334486eea06834044da Mon Sep 17 00:00:00 2001 -From: Sergio Paracuellos -Date: Wed, 8 Jan 2025 10:36:36 +0100 -Subject: [PATCH] clk: ralink: mtmips: remove duplicated 'xtal' clock for - Ralink SoC RT3883 - -Ralink SoC RT3883 has already 'xtal' defined as a base clock so there is no -need to redefine it again in fixed clocks section. Hence, remove the duplicate -one from there. - -Fixes: d34db686a3d7 ("clk: ralink: mtmips: fix clocks probe order in oldest ralink SoCs") -Signed-off-by: Sergio Paracuellos -Link: https://lore.kernel.org/r/20250108093636.265033-1-sergio.paracuellos@gmail.com -Signed-off-by: Stephen Boyd ---- - drivers/clk/ralink/clk-mtmips.c | 1 - - 1 file changed, 1 deletion(-) - ---- a/drivers/clk/ralink/clk-mtmips.c -+++ b/drivers/clk/ralink/clk-mtmips.c -@@ -266,7 +266,6 @@ err_clk_unreg: - } - - static struct mtmips_clk_fixed rt3883_fixed_clocks[] = { -- CLK_FIXED("xtal", NULL, 40000000), - CLK_FIXED("periph", "xtal", 40000000) - }; - diff --git a/target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch b/target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch index a01911b1f4..b545667ce3 100644 --- a/target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch +++ b/target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch @@ -42,7 +42,7 @@ Signed-off-by: John Crispin break; } -@@ -273,6 +274,7 @@ int uvc_status_init(struct uvc_device *d +@@ -274,6 +275,7 @@ int uvc_status_init(struct uvc_device *d } pipe = usb_rcvintpipe(dev->udev, ep->desc.bEndpointAddress); diff --git a/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch b/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch index 30e8a98fd7..26fedf0a65 100644 --- a/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch +++ b/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch @@ -48,7 +48,7 @@ Signed-off-by: Greg Kroah-Hartman clk_disable_unprepare(dwc->susp_clk); clk_disable_unprepare(dwc->ref_clk); clk_disable_unprepare(dwc->bus_clk); -@@ -1884,6 +1898,20 @@ static int dwc3_get_clocks(struct dwc3 * +@@ -1875,6 +1889,20 @@ static int dwc3_get_clocks(struct dwc3 * } } diff --git a/target/linux/starfive/patches-6.6/0066-uart-8250-Add-dw-auto-flow-ctrl-support.patch b/target/linux/starfive/patches-6.6/0066-uart-8250-Add-dw-auto-flow-ctrl-support.patch index 617d72f11f..ec6130b7ce 100644 --- a/target/linux/starfive/patches-6.6/0066-uart-8250-Add-dw-auto-flow-ctrl-support.patch +++ b/target/linux/starfive/patches-6.6/0066-uart-8250-Add-dw-auto-flow-ctrl-support.patch @@ -67,7 +67,7 @@ Signed-off-by: Minda Chen } /* -@@ -2813,7 +2826,6 @@ serial8250_do_set_termios(struct uart_po +@@ -2814,7 +2827,6 @@ serial8250_do_set_termios(struct uart_po if (termios->c_cflag & CRTSCTS) up->mcr |= UART_MCR_AFE; } diff --git a/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch b/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch index 4c1dfabd9e..7c5c522f91 100644 --- a/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch +++ b/target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch @@ -160,7 +160,7 @@ Signed-off-by: minda.chen } --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -3707,7 +3707,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3708,7 +3708,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * full_len = urb->transfer_buffer_length; /* If we have scatter/gather list, we use it. */ From 16924e55f0c5c0b06cbec46d04c6113b8f7a5975 Mon Sep 17 00:00:00 2001 From: John Audia Date: Tue, 11 Feb 2025 14:42:45 -0500 Subject: [PATCH 07/13] kernel: bump 6.6 to 6.6.77 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.77 No patches automatically rebased/checksum update only Build system: x86/64 Build-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Run-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Signed-off-by: John Audia Link: https://github.com/openwrt/openwrt/pull/17822 Signed-off-by: Hauke Mehrtens --- include/kernel-6.6 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/kernel-6.6 b/include/kernel-6.6 index 0dcd32546d..3f07a92fc4 100644 --- a/include/kernel-6.6 +++ b/include/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .76 -LINUX_KERNEL_HASH-6.6.76 = 81168b15f0c64034a2ab553ae37a5a38b79c3fe10f69faccc9f374ced4eb13a0 +LINUX_VERSION-6.6 = .77 +LINUX_KERNEL_HASH-6.6.77 = 081089dfcf125aef67aa940ebb995ff789b646129f5d4b2365e1d5685b29a84e From 40fc6bd5cc679875e38ea1769527affdb5be12ba Mon Sep 17 00:00:00 2001 From: Lech Perczak Date: Wed, 12 Feb 2025 02:25:53 +0100 Subject: [PATCH 08/13] ath79: mikrotik: fix reference clock of Routerboard 911G When support for Routerboard 911G was introduced, Routerboad 912UAG device tree was used as a base, and the common part. This led to use of 40MHz as the reference clock frequency for both [1], while RB911G uses 25MHz crystal on the board, causing heavy system clock drift. Split the definition, and set the reference clock frequency for RB911G back to 25MHz. [1] a716ac556497 ("ath79: fix reference clock for RouterBoard 912UAG") Fixes: bcc44b1212b2 ("ath79: support for MikroTik RouterBOARD 911G-(2,5)HPnD") Signed-off-by: Lech Perczak Link: https://github.com/openwrt/openwrt/pull/17944 Signed-off-by: Hauke Mehrtens --- .../ath79/dts/ar9342_mikrotik_routerboard-911g-xhpnd.dts | 4 ++++ target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g.dtsi | 4 ---- .../ath79/dts/ar9342_mikrotik_routerboard-912uag-2hpnd.dts | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g-xhpnd.dts b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g-xhpnd.dts index 5fa44b4412..655c590f8c 100644 --- a/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g-xhpnd.dts +++ b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g-xhpnd.dts @@ -9,3 +9,7 @@ compatible = "mikrotik,routerboard-911g-xhpnd", "qca,ar9342"; model = "MikroTik RouterBOARD 911G-(2,5)HPnD"; }; + +&ref { + clock-frequency = <25000000>; +}; diff --git a/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g.dtsi b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g.dtsi index 0c98a6634e..3a8c60456f 100644 --- a/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g.dtsi +++ b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g.dtsi @@ -146,10 +146,6 @@ }; }; -&ref { - clock-frequency = <40000000>; -}; - &spi { status = "okay"; diff --git a/target/linux/ath79/dts/ar9342_mikrotik_routerboard-912uag-2hpnd.dts b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-912uag-2hpnd.dts index 81d7284b3d..4cf62349f5 100644 --- a/target/linux/ath79/dts/ar9342_mikrotik_routerboard-912uag-2hpnd.dts +++ b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-912uag-2hpnd.dts @@ -10,6 +10,10 @@ model = "MikroTik RouterBOARD 912UAG-(2,5)HPnD"; }; +&ref { + clock-frequency = <40000000>; +}; + &pcie { status = "okay"; }; From 693108a31835d43d5e92f116b4dbd9fbed06b7ed Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Fri, 7 Feb 2025 21:00:22 +0800 Subject: [PATCH 09/13] mac80211: rt2x00: fix eeprom load from PCI eFuse When eeprom name is not defined, the file load function should return an error code so that it can fallthrough to read eeprom form NIC inside eFuse. Fixes: https://github.com/openwrt/openwrt/issues/17854 Signed-off-by: Shiji Yang Link: https://github.com/openwrt/openwrt/pull/17892 Signed-off-by: Hauke Mehrtens --- ...1-wifi-rt2x00-Add-support-for-loading-EEPROM-from-user.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/kernel/mac80211/patches/rt2x00/602-01-wifi-rt2x00-Add-support-for-loading-EEPROM-from-user.patch b/package/kernel/mac80211/patches/rt2x00/602-01-wifi-rt2x00-Add-support-for-loading-EEPROM-from-user.patch index b6b1e0da96..f3c8ddd4f6 100644 --- a/package/kernel/mac80211/patches/rt2x00/602-01-wifi-rt2x00-Add-support-for-loading-EEPROM-from-user.patch +++ b/package/kernel/mac80211/patches/rt2x00/602-01-wifi-rt2x00-Add-support-for-loading-EEPROM-from-user.patch @@ -151,7 +151,7 @@ Signed-off-by: Christian Marangi + } + + if (!ee_name) -+ return 0; ++ return -ENOENT; + + rt2x00_info(rt2x00dev, "Loading EEPROM data from '%s'.\n", ee_name); + From 3aa9b708364fd4a46c8466750f51069e22f3dde7 Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 8 Feb 2025 09:21:15 +0800 Subject: [PATCH 10/13] ramips: mt7620: add missing PA/LNA pinctrl for Linksys E1700 This device has high-power external PA and LNA[1]. So we must configure PA/LNA pins to make the wireless work properly. [1] https://fccid.io/Q87-E1700/Internal-Photos/Internal-Photos-pdf-2135639.pdf Fixes: https://github.com/openwrt/openwrt/issues/7959 Signed-off-by: Shiji Yang Link: https://github.com/openwrt/openwrt/pull/17892 Signed-off-by: Hauke Mehrtens --- target/linux/ramips/dts/mt7620a_linksys_e1700.dts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target/linux/ramips/dts/mt7620a_linksys_e1700.dts b/target/linux/ramips/dts/mt7620a_linksys_e1700.dts index caa6780d60..4dca56cd7e 100644 --- a/target/linux/ramips/dts/mt7620a_linksys_e1700.dts +++ b/target/linux/ramips/dts/mt7620a_linksys_e1700.dts @@ -167,6 +167,10 @@ }; &wmac { + pinctrl-names = "default", "pa_gpio"; + pinctrl-0 = <&pa_pins>; + pinctrl-1 = <&pa_gpio_pins>; + nvmem-cells = <&eeprom_factory_0>; nvmem-cell-names = "eeprom"; }; From 094b6f593fb4943005e13e2f8581e66bb7c2c8cf Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 8 Feb 2025 15:36:24 +0800 Subject: [PATCH 11/13] base-files: fix offset conversion on caldata_patch_data() `$(( ))` will convert uninitialized variable to "0". If we want to use "-n" to check the string length, it's necessary to make sure the converted variable is not empty. Fixes: 652a6677d5fa ("base-files: Add new functions for ath11k caldata") Fixes: https://github.com/openwrt/openwrt/issues/17818 Signed-off-by: Shiji Yang Link: https://github.com/openwrt/openwrt/pull/17892 Signed-off-by: Hauke Mehrtens --- package/base-files/files/lib/functions/caldata.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/base-files/files/lib/functions/caldata.sh b/package/base-files/files/lib/functions/caldata.sh index 09289728c0..f0fc907aef 100644 --- a/package/base-files/files/lib/functions/caldata.sh +++ b/package/base-files/files/lib/functions/caldata.sh @@ -125,8 +125,8 @@ caldata_valid() { caldata_patch_data() { local data=$1 local data_count=$((${#1} / 2)) - local data_offset=$(($2)) - local chksum_offset=$(($3)) + [ -n "$2" ] && local data_offset=$(($2)) + [ -n "$3" ] && local chksum_offset=$(($3)) local target=$4 local fw_data local fw_chksum From 43bc5e6e122b06eb9bfd22cf0bdf3212b84073f3 Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 8 Feb 2025 15:39:13 +0800 Subject: [PATCH 12/13] Revert "Revert "ramips: mt7620: fix patching mac address in caldata"" This reverts commit f628467dfd6b32ead172d33a2593f04901395343. The initial fix was correct. However, a recently introduced bug in base-files can cause some unexpected byte overwriting in eeprom. Since it has been fixed, let's accept this patch again. Signed-off-by: Shiji Yang Link: https://github.com/openwrt/openwrt/pull/17892 Signed-off-by: Hauke Mehrtens --- .../mt7620/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/linux/ramips/mt7620/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/ramips/mt7620/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom index 2d1ac2e872..b68efcbba1 100644 --- a/target/linux/ramips/mt7620/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom +++ b/target/linux/ramips/mt7620/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom @@ -34,12 +34,12 @@ case "$FIRMWARE" in wan_mac=$(jboot_config_read -m -i $(find_mtd_part "config") -o 0xE000) wifi_mac=$(macaddr_add "$wan_mac" 1) jboot_eeprom_extract "config" 0xE000 - caldata_patch_mac $wifi_mac 0x4 + caldata_patch_data "${wifi_mac//:/}" 0x4 ;; dovado,tiny-ac) wifi_mac=$(mtd_get_mac_ascii u-boot-env INIC_MAC_ADDR) caldata_extract "factory" 0x0 0x200 - caldata_patch_mac $wifi_mac 0x4 + caldata_patch_data "${wifi_mac//:/}" 0x4 ;; *) caldata_die "Please define mtd-eeprom in $board DTS file!" From b6415e9fa9556705092dd5391ebed48f13741f6e Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Mon, 10 Feb 2025 02:28:54 +0000 Subject: [PATCH 13/13] arm-trusted-firmware-tools: update to version 2.12 Upstream changes: 3789c3c00 build: determine toolchain tools dynamically ccbfd01d9 fix(tools): update the fiptool and certtool to fix POSIX build 7c4e1eea6 build: unify verbosity handling 10327628c Merge "feat(stm32mp2): add ddr-fw parameter for fiptool" into integration a11230ad0 refactor(fiptool): change all occurrences of RSS to RSE e494afc05 feat(stm32mp2): add ddr-fw parameter for fiptool ffb774212 build: use new toolchain variables for tools cc277de81 build: refactor toolchain detection 503cf9927 refactor(juno): move plat_def_uuid_config to fiptool 4d4fec281 feat(fiptool): add ability to build statically 352366ede refactor(ethos-n): move build flags to ethosn_npu.mk aa57ce632 build(tools): avoid unnecessary link d4affdce8 Merge "fix(stm32mp1): add void entry in plat_def_toc_entries" into integration 570a23099 fix(fiptool): move juno plat_fiptool.mk 8214ecdab fix(stm32mp1): add void entry in plat_def_toc_entries Signed-off-by: Daniel Golle --- .../boot/arm-trusted-firmware-tools/Makefile | 7 ++++--- .../patches/001-respect-LDFLAGS.patch | 14 ++++++------- .../patches/002-darwin_compile.patch | 21 ++++++++++--------- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/package/boot/arm-trusted-firmware-tools/Makefile b/package/boot/arm-trusted-firmware-tools/Makefile index 209e945a0b..dd0ed66a21 100644 --- a/package/boot/arm-trusted-firmware-tools/Makefile +++ b/package/boot/arm-trusted-firmware-tools/Makefile @@ -8,9 +8,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=arm-trusted-firmware-tools -PKG_VERSION:=2.9 +PKG_VERSION:=2.12 PKG_RELEASE:=1 -PKG_HASH:=76a66a1de0c01aeb83dfc7b72b51173fe62c6e51d6fca17cc562393117bed08b +PKG_HASH:=b4c047493cac1152203e1ba121ae57267e4899b7bf56eb365e22a933342d31c9 PKG_MAINTAINER:=Daniel Golle PKG_HOST_ONLY:=1 @@ -33,7 +33,8 @@ define Host/Compile $(MAKE) -C \ $(HOST_BUILD_DIR)/tools/fiptool \ CPPFLAGS="$(HOST_CFLAGS)" \ - LDFLAGS="$(HOST_LDFLAGS)" + LDFLAGS="$(HOST_LDFLAGS)" \ + OPENSSL_DIR="$(STAGING_DIR_HOST)" endef define Host/Install diff --git a/package/boot/arm-trusted-firmware-tools/patches/001-respect-LDFLAGS.patch b/package/boot/arm-trusted-firmware-tools/patches/001-respect-LDFLAGS.patch index 0b7989163e..8959befaeb 100644 --- a/package/boot/arm-trusted-firmware-tools/patches/001-respect-LDFLAGS.patch +++ b/package/boot/arm-trusted-firmware-tools/patches/001-respect-LDFLAGS.patch @@ -1,11 +1,11 @@ --- a/tools/fiptool/Makefile +++ b/tools/fiptool/Makefile -@@ -38,7 +38,7 @@ +@@ -74,7 +74,7 @@ all: --openssl ${PROJECT} ${PROJECT}: ${OBJECTS} Makefile - @echo " HOSTLD $@" -- ${Q}${HOSTCC} ${OBJECTS} -o $@ ${LDLIBS} -+ ${Q}${HOSTCC} ${OBJECTS} -o $@ ${LDLIBS} $(LDFLAGS) - @${ECHO_BLANK_LINE} - @echo "Built $@ successfully" - @${ECHO_BLANK_LINE} + $(s)echo " HOSTLD $@" +- $(q)$(host-cc) ${OBJECTS} -o $@ $(LDOPTS) ++ $(q)$(host-cc) ${OBJECTS} -o $@ $(LDOPTS) $(LDFLAGS) + $(s)echo + $(s)echo "Built $@ successfully" + $(s)echo diff --git a/package/boot/arm-trusted-firmware-tools/patches/002-darwin_compile.patch b/package/boot/arm-trusted-firmware-tools/patches/002-darwin_compile.patch index 6bc8192f44..621047a30e 100644 --- a/package/boot/arm-trusted-firmware-tools/patches/002-darwin_compile.patch +++ b/package/boot/arm-trusted-firmware-tools/patches/002-darwin_compile.patch @@ -1,15 +1,6 @@ --- a/tools/fiptool/fiptool.c +++ b/tools/fiptool/fiptool.c -@@ -3,7 +3,7 @@ - * - * SPDX-License-Identifier: BSD-3-Clause - */ -- -+#define _DARWIN_C_SOURCE - #ifndef _MSC_VER - #include - #endif -@@ -18,6 +18,9 @@ +@@ -19,6 +19,9 @@ #include #include #include @@ -19,3 +10,13 @@ #include "fiptool.h" #include "tbbr_config.h" +--- a/tools/fiptool/fiptool_platform.h ++++ b/tools/fiptool/fiptool_platform.h +@@ -12,6 +12,7 @@ + #ifndef FIPTOOL_PLATFORM_H + #define FIPTOOL_PLATFORM_H + ++#define _DARWIN_C_SOURCE + #ifndef _MSC_VER + + /* Not Visual Studio, so include Posix Headers. */