diff --git a/patch/kernel/mvebu-current/need-checking/0008-phy-marvell-88E1510-add-flow-control-support.patch b/patch/kernel/mvebu-current/need-checking/0008-phy-marvell-88E1510-add-flow-control-support.patch deleted file mode 100644 index f503576d3..000000000 --- a/patch/kernel/mvebu-current/need-checking/0008-phy-marvell-88E1510-add-flow-control-support.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: Russell King -Subject: [PATCH 08/30] phy: marvell: 88E1512: add flow control support -MIME-Version: 1.0 -Content-Disposition: inline -Content-Transfer-Encoding: 8bit -Content-Type: text/plain; charset="utf-8" - -The Marvell PHYs support pause frame advertisments, so we should not be -masking their support off. Add the necessary flag to the Marvell PHY -to allow any MAC level pause frame support to be advertised. - -Signed-off-by: Russell King ---- - drivers/net/phy/marvell.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c -index 5de8d5827536..9a5329bfd0fd 100644 ---- a/drivers/net/phy/marvell.c -+++ b/drivers/net/phy/marvell.c -@@ -1142,7 +1142,7 @@ static struct phy_driver marvell_drivers[] = { - .phy_id = MARVELL_PHY_ID_88E1510, - .phy_id_mask = MARVELL_PHY_ID_MASK, - .name = "Marvell 88E1510", -- .features = PHY_GBIT_FEATURES | SUPPORTED_FIBRE, -+ .features = PHY_GBIT_FEATURES | SUPPORTED_FIBRE | SUPPORTED_Pause, - .flags = PHY_HAS_INTERRUPT, - .config_aneg = &m88e1510_config_aneg, - .read_status = &marvell_read_status, --- -2.1.0 - diff --git a/patch/kernel/mvebu-current/need-checking/450-reprobe_sfp_phy.patch b/patch/kernel/mvebu-current/need-checking/450-reprobe_sfp_phy.patch deleted file mode 100644 index e9a3d695d..000000000 --- a/patch/kernel/mvebu-current/need-checking/450-reprobe_sfp_phy.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 28baa5e2635285b178326b301f534ed95c65dd01 Mon Sep 17 00:00:00 2001 -From: Jonas Gorski -Date: Thu, 29 Sep 2016 11:44:39 +0200 -Subject: [PATCH] sfp: retry phy probe if unsuccessful - -Some phys seem to take longer than 50 ms to come out of reset, so retry -until we find a phy. - -Signed-off-by: Jonas Gorski ---- - drivers/net/phy/sfp.c | 38 +++++++++++++++++++++++++------------- - 1 file changed, 25 insertions(+), 13 deletions(-) - ---- a/drivers/net/phy/sfp.c -+++ b/drivers/net/phy/sfp.c -@@ -488,7 +488,7 @@ static void sfp_sm_phy_detach(struct sfp - sfp->mod_phy = NULL; - } - --static void sfp_sm_probe_phy(struct sfp *sfp) -+static int sfp_sm_probe_phy(struct sfp *sfp) - { - struct phy_device *phy; - int err; -@@ -498,11 +498,11 @@ static void sfp_sm_probe_phy(struct sfp - phy = mdiobus_scan(sfp->i2c_mii, SFP_PHY_ADDR); - if (phy == ERR_PTR(-ENODEV)) { - dev_info(sfp->dev, "no PHY detected\n"); -- return; -+ return -EAGAIN; - } - if (IS_ERR(phy)) { - dev_err(sfp->dev, "mdiobus scan returned %ld\n", PTR_ERR(phy)); -- return; -+ return PTR_ERR(phy); - } - - err = sfp_add_phy(sfp->sfp_bus, phy); -@@ -510,11 +510,13 @@ static void sfp_sm_probe_phy(struct sfp - phy_device_remove(phy); - phy_device_free(phy); - dev_err(sfp->dev, "sfp_add_phy failed: %d\n", err); -- return; -+ return err; - } - - sfp->mod_phy = phy; - phy_start(phy); -+ -+ return 0; - } - - static void sfp_sm_link_up(struct sfp *sfp) -@@ -560,14 +562,9 @@ static void sfp_sm_fault(struct sfp *sfp - - static void sfp_sm_mod_init(struct sfp *sfp) - { -- sfp_module_tx_enable(sfp); -+ int ret = 0; - -- /* Wait t_init before indicating that the link is up, provided the -- * current state indicates no TX_FAULT. If TX_FAULT clears before -- * this time, that's fine too. -- */ -- sfp_sm_next(sfp, SFP_S_INIT, T_INIT_JIFFIES); -- sfp->sm_retries = 5; -+ sfp_module_tx_enable(sfp); - - /* Setting the serdes link mode is guesswork: there's no - * field in the EEPROM which indicates what mode should -@@ -581,7 +578,22 @@ static void sfp_sm_mod_init(struct sfp * - if (sfp->id.base.e1000_base_t || - sfp->id.base.e100_base_lx || - sfp->id.base.e100_base_fx) -- sfp_sm_probe_phy(sfp); -+ ret = sfp_sm_probe_phy(sfp); -+ -+ if (!ret) { -+ /* Wait t_init before indicating that the link is up, provided -+ * the current state indicates no TX_FAULT. If TX_FAULT clears -+ * this time, that's fine too. -+ */ -+ sfp_sm_next(sfp, SFP_S_INIT, T_INIT_JIFFIES); -+ sfp->sm_retries = 5; -+ return; -+ } -+ -+ if (ret == -EAGAIN) -+ sfp_sm_set_timer(sfp, T_PROBE_RETRY); -+ else -+ sfp_sm_next(sfp, SFP_S_TX_DISABLE, 0); - } - - static int sfp_sm_mod_probe(struct sfp *sfp) diff --git a/patch/kernel/mvebu-dev/need-checking/unlock_atheros_regulatory_restrictions.patch b/patch/kernel/mvebu-current/unlock_atheros_regulatory_restrictions.patch similarity index 51% rename from patch/kernel/mvebu-dev/need-checking/unlock_atheros_regulatory_restrictions.patch rename to patch/kernel/mvebu-current/unlock_atheros_regulatory_restrictions.patch index 65324ca24..3d988558c 100644 --- a/patch/kernel/mvebu-dev/need-checking/unlock_atheros_regulatory_restrictions.patch +++ b/patch/kernel/mvebu-current/unlock_atheros_regulatory_restrictions.patch @@ -3,29 +3,29 @@ index ccc4c71..71a4d00 100644 --- a/drivers/net/wireless/ath/regd.c +++ b/drivers/net/wireless/ath/regd.c @@ -49,12 +49,9 @@ static int __ath_regd_init(struct ath_regulatory *reg); - #define ATH9K_5GHZ_5725_5850 REG_RULE(5725-10, 5850+10, 40, 0, 30,\ + #define ATH_5GHZ_5725_5850 REG_RULE(5725-10, 5850+10, 80, 0, 30,\ NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS) --#define ATH9K_2GHZ_ALL ATH9K_2GHZ_CH01_11, \ -- ATH9K_2GHZ_CH12_13, \ -- ATH9K_2GHZ_CH14 -+#define ATH9K_2GHZ_ALL REG_RULE(2400, 2483, 40, 0, 30, 0) +-#define ATH_2GHZ_ALL ATH_2GHZ_CH01_11, \ +- ATH_2GHZ_CH12_13, \ +- ATH_2GHZ_CH14 ++#define ATH_2GHZ_ALL REG_RULE(2400, 2483, 40, 0, 30, 0) --#define ATH9K_5GHZ_ALL ATH9K_5GHZ_5150_5350, \ -- ATH9K_5GHZ_5470_5850 -+#define ATH9K_5GHZ_ALL REG_RULE(5140, 5860, 40, 0, 30, 0) +-#define ATH_5GHZ_ALL ATH_5GHZ_5150_5350, \ +- ATH_5GHZ_5470_5850 ++#define ATH_5GHZ_ALL REG_RULE(5140, 5860, 40, 0, 30, 0) /* This one skips what we call "mid band" */ - #define ATH9K_5GHZ_NO_MIDBAND ATH9K_5GHZ_5150_5350, \ + #define ATH_5GHZ_NO_MIDBAND ATH_5GHZ_5150_5350, \ @@ -76,9 +73,8 @@ static const struct ieee80211_regdomain ath_world_regdom_63_65 = { .n_reg_rules = 4, .alpha2 = "99", .reg_rules = { -- ATH9K_2GHZ_CH01_11, -- ATH9K_2GHZ_CH12_13, -- ATH9K_5GHZ_NO_MIDBAND, -+ ATH9K_2GHZ_ALL, -+ ATH9K_5GHZ_ALL, +- ATH_2GHZ_CH01_11, +- ATH_2GHZ_CH12_13, +- ATH_5GHZ_NO_MIDBAND, ++ ATH_2GHZ_ALL, ++ ATH_5GHZ_ALL, } }; @@ -33,10 +33,10 @@ index ccc4c71..71a4d00 100644 .n_reg_rules = 3, .alpha2 = "99", .reg_rules = { -- ATH9K_2GHZ_CH01_11, -- ATH9K_5GHZ_NO_MIDBAND, -+ ATH9K_2GHZ_ALL, -+ ATH9K_5GHZ_ALL, +- ATH_2GHZ_CH01_11, +- ATH_5GHZ_NO_MIDBAND, ++ ATH_2GHZ_ALL, ++ ATH_5GHZ_ALL, } }; @@ -44,27 +44,30 @@ index ccc4c71..71a4d00 100644 .n_reg_rules = 3, .alpha2 = "99", .reg_rules = { -- ATH9K_2GHZ_CH01_11, -+ ATH9K_2GHZ_ALL, - ATH9K_5GHZ_ALL, +- ATH_2GHZ_CH01_11, ++ ATH_2GHZ_ALL, + ATH_5GHZ_ALL, } }; @@ -107,8 +103,7 @@ static const struct ieee80211_regdomain ath_world_regdom_67_68_6A_6C = { .n_reg_rules = 4, .alpha2 = "99", .reg_rules = { -- ATH9K_2GHZ_CH01_11, -- ATH9K_2GHZ_CH12_13, -+ ATH9K_2GHZ_ALL, - ATH9K_5GHZ_ALL, +- ATH_2GHZ_CH01_11, +- ATH_2GHZ_CH12_13, ++ ATH_2GHZ_ALL, + ATH_5GHZ_ALL, } }; -@@ -174,7 +169,7 @@ EXPORT_SYMBOL(ath_is_49ghz_allowed); - /* Frequency is one where radar detection is required */ - static bool ath_is_radar_freq(u16 center_freq) +@@ -253,9 +253,7 @@ static bool ath_is_radar_freq(u16 center_freq, + struct ath_regulatory *reg) + { +- if (reg->country_code == CTRY_INDIA) +- return (center_freq >= 5500 && center_freq <= 5700); - return (center_freq >= 5260 && center_freq <= 5700); + return false; } - /* + static void ath_force_clear_no_ir_chan(struct wiphy *wiphy, + -- diff --git a/patch/kernel/mvebu-current/wifi-4003-fix-sha256_state-clashes.patch b/patch/kernel/mvebu-current/wifi-4003-fix-sha256_state-clashes.patch index 0dce511a1..7ed60ce31 100644 --- a/patch/kernel/mvebu-current/wifi-4003-fix-sha256_state-clashes.patch +++ b/patch/kernel/mvebu-current/wifi-4003-fix-sha256_state-clashes.patch @@ -1,65 +1,3 @@ -diff --git a/drivers/net/wireless/rtl8189es/include/rtw_security.h b/drivers/net/wireless/rtl8189es/include/rtw_security.h -index 5820a55..3e8e428 100644 ---- a/drivers/net/wireless/rtl8189es/include/rtw_security.h -+++ b/drivers/net/wireless/rtl8189es/include/rtw_security.h -@@ -238,7 +238,7 @@ struct security_priv - #endif /* DBG_SW_SEC_CNT */ - }; - --struct sha256_state { -+struct rtl_sha256_state { - u64 length; - u32 state[8], curlen; - u8 buf[64]; -diff --git a/drivers/net/wireless/rtl8189es/core/rtw_security.c b/drivers/net/wireless/rtl8189es/core/rtw_security.c -index 8dac771..9b3a1f9 100644 ---- a/drivers/net/wireless/rtl8189es/core/rtw_security.c -+++ b/drivers/net/wireless/rtl8189es/core/rtw_security.c -@@ -2281,7 +2281,7 @@ BIP_exit: - - #ifndef PLATFORM_FREEBSD - /* compress 512-bits */ --static int sha256_compress(struct sha256_state *md, unsigned char *buf) -+static int sha256_compress(struct rtl_sha256_state *md, unsigned char *buf) - { - u32 S[8], W[64], t0, t1; - u32 t; -@@ -2323,7 +2323,7 @@ static int sha256_compress(struct sha256_state *md, unsigned char *buf) - } - - /* Initialize the hash state */ --static void sha256_init(struct sha256_state *md) -+static void sha256_init(struct rtl_sha256_state *md) - { - md->curlen = 0; - md->length = 0; -@@ -2344,7 +2344,7 @@ static void sha256_init(struct sha256_state *md) - @param inlen The length of the data (octets) - @return CRYPT_OK if successful - */ --static int sha256_process(struct sha256_state *md, unsigned char *in, -+static int sha256_process(struct rtl_sha256_state *md, unsigned char *in, - unsigned long inlen) - { - unsigned long n; -@@ -2385,7 +2385,7 @@ static int sha256_process(struct sha256_state *md, unsigned char *in, - @param out [out] The destination of the hash (32 bytes) - @return CRYPT_OK if successful - */ --static int sha256_done(struct sha256_state *md, unsigned char *out) -+static int sha256_done(struct rtl_sha256_state *md, unsigned char *out) - { - int i; - -@@ -2437,7 +2437,7 @@ static int sha256_done(struct sha256_state *md, unsigned char *out) - static int sha256_vector(size_t num_elem, u8 *addr[], size_t *len, - u8 *mac) - { -- struct sha256_state ctx; -+ struct rtl_sha256_state ctx; - size_t i; - - sha256_init(&ctx); diff --git a/drivers/net/wireless/rtl8811cu/include/rtw_security.h b/drivers/net/wireless/rtl8811cu/include/rtw_security.h index ac8432e..5f74fb7 100755 --- a/drivers/net/wireless/rtl8811cu/include/rtw_security.h diff --git a/patch/kernel/mvebu-current/wifi-4004-fix-cfg80211-for-5.8.patch b/patch/kernel/mvebu-current/wifi-4004-fix-cfg80211-for-5.8.patch index 587d60460..c57357b61 100644 --- a/patch/kernel/mvebu-current/wifi-4004-fix-cfg80211-for-5.8.patch +++ b/patch/kernel/mvebu-current/wifi-4004-fix-cfg80211-for-5.8.patch @@ -1,63 +1,3 @@ -diff --git a/drivers/net/wireless/rtl8189es/os_dep/linux/ioctl_cfg80211.c b/drivers/net/wireless/rtl8189es/os_dep/linux/ioctl_cfg80211.c -index d77cc17..32cc240 100644 ---- a/drivers/net/wireless/rtl8189es/os_dep/linux/ioctl_cfg80211.c -+++ b/drivers/net/wireless/rtl8189es/os_dep/linux/ioctl_cfg80211.c -@@ -5567,6 +5567,33 @@ exit: - return ret; - } - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ -+static void -+cfg80211_rtw_update_mgmt_frame_registrations(struct wiphy *wiphy, -+ struct wireless_dev *wdev, -+ struct mgmt_frame_regs *upd) -+{ -+ struct net_device *ndev = wdev_to_ndev(wdev); -+ struct rtw_wdev_priv *pwdev_priv; -+ _adapter *adapter; -+ -+ if (ndev == NULL) -+ return; -+ -+ adapter = (_adapter *)rtw_netdev_priv(ndev); -+ pwdev_priv = adapter_wdev_data(adapter); -+ -+#ifdef CONFIG_DEBUG_CFG80211 -+ RTW_INFO(FUNC_ADPT_FMT" stypes:%x\n", FUNC_ADPT_ARG(adapter), -+ upd->interface_stypes); -+#endif -+ -+ /* not implemented, see bellow */ -+} -+ -+#else -+ - static void cfg80211_rtw_mgmt_frame_register(struct wiphy *wiphy, - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) - struct wireless_dev *wdev, -@@ -5611,6 +5638,8 @@ exit: - return; - } - -+#endif -+ - #if defined(CONFIG_TDLS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) - static int cfg80211_rtw_tdls_mgmt(struct wiphy *wiphy, - struct net_device *ndev, -@@ -6505,7 +6534,11 @@ static struct cfg80211_ops rtw_cfg80211_ops = { - - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE) - .mgmt_tx = cfg80211_rtw_mgmt_tx, -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ .update_mgmt_frame_registrations = cfg80211_rtw_update_mgmt_frame_registrations, -+#else - .mgmt_frame_register = cfg80211_rtw_mgmt_frame_register, -+#endif - #elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,34) && LINUX_VERSION_CODE<=KERNEL_VERSION(2,6,35)) - .action = cfg80211_rtw_mgmt_tx, - #endif -diff --git a/drivers/net/wireless/rtl8811cu/os_dep/linux/ioctl_cfg80211.c b/drivers/net/wireless/rtl8811cu/os_dep/linux/ioctl_cfg80211.c index c0df148..9bff924 100755 --- a/drivers/net/wireless/rtl8811cu/os_dep/linux/ioctl_cfg80211.c +++ b/drivers/net/wireless/rtl8811cu/os_dep/linux/ioctl_cfg80211.c diff --git a/patch/kernel/mvebu-dev/disabled/450-reprobe_sfp_phy.patch b/patch/kernel/mvebu-dev/disabled/450-reprobe_sfp_phy.patch deleted file mode 100644 index e9a3d695d..000000000 --- a/patch/kernel/mvebu-dev/disabled/450-reprobe_sfp_phy.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 28baa5e2635285b178326b301f534ed95c65dd01 Mon Sep 17 00:00:00 2001 -From: Jonas Gorski -Date: Thu, 29 Sep 2016 11:44:39 +0200 -Subject: [PATCH] sfp: retry phy probe if unsuccessful - -Some phys seem to take longer than 50 ms to come out of reset, so retry -until we find a phy. - -Signed-off-by: Jonas Gorski ---- - drivers/net/phy/sfp.c | 38 +++++++++++++++++++++++++------------- - 1 file changed, 25 insertions(+), 13 deletions(-) - ---- a/drivers/net/phy/sfp.c -+++ b/drivers/net/phy/sfp.c -@@ -488,7 +488,7 @@ static void sfp_sm_phy_detach(struct sfp - sfp->mod_phy = NULL; - } - --static void sfp_sm_probe_phy(struct sfp *sfp) -+static int sfp_sm_probe_phy(struct sfp *sfp) - { - struct phy_device *phy; - int err; -@@ -498,11 +498,11 @@ static void sfp_sm_probe_phy(struct sfp - phy = mdiobus_scan(sfp->i2c_mii, SFP_PHY_ADDR); - if (phy == ERR_PTR(-ENODEV)) { - dev_info(sfp->dev, "no PHY detected\n"); -- return; -+ return -EAGAIN; - } - if (IS_ERR(phy)) { - dev_err(sfp->dev, "mdiobus scan returned %ld\n", PTR_ERR(phy)); -- return; -+ return PTR_ERR(phy); - } - - err = sfp_add_phy(sfp->sfp_bus, phy); -@@ -510,11 +510,13 @@ static void sfp_sm_probe_phy(struct sfp - phy_device_remove(phy); - phy_device_free(phy); - dev_err(sfp->dev, "sfp_add_phy failed: %d\n", err); -- return; -+ return err; - } - - sfp->mod_phy = phy; - phy_start(phy); -+ -+ return 0; - } - - static void sfp_sm_link_up(struct sfp *sfp) -@@ -560,14 +562,9 @@ static void sfp_sm_fault(struct sfp *sfp - - static void sfp_sm_mod_init(struct sfp *sfp) - { -- sfp_module_tx_enable(sfp); -+ int ret = 0; - -- /* Wait t_init before indicating that the link is up, provided the -- * current state indicates no TX_FAULT. If TX_FAULT clears before -- * this time, that's fine too. -- */ -- sfp_sm_next(sfp, SFP_S_INIT, T_INIT_JIFFIES); -- sfp->sm_retries = 5; -+ sfp_module_tx_enable(sfp); - - /* Setting the serdes link mode is guesswork: there's no - * field in the EEPROM which indicates what mode should -@@ -581,7 +578,22 @@ static void sfp_sm_mod_init(struct sfp * - if (sfp->id.base.e1000_base_t || - sfp->id.base.e100_base_lx || - sfp->id.base.e100_base_fx) -- sfp_sm_probe_phy(sfp); -+ ret = sfp_sm_probe_phy(sfp); -+ -+ if (!ret) { -+ /* Wait t_init before indicating that the link is up, provided -+ * the current state indicates no TX_FAULT. If TX_FAULT clears -+ * this time, that's fine too. -+ */ -+ sfp_sm_next(sfp, SFP_S_INIT, T_INIT_JIFFIES); -+ sfp->sm_retries = 5; -+ return; -+ } -+ -+ if (ret == -EAGAIN) -+ sfp_sm_set_timer(sfp, T_PROBE_RETRY); -+ else -+ sfp_sm_next(sfp, SFP_S_TX_DISABLE, 0); - } - - static int sfp_sm_mod_probe(struct sfp *sfp) diff --git a/patch/kernel/mvebu-dev/need-checking/0008-phy-marvell-88E1510-add-flow-control-support.patch b/patch/kernel/mvebu-dev/need-checking/0008-phy-marvell-88E1510-add-flow-control-support.patch deleted file mode 100644 index f503576d3..000000000 --- a/patch/kernel/mvebu-dev/need-checking/0008-phy-marvell-88E1510-add-flow-control-support.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: Russell King -Subject: [PATCH 08/30] phy: marvell: 88E1512: add flow control support -MIME-Version: 1.0 -Content-Disposition: inline -Content-Transfer-Encoding: 8bit -Content-Type: text/plain; charset="utf-8" - -The Marvell PHYs support pause frame advertisments, so we should not be -masking their support off. Add the necessary flag to the Marvell PHY -to allow any MAC level pause frame support to be advertised. - -Signed-off-by: Russell King ---- - drivers/net/phy/marvell.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c -index 5de8d5827536..9a5329bfd0fd 100644 ---- a/drivers/net/phy/marvell.c -+++ b/drivers/net/phy/marvell.c -@@ -1142,7 +1142,7 @@ static struct phy_driver marvell_drivers[] = { - .phy_id = MARVELL_PHY_ID_88E1510, - .phy_id_mask = MARVELL_PHY_ID_MASK, - .name = "Marvell 88E1510", -- .features = PHY_GBIT_FEATURES | SUPPORTED_FIBRE, -+ .features = PHY_GBIT_FEATURES | SUPPORTED_FIBRE | SUPPORTED_Pause, - .flags = PHY_HAS_INTERRUPT, - .config_aneg = &m88e1510_config_aneg, - .read_status = &marvell_read_status, --- -2.1.0 - diff --git a/patch/kernel/mvebu-current/need-checking/unlock_atheros_regulatory_restrictions.patch b/patch/kernel/mvebu-dev/unlock_atheros_regulatory_restrictions.patch similarity index 51% rename from patch/kernel/mvebu-current/need-checking/unlock_atheros_regulatory_restrictions.patch rename to patch/kernel/mvebu-dev/unlock_atheros_regulatory_restrictions.patch index 65324ca24..3d988558c 100644 --- a/patch/kernel/mvebu-current/need-checking/unlock_atheros_regulatory_restrictions.patch +++ b/patch/kernel/mvebu-dev/unlock_atheros_regulatory_restrictions.patch @@ -3,29 +3,29 @@ index ccc4c71..71a4d00 100644 --- a/drivers/net/wireless/ath/regd.c +++ b/drivers/net/wireless/ath/regd.c @@ -49,12 +49,9 @@ static int __ath_regd_init(struct ath_regulatory *reg); - #define ATH9K_5GHZ_5725_5850 REG_RULE(5725-10, 5850+10, 40, 0, 30,\ + #define ATH_5GHZ_5725_5850 REG_RULE(5725-10, 5850+10, 80, 0, 30,\ NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS) --#define ATH9K_2GHZ_ALL ATH9K_2GHZ_CH01_11, \ -- ATH9K_2GHZ_CH12_13, \ -- ATH9K_2GHZ_CH14 -+#define ATH9K_2GHZ_ALL REG_RULE(2400, 2483, 40, 0, 30, 0) +-#define ATH_2GHZ_ALL ATH_2GHZ_CH01_11, \ +- ATH_2GHZ_CH12_13, \ +- ATH_2GHZ_CH14 ++#define ATH_2GHZ_ALL REG_RULE(2400, 2483, 40, 0, 30, 0) --#define ATH9K_5GHZ_ALL ATH9K_5GHZ_5150_5350, \ -- ATH9K_5GHZ_5470_5850 -+#define ATH9K_5GHZ_ALL REG_RULE(5140, 5860, 40, 0, 30, 0) +-#define ATH_5GHZ_ALL ATH_5GHZ_5150_5350, \ +- ATH_5GHZ_5470_5850 ++#define ATH_5GHZ_ALL REG_RULE(5140, 5860, 40, 0, 30, 0) /* This one skips what we call "mid band" */ - #define ATH9K_5GHZ_NO_MIDBAND ATH9K_5GHZ_5150_5350, \ + #define ATH_5GHZ_NO_MIDBAND ATH_5GHZ_5150_5350, \ @@ -76,9 +73,8 @@ static const struct ieee80211_regdomain ath_world_regdom_63_65 = { .n_reg_rules = 4, .alpha2 = "99", .reg_rules = { -- ATH9K_2GHZ_CH01_11, -- ATH9K_2GHZ_CH12_13, -- ATH9K_5GHZ_NO_MIDBAND, -+ ATH9K_2GHZ_ALL, -+ ATH9K_5GHZ_ALL, +- ATH_2GHZ_CH01_11, +- ATH_2GHZ_CH12_13, +- ATH_5GHZ_NO_MIDBAND, ++ ATH_2GHZ_ALL, ++ ATH_5GHZ_ALL, } }; @@ -33,10 +33,10 @@ index ccc4c71..71a4d00 100644 .n_reg_rules = 3, .alpha2 = "99", .reg_rules = { -- ATH9K_2GHZ_CH01_11, -- ATH9K_5GHZ_NO_MIDBAND, -+ ATH9K_2GHZ_ALL, -+ ATH9K_5GHZ_ALL, +- ATH_2GHZ_CH01_11, +- ATH_5GHZ_NO_MIDBAND, ++ ATH_2GHZ_ALL, ++ ATH_5GHZ_ALL, } }; @@ -44,27 +44,30 @@ index ccc4c71..71a4d00 100644 .n_reg_rules = 3, .alpha2 = "99", .reg_rules = { -- ATH9K_2GHZ_CH01_11, -+ ATH9K_2GHZ_ALL, - ATH9K_5GHZ_ALL, +- ATH_2GHZ_CH01_11, ++ ATH_2GHZ_ALL, + ATH_5GHZ_ALL, } }; @@ -107,8 +103,7 @@ static const struct ieee80211_regdomain ath_world_regdom_67_68_6A_6C = { .n_reg_rules = 4, .alpha2 = "99", .reg_rules = { -- ATH9K_2GHZ_CH01_11, -- ATH9K_2GHZ_CH12_13, -+ ATH9K_2GHZ_ALL, - ATH9K_5GHZ_ALL, +- ATH_2GHZ_CH01_11, +- ATH_2GHZ_CH12_13, ++ ATH_2GHZ_ALL, + ATH_5GHZ_ALL, } }; -@@ -174,7 +169,7 @@ EXPORT_SYMBOL(ath_is_49ghz_allowed); - /* Frequency is one where radar detection is required */ - static bool ath_is_radar_freq(u16 center_freq) +@@ -253,9 +253,7 @@ static bool ath_is_radar_freq(u16 center_freq, + struct ath_regulatory *reg) + { +- if (reg->country_code == CTRY_INDIA) +- return (center_freq >= 5500 && center_freq <= 5700); - return (center_freq >= 5260 && center_freq <= 5700); + return false; } - /* + static void ath_force_clear_no_ir_chan(struct wiphy *wiphy, + -- diff --git a/patch/kernel/mvebu-dev/wifi-4003-fix-sha256_state-clashes.patch b/patch/kernel/mvebu-dev/wifi-4003-fix-sha256_state-clashes.patch index 0dce511a1..7ed60ce31 100644 --- a/patch/kernel/mvebu-dev/wifi-4003-fix-sha256_state-clashes.patch +++ b/patch/kernel/mvebu-dev/wifi-4003-fix-sha256_state-clashes.patch @@ -1,65 +1,3 @@ -diff --git a/drivers/net/wireless/rtl8189es/include/rtw_security.h b/drivers/net/wireless/rtl8189es/include/rtw_security.h -index 5820a55..3e8e428 100644 ---- a/drivers/net/wireless/rtl8189es/include/rtw_security.h -+++ b/drivers/net/wireless/rtl8189es/include/rtw_security.h -@@ -238,7 +238,7 @@ struct security_priv - #endif /* DBG_SW_SEC_CNT */ - }; - --struct sha256_state { -+struct rtl_sha256_state { - u64 length; - u32 state[8], curlen; - u8 buf[64]; -diff --git a/drivers/net/wireless/rtl8189es/core/rtw_security.c b/drivers/net/wireless/rtl8189es/core/rtw_security.c -index 8dac771..9b3a1f9 100644 ---- a/drivers/net/wireless/rtl8189es/core/rtw_security.c -+++ b/drivers/net/wireless/rtl8189es/core/rtw_security.c -@@ -2281,7 +2281,7 @@ BIP_exit: - - #ifndef PLATFORM_FREEBSD - /* compress 512-bits */ --static int sha256_compress(struct sha256_state *md, unsigned char *buf) -+static int sha256_compress(struct rtl_sha256_state *md, unsigned char *buf) - { - u32 S[8], W[64], t0, t1; - u32 t; -@@ -2323,7 +2323,7 @@ static int sha256_compress(struct sha256_state *md, unsigned char *buf) - } - - /* Initialize the hash state */ --static void sha256_init(struct sha256_state *md) -+static void sha256_init(struct rtl_sha256_state *md) - { - md->curlen = 0; - md->length = 0; -@@ -2344,7 +2344,7 @@ static void sha256_init(struct sha256_state *md) - @param inlen The length of the data (octets) - @return CRYPT_OK if successful - */ --static int sha256_process(struct sha256_state *md, unsigned char *in, -+static int sha256_process(struct rtl_sha256_state *md, unsigned char *in, - unsigned long inlen) - { - unsigned long n; -@@ -2385,7 +2385,7 @@ static int sha256_process(struct sha256_state *md, unsigned char *in, - @param out [out] The destination of the hash (32 bytes) - @return CRYPT_OK if successful - */ --static int sha256_done(struct sha256_state *md, unsigned char *out) -+static int sha256_done(struct rtl_sha256_state *md, unsigned char *out) - { - int i; - -@@ -2437,7 +2437,7 @@ static int sha256_done(struct sha256_state *md, unsigned char *out) - static int sha256_vector(size_t num_elem, u8 *addr[], size_t *len, - u8 *mac) - { -- struct sha256_state ctx; -+ struct rtl_sha256_state ctx; - size_t i; - - sha256_init(&ctx); diff --git a/drivers/net/wireless/rtl8811cu/include/rtw_security.h b/drivers/net/wireless/rtl8811cu/include/rtw_security.h index ac8432e..5f74fb7 100755 --- a/drivers/net/wireless/rtl8811cu/include/rtw_security.h diff --git a/patch/kernel/mvebu-dev/wifi-4004-fix-cfg80211-for-5.8.patch b/patch/kernel/mvebu-dev/wifi-4004-fix-cfg80211-for-5.8.patch index 587d60460..c57357b61 100644 --- a/patch/kernel/mvebu-dev/wifi-4004-fix-cfg80211-for-5.8.patch +++ b/patch/kernel/mvebu-dev/wifi-4004-fix-cfg80211-for-5.8.patch @@ -1,63 +1,3 @@ -diff --git a/drivers/net/wireless/rtl8189es/os_dep/linux/ioctl_cfg80211.c b/drivers/net/wireless/rtl8189es/os_dep/linux/ioctl_cfg80211.c -index d77cc17..32cc240 100644 ---- a/drivers/net/wireless/rtl8189es/os_dep/linux/ioctl_cfg80211.c -+++ b/drivers/net/wireless/rtl8189es/os_dep/linux/ioctl_cfg80211.c -@@ -5567,6 +5567,33 @@ exit: - return ret; - } - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ -+static void -+cfg80211_rtw_update_mgmt_frame_registrations(struct wiphy *wiphy, -+ struct wireless_dev *wdev, -+ struct mgmt_frame_regs *upd) -+{ -+ struct net_device *ndev = wdev_to_ndev(wdev); -+ struct rtw_wdev_priv *pwdev_priv; -+ _adapter *adapter; -+ -+ if (ndev == NULL) -+ return; -+ -+ adapter = (_adapter *)rtw_netdev_priv(ndev); -+ pwdev_priv = adapter_wdev_data(adapter); -+ -+#ifdef CONFIG_DEBUG_CFG80211 -+ RTW_INFO(FUNC_ADPT_FMT" stypes:%x\n", FUNC_ADPT_ARG(adapter), -+ upd->interface_stypes); -+#endif -+ -+ /* not implemented, see bellow */ -+} -+ -+#else -+ - static void cfg80211_rtw_mgmt_frame_register(struct wiphy *wiphy, - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) - struct wireless_dev *wdev, -@@ -5611,6 +5638,8 @@ exit: - return; - } - -+#endif -+ - #if defined(CONFIG_TDLS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) - static int cfg80211_rtw_tdls_mgmt(struct wiphy *wiphy, - struct net_device *ndev, -@@ -6505,7 +6534,11 @@ static struct cfg80211_ops rtw_cfg80211_ops = { - - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE) - .mgmt_tx = cfg80211_rtw_mgmt_tx, -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ .update_mgmt_frame_registrations = cfg80211_rtw_update_mgmt_frame_registrations, -+#else - .mgmt_frame_register = cfg80211_rtw_mgmt_frame_register, -+#endif - #elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,34) && LINUX_VERSION_CODE<=KERNEL_VERSION(2,6,35)) - .action = cfg80211_rtw_mgmt_tx, - #endif -diff --git a/drivers/net/wireless/rtl8811cu/os_dep/linux/ioctl_cfg80211.c b/drivers/net/wireless/rtl8811cu/os_dep/linux/ioctl_cfg80211.c index c0df148..9bff924 100755 --- a/drivers/net/wireless/rtl8811cu/os_dep/linux/ioctl_cfg80211.c +++ b/drivers/net/wireless/rtl8811cu/os_dep/linux/ioctl_cfg80211.c