mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-10-31 02:17:58 +00:00 
			
		
		
		
	openwrt-21.02: update to latest upstream commit
Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
		| @@ -1,12 +1,13 @@ | |||||||
| repo:  https://github.com/openwrt/openwrt.git | repo:  https://github.com/openwrt/openwrt.git | ||||||
| branch: openwrt-21.02 | branch: openwrt-21.02 | ||||||
| revision: 378769b5551714ccaa821b481bfeecbf362f351e | revision: c67509efd7d0c43eb3f622f06c8a31aa28d22f6e | ||||||
| output_dir: ./output | output_dir: ./output | ||||||
|  |  | ||||||
| patch_folders: | patch_folders: | ||||||
|   - patches/backports/ |   - patches/backports/ | ||||||
|   - patches/ath79 |  | ||||||
|   - patches/base |   - patches/base | ||||||
|  |   - patches/wifi | ||||||
|  |   - patches/ath79 | ||||||
|   - patches/ramips |   - patches/ramips | ||||||
|   - patches/ipq40xx |   - patches/ipq40xx | ||||||
|   - patches/ipq806x |   - patches/ipq806x | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ define Package/ratelimit | |||||||
|   SECTION:=net |   SECTION:=net | ||||||
|   CATEGORY:=Network |   CATEGORY:=Network | ||||||
|   TITLE:=Wireless ratelimiting |   TITLE:=Wireless ratelimiting | ||||||
|   DEPENDS:=+hostapd-utils +tc +kmod-ifb |   DEPENDS:=+tc +kmod-ifb | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/ratelimit/description | define Package/ratelimit/description | ||||||
|   | |||||||
| @@ -7,6 +7,7 @@ PKG_SOURCE_URL=https://git.openwrt.org/project/usteer.git | |||||||
| PKG_SOURCE_PROTO:=git | PKG_SOURCE_PROTO:=git | ||||||
| PKG_SOURCE_DATE:=2021-04-19 | PKG_SOURCE_DATE:=2021-04-19 | ||||||
| PKG_SOURCE_VERSION:=ab4d89e7429df19fb7af862213bc5f09ca964948 | PKG_SOURCE_VERSION:=ab4d89e7429df19fb7af862213bc5f09ca964948 | ||||||
|  | PKG_MIRROR_HASH:=84f6143fea887aca896337756d393494a4cfb698f5e48da760c38723ceaca226 | ||||||
|  |  | ||||||
| PKG_BUILD_PARALLEL:=1 | PKG_BUILD_PARALLEL:=1 | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| From b3305eb14bf4daabee1e49eafcb04a856744db99 Mon Sep 17 00:00:00 2001 | From 9baf9f77dbc5129bd0f8f655e9ccf9fab93cd7e6 Mon Sep 17 00:00:00 2001 | ||||||
| From: John Crispin <john@phrozen.org> | From: John Crispin <john@phrozen.org> | ||||||
| Date: Sat, 4 Sep 2021 05:42:30 +0200 | Date: Sat, 4 Sep 2021 05:42:30 +0200 | ||||||
| Subject: [PATCH 01/66] realtek: update to latest owrt HEAD | Subject: [PATCH 01/88] realtek: update to latest owrt HEAD | ||||||
|  |  | ||||||
| Signed-off-by: John Crispin <john@phrozen.org> | Signed-off-by: John Crispin <john@phrozen.org> | ||||||
| --- | --- | ||||||
| @@ -24,7 +24,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  .../files-5.4/drivers/net/dsa/rtl83xx/Kconfig |    2 +- |  .../files-5.4/drivers/net/dsa/rtl83xx/Kconfig |    2 +- | ||||||
|  .../drivers/net/dsa/rtl83xx/Makefile          |    2 +- |  .../drivers/net/dsa/rtl83xx/Makefile          |    2 +- | ||||||
|  .../drivers/net/dsa/rtl83xx/common.c          | 1065 +++++- |  .../drivers/net/dsa/rtl83xx/common.c          | 1065 +++++- | ||||||
|  .../drivers/net/dsa/rtl83xx/debugfs.c         |  392 ++- |  .../drivers/net/dsa/rtl83xx/debugfs.c         |  392 +- | ||||||
|  .../files-5.4/drivers/net/dsa/rtl83xx/dsa.c   | 1363 +++++-- |  .../files-5.4/drivers/net/dsa/rtl83xx/dsa.c   | 1363 +++++-- | ||||||
|  .../drivers/net/dsa/rtl83xx/rtl838x.c         | 1749 ++++++++- |  .../drivers/net/dsa/rtl83xx/rtl838x.c         | 1749 ++++++++- | ||||||
|  .../drivers/net/dsa/rtl83xx/rtl838x.h         |  472 --- |  .../drivers/net/dsa/rtl83xx/rtl838x.h         |  472 --- | ||||||
| @@ -39,9 +39,10 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  .../realtek/files-5.4/include/linux/rtl838x.h | 1072 ++++++ |  .../realtek/files-5.4/include/linux/rtl838x.h | 1072 ++++++ | ||||||
|  .../realtek/files-5.4/net/dsa/tag_rtl83xx.c   |  119 + |  .../realtek/files-5.4/net/dsa/tag_rtl83xx.c   |  119 + | ||||||
|  target/linux/realtek/image/Makefile           |   44 +- |  target/linux/realtek/image/Makefile           |   44 +- | ||||||
|  .../realtek/patches-5.4/100-dsa-lag.patch     | 3123 +++++++++++++++++ |  .../realtek/patches-5.4/100-dsa-lag.patch     | 3145 +++++++++++++++++ | ||||||
|  .../realtek/patches-5.4/101-brflood-api.patch |  817 +++++ |  .../realtek/patches-5.4/101-brflood-api.patch |  817 +++++ | ||||||
|  ...0-gpio-Add-Realtek-Otto-GPIO-support.patch |  405 +++ |  ...0-gpio-Add-Realtek-Otto-GPIO-support.patch |  405 +++ | ||||||
|  |  ...net-add-support-for-rtl838x-ethernet.patch |    2 +- | ||||||
|  ...nclude-linux-add-phy-ops-for-rtl838x.patch |    2 +- |  ...nclude-linux-add-phy-ops-for-rtl838x.patch |    2 +- | ||||||
|  ...04-include-linux-add-phy-hsgmii-mode.patch |   19 + |  ...04-include-linux-add-phy-hsgmii-mode.patch |   19 + | ||||||
|  .../realtek/patches-5.4/706-sysled.patch      |  288 ++ |  .../realtek/patches-5.4/706-sysled.patch      |  288 ++ | ||||||
| @@ -51,7 +52,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  .../realtek/patches-5.4/710-adt7470.patch     |   20 + |  .../realtek/patches-5.4/710-adt7470.patch     |   20 + | ||||||
|  .../realtek/patches-5.4/711-ec4100.patch      |  150 + |  .../realtek/patches-5.4/711-ec4100.patch      |  150 + | ||||||
|  .../linux/realtek/patches-5.4/712-fixes.patch |   23 + |  .../linux/realtek/patches-5.4/712-fixes.patch |   23 + | ||||||
|  46 files changed, 16263 insertions(+), 1623 deletions(-) |  47 files changed, 16286 insertions(+), 1624 deletions(-) | ||||||
|  delete mode 100644 target/linux/realtek/base-files/lib/preinit/05_set_preinit_iface_realtek |  delete mode 100644 target/linux/realtek/base-files/lib/preinit/05_set_preinit_iface_realtek | ||||||
|  delete mode 100644 target/linux/realtek/base-files/lib/preinit/98_remove_preinit_realtek |  delete mode 100644 target/linux/realtek/base-files/lib/preinit/98_remove_preinit_realtek | ||||||
|  delete mode 100644 target/linux/realtek/dts/rtl8380_zyxel_gs1900-8.dts |  delete mode 100644 target/linux/realtek/dts/rtl8380_zyxel_gs1900-8.dts | ||||||
| @@ -15346,13 +15347,14 @@ index 18e5fedb9b..a4b2ea892c 100644 | |||||||
|  $(eval $(call BuildImage)) |  $(eval $(call BuildImage)) | ||||||
| diff --git a/target/linux/realtek/patches-5.4/100-dsa-lag.patch b/target/linux/realtek/patches-5.4/100-dsa-lag.patch | diff --git a/target/linux/realtek/patches-5.4/100-dsa-lag.patch b/target/linux/realtek/patches-5.4/100-dsa-lag.patch | ||||||
| new file mode 100644 | new file mode 100644 | ||||||
| index 0000000000..3d1992e4cb | index 0000000000..5a28760ba9 | ||||||
| --- /dev/null | --- /dev/null | ||||||
| +++ b/target/linux/realtek/patches-5.4/100-dsa-lag.patch | +++ b/target/linux/realtek/patches-5.4/100-dsa-lag.patch | ||||||
| @@ -0,0 +1,3123 @@ | @@ -0,0 +1,3145 @@ | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/bonding/bond_main.c linux-5.4.137/drivers/net/bonding/bond_main.c | +Index: linux-5.4.158/drivers/net/bonding/bond_main.c | ||||||
| +--- linux-5.4.137.old/drivers/net/bonding/bond_main.c	2021-08-04 14:05:38.055697349 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/bonding/bond_main.c	2021-08-04 14:05:53.887713713 +0700 | +--- linux-5.4.158.orig/drivers/net/bonding/bond_main.c | ||||||
|  | ++++ linux-5.4.158/drivers/net/bonding/bond_main.c | ||||||
| +@@ -1753,6 +1753,8 @@ int bond_enslave(struct net_device *bond | +@@ -1753,6 +1753,8 @@ int bond_enslave(struct net_device *bond | ||||||
| + 		goto err_unregister; | + 		goto err_unregister; | ||||||
| + 	} | + 	} | ||||||
| @@ -15362,9 +15364,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	res = bond_sysfs_slave_add(new_slave); | + 	res = bond_sysfs_slave_add(new_slave); | ||||||
| + 	if (res) { | + 	if (res) { | ||||||
| + 		slave_dbg(bond_dev, slave_dev, "Error %d calling bond_sysfs_slave_add\n", res); | + 		slave_dbg(bond_dev, slave_dev, "Error %d calling bond_sysfs_slave_add\n", res); | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/b53/b53_common.c linux-5.4.137/drivers/net/dsa/b53/b53_common.c | +Index: linux-5.4.158/drivers/net/dsa/b53/b53_common.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/b53/b53_common.c	2021-08-04 14:05:38.055697349 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/b53/b53_common.c	2021-08-04 14:05:53.887713713 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/b53/b53_common.c | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/b53/b53_common.c | ||||||
| +@@ -537,7 +537,7 @@ int b53_enable_port(struct dsa_switch *d | +@@ -537,7 +537,7 @@ int b53_enable_port(struct dsa_switch *d | ||||||
| + 	if (!dsa_is_user_port(ds, port)) | + 	if (!dsa_is_user_port(ds, port)) | ||||||
| + 		return 0; | + 		return 0; | ||||||
| @@ -15392,7 +15395,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	unsigned int i; | + 	unsigned int i; | ||||||
| + 	u16 pvlan, reg, pvid; | + 	u16 pvlan, reg, pvid; | ||||||
| +  | +  | ||||||
| +@@ -2396,10 +2396,13 @@ struct b53_device *b53_switch_alloc(stru | +@@ -2395,10 +2395,13 @@ struct b53_device *b53_switch_alloc(stru | ||||||
| + 	struct dsa_switch *ds; | + 	struct dsa_switch *ds; | ||||||
| + 	struct b53_device *dev; | + 	struct b53_device *dev; | ||||||
| +  | +  | ||||||
| @@ -15407,9 +15410,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	dev = devm_kzalloc(base, sizeof(*dev), GFP_KERNEL); | + 	dev = devm_kzalloc(base, sizeof(*dev), GFP_KERNEL); | ||||||
| + 	if (!dev) | + 	if (!dev) | ||||||
| + 		return NULL; | + 		return NULL; | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/bcm_sf2.c linux-5.4.137/drivers/net/dsa/bcm_sf2.c | +Index: linux-5.4.158/drivers/net/dsa/bcm_sf2.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/bcm_sf2.c	2021-08-04 14:05:38.055697349 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/bcm_sf2.c	2021-08-04 14:05:53.887713713 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/bcm_sf2.c | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/bcm_sf2.c | ||||||
| +@@ -670,7 +670,7 @@ static void bcm_sf2_sw_fixed_state(struc | +@@ -670,7 +670,7 @@ static void bcm_sf2_sw_fixed_state(struc | ||||||
| + 		 * state machine and make it go in PHY_FORCING state instead. | + 		 * state machine and make it go in PHY_FORCING state instead. | ||||||
| + 		 */ | + 		 */ | ||||||
| @@ -15440,9 +15444,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	struct ethtool_wolinfo pwol =  { }; | + 	struct ethtool_wolinfo pwol =  { }; | ||||||
| +  | +  | ||||||
| + 	if (p->ethtool_ops->get_wol) | + 	if (p->ethtool_ops->get_wol) | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/bcm_sf2_cfp.c linux-5.4.137/drivers/net/dsa/bcm_sf2_cfp.c | +Index: linux-5.4.158/drivers/net/dsa/bcm_sf2_cfp.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/bcm_sf2_cfp.c	2021-08-04 14:05:38.055697349 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/bcm_sf2_cfp.c	2021-08-04 14:05:53.887713713 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/bcm_sf2_cfp.c | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/bcm_sf2_cfp.c | ||||||
| +@@ -821,7 +821,7 @@ static int bcm_sf2_cfp_rule_insert(struc | +@@ -821,7 +821,7 @@ static int bcm_sf2_cfp_rule_insert(struc | ||||||
| + 				   struct ethtool_rx_flow_spec *fs) | + 				   struct ethtool_rx_flow_spec *fs) | ||||||
| + { | + { | ||||||
| @@ -15470,9 +15475,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds); | + 	struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds); | ||||||
| + 	int ret = 0; | + 	int ret = 0; | ||||||
| +  | +  | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/dsa_loop.c linux-5.4.137/drivers/net/dsa/dsa_loop.c | +Index: linux-5.4.158/drivers/net/dsa/dsa_loop.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/dsa_loop.c	2021-08-04 14:05:38.055697349 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/dsa_loop.c	2021-08-04 14:05:53.887713713 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/dsa_loop.c | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/dsa_loop.c | ||||||
| +@@ -286,10 +286,13 @@ static int dsa_loop_drv_probe(struct mdi | +@@ -286,10 +286,13 @@ static int dsa_loop_drv_probe(struct mdi | ||||||
| + 	dev_info(&mdiodev->dev, "%s: 0x%0x\n", | + 	dev_info(&mdiodev->dev, "%s: 0x%0x\n", | ||||||
| + 		 pdata->name, pdata->enabled_ports); | + 		 pdata->name, pdata->enabled_ports); | ||||||
| @@ -15488,10 +15494,11 @@ index 0000000000..3d1992e4cb | |||||||
| + 	ps = devm_kzalloc(&mdiodev->dev, sizeof(*ps), GFP_KERNEL); | + 	ps = devm_kzalloc(&mdiodev->dev, sizeof(*ps), GFP_KERNEL); | ||||||
| + 	if (!ps) | + 	if (!ps) | ||||||
| + 		return -ENOMEM; | + 		return -ENOMEM; | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/lan9303-core.c linux-5.4.137/drivers/net/dsa/lan9303-core.c | +Index: linux-5.4.158/drivers/net/dsa/lan9303-core.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/lan9303-core.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/lan9303-core.c	2021-08-04 14:05:53.887713713 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/lan9303-core.c | ||||||
| +@@ -1283,10 +1283,12 @@ static int lan9303_register_switch(struc | ++++ linux-5.4.158/drivers/net/dsa/lan9303-core.c | ||||||
|  | +@@ -1287,10 +1287,12 @@ static int lan9303_register_switch(struc | ||||||
| + { | + { | ||||||
| + 	int base; | + 	int base; | ||||||
| +  | +  | ||||||
| @@ -15505,10 +15512,11 @@ index 0000000000..3d1992e4cb | |||||||
| + 	chip->ds->priv = chip; | + 	chip->ds->priv = chip; | ||||||
| + 	chip->ds->ops = &lan9303_switch_ops; | + 	chip->ds->ops = &lan9303_switch_ops; | ||||||
| + 	base = chip->phy_addr_base; | + 	base = chip->phy_addr_base; | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/lantiq_gswip.c linux-5.4.137/drivers/net/dsa/lantiq_gswip.c | +Index: linux-5.4.158/drivers/net/dsa/lantiq_gswip.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/lantiq_gswip.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/lantiq_gswip.c	2021-08-04 14:05:53.887713713 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/lantiq_gswip.c | ||||||
| +@@ -2006,10 +2006,12 @@ static int gswip_probe(struct platform_d | ++++ linux-5.4.158/drivers/net/dsa/lantiq_gswip.c | ||||||
|  | +@@ -2013,10 +2013,12 @@ static int gswip_probe(struct platform_d | ||||||
| + 	if (!priv->hw_info) | + 	if (!priv->hw_info) | ||||||
| + 		return -EINVAL; | + 		return -EINVAL; | ||||||
| +  | +  | ||||||
| @@ -15522,9 +15530,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	priv->ds->priv = priv; | + 	priv->ds->priv = priv; | ||||||
| + 	priv->ds->ops = &gswip_switch_ops; | + 	priv->ds->ops = &gswip_switch_ops; | ||||||
| + 	priv->dev = dev; | + 	priv->dev = dev; | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/microchip/ksz_common.c linux-5.4.137/drivers/net/dsa/microchip/ksz_common.c | +Index: linux-5.4.158/drivers/net/dsa/microchip/ksz_common.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/microchip/ksz_common.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/microchip/ksz_common.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/microchip/ksz_common.c | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/microchip/ksz_common.c | ||||||
| +@@ -396,10 +396,13 @@ struct ksz_device *ksz_switch_alloc(stru | +@@ -396,10 +396,13 @@ struct ksz_device *ksz_switch_alloc(stru | ||||||
| + 	struct dsa_switch *ds; | + 	struct dsa_switch *ds; | ||||||
| + 	struct ksz_device *swdev; | + 	struct ksz_device *swdev; | ||||||
| @@ -15540,10 +15549,11 @@ index 0000000000..3d1992e4cb | |||||||
| + 	swdev = devm_kzalloc(base, sizeof(*swdev), GFP_KERNEL); | + 	swdev = devm_kzalloc(base, sizeof(*swdev), GFP_KERNEL); | ||||||
| + 	if (!swdev) | + 	if (!swdev) | ||||||
| + 		return NULL; | + 		return NULL; | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/mt7530.c linux-5.4.137/drivers/net/dsa/mt7530.c | +Index: linux-5.4.158/drivers/net/dsa/mt7530.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/mt7530.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/mt7530.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/mt7530.c | ||||||
| +@@ -785,7 +785,7 @@ mt7530_port_set_vlan_unaware(struct dsa_ | ++++ linux-5.4.158/drivers/net/dsa/mt7530.c | ||||||
|  | +@@ -786,7 +786,7 @@ mt7530_port_set_vlan_unaware(struct dsa_ | ||||||
| +  | +  | ||||||
| + 	for (i = 0; i < MT7530_NUM_PORTS; i++) { | + 	for (i = 0; i < MT7530_NUM_PORTS; i++) { | ||||||
| + 		if (dsa_is_user_port(ds, i) && | + 		if (dsa_is_user_port(ds, i) && | ||||||
| @@ -15552,16 +15562,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 			all_user_ports_removed = false; | + 			all_user_ports_removed = false; | ||||||
| + 			break; | + 			break; | ||||||
| + 		} | + 		} | ||||||
| +@@ -843,7 +843,7 @@ mt7530_port_bridge_leave(struct dsa_swit | +@@ -1217,7 +1217,7 @@ mt7530_setup(struct dsa_switch *ds) | ||||||
| + 		 * other port is still a VLAN-aware port. |  | ||||||
| + 		 */ |  | ||||||
| + 		if (dsa_is_user_port(ds, i) && i != port && |  | ||||||
| +-		   !dsa_port_is_vlan_filtering(&ds->ports[i])) { |  | ||||||
| ++		   !dsa_port_is_vlan_filtering(dsa_to_port(ds, i))) { |  | ||||||
| + 			if (dsa_to_port(ds, i)->bridge_dev != bridge) |  | ||||||
| + 				continue; |  | ||||||
| + 			if (priv->ports[i].enable) |  | ||||||
| +@@ -1219,7 +1219,7 @@ mt7530_setup(struct dsa_switch *ds) |  | ||||||
| + 	 * controller also is the container for two GMACs nodes representing | + 	 * controller also is the container for two GMACs nodes representing | ||||||
| + 	 * as two netdev instances. | + 	 * as two netdev instances. | ||||||
| + 	 */ | + 	 */ | ||||||
| @@ -15570,7 +15571,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	ds->configure_vlan_while_not_filtering = true; | + 	ds->configure_vlan_while_not_filtering = true; | ||||||
| +  | +  | ||||||
| + 	if (priv->id == ID_MT7530) { | + 	if (priv->id == ID_MT7530) { | ||||||
| +@@ -1306,7 +1306,7 @@ mt7530_setup(struct dsa_switch *ds) | +@@ -1304,7 +1304,7 @@ mt7530_setup(struct dsa_switch *ds) | ||||||
| +  | +  | ||||||
| + 	if (!dsa_is_unused_port(ds, 5)) { | + 	if (!dsa_is_unused_port(ds, 5)) { | ||||||
| + 		priv->p5_intf_sel = P5_INTF_SEL_GMAC5; | + 		priv->p5_intf_sel = P5_INTF_SEL_GMAC5; | ||||||
| @@ -15579,7 +15580,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	} else { | + 	} else { | ||||||
| + 		/* Scan the ethernet nodes. look for GMAC1, lookup used phy */ | + 		/* Scan the ethernet nodes. look for GMAC1, lookup used phy */ | ||||||
| + 		for_each_child_of_node(dn, mac_np) { | + 		for_each_child_of_node(dn, mac_np) { | ||||||
| +@@ -1649,10 +1649,13 @@ mt7530_probe(struct mdio_device *mdiodev | +@@ -1647,10 +1647,13 @@ mt7530_probe(struct mdio_device *mdiodev | ||||||
| + 	if (!priv) | + 	if (!priv) | ||||||
| + 		return -ENOMEM; | + 		return -ENOMEM; | ||||||
| +  | +  | ||||||
| @@ -15594,9 +15595,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	/* Use medatek,mcm property to distinguish hardware type that would | + 	/* Use medatek,mcm property to distinguish hardware type that would | ||||||
| + 	 * casues a little bit differences on power-on sequence. | + 	 * casues a little bit differences on power-on sequence. | ||||||
| + 	 */ | + 	 */ | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/mv88e6060.c linux-5.4.137/drivers/net/dsa/mv88e6060.c | +Index: linux-5.4.158/drivers/net/dsa/mv88e6060.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/mv88e6060.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/mv88e6060.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/mv88e6060.c | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/mv88e6060.c | ||||||
| +@@ -270,10 +270,12 @@ static int mv88e6060_probe(struct mdio_d | +@@ -270,10 +270,12 @@ static int mv88e6060_probe(struct mdio_d | ||||||
| +  | +  | ||||||
| + 	dev_info(dev, "switch %s detected\n", name); | + 	dev_info(dev, "switch %s detected\n", name); | ||||||
| @@ -15611,9 +15613,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	ds->priv = priv; | + 	ds->priv = priv; | ||||||
| + 	ds->dev = dev; | + 	ds->dev = dev; | ||||||
| + 	ds->ops = &mv88e6060_switch_ops; | + 	ds->ops = &mv88e6060_switch_ops; | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/mv88e6xxx/chip.c linux-5.4.137/drivers/net/dsa/mv88e6xxx/chip.c | +Index: linux-5.4.158/drivers/net/dsa/mv88e6xxx/chip.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/mv88e6xxx/chip.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/mv88e6xxx/chip.c	2021-08-04 14:05:57.643717592 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/mv88e6xxx/chip.c | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/mv88e6xxx/chip.c | ||||||
| +@@ -1075,7 +1075,7 @@ static u16 mv88e6xxx_port_vlan(struct mv | +@@ -1075,7 +1075,7 @@ static u16 mv88e6xxx_port_vlan(struct mv | ||||||
| + 	if (dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port)) | + 	if (dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port)) | ||||||
| + 		return mv88e6xxx_port_mask(chip); | + 		return mv88e6xxx_port_mask(chip); | ||||||
| @@ -16025,9 +16028,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	dev_set_drvdata(dev, ds); | + 	dev_set_drvdata(dev, ds); | ||||||
| +  | +  | ||||||
| + 	return dsa_register_switch(ds); | + 	return dsa_register_switch(ds); | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/mv88e6xxx/global2.c linux-5.4.137/drivers/net/dsa/mv88e6xxx/global2.c | +Index: linux-5.4.158/drivers/net/dsa/mv88e6xxx/global2.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/mv88e6xxx/global2.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/mv88e6xxx/global2.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/mv88e6xxx/global2.c | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/mv88e6xxx/global2.c | ||||||
| +@@ -126,8 +126,8 @@ int mv88e6xxx_g2_device_mapping_write(st | +@@ -126,8 +126,8 @@ int mv88e6xxx_g2_device_mapping_write(st | ||||||
| +  | +  | ||||||
| + /* Offset 0x07: Trunk Mask Table register */ | + /* Offset 0x07: Trunk Mask Table register */ | ||||||
| @@ -16050,9 +16054,10 @@ index 0000000000..3d1992e4cb | |||||||
| + { | + { | ||||||
| + 	const u16 port_mask = BIT(mv88e6xxx_num_ports(chip)) - 1; | + 	const u16 port_mask = BIT(mv88e6xxx_num_ports(chip)) - 1; | ||||||
| + 	u16 val = (id << 11) | (map & port_mask); | + 	u16 val = (id << 11) | (map & port_mask); | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/mv88e6xxx/global2.h linux-5.4.137/drivers/net/dsa/mv88e6xxx/global2.h | +Index: linux-5.4.158/drivers/net/dsa/mv88e6xxx/global2.h | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/mv88e6xxx/global2.h	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/mv88e6xxx/global2.h	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/mv88e6xxx/global2.h | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/mv88e6xxx/global2.h | ||||||
| +@@ -101,6 +101,7 @@ | +@@ -101,6 +101,7 @@ | ||||||
| + #define MV88E6XXX_G2_PVT_ADDR_OP_WRITE_PVLAN	0x3000 | + #define MV88E6XXX_G2_PVT_ADDR_OP_WRITE_PVLAN	0x3000 | ||||||
| + #define MV88E6XXX_G2_PVT_ADDR_OP_READ		0x4000 | + #define MV88E6XXX_G2_PVT_ADDR_OP_READ		0x4000 | ||||||
| @@ -16072,9 +16077,10 @@ index 0000000000..3d1992e4cb | |||||||
| + int mv88e6xxx_g2_trunk_clear(struct mv88e6xxx_chip *chip); | + int mv88e6xxx_g2_trunk_clear(struct mv88e6xxx_chip *chip); | ||||||
| +  | +  | ||||||
| + int mv88e6xxx_g2_device_mapping_write(struct mv88e6xxx_chip *chip, int target, | + int mv88e6xxx_g2_device_mapping_write(struct mv88e6xxx_chip *chip, int target, | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/mv88e6xxx/port.c linux-5.4.137/drivers/net/dsa/mv88e6xxx/port.c | +Index: linux-5.4.158/drivers/net/dsa/mv88e6xxx/port.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/mv88e6xxx/port.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/mv88e6xxx/port.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/mv88e6xxx/port.c | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/mv88e6xxx/port.c | ||||||
| +@@ -994,6 +994,27 @@ int mv88e6xxx_port_set_message_port(stru | +@@ -994,6 +994,27 @@ int mv88e6xxx_port_set_message_port(stru | ||||||
| + 	return mv88e6xxx_port_write(chip, port, MV88E6XXX_PORT_CTL1, val); | + 	return mv88e6xxx_port_write(chip, port, MV88E6XXX_PORT_CTL1, val); | ||||||
| + } | + } | ||||||
| @@ -16103,9 +16109,10 @@ index 0000000000..3d1992e4cb | |||||||
| + /* Offset 0x06: Port Based VLAN Map */ | + /* Offset 0x06: Port Based VLAN Map */ | ||||||
| +  | +  | ||||||
| + int mv88e6xxx_port_set_vlan_map(struct mv88e6xxx_chip *chip, int port, u16 map) | + int mv88e6xxx_port_set_vlan_map(struct mv88e6xxx_chip *chip, int port, u16 map) | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/mv88e6xxx/port.h linux-5.4.137/drivers/net/dsa/mv88e6xxx/port.h | +Index: linux-5.4.158/drivers/net/dsa/mv88e6xxx/port.h | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/mv88e6xxx/port.h	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/mv88e6xxx/port.h	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/mv88e6xxx/port.h | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/mv88e6xxx/port.h | ||||||
| +@@ -168,6 +168,9 @@ | +@@ -168,6 +168,9 @@ | ||||||
| + /* Offset 0x05: Port Control 1 */ | + /* Offset 0x05: Port Control 1 */ | ||||||
| + #define MV88E6XXX_PORT_CTL1			0x05 | + #define MV88E6XXX_PORT_CTL1			0x05 | ||||||
| @@ -16125,9 +16132,10 @@ index 0000000000..3d1992e4cb | |||||||
| + int mv88e6165_port_set_jumbo_size(struct mv88e6xxx_chip *chip, int port, | + int mv88e6165_port_set_jumbo_size(struct mv88e6xxx_chip *chip, int port, | ||||||
| + 				  size_t size); | + 				  size_t size); | ||||||
| + int mv88e6095_port_egress_rate_limiting(struct mv88e6xxx_chip *chip, int port); | + int mv88e6095_port_egress_rate_limiting(struct mv88e6xxx_chip *chip, int port); | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/qca8k.c linux-5.4.137/drivers/net/dsa/qca8k.c | +Index: linux-5.4.158/drivers/net/dsa/qca8k.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/qca8k.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/qca8k.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/qca8k.c | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/qca8k.c | ||||||
| +@@ -661,7 +661,7 @@ qca8k_setup(struct dsa_switch *ds) | +@@ -661,7 +661,7 @@ qca8k_setup(struct dsa_switch *ds) | ||||||
| + 		return ret; | + 		return ret; | ||||||
| +  | +  | ||||||
| @@ -16152,9 +16160,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	priv->ds->priv = priv; | + 	priv->ds->priv = priv; | ||||||
| + 	priv->ops = qca8k_switch_ops; | + 	priv->ops = qca8k_switch_ops; | ||||||
| + 	priv->ds->ops = &priv->ops; | + 	priv->ds->ops = &priv->ops; | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/realtek-smi-core.c linux-5.4.137/drivers/net/dsa/realtek-smi-core.c | +Index: linux-5.4.158/drivers/net/dsa/realtek-smi-core.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/realtek-smi-core.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/realtek-smi-core.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/realtek-smi-core.c | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/realtek-smi-core.c | ||||||
| +@@ -444,9 +444,12 @@ static int realtek_smi_probe(struct plat | +@@ -444,9 +444,12 @@ static int realtek_smi_probe(struct plat | ||||||
| + 		return ret; | + 		return ret; | ||||||
| + 	} | + 	} | ||||||
| @@ -16169,10 +16178,11 @@ index 0000000000..3d1992e4cb | |||||||
| + 	smi->ds->priv = smi; | + 	smi->ds->priv = smi; | ||||||
| +  | +  | ||||||
| + 	smi->ds->ops = var->ds_ops; | + 	smi->ds->ops = var->ds_ops; | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/sja1105/sja1105_main.c linux-5.4.137/drivers/net/dsa/sja1105/sja1105_main.c | +Index: linux-5.4.158/drivers/net/dsa/sja1105/sja1105_main.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/sja1105/sja1105_main.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/sja1105/sja1105_main.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/sja1105/sja1105_main.c | ||||||
| +@@ -1096,7 +1096,7 @@ int sja1105pqrs_fdb_add(struct dsa_switc | ++++ linux-5.4.158/drivers/net/dsa/sja1105/sja1105_main.c | ||||||
|  | +@@ -1121,7 +1121,7 @@ int sja1105pqrs_fdb_add(struct dsa_switc | ||||||
| + 	l2_lookup.vlanid = vid; | + 	l2_lookup.vlanid = vid; | ||||||
| + 	l2_lookup.iotag = SJA1105_S_TAG; | + 	l2_lookup.iotag = SJA1105_S_TAG; | ||||||
| + 	l2_lookup.mask_macaddr = GENMASK_ULL(ETH_ALEN * 8 - 1, 0); | + 	l2_lookup.mask_macaddr = GENMASK_ULL(ETH_ALEN * 8 - 1, 0); | ||||||
| @@ -16181,7 +16191,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 		l2_lookup.mask_vlanid = VLAN_VID_MASK; | + 		l2_lookup.mask_vlanid = VLAN_VID_MASK; | ||||||
| + 		l2_lookup.mask_iotag = BIT(0); | + 		l2_lookup.mask_iotag = BIT(0); | ||||||
| + 	} else { | + 	} else { | ||||||
| +@@ -1159,7 +1159,7 @@ int sja1105pqrs_fdb_del(struct dsa_switc | +@@ -1214,7 +1214,7 @@ int sja1105pqrs_fdb_del(struct dsa_switc | ||||||
| + 	l2_lookup.vlanid = vid; | + 	l2_lookup.vlanid = vid; | ||||||
| + 	l2_lookup.iotag = SJA1105_S_TAG; | + 	l2_lookup.iotag = SJA1105_S_TAG; | ||||||
| + 	l2_lookup.mask_macaddr = GENMASK_ULL(ETH_ALEN * 8 - 1, 0); | + 	l2_lookup.mask_macaddr = GENMASK_ULL(ETH_ALEN * 8 - 1, 0); | ||||||
| @@ -16190,7 +16200,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 		l2_lookup.mask_vlanid = VLAN_VID_MASK; | + 		l2_lookup.mask_vlanid = VLAN_VID_MASK; | ||||||
| + 		l2_lookup.mask_iotag = BIT(0); | + 		l2_lookup.mask_iotag = BIT(0); | ||||||
| + 	} else { | + 	} else { | ||||||
| +@@ -1205,7 +1205,7 @@ static int sja1105_fdb_add(struct dsa_sw | +@@ -1260,7 +1260,7 @@ static int sja1105_fdb_add(struct dsa_sw | ||||||
| + 	 * for what gets printed in 'bridge fdb show'.  In the case of zero, | + 	 * for what gets printed in 'bridge fdb show'.  In the case of zero, | ||||||
| + 	 * no VID gets printed at all. | + 	 * no VID gets printed at all. | ||||||
| + 	 */ | + 	 */ | ||||||
| @@ -16199,7 +16209,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 		vid = 0; | + 		vid = 0; | ||||||
| +  | +  | ||||||
| + 	return priv->info->fdb_add_cmd(ds, port, addr, vid); | + 	return priv->info->fdb_add_cmd(ds, port, addr, vid); | ||||||
| +@@ -1216,7 +1216,7 @@ static int sja1105_fdb_del(struct dsa_sw | +@@ -1271,7 +1271,7 @@ static int sja1105_fdb_del(struct dsa_sw | ||||||
| + { | + { | ||||||
| + 	struct sja1105_private *priv = ds->priv; | + 	struct sja1105_private *priv = ds->priv; | ||||||
| +  | +  | ||||||
| @@ -16208,16 +16218,16 @@ index 0000000000..3d1992e4cb | |||||||
| + 		vid = 0; | + 		vid = 0; | ||||||
| +  | +  | ||||||
| + 	return priv->info->fdb_del_cmd(ds, port, addr, vid); | + 	return priv->info->fdb_del_cmd(ds, port, addr, vid); | ||||||
| +@@ -1255,7 +1255,7 @@ static int sja1105_fdb_dump(struct dsa_s | +@@ -1310,7 +1310,7 @@ static int sja1105_fdb_dump(struct dsa_s | ||||||
| + 		u64_to_ether_addr(l2_lookup.macaddr, macaddr); | + 		u64_to_ether_addr(l2_lookup.macaddr, macaddr); | ||||||
| +  | +  | ||||||
| + 		/* We need to hide the dsa_8021q VLANs from the user. */ | + 		/* We need to hide the dsa_8021q VLANs from the user. */ | ||||||
| +-		if (!dsa_port_is_vlan_filtering(&ds->ports[port])) | +-		if (!dsa_port_is_vlan_filtering(&ds->ports[port])) | ||||||
| ++		if (!dsa_port_is_vlan_filtering(dsa_to_port(ds, port))) | ++		if (!dsa_port_is_vlan_filtering(dsa_to_port(ds, port))) | ||||||
| + 			l2_lookup.vlanid = 0; | + 			l2_lookup.vlanid = 0; | ||||||
| + 		cb(macaddr, l2_lookup.vlanid, l2_lookup.lockeds, data); | + 		rc = cb(macaddr, l2_lookup.vlanid, l2_lookup.lockeds, data); | ||||||
| + 	} | + 		if (rc) | ||||||
| +@@ -1748,7 +1748,7 @@ static int sja1105_port_enable(struct ds | +@@ -1805,7 +1805,7 @@ static int sja1105_port_enable(struct ds | ||||||
| + 	if (!dsa_is_user_port(ds, port)) | + 	if (!dsa_is_user_port(ds, port)) | ||||||
| + 		return 0; | + 		return 0; | ||||||
| +  | +  | ||||||
| @@ -16226,7 +16236,7 @@ index 0000000000..3d1992e4cb | |||||||
| +  | +  | ||||||
| + 	slave->features &= ~NETIF_F_HW_VLAN_CTAG_FILTER; | + 	slave->features &= ~NETIF_F_HW_VLAN_CTAG_FILTER; | ||||||
| +  | +  | ||||||
| +@@ -1780,7 +1780,7 @@ static int sja1105_mgmt_xmit(struct dsa_ | +@@ -1837,7 +1837,7 @@ static int sja1105_mgmt_xmit(struct dsa_ | ||||||
| + 	} | + 	} | ||||||
| +  | +  | ||||||
| + 	/* Transfer skb to the host port. */ | + 	/* Transfer skb to the host port. */ | ||||||
| @@ -16235,7 +16245,7 @@ index 0000000000..3d1992e4cb | |||||||
| +  | +  | ||||||
| + 	/* Wait until the switch has processed the frame */ | + 	/* Wait until the switch has processed the frame */ | ||||||
| + 	do { | + 	do { | ||||||
| +@@ -2198,10 +2198,12 @@ static int sja1105_probe(struct spi_devi | +@@ -2255,10 +2255,12 @@ static int sja1105_probe(struct spi_devi | ||||||
| +  | +  | ||||||
| + 	dev_info(dev, "Probed switch chip: %s\n", priv->info->name); | + 	dev_info(dev, "Probed switch chip: %s\n", priv->info->name); | ||||||
| +  | +  | ||||||
| @@ -16249,7 +16259,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	ds->ops = &sja1105_switch_ops; | + 	ds->ops = &sja1105_switch_ops; | ||||||
| + 	ds->priv = priv; | + 	ds->priv = priv; | ||||||
| + 	priv->ds = ds; | + 	priv->ds = ds; | ||||||
| +@@ -2215,8 +2217,8 @@ static int sja1105_probe(struct spi_devi | +@@ -2272,8 +2274,8 @@ static int sja1105_probe(struct spi_devi | ||||||
| + 	for (i = 0; i < SJA1105_NUM_PORTS; i++) { | + 	for (i = 0; i < SJA1105_NUM_PORTS; i++) { | ||||||
| + 		struct sja1105_port *sp = &priv->ports[i]; | + 		struct sja1105_port *sp = &priv->ports[i]; | ||||||
| +  | +  | ||||||
| @@ -16260,9 +16270,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 		sp->data = tagger_data; | + 		sp->data = tagger_data; | ||||||
| + 	} | + 	} | ||||||
| + 	mutex_init(&priv->mgmt_lock); | + 	mutex_init(&priv->mgmt_lock); | ||||||
| +diff -urpN linux-5.4.137.old/drivers/net/dsa/vitesse-vsc73xx-core.c linux-5.4.137/drivers/net/dsa/vitesse-vsc73xx-core.c | +Index: linux-5.4.158/drivers/net/dsa/vitesse-vsc73xx-core.c | ||||||
| +--- linux-5.4.137.old/drivers/net/dsa/vitesse-vsc73xx-core.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/drivers/net/dsa/vitesse-vsc73xx-core.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/drivers/net/dsa/vitesse-vsc73xx-core.c | ||||||
|  | ++++ linux-5.4.158/drivers/net/dsa/vitesse-vsc73xx-core.c | ||||||
| +@@ -1178,9 +1178,12 @@ int vsc73xx_probe(struct vsc73xx *vsc) | +@@ -1178,9 +1178,12 @@ int vsc73xx_probe(struct vsc73xx *vsc) | ||||||
| + 	 * We allocate 8 ports and avoid access to the nonexistant | + 	 * We allocate 8 ports and avoid access to the nonexistant | ||||||
| + 	 * ports. | + 	 * ports. | ||||||
| @@ -16277,9 +16288,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	vsc->ds->priv = vsc; | + 	vsc->ds->priv = vsc; | ||||||
| +  | +  | ||||||
| + 	vsc->ds->ops = &vsc73xx_ds_ops; | + 	vsc->ds->ops = &vsc73xx_ds_ops; | ||||||
| +diff -urpN linux-5.4.137.old/include/net/dsa.h linux-5.4.137/include/net/dsa.h | +Index: linux-5.4.158/include/net/dsa.h | ||||||
| +--- linux-5.4.137.old/include/net/dsa.h	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/include/net/dsa.h	2021-08-04 14:05:57.643717592 +0700 | +--- linux-5.4.158.orig/include/net/dsa.h | ||||||
|  | ++++ linux-5.4.158/include/net/dsa.h | ||||||
| +@@ -124,17 +124,46 @@ struct dsa_switch_tree { | +@@ -124,17 +124,46 @@ struct dsa_switch_tree { | ||||||
| + 	 */ | + 	 */ | ||||||
| + 	struct dsa_platform_data	*pd; | + 	struct dsa_platform_data	*pd; | ||||||
| @@ -16508,9 +16520,10 @@ index 0000000000..3d1992e4cb | |||||||
| + #endif | + #endif | ||||||
| +  | +  | ||||||
| + /* Broadcom tag specific helpers to insert and extract queue/port number */ | + /* Broadcom tag specific helpers to insert and extract queue/port number */ | ||||||
| +diff -urpN linux-5.4.137.old/net/dsa/Kconfig linux-5.4.137/net/dsa/Kconfig | +Index: linux-5.4.158/net/dsa/Kconfig | ||||||
| +--- linux-5.4.137.old/net/dsa/Kconfig	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/net/dsa/Kconfig	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/net/dsa/Kconfig | ||||||
|  | ++++ linux-5.4.158/net/dsa/Kconfig | ||||||
| +@@ -56,14 +56,19 @@ config NET_DSA_TAG_GSWIP | +@@ -56,14 +56,19 @@ config NET_DSA_TAG_GSWIP | ||||||
| + 	  Say Y or M if you want to enable support for tagging frames for the | + 	  Say Y or M if you want to enable support for tagging frames for the | ||||||
| + 	  Lantiq / Intel GSWIP switches. | + 	  Lantiq / Intel GSWIP switches. | ||||||
| @@ -16531,9 +16544,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	help | + 	help | ||||||
| + 	  Say Y or M if you want to enable support for tagging frames for the | + 	  Say Y or M if you want to enable support for tagging frames for the | ||||||
| + 	  Marvell switches which use EtherType DSA headers. | + 	  Marvell switches which use EtherType DSA headers. | ||||||
| +diff -urpN linux-5.4.137.old/net/dsa/Makefile linux-5.4.137/net/dsa/Makefile | +Index: linux-5.4.158/net/dsa/Makefile | ||||||
| +--- linux-5.4.137.old/net/dsa/Makefile	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/net/dsa/Makefile	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/net/dsa/Makefile | ||||||
|  | ++++ linux-5.4.158/net/dsa/Makefile | ||||||
| +@@ -6,8 +6,7 @@ dsa_core-y += dsa.o dsa2.o master.o port | +@@ -6,8 +6,7 @@ dsa_core-y += dsa.o dsa2.o master.o port | ||||||
| + # tagging formats | + # tagging formats | ||||||
| + obj-$(CONFIG_NET_DSA_TAG_8021Q) += tag_8021q.o | + obj-$(CONFIG_NET_DSA_TAG_8021Q) += tag_8021q.o | ||||||
| @@ -16544,9 +16558,10 @@ index 0000000000..3d1992e4cb | |||||||
| + obj-$(CONFIG_NET_DSA_TAG_GSWIP) += tag_gswip.o | + obj-$(CONFIG_NET_DSA_TAG_GSWIP) += tag_gswip.o | ||||||
| + obj-$(CONFIG_NET_DSA_TAG_KSZ) += tag_ksz.o | + obj-$(CONFIG_NET_DSA_TAG_KSZ) += tag_ksz.o | ||||||
| + obj-$(CONFIG_NET_DSA_TAG_RTL4_A) += tag_rtl4_a.o | + obj-$(CONFIG_NET_DSA_TAG_RTL4_A) += tag_rtl4_a.o | ||||||
| +diff -urpN linux-5.4.137.old/net/dsa/dsa.c linux-5.4.137/net/dsa/dsa.c | +Index: linux-5.4.158/net/dsa/dsa.c | ||||||
| +--- linux-5.4.137.old/net/dsa/dsa.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/net/dsa/dsa.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/net/dsa/dsa.c | ||||||
|  | ++++ linux-5.4.158/net/dsa/dsa.c | ||||||
| +@@ -224,11 +224,21 @@ static int dsa_switch_rcv(struct sk_buff | +@@ -224,11 +224,21 @@ static int dsa_switch_rcv(struct sk_buff | ||||||
| + 	} | + 	} | ||||||
| +  | +  | ||||||
| @@ -16599,10 +16614,11 @@ index 0000000000..3d1992e4cb | |||||||
| + 		if (ret) | + 		if (ret) | ||||||
| + 			return ret; | + 			return ret; | ||||||
| + 	} | + 	} | ||||||
| +diff -urpN linux-5.4.137.old/net/dsa/dsa2.c linux-5.4.137/net/dsa/dsa2.c | +Index: linux-5.4.158/net/dsa/dsa2.c | ||||||
| +--- linux-5.4.137.old/net/dsa/dsa2.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/net/dsa/dsa2.c	2021-08-04 14:05:57.643717592 +0700 | +--- linux-5.4.158.orig/net/dsa/dsa2.c | ||||||
| +@@ -25,6 +25,65 @@ static DEFINE_MUTEX(dsa2_mutex); | ++++ linux-5.4.158/net/dsa/dsa2.c | ||||||
|  | +@@ -24,6 +24,65 @@ static DEFINE_MUTEX(dsa2_mutex); | ||||||
| + static const struct devlink_ops dsa_devlink_ops = { | + static const struct devlink_ops dsa_devlink_ops = { | ||||||
| + }; | + }; | ||||||
| +  | +  | ||||||
| @@ -16668,7 +16684,7 @@ index 0000000000..3d1992e4cb | |||||||
| + static struct dsa_switch_tree *dsa_tree_find(int index) | + static struct dsa_switch_tree *dsa_tree_find(int index) | ||||||
| + { | + { | ||||||
| + 	struct dsa_switch_tree *dst; | + 	struct dsa_switch_tree *dst; | ||||||
| +@@ -46,6 +105,10 @@ static struct dsa_switch_tree *dsa_tree_ | +@@ -45,6 +104,10 @@ static struct dsa_switch_tree *dsa_tree_ | ||||||
| +  | +  | ||||||
| + 	dst->index = index; | + 	dst->index = index; | ||||||
| +  | +  | ||||||
| @@ -16679,7 +16695,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	INIT_LIST_HEAD(&dst->list); | + 	INIT_LIST_HEAD(&dst->list); | ||||||
| + 	list_add_tail(&dst->list, &dsa_tree_list); | + 	list_add_tail(&dst->list, &dsa_tree_list); | ||||||
| +  | +  | ||||||
| +@@ -112,24 +175,38 @@ static bool dsa_port_is_user(struct dsa_ | +@@ -111,24 +174,38 @@ static bool dsa_port_is_user(struct dsa_ | ||||||
| + static struct dsa_port *dsa_tree_find_port_by_node(struct dsa_switch_tree *dst, | + static struct dsa_port *dsa_tree_find_port_by_node(struct dsa_switch_tree *dst, | ||||||
| + 						   struct device_node *dn) | + 						   struct device_node *dn) | ||||||
| + { | + { | ||||||
| @@ -16731,7 +16747,7 @@ index 0000000000..3d1992e4cb | |||||||
| + } | + } | ||||||
| +  | +  | ||||||
| + static bool dsa_port_setup_routing_table(struct dsa_port *dp) | + static bool dsa_port_setup_routing_table(struct dsa_port *dp) | ||||||
| +@@ -139,6 +216,7 @@ static bool dsa_port_setup_routing_table | +@@ -138,6 +215,7 @@ static bool dsa_port_setup_routing_table | ||||||
| + 	struct device_node *dn = dp->dn; | + 	struct device_node *dn = dp->dn; | ||||||
| + 	struct of_phandle_iterator it; | + 	struct of_phandle_iterator it; | ||||||
| + 	struct dsa_port *link_dp; | + 	struct dsa_port *link_dp; | ||||||
| @@ -16739,7 +16755,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	int err; | + 	int err; | ||||||
| +  | +  | ||||||
| + 	of_for_each_phandle(&it, err, dn, "link", NULL, 0) { | + 	of_for_each_phandle(&it, err, dn, "link", NULL, 0) { | ||||||
| +@@ -148,24 +226,22 @@ static bool dsa_port_setup_routing_table | +@@ -147,24 +225,22 @@ static bool dsa_port_setup_routing_table | ||||||
| + 			return false; | + 			return false; | ||||||
| + 		} | + 		} | ||||||
| +  | +  | ||||||
| @@ -16771,7 +16787,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 		if (dsa_port_is_dsa(dp)) { | + 		if (dsa_port_is_dsa(dp)) { | ||||||
| + 			complete = dsa_port_setup_routing_table(dp); | + 			complete = dsa_port_setup_routing_table(dp); | ||||||
| + 			if (!complete) | + 			if (!complete) | ||||||
| +@@ -176,81 +252,42 @@ static bool dsa_switch_setup_routing_tab | +@@ -175,81 +251,42 @@ static bool dsa_switch_setup_routing_tab | ||||||
| + 	return complete; | + 	return complete; | ||||||
| + } | + } | ||||||
| +  | +  | ||||||
| @@ -16868,7 +16884,7 @@ index 0000000000..3d1992e4cb | |||||||
| + } | + } | ||||||
| +  | +  | ||||||
| + static int dsa_port_setup(struct dsa_port *dp) | + static int dsa_port_setup(struct dsa_port *dp) | ||||||
| +@@ -266,6 +303,9 @@ static int dsa_port_setup(struct dsa_por | +@@ -265,6 +302,9 @@ static int dsa_port_setup(struct dsa_por | ||||||
| + 	bool dsa_port_enabled = false; | + 	bool dsa_port_enabled = false; | ||||||
| + 	int err = 0; | + 	int err = 0; | ||||||
| +  | +  | ||||||
| @@ -16878,7 +16894,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	switch (dp->type) { | + 	switch (dp->type) { | ||||||
| + 	case DSA_PORT_TYPE_UNUSED: | + 	case DSA_PORT_TYPE_UNUSED: | ||||||
| + 		dsa_port_disable(dp); | + 		dsa_port_disable(dp); | ||||||
| +@@ -335,14 +375,21 @@ static int dsa_port_setup(struct dsa_por | +@@ -333,14 +373,21 @@ static int dsa_port_setup(struct dsa_por | ||||||
| + 		dsa_port_link_unregister_of(dp); | + 		dsa_port_link_unregister_of(dp); | ||||||
| + 	if (err && devlink_port_registered) | + 	if (err && devlink_port_registered) | ||||||
| + 		devlink_port_unregister(dlp); | + 		devlink_port_unregister(dlp); | ||||||
| @@ -16901,7 +16917,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	switch (dp->type) { | + 	switch (dp->type) { | ||||||
| + 	case DSA_PORT_TYPE_UNUSED: | + 	case DSA_PORT_TYPE_UNUSED: | ||||||
| + 		break; | + 		break; | ||||||
| +@@ -365,11 +412,16 @@ static void dsa_port_teardown(struct dsa | +@@ -363,11 +410,16 @@ static void dsa_port_teardown(struct dsa | ||||||
| + 		} | + 		} | ||||||
| + 		break; | + 		break; | ||||||
| + 	} | + 	} | ||||||
| @@ -16919,7 +16935,7 @@ index 0000000000..3d1992e4cb | |||||||
| +  | +  | ||||||
| + 	/* Initialize ds->phys_mii_mask before registering the slave MDIO bus | + 	/* Initialize ds->phys_mii_mask before registering the slave MDIO bus | ||||||
| + 	 * driver and before ops->setup() has run, since the switch drivers and | + 	 * driver and before ops->setup() has run, since the switch drivers and | ||||||
| +@@ -411,6 +463,8 @@ static int dsa_switch_setup(struct dsa_s | +@@ -409,6 +461,8 @@ static int dsa_switch_setup(struct dsa_s | ||||||
| + 			goto teardown; | + 			goto teardown; | ||||||
| + 	} | + 	} | ||||||
| +  | +  | ||||||
| @@ -16928,7 +16944,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	return 0; | + 	return 0; | ||||||
| +  | +  | ||||||
| + teardown: | + teardown: | ||||||
| +@@ -429,6 +483,9 @@ free_devlink: | +@@ -427,6 +481,9 @@ free_devlink: | ||||||
| +  | +  | ||||||
| + static void dsa_switch_teardown(struct dsa_switch *ds) | + static void dsa_switch_teardown(struct dsa_switch *ds) | ||||||
| + { | + { | ||||||
| @@ -16938,7 +16954,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	if (ds->slave_mii_bus && ds->ops->phy_read) | + 	if (ds->slave_mii_bus && ds->ops->phy_read) | ||||||
| + 		mdiobus_unregister(ds->slave_mii_bus); | + 		mdiobus_unregister(ds->slave_mii_bus); | ||||||
| +  | +  | ||||||
| +@@ -443,89 +500,98 @@ static void dsa_switch_teardown(struct d | +@@ -441,89 +498,98 @@ static void dsa_switch_teardown(struct d | ||||||
| + 		ds->devlink = NULL; | + 		ds->devlink = NULL; | ||||||
| + 	} | + 	} | ||||||
| +  | +  | ||||||
| @@ -17089,7 +17105,7 @@ index 0000000000..3d1992e4cb | |||||||
| + } | + } | ||||||
| +  | +  | ||||||
| + static int dsa_tree_setup(struct dsa_switch_tree *dst) | + static int dsa_tree_setup(struct dsa_switch_tree *dst) | ||||||
| +@@ -555,12 +621,18 @@ static int dsa_tree_setup(struct dsa_swi | +@@ -553,12 +619,18 @@ static int dsa_tree_setup(struct dsa_swi | ||||||
| + 	if (err) | + 	if (err) | ||||||
| + 		goto teardown_switches; | + 		goto teardown_switches; | ||||||
| +  | +  | ||||||
| @@ -17108,7 +17124,7 @@ index 0000000000..3d1992e4cb | |||||||
| + teardown_switches: | + teardown_switches: | ||||||
| + 	dsa_tree_teardown_switches(dst); | + 	dsa_tree_teardown_switches(dst); | ||||||
| + teardown_default_cpu: | + teardown_default_cpu: | ||||||
| +@@ -571,48 +643,49 @@ teardown_default_cpu: | +@@ -569,48 +641,49 @@ teardown_default_cpu: | ||||||
| +  | +  | ||||||
| + static void dsa_tree_teardown(struct dsa_switch_tree *dst) | + static void dsa_tree_teardown(struct dsa_switch_tree *dst) | ||||||
| + { | + { | ||||||
| @@ -17180,7 +17196,7 @@ index 0000000000..3d1992e4cb | |||||||
| + } | + } | ||||||
| +  | +  | ||||||
| + static int dsa_port_parse_user(struct dsa_port *dp, const char *name) | + static int dsa_port_parse_user(struct dsa_port *dp, const char *name) | ||||||
| +@@ -707,7 +780,7 @@ static int dsa_switch_parse_ports_of(str | +@@ -705,7 +778,7 @@ static int dsa_switch_parse_ports_of(str | ||||||
| + 			goto out_put_node; | + 			goto out_put_node; | ||||||
| + 		} | + 		} | ||||||
| +  | +  | ||||||
| @@ -17189,7 +17205,7 @@ index 0000000000..3d1992e4cb | |||||||
| +  | +  | ||||||
| + 		err = dsa_port_parse_of(dp, port); | + 		err = dsa_port_parse_of(dp, port); | ||||||
| + 		if (err) | + 		if (err) | ||||||
| +@@ -731,8 +804,6 @@ static int dsa_switch_parse_member_of(st | +@@ -729,8 +802,6 @@ static int dsa_switch_parse_member_of(st | ||||||
| + 		return sz; | + 		return sz; | ||||||
| +  | +  | ||||||
| + 	ds->index = m[1]; | + 	ds->index = m[1]; | ||||||
| @@ -17198,7 +17214,7 @@ index 0000000000..3d1992e4cb | |||||||
| +  | +  | ||||||
| + 	ds->dst = dsa_tree_touch(m[0]); | + 	ds->dst = dsa_tree_touch(m[0]); | ||||||
| + 	if (!ds->dst) | + 	if (!ds->dst) | ||||||
| +@@ -741,6 +812,20 @@ static int dsa_switch_parse_member_of(st | +@@ -739,6 +810,20 @@ static int dsa_switch_parse_member_of(st | ||||||
| + 	return 0; | + 	return 0; | ||||||
| + } | + } | ||||||
| +  | +  | ||||||
| @@ -17219,7 +17235,7 @@ index 0000000000..3d1992e4cb | |||||||
| + static int dsa_switch_parse_of(struct dsa_switch *ds, struct device_node *dn) | + static int dsa_switch_parse_of(struct dsa_switch *ds, struct device_node *dn) | ||||||
| + { | + { | ||||||
| + 	int err; | + 	int err; | ||||||
| +@@ -749,6 +834,10 @@ static int dsa_switch_parse_of(struct ds | +@@ -747,6 +832,10 @@ static int dsa_switch_parse_of(struct ds | ||||||
| + 	if (err) | + 	if (err) | ||||||
| + 		return err; | + 		return err; | ||||||
| +  | +  | ||||||
| @@ -17230,7 +17246,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	return dsa_switch_parse_ports_of(ds, dn); | + 	return dsa_switch_parse_ports_of(ds, dn); | ||||||
| + } | + } | ||||||
| +  | +  | ||||||
| +@@ -786,7 +875,7 @@ static int dsa_switch_parse_ports(struct | +@@ -784,7 +873,7 @@ static int dsa_switch_parse_ports(struct | ||||||
| + 	for (i = 0; i < DSA_MAX_PORTS; i++) { | + 	for (i = 0; i < DSA_MAX_PORTS; i++) { | ||||||
| + 		name = cd->port_names[i]; | + 		name = cd->port_names[i]; | ||||||
| + 		dev = cd->netdev[i]; | + 		dev = cd->netdev[i]; | ||||||
| @@ -17239,7 +17255,7 @@ index 0000000000..3d1992e4cb | |||||||
| +  | +  | ||||||
| + 		if (!name) | + 		if (!name) | ||||||
| + 			continue; | + 			continue; | ||||||
| +@@ -806,6 +895,8 @@ static int dsa_switch_parse_ports(struct | +@@ -804,6 +893,8 @@ static int dsa_switch_parse_ports(struct | ||||||
| +  | +  | ||||||
| + static int dsa_switch_parse(struct dsa_switch *ds, struct dsa_chip_data *cd) | + static int dsa_switch_parse(struct dsa_switch *ds, struct dsa_chip_data *cd) | ||||||
| + { | + { | ||||||
| @@ -17248,7 +17264,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	ds->cd = cd; | + 	ds->cd = cd; | ||||||
| +  | +  | ||||||
| + 	/* We don't support interconnected switches nor multiple trees via | + 	/* We don't support interconnected switches nor multiple trees via | ||||||
| +@@ -816,22 +907,26 @@ static int dsa_switch_parse(struct dsa_s | +@@ -814,22 +905,26 @@ static int dsa_switch_parse(struct dsa_s | ||||||
| + 	if (!ds->dst) | + 	if (!ds->dst) | ||||||
| + 		return -ENOMEM; | + 		return -ENOMEM; | ||||||
| +  | +  | ||||||
| @@ -17282,7 +17298,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	if (np) | + 	if (np) | ||||||
| + 		err = dsa_switch_parse_of(ds, np); | + 		err = dsa_switch_parse_of(ds, np); | ||||||
| + 	else if (pdata) | + 	else if (pdata) | ||||||
| +@@ -842,29 +937,14 @@ static int dsa_switch_probe(struct dsa_s | +@@ -840,29 +935,14 @@ static int dsa_switch_probe(struct dsa_s | ||||||
| + 	if (err) | + 	if (err) | ||||||
| + 		return err; | + 		return err; | ||||||
| +  | +  | ||||||
| @@ -17318,7 +17334,7 @@ index 0000000000..3d1992e4cb | |||||||
| +  | +  | ||||||
| + int dsa_register_switch(struct dsa_switch *ds) | + int dsa_register_switch(struct dsa_switch *ds) | ||||||
| + { | + { | ||||||
| +@@ -882,9 +962,15 @@ EXPORT_SYMBOL_GPL(dsa_register_switch); | +@@ -880,9 +960,15 @@ EXPORT_SYMBOL_GPL(dsa_register_switch); | ||||||
| + static void dsa_switch_remove(struct dsa_switch *ds) | + static void dsa_switch_remove(struct dsa_switch *ds) | ||||||
| + { | + { | ||||||
| + 	struct dsa_switch_tree *dst = ds->dst; | + 	struct dsa_switch_tree *dst = ds->dst; | ||||||
| @@ -17336,9 +17352,10 @@ index 0000000000..3d1992e4cb | |||||||
| + } | + } | ||||||
| +  | +  | ||||||
| + void dsa_unregister_switch(struct dsa_switch *ds) | + void dsa_unregister_switch(struct dsa_switch *ds) | ||||||
| +diff -urpN linux-5.4.137.old/net/dsa/dsa_priv.h linux-5.4.137/net/dsa/dsa_priv.h | +Index: linux-5.4.158/net/dsa/dsa_priv.h | ||||||
| +--- linux-5.4.137.old/net/dsa/dsa_priv.h	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/net/dsa/dsa_priv.h	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/net/dsa/dsa_priv.h | ||||||
|  | ++++ linux-5.4.158/net/dsa/dsa_priv.h | ||||||
| +@@ -19,6 +19,9 @@ enum { | +@@ -19,6 +19,9 @@ enum { | ||||||
| + 	DSA_NOTIFIER_BRIDGE_LEAVE, | + 	DSA_NOTIFIER_BRIDGE_LEAVE, | ||||||
| + 	DSA_NOTIFIER_FDB_ADD, | + 	DSA_NOTIFIER_FDB_ADD, | ||||||
| @@ -17442,9 +17459,10 @@ index 0000000000..3d1992e4cb | |||||||
| ++void dsa_lag_unmap(struct dsa_switch_tree *dst, struct net_device *lag); | ++void dsa_lag_unmap(struct dsa_switch_tree *dst, struct net_device *lag); | ||||||
| ++ | ++ | ||||||
| + #endif | + #endif | ||||||
| +diff -urpN linux-5.4.137.old/net/dsa/port.c linux-5.4.137/net/dsa/port.c | +Index: linux-5.4.158/net/dsa/port.c | ||||||
| +--- linux-5.4.137.old/net/dsa/port.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/net/dsa/port.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/net/dsa/port.c | ||||||
|  | ++++ linux-5.4.158/net/dsa/port.c | ||||||
| +@@ -174,6 +174,85 @@ void dsa_port_bridge_leave(struct dsa_po | +@@ -174,6 +174,85 @@ void dsa_port_bridge_leave(struct dsa_po | ||||||
| + 	dsa_port_set_state_now(dp, BR_STATE_FORWARDING); | + 	dsa_port_set_state_now(dp, BR_STATE_FORWARDING); | ||||||
| + } | + } | ||||||
| @@ -17531,9 +17549,10 @@ index 0000000000..3d1992e4cb | |||||||
| + static bool dsa_port_can_apply_vlan_filtering(struct dsa_port *dp, | + static bool dsa_port_can_apply_vlan_filtering(struct dsa_port *dp, | ||||||
| + 					      bool vlan_filtering) | + 					      bool vlan_filtering) | ||||||
| + { | + { | ||||||
| +diff -urpN linux-5.4.137.old/net/dsa/slave.c linux-5.4.137/net/dsa/slave.c | +Index: linux-5.4.158/net/dsa/slave.c | ||||||
| +--- linux-5.4.137.old/net/dsa/slave.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/net/dsa/slave.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/net/dsa/slave.c | ||||||
|  | ++++ linux-5.4.158/net/dsa/slave.c | ||||||
| +@@ -26,8 +26,6 @@ | +@@ -26,8 +26,6 @@ | ||||||
| +  | +  | ||||||
| + #include "dsa_priv.h" | + #include "dsa_priv.h" | ||||||
| @@ -17589,7 +17608,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 			return -EOPNOTSUPP; | + 			return -EOPNOTSUPP; | ||||||
| + 		err = dsa_port_mdb_del(dp, SWITCHDEV_OBJ_PORT_MDB(obj)); | + 		err = dsa_port_mdb_del(dp, SWITCHDEV_OBJ_PORT_MDB(obj)); | ||||||
| + 		break; | + 		break; | ||||||
| +@@ -1527,10 +1528,11 @@ void dsa_slave_destroy(struct net_device | +@@ -1525,10 +1526,11 @@ void dsa_slave_destroy(struct net_device | ||||||
| + 	free_netdev(slave_dev); | + 	free_netdev(slave_dev); | ||||||
| + } | + } | ||||||
| +  | +  | ||||||
| @@ -17602,7 +17621,7 @@ index 0000000000..3d1992e4cb | |||||||
| +  | +  | ||||||
| + static int dsa_slave_changeupper(struct net_device *dev, | + static int dsa_slave_changeupper(struct net_device *dev, | ||||||
| + 				 struct netdev_notifier_changeupper_info *info) | + 				 struct netdev_notifier_changeupper_info *info) | ||||||
| +@@ -1546,6 +1548,46 @@ static int dsa_slave_changeupper(struct | +@@ -1544,6 +1546,46 @@ static int dsa_slave_changeupper(struct | ||||||
| + 			dsa_port_bridge_leave(dp, info->upper_dev); | + 			dsa_port_bridge_leave(dp, info->upper_dev); | ||||||
| + 			err = NOTIFY_OK; | + 			err = NOTIFY_OK; | ||||||
| + 		} | + 		} | ||||||
| @@ -17649,7 +17668,7 @@ index 0000000000..3d1992e4cb | |||||||
| + 	} | + 	} | ||||||
| +  | +  | ||||||
| + 	return err; | + 	return err; | ||||||
| +@@ -1588,11 +1630,33 @@ static int dsa_slave_netdevice_event(str | +@@ -1586,11 +1628,33 @@ static int dsa_slave_netdevice_event(str | ||||||
| + { | + { | ||||||
| + 	struct net_device *dev = netdev_notifier_info_to_dev(ptr); | + 	struct net_device *dev = netdev_notifier_info_to_dev(ptr); | ||||||
| +  | +  | ||||||
| @@ -17685,9 +17704,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	} | + 	} | ||||||
| +  | +  | ||||||
| + 	return NOTIFY_DONE; | + 	return NOTIFY_DONE; | ||||||
| +diff -urpN linux-5.4.137.old/net/dsa/switch.c linux-5.4.137/net/dsa/switch.c | +Index: linux-5.4.158/net/dsa/switch.c | ||||||
| +--- linux-5.4.137.old/net/dsa/switch.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/net/dsa/switch.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/net/dsa/switch.c | ||||||
|  | ++++ linux-5.4.158/net/dsa/switch.c | ||||||
| +@@ -20,7 +20,7 @@ static unsigned int dsa_switch_fastest_a | +@@ -20,7 +20,7 @@ static unsigned int dsa_switch_fastest_a | ||||||
| + 	int i; | + 	int i; | ||||||
| +  | +  | ||||||
| @@ -17770,9 +17790,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	case DSA_NOTIFIER_MDB_ADD: | + 	case DSA_NOTIFIER_MDB_ADD: | ||||||
| + 		err = dsa_switch_mdb_add(ds, info); | + 		err = dsa_switch_mdb_add(ds, info); | ||||||
| + 		break; | + 		break; | ||||||
| +diff -urpN linux-5.4.137.old/net/dsa/tag_8021q.c linux-5.4.137/net/dsa/tag_8021q.c | +Index: linux-5.4.158/net/dsa/tag_8021q.c | ||||||
| +--- linux-5.4.137.old/net/dsa/tag_8021q.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/net/dsa/tag_8021q.c	2021-08-04 14:05:57.643717592 +0700 | +--- linux-5.4.158.orig/net/dsa/tag_8021q.c | ||||||
|  | ++++ linux-5.4.158/net/dsa/tag_8021q.c | ||||||
| +@@ -31,15 +31,14 @@ | +@@ -31,15 +31,14 @@ | ||||||
| +  *	Must be transmitted as zero and ignored on receive. | +  *	Must be transmitted as zero and ignored on receive. | ||||||
| +  * | +  * | ||||||
| @@ -17818,9 +17839,10 @@ index 0000000000..3d1992e4cb | |||||||
| + 	struct bridge_vlan_info vinfo; | + 	struct bridge_vlan_info vinfo; | ||||||
| + 	int err; | + 	int err; | ||||||
| +  | +  | ||||||
| +diff -urpN linux-5.4.137.old/net/dsa/tag_dsa.c linux-5.4.137/net/dsa/tag_dsa.c | +Index: linux-5.4.158/net/dsa/tag_dsa.c | ||||||
| +--- linux-5.4.137.old/net/dsa/tag_dsa.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/net/dsa/tag_dsa.c	2021-08-04 14:05:53.891713717 +0700 | +--- linux-5.4.158.orig/net/dsa/tag_dsa.c | ||||||
|  | ++++ linux-5.4.158/net/dsa/tag_dsa.c | ||||||
| +@@ -1,7 +1,48 @@ | +@@ -1,7 +1,48 @@ | ||||||
| + // SPDX-License-Identifier: GPL-2.0+ | + // SPDX-License-Identifier: GPL-2.0+ | ||||||
| + /* | + /* | ||||||
| @@ -18254,9 +18276,10 @@ index 0000000000..3d1992e4cb | |||||||
| ++module_dsa_tag_drivers(dsa_tag_drivers); | ++module_dsa_tag_drivers(dsa_tag_drivers); | ||||||
| ++ | ++ | ||||||
| ++MODULE_LICENSE("GPL"); | ++MODULE_LICENSE("GPL"); | ||||||
| +diff -urpN linux-5.4.137.old/net/dsa/tag_edsa.c linux-5.4.137/net/dsa/tag_edsa.c | +Index: linux-5.4.158/net/dsa/tag_edsa.c | ||||||
| +--- linux-5.4.137.old/net/dsa/tag_edsa.c	2021-08-04 14:05:38.059697353 +0700 | +=================================================================== | ||||||
| ++++ linux-5.4.137/net/dsa/tag_edsa.c	1970-01-01 07:00:00.000000000 +0700 | +--- linux-5.4.158.orig/net/dsa/tag_edsa.c | ||||||
|  | ++++ /dev/null | ||||||
| +@@ -1,215 +0,0 @@ | +@@ -1,215 +0,0 @@ | ||||||
| +-// SPDX-License-Identifier: GPL-2.0+ | +-// SPDX-License-Identifier: GPL-2.0+ | ||||||
| +-/* | +-/* | ||||||
| @@ -19707,6 +19730,18 @@ index 0000000000..8b43f07e8a | |||||||
| ++MODULE_DESCRIPTION("Realtek Otto GPIO support"); | ++MODULE_DESCRIPTION("Realtek Otto GPIO support"); | ||||||
| ++MODULE_AUTHOR("Sander Vanheule <sander@svanheule.net>"); | ++MODULE_AUTHOR("Sander Vanheule <sander@svanheule.net>"); | ||||||
| ++MODULE_LICENSE("GPL v2"); | ++MODULE_LICENSE("GPL v2"); | ||||||
|  | diff --git a/target/linux/realtek/patches-5.4/702-net-ethernet-add-support-for-rtl838x-ethernet.patch b/target/linux/realtek/patches-5.4/702-net-ethernet-add-support-for-rtl838x-ethernet.patch | ||||||
|  | index 952384ac89..11e62450d5 100644 | ||||||
|  | --- a/target/linux/realtek/patches-5.4/702-net-ethernet-add-support-for-rtl838x-ethernet.patch | ||||||
|  | +++ b/target/linux/realtek/patches-5.4/702-net-ethernet-add-support-for-rtl838x-ethernet.patch | ||||||
|  | @@ -1,6 +1,6 @@ | ||||||
|  |  --- a/drivers/net/ethernet/Kconfig | ||||||
|  |  +++ b/drivers/net/ethernet/Kconfig | ||||||
|  | -@@ -164,6 +164,13 @@ source "drivers/net/ethernet/rdc/Kconfig | ||||||
|  | +@@ -163,6 +163,13 @@ source "drivers/net/ethernet/rdc/Kconfig | ||||||
|  |   source "drivers/net/ethernet/realtek/Kconfig" | ||||||
|  |   source "drivers/net/ethernet/renesas/Kconfig" | ||||||
|  |   source "drivers/net/ethernet/rocker/Kconfig" | ||||||
| diff --git a/target/linux/realtek/patches-5.4/703-include-linux-add-phy-ops-for-rtl838x.patch b/target/linux/realtek/patches-5.4/703-include-linux-add-phy-ops-for-rtl838x.patch | diff --git a/target/linux/realtek/patches-5.4/703-include-linux-add-phy-ops-for-rtl838x.patch b/target/linux/realtek/patches-5.4/703-include-linux-add-phy-ops-for-rtl838x.patch | ||||||
| index 03accd1e07..3682eb30a3 100644 | index 03accd1e07..3682eb30a3 100644 | ||||||
| --- a/target/linux/realtek/patches-5.4/703-include-linux-add-phy-ops-for-rtl838x.patch | --- a/target/linux/realtek/patches-5.4/703-include-linux-add-phy-ops-for-rtl838x.patch | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| From 4ed9b7d04405d5109681643f3ceebbd25f3f28e2 Mon Sep 17 00:00:00 2001 | From d28712edcc0e57b5c0e5d79125a5517ced252e18 Mon Sep 17 00:00:00 2001 | ||||||
| From: John Crispin <john@phrozen.org> | From: John Crispin <john@phrozen.org> | ||||||
| Date: Wed, 7 Apr 2021 10:46:26 +0200 | Date: Wed, 7 Apr 2021 10:46:26 +0200 | ||||||
| Subject: [PATCH 09/27] include: set kernel-version.mk | Subject: [PATCH] include: set kernel-version.mk | ||||||
|  |  | ||||||
| Signed-off-by: John Crispin <john@phrozen.org> | Signed-off-by: John Crispin <john@phrozen.org> | ||||||
| --- | --- | ||||||
| @@ -9,7 +9,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  1 file changed, 6 insertions(+) |  1 file changed, 6 insertions(+) | ||||||
|  |  | ||||||
| diff --git a/include/kernel-version.mk b/include/kernel-version.mk | diff --git a/include/kernel-version.mk b/include/kernel-version.mk | ||||||
| index fe81dbf603..3c109c13c8 100644 | index 688660cbbd..c7aba61cd7 100644 | ||||||
| --- a/include/kernel-version.mk | --- a/include/kernel-version.mk | ||||||
| +++ b/include/kernel-version.mk | +++ b/include/kernel-version.mk | ||||||
| @@ -6,9 +6,15 @@ ifdef CONFIG_TESTING_KERNEL | @@ -6,9 +6,15 @@ ifdef CONFIG_TESTING_KERNEL | ||||||
| @@ -18,12 +18,12 @@ index fe81dbf603..3c109c13c8 100644 | |||||||
|   |   | ||||||
| +LINUX_VERSION-4.4 = .60 | +LINUX_VERSION-4.4 = .60 | ||||||
| +LINUX_VERSION-4.14 = .193 | +LINUX_VERSION-4.14 = .193 | ||||||
|  LINUX_VERSION-5.4 = .142 |  LINUX_VERSION-5.4 = .158 | ||||||
| +LINUX_VERSION-5.10 = .27 | +LINUX_VERSION-5.10 = .27 | ||||||
|   |   | ||||||
| +LINUX_KERNEL_HASH-4.4.60 = 2cd8df6f1ac6a5329c5a286ec9b5956215977221a1b731597ed169fff74a9659 | +LINUX_KERNEL_HASH-4.4.60 = 2cd8df6f1ac6a5329c5a286ec9b5956215977221a1b731597ed169fff74a9659 | ||||||
| +LINUX_KERNEL_HASH-4.14.193 = 0b0fb41d4430e1a42738b341cbfd2f41951aa5cd02acabbd53f076119c8b9f03 | +LINUX_KERNEL_HASH-4.14.193 = 0b0fb41d4430e1a42738b341cbfd2f41951aa5cd02acabbd53f076119c8b9f03 | ||||||
|  LINUX_KERNEL_HASH-5.4.142 = 99785728968564ba27c7e552d024b560072dcbc885540912eabb5c021e231451 |  LINUX_KERNEL_HASH-5.4.158 = 6e018fecdc8fc24553756e582d83b82d65b10a6b03ef36262a24911f839b8d59 | ||||||
| +LINUX_KERNEL_HASH-5.10.27 = d99dc9662951299c53a0a8d8c8d0a72a16ff861d20e927c0f9b14f63282d69d9 | +LINUX_KERNEL_HASH-5.10.27 = d99dc9662951299c53a0a8d8c8d0a72a16ff861d20e927c0f9b14f63282d69d9 | ||||||
|   |   | ||||||
|  remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) |  remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) | ||||||
|   | |||||||
| @@ -1,33 +1,22 @@ | |||||||
| From 1496ca5ceb941ba725311c6c0366193092035f32 Mon Sep 17 00:00:00 2001 | From 23f5618453b232b9ebc5b61b7a560cd4abc09957 Mon Sep 17 00:00:00 2001 | ||||||
| From: John Crispin <john@phrozen.org> | From: John Crispin <john@phrozen.org> | ||||||
| Date: Thu, 27 May 2021 13:24:47 +0200 | Date: Thu, 27 May 2021 13:24:47 +0200 | ||||||
| Subject: [PATCH 01/60] netifd: update to latest HEAD | Subject: [PATCH] netifd: update to latest HEAD | ||||||
|  |  | ||||||
| Signed-off-by: John Crispin <john@phrozen.org> | Signed-off-by: John Crispin <john@phrozen.org> | ||||||
| --- | --- | ||||||
|  package/network/config/netifd/Makefile        |  8 ++-- |  package/network/config/netifd/Makefile        |  2 - | ||||||
|  .../config/netifd/patches/100-script.patch    | 21 +++++++++++ |  .../config/netifd/patches/100-script.patch    | 21 +++++++++++ | ||||||
|  .../config/netifd/patches/hairpin.patch       | 37 +++++++++++++++++++ |  .../config/netifd/patches/hairpin.patch       | 37 +++++++++++++++++++ | ||||||
|  3 files changed, 61 insertions(+), 5 deletions(-) |  3 files changed, 58 insertions(+), 2 deletions(-) | ||||||
|  create mode 100644 package/network/config/netifd/patches/100-script.patch |  create mode 100644 package/network/config/netifd/patches/100-script.patch | ||||||
|  create mode 100644 package/network/config/netifd/patches/hairpin.patch |  create mode 100644 package/network/config/netifd/patches/hairpin.patch | ||||||
|  |  | ||||||
| diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile | diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile | ||||||
| index 4b5f110da2..d41bddfd56 100644 | index cd4f8f423d..e4399b2473 100644 | ||||||
| --- a/package/network/config/netifd/Makefile | --- a/package/network/config/netifd/Makefile | ||||||
| +++ b/package/network/config/netifd/Makefile | +++ b/package/network/config/netifd/Makefile | ||||||
| @@ -5,16 +5,14 @@ PKG_RELEASE:=1 | @@ -13,8 +13,6 @@ PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> | ||||||
|   |  | ||||||
|  PKG_SOURCE_PROTO:=git |  | ||||||
|  PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git |  | ||||||
| -PKG_SOURCE_DATE:=2021-07-26 |  | ||||||
| -PKG_SOURCE_VERSION:=440eb0647708274cc8d7d9e7c2bb0cfdfba90023 |  | ||||||
| -PKG_MIRROR_HASH:=eed957036ab608fdc49bdf801fc5b4405fcd2a3a5e5d3343ec39898e156c10e9 |  | ||||||
| +PKG_SOURCE_DATE:=2021-10-20 |  | ||||||
| +PKG_SOURCE_VERSION:=c61a1d432b34babe230e49a82712608b07410fc3 |  | ||||||
| +PKG_MIRROR_HASH:=2b040d039c560cbc04dfe1e496aa81f714a032db88986803728dd6b724c11cd2 |  | ||||||
|  PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> |  | ||||||
|   |  | ||||||
|  PKG_LICENSE:=GPL-2.0 |  PKG_LICENSE:=GPL-2.0 | ||||||
|  PKG_LICENSE_FILES:= |  PKG_LICENSE_FILES:= | ||||||
|   |   | ||||||
| @@ -63,49 +52,6 @@ index 0000000000..e7ba83f4bb | |||||||
| + 		psk3-mixed*|sae-mixed*) | + 		psk3-mixed*|sae-mixed*) | ||||||
| + 			auth_type=psk-sae | + 			auth_type=psk-sae | ||||||
| + 		;; | + 		;; | ||||||
| diff --git a/package/network/config/netifd/patches/hairpin.patch b/package/network/config/netifd/patches/hairpin.patch |  | ||||||
| new file mode 100644 |  | ||||||
| index 0000000000..25515d75d4 |  | ||||||
| --- /dev/null |  | ||||||
| +++ b/package/network/config/netifd/patches/hairpin.patch |  | ||||||
| @@ -0,0 +1,37 @@ |  | ||||||
| +diff --git a/wireless.c b/wireless.c |  | ||||||
| +index b26c4e8c8f0b..bd847e72ab40 100644 |  | ||||||
| +--- a/wireless.c |  | ||||||
| ++++ b/wireless.c |  | ||||||
| +@@ -804,20 +804,13 @@ wireless_interface_init_config(struct wireless_interface *vif) |  | ||||||
| + 		vif->network = cur; |  | ||||||
| +  |  | ||||||
| + 	cur = tb[VIF_ATTR_MODE]; |  | ||||||
| +-	if (cur) |  | ||||||
| +-		vif->ap_mode = !strcmp(blobmsg_get_string(cur), "ap"); |  | ||||||
| +- |  | ||||||
| +-	if (!vif->ap_mode) |  | ||||||
| +-		return; |  | ||||||
| ++	vif->ap_mode = cur && !strcmp(blobmsg_get_string(cur), "ap"); |  | ||||||
| +  |  | ||||||
| + 	cur = tb[VIF_ATTR_ISOLATE]; |  | ||||||
| +-	if (cur) |  | ||||||
| +-		vif->isolate = blobmsg_get_bool(cur); |  | ||||||
| ++	vif->isolate = vif->ap_mode && cur && blobmsg_get_bool(cur); |  | ||||||
| +  |  | ||||||
| + 	cur = tb[VIF_ATTR_PROXYARP]; |  | ||||||
| +-	if (cur) |  | ||||||
| +-		vif->proxyarp = blobmsg_get_bool(cur); |  | ||||||
| +- |  | ||||||
| ++	vif->proxyarp = vif->ap_mode && cur && blobmsg_get_bool(cur); |  | ||||||
| + } |  | ||||||
| +  |  | ||||||
| + /* vlist update call for wireless interface list */ |  | ||||||
| +@@ -846,8 +839,6 @@ vif_update(struct vlist_tree *tree, struct vlist_node *node_new, |  | ||||||
| + 		wireless_interface_handle_link(vif_old, NULL, false); |  | ||||||
| + 		free(vif_old->config); |  | ||||||
| + 		vif_old->config = blob_memdup(vif_new->config); |  | ||||||
| +-		vif_old->isolate = vif_new->isolate; |  | ||||||
| +-		vif_old->ap_mode = vif_new->ap_mode; |  | ||||||
| + 		wireless_interface_init_config(vif_old); |  | ||||||
| + 		free(vif_new); |  | ||||||
| + 	} else if (vif_new) { |  | ||||||
| --  | --  | ||||||
| 2.25.1 | 2.25.1 | ||||||
|  |  | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,247 +0,0 @@ | |||||||
| From 99b9f524e94b98ce8fd3e141bf7e07bfa96bbea0 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: John Crispin <john@phrozen.org> |  | ||||||
| Date: Tue, 14 Sep 2021 09:19:08 +0200 |  | ||||||
| Subject: [PATCH] mt76: update to latest HEAD |  | ||||||
|  |  | ||||||
| Signed-off-by: John Crispin <john@phrozen.org> |  | ||||||
| --- |  | ||||||
|  package/kernel/mt76/Makefile                  |   7 +- |  | ||||||
|  ...the-dst-buffer-to-of_get_mac_address.patch | 206 ++++++++++++++++++ |  | ||||||
|  2 files changed, 210 insertions(+), 3 deletions(-) |  | ||||||
|  create mode 100644 package/kernel/mt76/patches/001-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch |  | ||||||
|  |  | ||||||
| diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile |  | ||||||
| index e4051d8347..431c57a240 100644 |  | ||||||
| --- a/package/kernel/mt76/Makefile |  | ||||||
| +++ b/package/kernel/mt76/Makefile |  | ||||||
| @@ -8,11 +8,12 @@ PKG_LICENSE_FILES:= |  | ||||||
|   |  | ||||||
|  PKG_SOURCE_URL:=https://github.com/openwrt/mt76 |  | ||||||
|  PKG_SOURCE_PROTO:=git |  | ||||||
| -PKG_SOURCE_DATE:=2021-06-06 |  | ||||||
| -PKG_SOURCE_VERSION:=22b690334c0f49b11534cc2e331c9d5e17c4a0bc |  | ||||||
| -PKG_MIRROR_HASH:=ff5e563935919d2e40c1e7254ef3bc06f7ecc5e69f8ddd12903e8f5de942d630 |  | ||||||
| +PKG_SOURCE_DATE:=2021-07-15 |  | ||||||
| +PKG_SOURCE_VERSION:=bbebea7d6dc64313132226adc3f7369d36e9359d |  | ||||||
| +PKG_MIRROR_HASH:=17cd74e72c1f6c8742b698bf6772afacc6fba71b233af8c4d59530600cf44d5b |  | ||||||
|   |  | ||||||
|  PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> |  | ||||||
| +PKG_USE_NINJA:=0 |  | ||||||
|  PKG_BUILD_PARALLEL:=1 |  | ||||||
|   |  | ||||||
|  PKG_CONFIG_DEPENDS += \ |  | ||||||
| diff --git a/package/kernel/mt76/patches/001-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch b/package/kernel/mt76/patches/001-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch |  | ||||||
| new file mode 100644 |  | ||||||
| index 0000000000..66075f2771 |  | ||||||
| --- /dev/null |  | ||||||
| +++ b/package/kernel/mt76/patches/001-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch |  | ||||||
| @@ -0,0 +1,206 @@ |  | ||||||
| +From 83216e3988cd196183542937c9bd58b279f946af Mon Sep 17 00:00:00 2001 |  | ||||||
| +From: Michael Walle <michael@walle.cc> |  | ||||||
| +Date: Mon, 12 Apr 2021 19:47:17 +0200 |  | ||||||
| +Subject: of: net: pass the dst buffer to of_get_mac_address() |  | ||||||
| + |  | ||||||
| +of_get_mac_address() returns a "const void*" pointer to a MAC address. |  | ||||||
| +Lately, support to fetch the MAC address by an NVMEM provider was added. |  | ||||||
| +But this will only work with platform devices. It will not work with |  | ||||||
| +PCI devices (e.g. of an integrated root complex) and esp. not with DSA |  | ||||||
| +ports. |  | ||||||
| + |  | ||||||
| +There is an of_* variant of the nvmem binding which works without |  | ||||||
| +devices. The returned data of a nvmem_cell_read() has to be freed after |  | ||||||
| +use. On the other hand the return of_get_mac_address() points to some |  | ||||||
| +static data without a lifetime. The trick for now, was to allocate a |  | ||||||
| +device resource managed buffer which is then returned. This will only |  | ||||||
| +work if we have an actual device. |  | ||||||
| + |  | ||||||
| +Change it, so that the caller of of_get_mac_address() has to supply a |  | ||||||
| +buffer where the MAC address is written to. Unfortunately, this will |  | ||||||
| +touch all drivers which use the of_get_mac_address(). |  | ||||||
| + |  | ||||||
| +Usually the code looks like: |  | ||||||
| + |  | ||||||
| +  const char *addr; |  | ||||||
| +  addr = of_get_mac_address(np); |  | ||||||
| +  if (!IS_ERR(addr)) |  | ||||||
| +    ether_addr_copy(ndev->dev_addr, addr); |  | ||||||
| + |  | ||||||
| +This can then be simply rewritten as: |  | ||||||
| + |  | ||||||
| +  of_get_mac_address(np, ndev->dev_addr); |  | ||||||
| + |  | ||||||
| +Sometimes is_valid_ether_addr() is used to test the MAC address. |  | ||||||
| +of_get_mac_address() already makes sure, it just returns a valid MAC |  | ||||||
| +address. Thus we can just test its return code. But we have to be |  | ||||||
| +careful if there are still other sources for the MAC address before the |  | ||||||
| +of_get_mac_address(). In this case we have to keep the |  | ||||||
| +is_valid_ether_addr() call. |  | ||||||
| + |  | ||||||
| +The following coccinelle patch was used to convert common cases to the |  | ||||||
| +new style. Afterwards, I've manually gone over the drivers and fixed the |  | ||||||
| +return code variable: either used a new one or if one was already |  | ||||||
| +available use that. Mansour Moufid, thanks for that coccinelle patch! |  | ||||||
| + |  | ||||||
| +<spml> |  | ||||||
| +@a@ |  | ||||||
| +identifier x; |  | ||||||
| +expression y, z; |  | ||||||
| +@@ |  | ||||||
| +- x = of_get_mac_address(y); |  | ||||||
| ++ x = of_get_mac_address(y, z); |  | ||||||
| +  <... |  | ||||||
| +- ether_addr_copy(z, x); |  | ||||||
| +  ...> |  | ||||||
| + |  | ||||||
| +@@ |  | ||||||
| +identifier a.x; |  | ||||||
| +@@ |  | ||||||
| +- if (<+... x ...+>) {} |  | ||||||
| + |  | ||||||
| +@@ |  | ||||||
| +identifier a.x; |  | ||||||
| +@@ |  | ||||||
| +  if (<+... x ...+>) { |  | ||||||
| +      ... |  | ||||||
| +  } |  | ||||||
| +- else {} |  | ||||||
| + |  | ||||||
| +@@ |  | ||||||
| +identifier a.x; |  | ||||||
| +expression e; |  | ||||||
| +@@ |  | ||||||
| +- if (<+... x ...+>@e) |  | ||||||
| +-     {} |  | ||||||
| +- else |  | ||||||
| ++ if (!(e)) |  | ||||||
| +      {...} |  | ||||||
| + |  | ||||||
| +@@ |  | ||||||
| +expression x, y, z; |  | ||||||
| +@@ |  | ||||||
| +- x = of_get_mac_address(y, z); |  | ||||||
| ++ of_get_mac_address(y, z); |  | ||||||
| +  ... when != x |  | ||||||
| +</spml> |  | ||||||
| + |  | ||||||
| +All drivers, except drivers/net/ethernet/aeroflex/greth.c, were |  | ||||||
| +compile-time tested. |  | ||||||
| + |  | ||||||
| +Suggested-by: Andrew Lunn <andrew@lunn.ch> |  | ||||||
| +Signed-off-by: Michael Walle <michael@walle.cc> |  | ||||||
| +Reviewed-by: Andrew Lunn <andrew@lunn.ch> |  | ||||||
| +Signed-off-by: David S. Miller <davem@davemloft.net> |  | ||||||
| +--- |  | ||||||
| + arch/arm/mach-mvebu/kirkwood.c                     |  3 +- |  | ||||||
| + arch/powerpc/sysdev/tsi108_dev.c                   |  5 +- |  | ||||||
| + drivers/net/ethernet/aeroflex/greth.c              |  6 +-- |  | ||||||
| + drivers/net/ethernet/allwinner/sun4i-emac.c        | 10 ++-- |  | ||||||
| + drivers/net/ethernet/altera/altera_tse_main.c      |  7 +-- |  | ||||||
| + drivers/net/ethernet/arc/emac_main.c               |  8 +-- |  | ||||||
| + drivers/net/ethernet/atheros/ag71xx.c              |  7 +-- |  | ||||||
| + drivers/net/ethernet/broadcom/bcm4908_enet.c       |  7 +-- |  | ||||||
| + drivers/net/ethernet/broadcom/bcmsysport.c         |  7 +-- |  | ||||||
| + drivers/net/ethernet/broadcom/bgmac-bcma.c         | 10 ++-- |  | ||||||
| + drivers/net/ethernet/broadcom/bgmac-platform.c     | 11 ++-- |  | ||||||
| + drivers/net/ethernet/cadence/macb_main.c           | 11 ++-- |  | ||||||
| + drivers/net/ethernet/cavium/octeon/octeon_mgmt.c   |  8 +-- |  | ||||||
| + drivers/net/ethernet/cavium/thunder/thunder_bgx.c  |  5 +- |  | ||||||
| + drivers/net/ethernet/davicom/dm9000.c              | 10 ++-- |  | ||||||
| + drivers/net/ethernet/ethoc.c                       |  6 +-- |  | ||||||
| + drivers/net/ethernet/ezchip/nps_enet.c             |  7 +-- |  | ||||||
| + drivers/net/ethernet/freescale/fec_main.c          |  7 +-- |  | ||||||
| + drivers/net/ethernet/freescale/fec_mpc52xx.c       |  7 +-- |  | ||||||
| + drivers/net/ethernet/freescale/fman/mac.c          |  9 ++-- |  | ||||||
| + .../net/ethernet/freescale/fs_enet/fs_enet-main.c  |  5 +- |  | ||||||
| + drivers/net/ethernet/freescale/gianfar.c           |  8 +-- |  | ||||||
| + drivers/net/ethernet/freescale/ucc_geth.c          |  5 +- |  | ||||||
| + drivers/net/ethernet/hisilicon/hisi_femac.c        |  7 +-- |  | ||||||
| + drivers/net/ethernet/hisilicon/hix5hd2_gmac.c      |  7 +-- |  | ||||||
| + drivers/net/ethernet/lantiq_xrx200.c               |  7 +-- |  | ||||||
| + drivers/net/ethernet/marvell/mv643xx_eth.c         |  5 +- |  | ||||||
| + drivers/net/ethernet/marvell/mvneta.c              |  6 +-- |  | ||||||
| + .../net/ethernet/marvell/prestera/prestera_main.c  | 11 ++-- |  | ||||||
| + drivers/net/ethernet/marvell/pxa168_eth.c          |  9 +--- |  | ||||||
| + drivers/net/ethernet/marvell/sky2.c                |  8 ++- |  | ||||||
| + drivers/net/ethernet/mediatek/mtk_eth_soc.c        | 11 ++-- |  | ||||||
| + drivers/net/ethernet/micrel/ks8851_common.c        |  7 ++- |  | ||||||
| + drivers/net/ethernet/microchip/lan743x_main.c      |  5 +- |  | ||||||
| + drivers/net/ethernet/nxp/lpc_eth.c                 |  4 +- |  | ||||||
| + drivers/net/ethernet/qualcomm/qca_spi.c            | 10 ++-- |  | ||||||
| + drivers/net/ethernet/qualcomm/qca_uart.c           |  9 +--- |  | ||||||
| + drivers/net/ethernet/renesas/ravb_main.c           | 12 +++-- |  | ||||||
| + drivers/net/ethernet/renesas/sh_eth.c              |  5 +- |  | ||||||
| + .../net/ethernet/samsung/sxgbe/sxgbe_platform.c    | 13 ++--- |  | ||||||
| + drivers/net/ethernet/socionext/sni_ave.c           | 10 ++-- |  | ||||||
| + .../net/ethernet/stmicro/stmmac/dwmac-anarion.c    |  2 +- |  | ||||||
| + .../ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c    |  2 +- |  | ||||||
| + .../net/ethernet/stmicro/stmmac/dwmac-generic.c    |  2 +- |  | ||||||
| + drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c    |  2 +- |  | ||||||
| + .../net/ethernet/stmicro/stmmac/dwmac-intel-plat.c |  2 +- |  | ||||||
| + .../net/ethernet/stmicro/stmmac/dwmac-ipq806x.c    |  2 +- |  | ||||||
| + .../net/ethernet/stmicro/stmmac/dwmac-lpc18xx.c    |  2 +- |  | ||||||
| + .../net/ethernet/stmicro/stmmac/dwmac-mediatek.c   |  2 +- |  | ||||||
| + drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c  |  2 +- |  | ||||||
| + .../net/ethernet/stmicro/stmmac/dwmac-meson8b.c    |  2 +- |  | ||||||
| + drivers/net/ethernet/stmicro/stmmac/dwmac-oxnas.c  |  2 +- |  | ||||||
| + .../ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c    |  2 +- |  | ||||||
| + drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c     |  2 +- |  | ||||||
| + .../net/ethernet/stmicro/stmmac/dwmac-socfpga.c    |  2 +- |  | ||||||
| + drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c    |  2 +- |  | ||||||
| + drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c  |  2 +- |  | ||||||
| + drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c  |  2 +- |  | ||||||
| + drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c  |  2 +- |  | ||||||
| + .../net/ethernet/stmicro/stmmac/dwmac-visconti.c   |  2 +- |  | ||||||
| + drivers/net/ethernet/stmicro/stmmac/stmmac.h       |  2 +- |  | ||||||
| + drivers/net/ethernet/stmicro/stmmac/stmmac_main.c  |  2 +- |  | ||||||
| + .../net/ethernet/stmicro/stmmac/stmmac_platform.c  | 14 ++--- |  | ||||||
| + .../net/ethernet/stmicro/stmmac/stmmac_platform.h  |  2 +- |  | ||||||
| + drivers/net/ethernet/ti/am65-cpsw-nuss.c           | 19 ++++--- |  | ||||||
| + drivers/net/ethernet/ti/cpsw.c                     |  7 +-- |  | ||||||
| + drivers/net/ethernet/ti/cpsw_new.c                 |  7 +-- |  | ||||||
| + drivers/net/ethernet/ti/davinci_emac.c             |  8 +-- |  | ||||||
| + drivers/net/ethernet/ti/netcp_core.c               |  7 +-- |  | ||||||
| + drivers/net/ethernet/wiznet/w5100-spi.c            |  8 ++- |  | ||||||
| + drivers/net/ethernet/wiznet/w5100.c                |  2 +- |  | ||||||
| + drivers/net/ethernet/xilinx/ll_temac_main.c        |  8 +-- |  | ||||||
| + drivers/net/ethernet/xilinx/xilinx_axienet_main.c  | 15 +++--- |  | ||||||
| + drivers/net/ethernet/xilinx/xilinx_emaclite.c      |  8 +-- |  | ||||||
| + drivers/net/wireless/ath/ath9k/init.c              |  5 +- |  | ||||||
| + drivers/net/wireless/mediatek/mt76/eeprom.c        |  9 +--- |  | ||||||
| + drivers/net/wireless/ralink/rt2x00/rt2x00dev.c     |  6 +-- |  | ||||||
| + drivers/of/of_net.c                                | 60 ++++++++++------------ |  | ||||||
| + drivers/staging/octeon/ethernet.c                  | 10 ++-- |  | ||||||
| + drivers/staging/wfx/main.c                         |  7 ++- |  | ||||||
| + include/linux/of_net.h                             |  6 +-- |  | ||||||
| + include/net/dsa.h                                  |  2 +- |  | ||||||
| + net/dsa/dsa2.c                                     |  2 +- |  | ||||||
| + net/dsa/slave.c                                    |  2 +- |  | ||||||
| + net/ethernet/eth.c                                 | 11 ++-- |  | ||||||
| + 85 files changed, 218 insertions(+), 364 deletions(-) |  | ||||||
| + |  | ||||||
| +diff --git a/drivers/net/wireless/mediatek/mt76/eeprom.c b/drivers/net/wireless/mediatek/mt76/eeprom.c |  | ||||||
| +index 665b54c5c8ae5..6d895738222ad 100644 |  | ||||||
| +--- a/eeprom.c |  | ||||||
| ++++ b/eeprom.c |  | ||||||
| +@@ -91,15 +91,9 @@ void |  | ||||||
| + { |  | ||||||
| + 	struct mt76_dev *dev = phy->dev; |  | ||||||
| +  |  | ||||||
| +-#ifdef CONFIG_OF |  | ||||||
| + 	struct device_node *np = dev->dev->of_node; |  | ||||||
| +-	const u8 *mac = NULL; |  | ||||||
| +  |  | ||||||
| +-	if (np) |  | ||||||
| +-		mac = of_get_mac_address(np); |  | ||||||
| +-	if (!IS_ERR_OR_NULL(mac)) |  | ||||||
| +-		ether_addr_copy(phy->macaddr, mac); |  | ||||||
| +-#endif |  | ||||||
| ++	of_get_mac_address(np, phy->macaddr); |  | ||||||
| +  |  | ||||||
| + 	if (!is_valid_ether_addr(phy->macaddr)) { |  | ||||||
| + 		eth_random_addr(phy->macaddr); |  | ||||||
| +--  |  | ||||||
| +cgit 1.2.3-1.el7 |  | ||||||
| + |  | ||||||
| --  |  | ||||||
| 2.25.1 |  | ||||||
|  |  | ||||||
| @@ -1,47 +0,0 @@ | |||||||
| From 4b2e6bb352b400e244646a7bc59bc5ca3ca6f5df Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Roman Yeryomin <roman@advem.lv> |  | ||||||
| Date: Fri, 3 Sep 2021 17:31:11 +0300 |  | ||||||
| Subject: [PATCH 32/32] iproute2: m_xt.so depends on dynsyms.list |  | ||||||
|  |  | ||||||
| When doing parallel build on a fast machine with bottleneck in i/o, |  | ||||||
| m_xt.so may start linking faster than dynsyms.list gets populated, |  | ||||||
| resulting in error: |  | ||||||
|  |  | ||||||
| ld:dynsyms.list:0: syntax error in dynamic list |  | ||||||
|  |  | ||||||
| Fix this by adding dynsyms.list as make dependency to m_xt.so |  | ||||||
| Described also here: |  | ||||||
| https://bugs.openwrt.org/index.php?do=details&task_id=3353 |  | ||||||
|  |  | ||||||
| Change from v1: |  | ||||||
| - add dynsysms.list dependancy only when shared libs are enabled |  | ||||||
|  |  | ||||||
| Signed-off-by: Roman Yeryomin <roman@advem.lv> |  | ||||||
| Fixes: FS#3353 |  | ||||||
| --- |  | ||||||
|  .../utils/iproute2/patches/175-reduce-dynamic-syms.patch       | 3 ++- |  | ||||||
|  1 file changed, 2 insertions(+), 1 deletion(-) |  | ||||||
|  |  | ||||||
| diff --git a/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch b/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch |  | ||||||
| index da961a183b..c3892e5a0e 100644 |  | ||||||
| --- a/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch |  | ||||||
| +++ b/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch |  | ||||||
| @@ -26,13 +26,14 @@ |  | ||||||
|    |  | ||||||
|   q_atm.so: q_atm.c |  | ||||||
|   	$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic -o q_atm.so q_atm.c -latm |  | ||||||
| -@@ -205,4 +206,15 @@ static-syms.h: $(wildcard *.c) |  | ||||||
| +@@ -205,4 +206,16 @@ static-syms.h: $(wildcard *.c) |  | ||||||
|   		sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \ |  | ||||||
|   	done > $@ |  | ||||||
|    |  | ||||||
|  +else |  | ||||||
|  + |  | ||||||
|  +tc: dynsyms.list |  | ||||||
| ++m_xt.so: dynsyms.list |  | ||||||
|  +dynsyms.list: $(wildcard *.c) |  | ||||||
|  +	files="$(filter-out $(patsubst %.so,%.c,$(TCSO)), $^)" ; \ |  | ||||||
|  +	echo "{" > $@ ; \ |  | ||||||
| --  |  | ||||||
| 2.25.1 |  | ||||||
|  |  | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| From 9e48f3b55c4a379ad36974097fadc6bd034a8ce5 Mon Sep 17 00:00:00 2001 | From e2bb75821cd023b62bf69bc40d5187ba63237cc2 Mon Sep 17 00:00:00 2001 | ||||||
| From: John Crispin <john@phrozen.org> | From: John Crispin <john@phrozen.org> | ||||||
| Date: Tue, 14 Dec 2021 09:39:42 +0100 | Date: Tue, 14 Dec 2021 09:39:42 +0100 | ||||||
| Subject: [PATCH] kernel: backport napi threading patches | Subject: [PATCH] kernel: backport napi threading patches | ||||||
| @@ -723,7 +723,7 @@ index 0000000000..108cf809f8 | |||||||
| +  | +  | ||||||
| diff --git a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch b/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch | diff --git a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch b/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch | ||||||
| deleted file mode 100644 | deleted file mode 100644 | ||||||
| index f45efdf12b..0000000000 | index febec868f4..0000000000 | ||||||
| --- a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch | --- a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch | ||||||
| +++ /dev/null | +++ /dev/null | ||||||
| @@ -1,356 +0,0 @@ | @@ -1,356 +0,0 @@ | ||||||
| @@ -824,7 +824,7 @@ index f45efdf12b..0000000000 | |||||||
| -  | -  | ||||||
| - static int netif_rx_internal(struct sk_buff *skb); | - static int netif_rx_internal(struct sk_buff *skb); | ||||||
| - static int call_netdevice_notifiers_info(unsigned long val, | - static int call_netdevice_notifiers_info(unsigned long val, | ||||||
| -@@ -5931,6 +5932,11 @@ void __napi_schedule(struct napi_struct | -@@ -5937,6 +5938,11 @@ void __napi_schedule(struct napi_struct | ||||||
| - { | - { | ||||||
| - 	unsigned long flags; | - 	unsigned long flags; | ||||||
| -  | -  | ||||||
| @@ -836,7 +836,7 @@ index f45efdf12b..0000000000 | |||||||
| - 	local_irq_save(flags); | - 	local_irq_save(flags); | ||||||
| - 	____napi_schedule(this_cpu_ptr(&softnet_data), n); | - 	____napi_schedule(this_cpu_ptr(&softnet_data), n); | ||||||
| - 	local_irq_restore(flags); | - 	local_irq_restore(flags); | ||||||
| -@@ -5982,6 +5988,11 @@ EXPORT_SYMBOL(napi_schedule_prep); | -@@ -5988,6 +5994,11 @@ EXPORT_SYMBOL(napi_schedule_prep); | ||||||
| -  */ | -  */ | ||||||
| - void __napi_schedule_irqoff(struct napi_struct *n) | - void __napi_schedule_irqoff(struct napi_struct *n) | ||||||
| - { | - { | ||||||
| @@ -848,7 +848,7 @@ index f45efdf12b..0000000000 | |||||||
| - 	if (!IS_ENABLED(CONFIG_PREEMPT_RT)) | - 	if (!IS_ENABLED(CONFIG_PREEMPT_RT)) | ||||||
| - 		____napi_schedule(this_cpu_ptr(&softnet_data), n); | - 		____napi_schedule(this_cpu_ptr(&softnet_data), n); | ||||||
| - 	else | - 	else | ||||||
| -@@ -6246,9 +6257,89 @@ static void init_gro_hash(struct napi_st | -@@ -6252,9 +6263,89 @@ static void init_gro_hash(struct napi_st | ||||||
| - 	napi->gro_bitmask = 0; | - 	napi->gro_bitmask = 0; | ||||||
| - } | - } | ||||||
| -  | -  | ||||||
| @@ -938,7 +938,7 @@ index f45efdf12b..0000000000 | |||||||
| - 	INIT_LIST_HEAD(&napi->poll_list); | - 	INIT_LIST_HEAD(&napi->poll_list); | ||||||
| - 	hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED); | - 	hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED); | ||||||
| - 	napi->timer.function = napi_watchdog; | - 	napi->timer.function = napi_watchdog; | ||||||
| -@@ -6265,6 +6356,7 @@ void netif_napi_add(struct net_device *d | -@@ -6271,6 +6362,7 @@ void netif_napi_add(struct net_device *d | ||||||
| - #ifdef CONFIG_NETPOLL | - #ifdef CONFIG_NETPOLL | ||||||
| - 	napi->poll_owner = -1; | - 	napi->poll_owner = -1; | ||||||
| - #endif | - #endif | ||||||
| @@ -946,7 +946,7 @@ index f45efdf12b..0000000000 | |||||||
| - 	set_bit(NAPI_STATE_SCHED, &napi->state); | - 	set_bit(NAPI_STATE_SCHED, &napi->state); | ||||||
| - 	set_bit(NAPI_STATE_NPSVC, &napi->state); | - 	set_bit(NAPI_STATE_NPSVC, &napi->state); | ||||||
| - 	list_add_rcu(&napi->dev_list, &dev->napi_list); | - 	list_add_rcu(&napi->dev_list, &dev->napi_list); | ||||||
| -@@ -6305,6 +6397,7 @@ static void flush_gro_hash(struct napi_s | -@@ -6311,6 +6403,7 @@ static void flush_gro_hash(struct napi_s | ||||||
| - void netif_napi_del(struct napi_struct *napi) | - void netif_napi_del(struct napi_struct *napi) | ||||||
| - { | - { | ||||||
| - 	might_sleep(); | - 	might_sleep(); | ||||||
| @@ -954,7 +954,7 @@ index f45efdf12b..0000000000 | |||||||
| - 	if (napi_hash_del(napi)) | - 	if (napi_hash_del(napi)) | ||||||
| - 		synchronize_net(); | - 		synchronize_net(); | ||||||
| - 	list_del_init(&napi->dev_list); | - 	list_del_init(&napi->dev_list); | ||||||
| -@@ -6317,50 +6410,18 @@ EXPORT_SYMBOL(netif_napi_del); | -@@ -6323,50 +6416,18 @@ EXPORT_SYMBOL(netif_napi_del); | ||||||
| -  | -  | ||||||
| - static int napi_poll(struct napi_struct *n, struct list_head *repoll) | - static int napi_poll(struct napi_struct *n, struct list_head *repoll) | ||||||
| - { | - { | ||||||
| @@ -1009,7 +1009,7 @@ index f45efdf12b..0000000000 | |||||||
| -  | -  | ||||||
| - 	/* Some drivers may have called napi_schedule | - 	/* Some drivers may have called napi_schedule | ||||||
| - 	 * prior to exhausting their budget. | - 	 * prior to exhausting their budget. | ||||||
| -@@ -10340,6 +10401,10 @@ static int __init net_dev_init(void) | -@@ -10346,6 +10407,10 @@ static int __init net_dev_init(void) | ||||||
| - 		sd->backlog.weight = weight_p; | - 		sd->backlog.weight = weight_p; | ||||||
| - 	} | - 	} | ||||||
| -  | -  | ||||||
|   | |||||||
| @@ -1,22 +1,22 @@ | |||||||
| From 3b8b9898226f49379e34356fd8d2b0abc8947994 Mon Sep 17 00:00:00 2001 | From 9279389d2759af6bfa21bfe7a80dd5c96c67df9e Mon Sep 17 00:00:00 2001 | ||||||
| From: John Crispin <john@phrozen.org> | From: John Crispin <john@phrozen.org> | ||||||
| Date: Fri, 19 Jun 2020 10:45:22 +0200 | Date: Fri, 19 Jun 2020 10:45:22 +0200 | ||||||
| Subject: [PATCH] pending: scripts: add gen_config.py | Subject: [PATCH 01/61] pending: scripts: add gen_config.py | ||||||
|  |  | ||||||
| This script is used to setup the tree based on the profiles/. | This script is used to setup the tree based on the profiles/. | ||||||
|  |  | ||||||
| Signed-off-by: John Crispin <john@phrozen.org> | Signed-off-by: John Crispin <john@phrozen.org> | ||||||
| --- | --- | ||||||
|  scripts/gen_config.py | 236 ++++++++++++++++++++++++++++++++++++++++++ |  scripts/gen_config.py | 237 ++++++++++++++++++++++++++++++++++++++++++ | ||||||
|  1 file changed, 236 insertions(+) |  1 file changed, 237 insertions(+) | ||||||
|  create mode 100755 scripts/gen_config.py |  create mode 100755 scripts/gen_config.py | ||||||
|  |  | ||||||
| diff --git a/scripts/gen_config.py b/scripts/gen_config.py | diff --git a/scripts/gen_config.py b/scripts/gen_config.py | ||||||
| new file mode 100755 | new file mode 100755 | ||||||
| index 0000000000..d39066f44d | index 0000000000..01c3f4050d | ||||||
| --- /dev/null | --- /dev/null | ||||||
| +++ b/scripts/gen_config.py | +++ b/scripts/gen_config.py | ||||||
| @@ -0,0 +1,236 @@ | @@ -0,0 +1,237 @@ | ||||||
| +#!/usr/bin/env python3 | +#!/usr/bin/env python3 | ||||||
| + | + | ||||||
| +from os import getenv | +from os import getenv | ||||||
| @@ -244,11 +244,12 @@ index 0000000000..d39066f44d | |||||||
| +    clean_tree() | +    clean_tree() | ||||||
| +    setup_feeds(profile) | +    setup_feeds(profile) | ||||||
| +    generate_config(profile) | +    generate_config(profile) | ||||||
| +    if profile["image"]: | +    run(["rm", "-rf", "tmp/"]) | ||||||
| +        Path("tmp/image-file").write_text(profile["image"]) |  | ||||||
| +    print("Running make defconfig") | +    print("Running make defconfig") | ||||||
| +    if run(["make", "defconfig"]).returncode: | +    if run(["make", "defconfig"]).returncode: | ||||||
| +        die(f"Error running make defconfig") | +        die(f"Error running make defconfig") | ||||||
|  | +    if profile["image"]: | ||||||
|  | +        Path("tmp/image-file").write_text(profile["image"]) | ||||||
| + | + | ||||||
| +    print("#########################\n" * 3) | +    print("#########################\n" * 3) | ||||||
| +    print("\n".join(warnings)) | +    print("\n".join(warnings)) | ||||||
|   | |||||||
| @@ -0,0 +1,286 @@ | |||||||
|  | From be7c703e5078abb5f39b9ad435c47db2f9c1f0ec Mon Sep 17 00:00:00 2001 | ||||||
|  | From: John Crispin <john@phrozen.org> | ||||||
|  | Date: Tue, 4 Jan 2022 05:22:04 +0100 | ||||||
|  | Subject: [PATCH] Revert "gpio-button-hotplug: convert to gpio descriptor | ||||||
|  |  (gpiod_) API" | ||||||
|  |  | ||||||
|  | This reverts commit 6fe4b7aa2b00b4e93871454e6a6fc41eb192c784. | ||||||
|  | --- | ||||||
|  |  .../src/gpio-button-hotplug.c                 | 142 ++++++++++-------- | ||||||
|  |  1 file changed, 79 insertions(+), 63 deletions(-) | ||||||
|  |  | ||||||
|  | diff --git a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c | ||||||
|  | index fcaf7f59de..9575c6245b 100644 | ||||||
|  | --- a/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c | ||||||
|  | +++ b/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c | ||||||
|  | @@ -242,11 +242,11 @@ static int gpio_button_get_value(struct gpio_keys_button_data *bdata) | ||||||
|  |  	int val; | ||||||
|  |   | ||||||
|  |  	if (bdata->can_sleep) | ||||||
|  | -		val = !!gpiod_get_value_cansleep(bdata->gpiod); | ||||||
|  | +		val = !!gpio_get_value_cansleep(bdata->b->gpio); | ||||||
|  |  	else | ||||||
|  | -		val = !!gpiod_get_value(bdata->gpiod); | ||||||
|  | +		val = !!gpio_get_value(bdata->b->gpio); | ||||||
|  |   | ||||||
|  | -	return val; | ||||||
|  | +	return val ^ bdata->b->active_low; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  static void gpio_keys_handle_button(struct gpio_keys_button_data *bdata) | ||||||
|  | @@ -365,6 +365,7 @@ gpio_keys_get_devtree_pdata(struct device *dev) | ||||||
|  |  	struct device_node *node, *pp; | ||||||
|  |  	struct gpio_keys_platform_data *pdata; | ||||||
|  |  	struct gpio_keys_button *button; | ||||||
|  | +	int error; | ||||||
|  |  	int nbuttons; | ||||||
|  |  	int i = 0; | ||||||
|  |   | ||||||
|  | @@ -374,12 +375,14 @@ gpio_keys_get_devtree_pdata(struct device *dev) | ||||||
|  |   | ||||||
|  |  	nbuttons = of_get_child_count(node); | ||||||
|  |  	if (nbuttons == 0) | ||||||
|  | -		return ERR_PTR(-EINVAL); | ||||||
|  | +		return NULL; | ||||||
|  |   | ||||||
|  |  	pdata = devm_kzalloc(dev, sizeof(*pdata) + nbuttons * (sizeof *button), | ||||||
|  |  		GFP_KERNEL); | ||||||
|  | -	if (!pdata) | ||||||
|  | -		return ERR_PTR(-ENOMEM); | ||||||
|  | +	if (!pdata) { | ||||||
|  | +		error = -ENOMEM; | ||||||
|  | +		goto err_out; | ||||||
|  | +	} | ||||||
|  |   | ||||||
|  |  	pdata->buttons = (struct gpio_keys_button *)(pdata + 1); | ||||||
|  |  	pdata->nbuttons = nbuttons; | ||||||
|  | @@ -388,13 +391,37 @@ gpio_keys_get_devtree_pdata(struct device *dev) | ||||||
|  |  	of_property_read_u32(node, "poll-interval", &pdata->poll_interval); | ||||||
|  |   | ||||||
|  |  	for_each_child_of_node(node, pp) { | ||||||
|  | +		enum of_gpio_flags flags; | ||||||
|  | + | ||||||
|  | +		if (!of_find_property(pp, "gpios", NULL)) { | ||||||
|  | +			pdata->nbuttons--; | ||||||
|  | +			dev_warn(dev, "Found button without gpios\n"); | ||||||
|  | +			continue; | ||||||
|  | +		} | ||||||
|  | + | ||||||
|  |  		button = (struct gpio_keys_button *)(&pdata->buttons[i++]); | ||||||
|  |   | ||||||
|  | +		button->irq = irq_of_parse_and_map(pp, 0); | ||||||
|  | + | ||||||
|  | +		button->gpio = of_get_gpio_flags(pp, 0, &flags); | ||||||
|  | +		if (button->gpio < 0) { | ||||||
|  | +			error = button->gpio; | ||||||
|  | +			if (error != -ENOENT) { | ||||||
|  | +				if (error != -EPROBE_DEFER) | ||||||
|  | +					dev_err(dev, | ||||||
|  | +						"Failed to get gpio flags, error: %d\n", | ||||||
|  | +						error); | ||||||
|  | +				return ERR_PTR(error); | ||||||
|  | +			} | ||||||
|  | +		} else { | ||||||
|  | +			button->active_low = !!(flags & OF_GPIO_ACTIVE_LOW); | ||||||
|  | +		} | ||||||
|  | + | ||||||
|  |  		if (of_property_read_u32(pp, "linux,code", &button->code)) { | ||||||
|  | -			dev_err(dev, "Button node '%s' without keycode\n", | ||||||
|  | -				pp->full_name); | ||||||
|  | -			of_node_put(pp); | ||||||
|  | -			return ERR_PTR(-EINVAL); | ||||||
|  | +			dev_err(dev, "Button without keycode: 0x%x\n", | ||||||
|  | +				button->gpio); | ||||||
|  | +			error = -EINVAL; | ||||||
|  | +			goto err_out; | ||||||
|  |  		} | ||||||
|  |   | ||||||
|  |  		button->desc = of_get_property(pp, "label", NULL); | ||||||
|  | @@ -407,12 +434,17 @@ gpio_keys_get_devtree_pdata(struct device *dev) | ||||||
|  |  		if (of_property_read_u32(pp, "debounce-interval", | ||||||
|  |  					&button->debounce_interval)) | ||||||
|  |  			button->debounce_interval = 5; | ||||||
|  | +	} | ||||||
|  |   | ||||||
|  | -		button->irq = irq_of_parse_and_map(pp, 0); | ||||||
|  | -		button->gpio = -ENOENT; /* mark this as device-tree */ | ||||||
|  | +	if (pdata->nbuttons == 0) { | ||||||
|  | +		error = -EINVAL; | ||||||
|  | +		goto err_out; | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  |  	return pdata; | ||||||
|  | + | ||||||
|  | +err_out: | ||||||
|  | +	return ERR_PTR(error); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  static struct of_device_id gpio_keys_of_match[] = { | ||||||
|  | @@ -439,12 +471,11 @@ gpio_keys_get_devtree_pdata(struct device *dev) | ||||||
|  |  static int gpio_keys_button_probe(struct platform_device *pdev, | ||||||
|  |  		struct gpio_keys_button_dev **_bdev, int polled) | ||||||
|  |  { | ||||||
|  | +	struct gpio_keys_platform_data *pdata = pdev->dev.platform_data; | ||||||
|  |  	struct device *dev = &pdev->dev; | ||||||
|  | -	struct gpio_keys_platform_data *pdata = dev_get_platdata(dev); | ||||||
|  |  	struct gpio_keys_button_dev *bdev; | ||||||
|  |  	struct gpio_keys_button *buttons; | ||||||
|  | -	struct device_node *prev = NULL; | ||||||
|  | -	int error = 0; | ||||||
|  | +	int error; | ||||||
|  |  	int i; | ||||||
|  |   | ||||||
|  |  	if (!pdata) { | ||||||
|  | @@ -483,67 +514,46 @@ static int gpio_keys_button_probe(struct platform_device *pdev, | ||||||
|  |  	for (i = 0; i < pdata->nbuttons; i++) { | ||||||
|  |  		struct gpio_keys_button *button = &buttons[i]; | ||||||
|  |  		struct gpio_keys_button_data *bdata = &bdev->data[i]; | ||||||
|  | -		const char *desc = button->desc ? button->desc : DRV_NAME; | ||||||
|  | +		unsigned int gpio = button->gpio; | ||||||
|  |   | ||||||
|  |  		if (button->wakeup) { | ||||||
|  |  			dev_err(dev, "does not support wakeup\n"); | ||||||
|  | -			error = -EINVAL; | ||||||
|  | -			goto out; | ||||||
|  | +			return -EINVAL; | ||||||
|  |  		} | ||||||
|  |   | ||||||
|  |  		bdata->map_entry = button_get_index(button->code); | ||||||
|  |  		if (bdata->map_entry < 0) { | ||||||
|  | -			dev_err(dev, "does not support key code:%u\n", | ||||||
|  | +			dev_warn(dev, "does not support key code:%u\n", | ||||||
|  |  				button->code); | ||||||
|  | -			error = -EINVAL; | ||||||
|  | -			goto out; | ||||||
|  | +			continue; | ||||||
|  |  		} | ||||||
|  |   | ||||||
|  |  		if (!(button->type == 0 || button->type == EV_KEY || | ||||||
|  |  		      button->type == EV_SW)) { | ||||||
|  | -			dev_err(dev, "only supports buttons or switches\n"); | ||||||
|  | -			error = -EINVAL; | ||||||
|  | -			goto out; | ||||||
|  | +			dev_warn(dev, "only supports buttons or switches\n"); | ||||||
|  | +			continue; | ||||||
|  |  		} | ||||||
|  |   | ||||||
|  | -		if (gpio_is_valid(button->gpio)) { | ||||||
|  | -			/* legacy platform data... but is it the lookup table? */ | ||||||
|  | -			bdata->gpiod = devm_gpiod_get_index(dev, desc, i, | ||||||
|  | -							    GPIOD_IN); | ||||||
|  | -			if (IS_ERR(bdata->gpiod)) { | ||||||
|  | -				/* or the legacy (button->gpio is good) way? */ | ||||||
|  | -				error = devm_gpio_request_one(dev, | ||||||
|  | -					button->gpio, GPIOF_IN | ( | ||||||
|  | -					button->active_low ? GPIOF_ACTIVE_LOW : | ||||||
|  | -					0), desc); | ||||||
|  | -				if (error) { | ||||||
|  | -					if (error != -EPROBE_DEFER) { | ||||||
|  | -						dev_err(dev, "unable to claim gpio %d, err=%d\n", | ||||||
|  | -							button->gpio, error); | ||||||
|  | -					} | ||||||
|  | -					goto out; | ||||||
|  | -				} | ||||||
|  | - | ||||||
|  | -				bdata->gpiod = gpio_to_desc(button->gpio); | ||||||
|  | -			} | ||||||
|  | -		} else { | ||||||
|  | -			/* Device-tree */ | ||||||
|  | -			struct device_node *child = | ||||||
|  | -				of_get_next_child(dev->of_node, prev); | ||||||
|  | - | ||||||
|  | -			bdata->gpiod = devm_gpiod_get_from_of_node(dev, | ||||||
|  | -				child, "gpios", 0, GPIOD_IN, desc); | ||||||
|  | - | ||||||
|  | -			prev = child; | ||||||
|  | +		error = devm_gpio_request(dev, gpio, | ||||||
|  | +				     button->desc ? button->desc : DRV_NAME); | ||||||
|  | +		if (error) { | ||||||
|  | +			dev_err(dev, "unable to claim gpio %u, err=%d\n", | ||||||
|  | +				gpio, error); | ||||||
|  | +			return error; | ||||||
|  |  		} | ||||||
|  | +		bdata->gpiod = gpio_to_desc(gpio); | ||||||
|  | +		if (!bdata->gpiod) | ||||||
|  | +			return -EINVAL; | ||||||
|  |   | ||||||
|  | -		if (IS_ERR_OR_NULL(bdata->gpiod)) { | ||||||
|  | -			error = IS_ERR(bdata->gpiod) ? PTR_ERR(bdata->gpiod) : | ||||||
|  | -				-EINVAL; | ||||||
|  | -			goto out; | ||||||
|  | +		error = gpio_direction_input(gpio); | ||||||
|  | +		if (error) { | ||||||
|  | +			dev_err(dev, | ||||||
|  | +				"unable to set direction on gpio %u, err=%d\n", | ||||||
|  | +				gpio, error); | ||||||
|  | +			return error; | ||||||
|  |  		} | ||||||
|  |   | ||||||
|  | -		bdata->can_sleep = gpiod_cansleep(bdata->gpiod); | ||||||
|  | +		bdata->can_sleep = gpio_cansleep(gpio); | ||||||
|  |  		bdata->last_state = -1; /* Unknown state on boot */ | ||||||
|  |   | ||||||
|  |  		if (bdev->polled) { | ||||||
|  | @@ -574,11 +584,8 @@ static int gpio_keys_button_probe(struct platform_device *pdev, | ||||||
|  |  	platform_set_drvdata(pdev, bdev); | ||||||
|  |   | ||||||
|  |  	*_bdev = bdev; | ||||||
|  | -	error = 0; | ||||||
|  |   | ||||||
|  | -out: | ||||||
|  | -	of_node_put(prev); | ||||||
|  | -	return error; | ||||||
|  | +	return 0; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  static int gpio_keys_probe(struct platform_device *pdev) | ||||||
|  | @@ -587,7 +594,9 @@ static int gpio_keys_probe(struct platform_device *pdev) | ||||||
|  |  	struct gpio_keys_button_dev *bdev; | ||||||
|  |  	int ret, i; | ||||||
|  |   | ||||||
|  | + | ||||||
|  |  	ret = gpio_keys_button_probe(pdev, &bdev, 0); | ||||||
|  | + | ||||||
|  |  	if (ret) | ||||||
|  |  		return ret; | ||||||
|  |   | ||||||
|  | @@ -599,8 +608,12 @@ static int gpio_keys_probe(struct platform_device *pdev) | ||||||
|  |   | ||||||
|  |  		INIT_DELAYED_WORK(&bdata->work, gpio_keys_irq_work_func); | ||||||
|  |   | ||||||
|  | +		if (!bdata->gpiod) | ||||||
|  | +			continue; | ||||||
|  | + | ||||||
|  |  		if (!button->irq) { | ||||||
|  | -			bdata->irq = gpiod_to_irq(bdata->gpiod); | ||||||
|  | +			bdata->irq = gpio_to_irq(button->gpio); | ||||||
|  | + | ||||||
|  |  			if (bdata->irq < 0) { | ||||||
|  |  				dev_err(&pdev->dev, "failed to get irq for gpio:%d\n", | ||||||
|  |  					button->gpio); | ||||||
|  | @@ -618,6 +631,7 @@ static int gpio_keys_probe(struct platform_device *pdev) | ||||||
|  |  		ret = devm_request_threaded_irq(&pdev->dev, | ||||||
|  |  			bdata->irq, NULL, button_handle_irq, | ||||||
|  |  			irqflags, dev_name(&pdev->dev), bdata); | ||||||
|  | + | ||||||
|  |  		if (ret < 0) { | ||||||
|  |  			bdata->irq = 0; | ||||||
|  |  			dev_err(&pdev->dev, "failed to request irq:%d for gpio:%d\n", | ||||||
|  | @@ -639,12 +653,14 @@ static int gpio_keys_polled_probe(struct platform_device *pdev) | ||||||
|  |  	int ret; | ||||||
|  |   | ||||||
|  |  	ret = gpio_keys_button_probe(pdev, &bdev, 1); | ||||||
|  | + | ||||||
|  |  	if (ret) | ||||||
|  |  		return ret; | ||||||
|  |   | ||||||
|  |  	INIT_DELAYED_WORK(&bdev->work, gpio_keys_polled_poll); | ||||||
|  |   | ||||||
|  |  	pdata = bdev->pdata; | ||||||
|  | + | ||||||
|  |  	if (pdata->enable) | ||||||
|  |  		pdata->enable(bdev->dev); | ||||||
|  |   | ||||||
|  | --  | ||||||
|  | 2.25.1 | ||||||
|  |  | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| From 687576be91062e5ab25e8ff4e2d990799a34210f Mon Sep 17 00:00:00 2001 | From f42a338de65dc32684d26cca106853eb3e888fde Mon Sep 17 00:00:00 2001 | ||||||
| From: John Crispin <john@phrozen.org> | From: John Crispin <john@phrozen.org> | ||||||
| Date: Thu, 8 Apr 2021 10:46:29 +0200 | Date: Thu, 8 Apr 2021 10:46:29 +0200 | ||||||
| Subject: [PATCH 22/43] Revert "ipq40xx: revert usage of VLAN S-TAG" | Subject: [PATCH 52/83] Revert "ipq40xx: revert usage of VLAN S-TAG" | ||||||
|  |  | ||||||
| This reverts commit cdc8d4b46f0811292fffc6094acd81e854b5f4a5. | This reverts commit cdc8d4b46f0811292fffc6094acd81e854b5f4a5. | ||||||
|  |  | ||||||
| @@ -50,12 +50,12 @@ index af55ee4dd5..9dc38bcfcc 100644 | |||||||
|  		edma_set_ethtool_ops(edma_netdev[i]); |  		edma_set_ethtool_ops(edma_netdev[i]); | ||||||
|   |   | ||||||
| diff --git a/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c b/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c | diff --git a/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c b/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c | ||||||
| index c35ba2799f..9758f013f0 100644 | index ca7f0ca350..8b3ae53bd9 100644 | ||||||
| --- a/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c | --- a/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c | ||||||
| +++ b/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c | +++ b/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c | ||||||
| @@ -1201,7 +1201,11 @@ ar40xx_init_port(struct ar40xx_priv *priv, int port) | @@ -1200,7 +1200,11 @@ ar40xx_init_port(struct ar40xx_priv *priv, int port) | ||||||
|  	ar40xx_rmw(priv, AR40XX_REG_PORT_STATUS(port), |   | ||||||
|  			AR40XX_PORT_AUTO_LINK_EN, 0); |  	ar40xx_write(priv, AR40XX_REG_PORT_STATUS(port), 0); | ||||||
|   |   | ||||||
| -	ar40xx_write(priv, AR40XX_REG_PORT_HEADER(port), 0); | -	ar40xx_write(priv, AR40XX_REG_PORT_HEADER(port), 0); | ||||||
| +	/* CPU port is setting headers to limit output ports */ | +	/* CPU port is setting headers to limit output ports */ | ||||||
| @@ -66,7 +66,7 @@ index c35ba2799f..9758f013f0 100644 | |||||||
|   |   | ||||||
|  	ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), 0); |  	ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), 0); | ||||||
|   |   | ||||||
| @@ -1244,6 +1248,10 @@ ar40xx_init_globals(struct ar40xx_priv *priv) | @@ -1243,6 +1247,10 @@ ar40xx_init_globals(struct ar40xx_priv *priv) | ||||||
|  	t = (AR40XX_PORT0_FC_THRESH_ON_DFLT << 16) | |  	t = (AR40XX_PORT0_FC_THRESH_ON_DFLT << 16) | | ||||||
|  	      AR40XX_PORT0_FC_THRESH_OFF_DFLT; |  	      AR40XX_PORT0_FC_THRESH_OFF_DFLT; | ||||||
|  	ar40xx_write(priv, AR40XX_REG_PORT_FLOWCTRL_THRESH(0), t); |  	ar40xx_write(priv, AR40XX_REG_PORT_FLOWCTRL_THRESH(0), t); | ||||||
| @@ -77,7 +77,7 @@ index c35ba2799f..9758f013f0 100644 | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  static int |  static int | ||||||
| @@ -1531,7 +1539,10 @@ ar40xx_setup_port(struct ar40xx_priv *priv, int port, u32 members) | @@ -1530,7 +1538,10 @@ ar40xx_setup_port(struct ar40xx_priv *priv, int port, u32 members) | ||||||
|  	u32 pvid = priv->vlan_id[priv->pvid[port]]; |  	u32 pvid = priv->vlan_id[priv->pvid[port]]; | ||||||
|   |   | ||||||
|  	if (priv->vlan) { |  	if (priv->vlan) { | ||||||
| @@ -89,7 +89,7 @@ index c35ba2799f..9758f013f0 100644 | |||||||
|   |   | ||||||
|  		ingress = AR40XX_IN_SECURE; |  		ingress = AR40XX_IN_SECURE; | ||||||
|  	} else { |  	} else { | ||||||
| @@ -1543,8 +1554,16 @@ ar40xx_setup_port(struct ar40xx_priv *priv, int port, u32 members) | @@ -1542,8 +1553,16 @@ ar40xx_setup_port(struct ar40xx_priv *priv, int port, u32 members) | ||||||
|  	t |= pvid << AR40XX_PORT_VLAN0_DEF_CVID_S; |  	t |= pvid << AR40XX_PORT_VLAN0_DEF_CVID_S; | ||||||
|  	ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), t); |  	ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), t); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -0,0 +1,148 @@ | |||||||
|  | From a0eb587ea9e4d905e1796c4f0d64fff9cd8a88f3 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: John Crispin <john@phrozen.org> | ||||||
|  | Date: Thu, 14 Oct 2021 15:13:56 +0200 | ||||||
|  | Subject: [PATCH] spwlanpoe | ||||||
|  |  | ||||||
|  | Signed-off-by: John Crispin <john@phrozen.org> | ||||||
|  | --- | ||||||
|  |  package/boot/uboot-envtools/files/ipq40xx           |  1 + | ||||||
|  |  target/linux/ipq40xx/base-files/etc/board.d/01_leds |  1 + | ||||||
|  |  .../linux/ipq40xx/base-files/etc/board.d/02_network |  1 + | ||||||
|  |  .../etc/hotplug.d/firmware/11-ath10k-caldata        |  2 ++ | ||||||
|  |  .../ipq40xx/base-files/lib/upgrade/platform.sh      |  3 ++- | ||||||
|  |  .../boot/dts/qcom-ipq4018-spw2ac1200-lan-poe.dts    |  6 ++++++ | ||||||
|  |  target/linux/ipq40xx/image/generic.mk               | 13 +++++++++++++ | ||||||
|  |  .../patches-5.4/901-arm-boot-add-dts-files.patch    |  3 ++- | ||||||
|  |  8 files changed, 28 insertions(+), 2 deletions(-) | ||||||
|  |  create mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-spw2ac1200-lan-poe.dts | ||||||
|  |  | ||||||
|  | diff --git a/package/boot/uboot-envtools/files/ipq40xx b/package/boot/uboot-envtools/files/ipq40xx | ||||||
|  | index fd7ad69eff..c51b40ab12 100644 | ||||||
|  | --- a/package/boot/uboot-envtools/files/ipq40xx | ||||||
|  | +++ b/package/boot/uboot-envtools/files/ipq40xx | ||||||
|  | @@ -35,6 +35,7 @@ alfa-network,ap120c-ac |\ | ||||||
|  |  devolo,magic-2-wifi-next |\ | ||||||
|  |  edgecore,ecw5211 |\ | ||||||
|  |  edgecore,spw2ac1200 |\ | ||||||
|  | +edgecore,spw2ac1200-lan-poe |\ | ||||||
|  |  glinet,gl-ap1300 |\ | ||||||
|  |  glinet,gl-b1300 |\ | ||||||
|  |  luma,wrtq-329acn |\ | ||||||
|  | diff --git a/target/linux/ipq40xx/base-files/etc/board.d/01_leds b/target/linux/ipq40xx/base-files/etc/board.d/01_leds | ||||||
|  | index d944d72184..5476dd5df6 100755 | ||||||
|  | --- a/target/linux/ipq40xx/base-files/etc/board.d/01_leds | ||||||
|  | +++ b/target/linux/ipq40xx/base-files/etc/board.d/01_leds | ||||||
|  | @@ -72,6 +72,7 @@ qxwlan,e2600ac-c2) | ||||||
|  |  	;; | ||||||
|  |  edgecore,ecw5211 |\ | ||||||
|  |  edgecore,spw2ac1200 |\ | ||||||
|  | +edgecore,spw2ac1200-lan-poe |\ | ||||||
|  |  cig,wf610d |\ | ||||||
|  |  zyxel,nbg6617 |\ | ||||||
|  |  zyxel,wre6606) | ||||||
|  | diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network | ||||||
|  | index e4b009bf93..f533c39179 100755 | ||||||
|  | --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network | ||||||
|  | +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network | ||||||
|  | @@ -15,6 +15,7 @@ ipq40xx_setup_interfaces() | ||||||
|  |  	8dev,habanero-dvk|\ | ||||||
|  |  	8dev,jalapeno|\ | ||||||
|  |  	alfa-network,ap120c-ac|\ | ||||||
|  | +	edgecore,spw2ac1200-lan-poe |\ | ||||||
|  |  	engenius,emr3500|\ | ||||||
|  |  	engenius,ens620ext|\ | ||||||
|  |  	luma,wrtq-329acn|\ | ||||||
|  | diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata | ||||||
|  | index 97dd1b4039..e36821a596 100644 | ||||||
|  | --- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata | ||||||
|  | +++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata | ||||||
|  | @@ -105,6 +105,7 @@ case "$FIRMWARE" in | ||||||
|  |  	compex,wpj428 |\ | ||||||
|  |  	edgecore,ecw5211 |\ | ||||||
|  |  	edgecore,spw2ac1200 |\ | ||||||
|  | +	edgecore,spw2ac1200-lan-poe |\ | ||||||
|  |  	edgecore,oap100 |\ | ||||||
|  |  	engenius,eap1300 |\ | ||||||
|  |  	engenius,eap2200 |\ | ||||||
|  | @@ -226,6 +227,7 @@ case "$FIRMWARE" in | ||||||
|  |  	compex,wpj428 |\ | ||||||
|  |  	edgecore,ecw5211 |\ | ||||||
|  |  	edgecore,spw2ac1200 |\ | ||||||
|  | +	edgecore,spw2ac1200-lan-poe |\ | ||||||
|  |  	edgecore,oap100 |\ | ||||||
|  |  	engenius,eap1300 |\ | ||||||
|  |  	engenius,eap2200 |\ | ||||||
|  | diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh | ||||||
|  | index 806b3edb66..d44a57c62a 100644 | ||||||
|  | --- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh | ||||||
|  | +++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh | ||||||
|  | @@ -90,7 +90,8 @@ platform_do_upgrade() { | ||||||
|  |  		fi | ||||||
|  |  		nand_do_upgrade "$1" | ||||||
|  |  		;; | ||||||
|  | -	edgecore,spw2ac1200) | ||||||
|  | +	edgecore,spw2ac1200|\ | ||||||
|  | +	edgecore,spw2ac1200-lan-poe) | ||||||
|  |  		CI_UBIPART="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')" | ||||||
|  |  		nand_do_upgrade "$1" | ||||||
|  |  		;; | ||||||
|  | diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-spw2ac1200-lan-poe.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-spw2ac1200-lan-poe.dts | ||||||
|  | new file mode 100644 | ||||||
|  | index 0000000000..1c2a2a8621 | ||||||
|  | --- /dev/null | ||||||
|  | +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-spw2ac1200-lan-poe.dts | ||||||
|  | @@ -0,0 +1,6 @@ | ||||||
|  | +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  | + | ||||||
|  | +#include "qcom-ipq4018-spw2ac1200.dts" | ||||||
|  | +/ { | ||||||
|  | +	compatible = "edgecore,spw2ac1200-lan-poe"; | ||||||
|  | +}; | ||||||
|  | diff --git a/target/linux/ipq40xx/image/generic.mk b/target/linux/ipq40xx/image/generic.mk | ||||||
|  | index ae1e2e49cf..7e6118e61c 100644 | ||||||
|  | --- a/target/linux/ipq40xx/image/generic.mk | ||||||
|  | +++ b/target/linux/ipq40xx/image/generic.mk | ||||||
|  | @@ -387,6 +387,19 @@ define Device/edgecore_spw2ac1200 | ||||||
|  |  endef | ||||||
|  |  TARGET_DEVICES += edgecore_spw2ac1200 | ||||||
|  |   | ||||||
|  | +define Device/edgecore_spw2ac1200-lan-poe | ||||||
|  | +	$(call Device/FitImage) | ||||||
|  | +	$(call Device/UbiFit) | ||||||
|  | +	DEVICE_VENDOR := Edgecore | ||||||
|  | +	DEVICE_MODEL := SPW2AC1200 | ||||||
|  | +	SOC := qcom-ipq4018 | ||||||
|  | +	BLOCKSIZE := 128k | ||||||
|  | +	PAGESIZE := 2048 | ||||||
|  | +	DEVICE_DTS_CONFIG := config@ap.dk01.1-c2 | ||||||
|  | +	DEVICE_PACKAGES := kmod-tpm-i2c-atmel kmod-usb-acm uboot-envtools kmod-usb-net kmod-usb-net-cdc-qmi uqmi | ||||||
|  | +endef | ||||||
|  | +TARGET_DEVICES += edgecore_spw2ac1200-lan-poe | ||||||
|  | + | ||||||
|  |  define Device/edgecore_oap100 | ||||||
|  |  	$(call Device/FitImage) | ||||||
|  |  	$(call Device/UbiFit) | ||||||
|  | diff --git a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch | ||||||
|  | index 826e17b0e9..c4ecf62313 100644 | ||||||
|  | --- a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch | ||||||
|  | +++ b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch | ||||||
|  | @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | ||||||
|  |   | ||||||
|  |  --- a/arch/arm/boot/dts/Makefile | ||||||
|  |  +++ b/arch/arm/boot/dts/Makefile | ||||||
|  | -@@ -837,11 +837,63 @@ dtb-$(CONFIG_ARCH_QCOM) += \ | ||||||
|  | +@@ -837,11 +837,64 @@ dtb-$(CONFIG_ARCH_QCOM) += \ | ||||||
|  |   	qcom-apq8074-dragonboard.dtb \ | ||||||
|  |   	qcom-apq8084-ifc6540.dtb \ | ||||||
|  |   	qcom-apq8084-mtp.dtb \ | ||||||
|  | @@ -23,6 +23,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | ||||||
|  |  +	qcom-ipq4018-eap1300.dtb \ | ||||||
|  |  +	qcom-ipq4018-ecw5211.dtb \ | ||||||
|  |  +	qcom-ipq4018-spw2ac1200.dtb \ | ||||||
|  | ++	qcom-ipq4018-spw2ac1200-lan-poe.dtb \ | ||||||
|  |  +	qcom-ipq4018-emd1.dtb \ | ||||||
|  |  +	qcom-ipq4018-emr3500.dtb \ | ||||||
|  |  +	qcom-ipq4018-ens620ext.dtb \ | ||||||
|  | --  | ||||||
|  | 2.25.1 | ||||||
|  |  | ||||||
| @@ -1,135 +1,20 @@ | |||||||
| From c1670dcdda1ab0f5310f76e5ae6e710bd16892c7 Mon Sep 17 00:00:00 2001 | From 1749748819caa03e249e8a5df1311498550cbd3b Mon Sep 17 00:00:00 2001 | ||||||
| From: John Crispin <john@phrozen.org> | From: John Crispin <john@phrozen.org> | ||||||
| Date: Sat, 18 Jul 2020 08:53:44 +0200 | Date: Sat, 18 Jul 2020 08:53:44 +0200 | ||||||
| Subject: [PATCH 01/38] ipq807x: add the Qualcomm AX target support | Subject: [PATCH 68/83] ipq807x: add the Qualcomm AX target support | ||||||
|  |  | ||||||
| Signed-off-by: John Crispin <john@phrozen.org> | Signed-off-by: John Crispin <john@phrozen.org> | ||||||
| --- | --- | ||||||
|  config/Config-kernel.in                       |     9 + |  config/Config-kernel.in                   |  9 ++++++ | ||||||
|  include/image.mk                              |     6 +- |  include/image.mk                          |  6 +++- | ||||||
|  include/kernel-version.mk                 |  2 +- |  include/kernel-version.mk                 |  2 +- | ||||||
|  package/boot/uboot-envtools/files/ipq807x     |    37 + |  package/boot/uboot-envtools/files/ipq807x | 37 +++++++++++++++++++++++ | ||||||
|  .../etc/hotplug.d/firmware/11-ath10k-caldata  |     5 + |  toolchain/kernel-headers/Makefile         |  8 +++++ | ||||||
|  target/linux/ipq807x/109-logspam.patch        |    24 + |  5 files changed, 60 insertions(+), 2 deletions(-) | ||||||
|  target/linux/ipq807x/Makefile                 |    22 + |  | ||||||
|  .../ipq807x/base-files/etc/board.d/01_leds    |    38 + |  | ||||||
|  .../ipq807x/base-files/etc/board.d/02_network |    81 + |  | ||||||
|  .../ipq807x/base-files/etc/board.d/03_wifi    |    17 + |  | ||||||
|  .../etc/hotplug.d/firmware/10-ath11k-caldata  |   111 + |  | ||||||
|  .../etc/hotplug.d/firmware/11-ath10k-caldata  |    16 + |  | ||||||
|  .../ipq807x/base-files/etc/hotplug.d/net/macs |     3 + |  | ||||||
|  .../ipq807x/base-files/etc/init.d/aq_phy      |    21 + |  | ||||||
|  .../ipq807x/base-files/etc/init.d/bootcount   |    12 + |  | ||||||
|  .../linux/ipq807x/base-files/etc/init.d/wdt   |    14 + |  | ||||||
|  ...G4_v5.4.B-AQR_CIG_WIFI_ID44715_VER1673.cld |   Bin 0 -> 391170 bytes |  | ||||||
|  .../base-files/lib/upgrade/platform.sh        |    73 + |  | ||||||
|  target/linux/ipq807x/config-4.4               |   828 + |  | ||||||
|  .../arm/boot/dts/qcom-ipq6018-cig-wf188.dts   |    18 + |  | ||||||
|  .../arm/boot/dts/qcom-ipq6018-cig-wf188n.dts  |    18 + |  | ||||||
|  .../boot/dts/qcom-ipq6018-edgecore-eap101.dts |    18 + |  | ||||||
|  .../boot/dts/qcom-ipq6018-miwifi-ax1800.dts   |    18 + |  | ||||||
|  .../boot/dts/qcom-ipq6018-wallys-dr6018.dts   |    18 + |  | ||||||
|  .../arch/arm/boot/dts/qcom-ipq807x-eap102.dts |    26 + |  | ||||||
|  .../arch/arm/boot/dts/qcom-ipq807x-eap106.dts |    26 + |  | ||||||
|  .../arch/arm/boot/dts/qcom-ipq807x-ex227.dts  |    26 + |  | ||||||
|  .../arch/arm/boot/dts/qcom-ipq807x-ex447.dts  |    26 + |  | ||||||
|  .../boot/dts/qcom-ipq807x-sercomm-wallaby.dts |    26 + |  | ||||||
|  .../arch/arm/boot/dts/qcom-ipq807x-wf194c.dts |    26 + |  | ||||||
|  .../arm/boot/dts/qcom-ipq807x-wf194c4.dts     |    26 + |  | ||||||
|  .../dts/qcom/qcom-ipq6018-miwifi-ax1800.dts   |   419 + |  | ||||||
|  .../dts/qcom/qcom-ipq6018-wallys-dr6018.dts   |   441 + |  | ||||||
|  .../boot/dts/qcom/qcom-ipq807x-eap102.dts     |   918 + |  | ||||||
|  .../boot/dts/qcom/qcom-ipq807x-wf194c4.dts    |   942 + |  | ||||||
|  target/linux/ipq807x/image/Makefile           |    26 + |  | ||||||
|  target/linux/ipq807x/image/ipq50xx.mk         |    10 + |  | ||||||
|  target/linux/ipq807x/image/ipq60xx.mk         |    56 + |  | ||||||
|  target/linux/ipq807x/image/ipq807x.mk         |    90 + |  | ||||||
|  target/linux/ipq807x/ipq50xx/config-default   |    84 + |  | ||||||
|  target/linux/ipq807x/ipq50xx/config-lowmem    |    73 + |  | ||||||
|  target/linux/ipq807x/ipq50xx/target.mk        |    10 + |  | ||||||
|  target/linux/ipq807x/ipq60xx/config-default   |   122 + |  | ||||||
|  .../linux/ipq807x/ipq60xx/profiles/default.mk |     9 + |  | ||||||
|  target/linux/ipq807x/ipq60xx/target.mk        |     8 + |  | ||||||
|  target/linux/ipq807x/ipq807x/config-default   |    78 + |  | ||||||
|  .../linux/ipq807x/ipq807x/profiles/default.mk |     9 + |  | ||||||
|  target/linux/ipq807x/ipq807x/target.mk        |     7 + |  | ||||||
|  target/linux/ipq807x/modules.mk               |    61 + |  | ||||||
|  .../linux/ipq807x/patches/100-qrtr-ns.patch   |   976 + |  | ||||||
|  .../linux/ipq807x/patches/101-squashfs.patch  |    16 + |  | ||||||
|  .../linux/ipq807x/patches/102-cig-wf188.patch |   869 + |  | ||||||
|  .../ipq807x/patches/103-sercomm-wallaby.patch |   816 + |  | ||||||
|  target/linux/ipq807x/patches/104-wf194c.patch |   816 + |  | ||||||
|  .../patches/105-fix-dtc-gcc10-build.patch     |    11 + |  | ||||||
|  target/linux/ipq807x/patches/106-eap101.patch |   993 + |  | ||||||
|  .../linux/ipq807x/patches/108-log-spam.patch  |    37 + |  | ||||||
|  target/linux/ipq807x/patches/109-tplink.patch |  1518 + |  | ||||||
|  .../ipq807x/patches/110-add-esmt-nand.patch   |    37 + |  | ||||||
|  target/linux/ipq807x/patches/111-eap106.patch |   765 + |  | ||||||
|  target/linux/ipq807x/patches/112-pstore.patch |   147 + |  | ||||||
|  .../ipq807x/patches/200-bpf_backport.patch    | 44780 ++++++++++++++++ |  | ||||||
|  toolchain/kernel-headers/Makefile             |     8 + |  | ||||||
|  63 files changed, 56741 insertions(+), 2 deletions(-) |  | ||||||
|  create mode 100644 package/boot/uboot-envtools/files/ipq807x |  create mode 100644 package/boot/uboot-envtools/files/ipq807x | ||||||
|  create mode 100644 target/linux/ipq807x/109-logspam.patch |  | ||||||
|  create mode 100644 target/linux/ipq807x/Makefile |  | ||||||
|  create mode 100755 target/linux/ipq807x/base-files/etc/board.d/01_leds |  | ||||||
|  create mode 100755 target/linux/ipq807x/base-files/etc/board.d/02_network |  | ||||||
|  create mode 100755 target/linux/ipq807x/base-files/etc/board.d/03_wifi |  | ||||||
|  create mode 100755 target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata |  | ||||||
|  create mode 100644 target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata |  | ||||||
|  create mode 100644 target/linux/ipq807x/base-files/etc/hotplug.d/net/macs |  | ||||||
|  create mode 100755 target/linux/ipq807x/base-files/etc/init.d/aq_phy |  | ||||||
|  create mode 100755 target/linux/ipq807x/base-files/etc/init.d/bootcount |  | ||||||
|  create mode 100755 target/linux/ipq807x/base-files/etc/init.d/wdt |  | ||||||
|  create mode 100644 target/linux/ipq807x/base-files/lib/firmware/AQR-G4_v5.4.B-AQR_CIG_WIFI_ID44715_VER1673.cld |  | ||||||
|  create mode 100755 target/linux/ipq807x/base-files/lib/upgrade/platform.sh |  | ||||||
|  create mode 100644 target/linux/ipq807x/config-4.4 |  | ||||||
|  create mode 100644 target/linux/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-cig-wf188.dts |  | ||||||
|  create mode 100644 target/linux/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-cig-wf188n.dts |  | ||||||
|  create mode 100644 target/linux/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-edgecore-eap101.dts |  | ||||||
|  create mode 100644 target/linux/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-miwifi-ax1800.dts |  | ||||||
|  create mode 100644 target/linux/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-wallys-dr6018.dts |  | ||||||
|  create mode 100644 target/linux/ipq807x/files/arch/arm/boot/dts/qcom-ipq807x-eap102.dts |  | ||||||
|  create mode 100644 target/linux/ipq807x/files/arch/arm/boot/dts/qcom-ipq807x-eap106.dts |  | ||||||
|  create mode 100644 target/linux/ipq807x/files/arch/arm/boot/dts/qcom-ipq807x-ex227.dts |  | ||||||
|  create mode 100644 target/linux/ipq807x/files/arch/arm/boot/dts/qcom-ipq807x-ex447.dts |  | ||||||
|  create mode 100644 target/linux/ipq807x/files/arch/arm/boot/dts/qcom-ipq807x-sercomm-wallaby.dts |  | ||||||
|  create mode 100644 target/linux/ipq807x/files/arch/arm/boot/dts/qcom-ipq807x-wf194c.dts |  | ||||||
|  create mode 100644 target/linux/ipq807x/files/arch/arm/boot/dts/qcom-ipq807x-wf194c4.dts |  | ||||||
|  create mode 100755 target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-miwifi-ax1800.dts |  | ||||||
|  create mode 100755 target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-wallys-dr6018.dts |  | ||||||
|  create mode 100755 target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-eap102.dts |  | ||||||
|  create mode 100644 target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-wf194c4.dts |  | ||||||
|  create mode 100644 target/linux/ipq807x/image/Makefile |  | ||||||
|  create mode 100644 target/linux/ipq807x/image/ipq50xx.mk |  | ||||||
|  create mode 100644 target/linux/ipq807x/image/ipq60xx.mk |  | ||||||
|  create mode 100644 target/linux/ipq807x/image/ipq807x.mk |  | ||||||
|  create mode 100644 target/linux/ipq807x/ipq50xx/config-default |  | ||||||
|  create mode 100644 target/linux/ipq807x/ipq50xx/config-lowmem |  | ||||||
|  create mode 100644 target/linux/ipq807x/ipq50xx/target.mk |  | ||||||
|  create mode 100644 target/linux/ipq807x/ipq60xx/config-default |  | ||||||
|  create mode 100644 target/linux/ipq807x/ipq60xx/profiles/default.mk |  | ||||||
|  create mode 100644 target/linux/ipq807x/ipq60xx/target.mk |  | ||||||
|  create mode 100644 target/linux/ipq807x/ipq807x/config-default |  | ||||||
|  create mode 100644 target/linux/ipq807x/ipq807x/profiles/default.mk |  | ||||||
|  create mode 100644 target/linux/ipq807x/ipq807x/target.mk |  | ||||||
|  create mode 100644 target/linux/ipq807x/modules.mk |  | ||||||
|  create mode 100644 target/linux/ipq807x/patches/100-qrtr-ns.patch |  | ||||||
|  create mode 100644 target/linux/ipq807x/patches/101-squashfs.patch |  | ||||||
|  create mode 100644 target/linux/ipq807x/patches/102-cig-wf188.patch |  | ||||||
|  create mode 100644 target/linux/ipq807x/patches/103-sercomm-wallaby.patch |  | ||||||
|  create mode 100644 target/linux/ipq807x/patches/104-wf194c.patch |  | ||||||
|  create mode 100644 target/linux/ipq807x/patches/105-fix-dtc-gcc10-build.patch |  | ||||||
|  create mode 100644 target/linux/ipq807x/patches/106-eap101.patch |  | ||||||
|  create mode 100644 target/linux/ipq807x/patches/108-log-spam.patch |  | ||||||
|  create mode 100644 target/linux/ipq807x/patches/109-tplink.patch |  | ||||||
|  create mode 100644 target/linux/ipq807x/patches/110-add-esmt-nand.patch |  | ||||||
|  create mode 100644 target/linux/ipq807x/patches/111-eap106.patch |  | ||||||
|  create mode 100644 target/linux/ipq807x/patches/112-pstore.patch |  | ||||||
|  create mode 100644 target/linux/ipq807x/patches/200-bpf_backport.patch |  | ||||||
|  |  | ||||||
| diff --git a/config/Config-kernel.in b/config/Config-kernel.in | diff --git a/config/Config-kernel.in b/config/Config-kernel.in | ||||||
| index f71114b5da..4a85d83118 100644 | index d4648a5064..2d5c9f1437 100644 | ||||||
| --- a/config/Config-kernel.in | --- a/config/Config-kernel.in | ||||||
| +++ b/config/Config-kernel.in | +++ b/config/Config-kernel.in | ||||||
| @@ -2,6 +2,15 @@ | @@ -2,6 +2,15 @@ | ||||||
| @@ -173,17 +58,17 @@ index 6fc02a3f6b..92b23321b1 100644 | |||||||
|  	$(LINUX_DIR)/scripts/dtc/dtc -O dtb \ |  	$(LINUX_DIR)/scripts/dtc/dtc -O dtb \ | ||||||
|  		-i$(dir $(1)) $(DTC_FLAGS) $(4) \ |  		-i$(dir $(1)) $(DTC_FLAGS) $(4) \ | ||||||
| diff --git a/include/kernel-version.mk b/include/kernel-version.mk | diff --git a/include/kernel-version.mk b/include/kernel-version.mk | ||||||
| index 3c109c13c8..dff01895be 100644 | index c7aba61cd7..efecf2f919 100644 | ||||||
| --- a/include/kernel-version.mk | --- a/include/kernel-version.mk | ||||||
| +++ b/include/kernel-version.mk | +++ b/include/kernel-version.mk | ||||||
| @@ -11,7 +11,7 @@ LINUX_VERSION-4.14 = .193 | @@ -11,7 +11,7 @@ LINUX_VERSION-4.14 = .193 | ||||||
|  LINUX_VERSION-5.4 = .142 |  LINUX_VERSION-5.4 = .158 | ||||||
|  LINUX_VERSION-5.10 = .27 |  LINUX_VERSION-5.10 = .27 | ||||||
|   |   | ||||||
| -LINUX_KERNEL_HASH-4.4.60 = 2cd8df6f1ac6a5329c5a286ec9b5956215977221a1b731597ed169fff74a9659 | -LINUX_KERNEL_HASH-4.4.60 = 2cd8df6f1ac6a5329c5a286ec9b5956215977221a1b731597ed169fff74a9659 | ||||||
| +LINUX_KERNEL_HASH-4.4.60 = e7f2f47acf17497d6ffd713eda65c025b3df0bce09faa8c04712bf1b3cfc9fdb | +LINUX_KERNEL_HASH-4.4.60 = e7f2f47acf17497d6ffd713eda65c025b3df0bce09faa8c04712bf1b3cfc9fdb | ||||||
|  LINUX_KERNEL_HASH-4.14.193 = 0b0fb41d4430e1a42738b341cbfd2f41951aa5cd02acabbd53f076119c8b9f03 |  LINUX_KERNEL_HASH-4.14.193 = 0b0fb41d4430e1a42738b341cbfd2f41951aa5cd02acabbd53f076119c8b9f03 | ||||||
|  LINUX_KERNEL_HASH-5.4.142 = 99785728968564ba27c7e552d024b560072dcbc885540912eabb5c021e231451 |  LINUX_KERNEL_HASH-5.4.158 = 6e018fecdc8fc24553756e582d83b82d65b10a6b03ef36262a24911f839b8d59 | ||||||
|  LINUX_KERNEL_HASH-5.10.27 = d99dc9662951299c53a0a8d8c8d0a72a16ff861d20e927c0f9b14f63282d69d9 |  LINUX_KERNEL_HASH-5.10.27 = d99dc9662951299c53a0a8d8c8d0a72a16ff861d20e927c0f9b14f63282d69d9 | ||||||
| diff --git a/package/boot/uboot-envtools/files/ipq807x b/package/boot/uboot-envtools/files/ipq807x | diff --git a/package/boot/uboot-envtools/files/ipq807x b/package/boot/uboot-envtools/files/ipq807x | ||||||
| new file mode 100644 | new file mode 100644 | ||||||
|   | |||||||
| @@ -11,39 +11,6 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  .../linux/ramips/dts/mt7628an_tplink_8m-split-uboot.dtsi   | 7 ++++++- |  .../linux/ramips/dts/mt7628an_tplink_8m-split-uboot.dtsi   | 7 ++++++- | ||||||
|  3 files changed, 13 insertions(+), 4 deletions(-) |  3 files changed, 13 insertions(+), 4 deletions(-) | ||||||
|  |  | ||||||
| diff --git a/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts b/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts |  | ||||||
| index 830c3d30b8..71c6381f86 100644 |  | ||||||
| --- a/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts |  | ||||||
| +++ b/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts |  | ||||||
| @@ -86,7 +86,12 @@ |  | ||||||
|  			partition@70000 { |  | ||||||
|  				compatible = "denx,uimage"; |  | ||||||
|  				label = "firmware"; |  | ||||||
| -				reg = <0x070000 0xf50000>; |  | ||||||
| +				reg = <0x070000 0xf40000>; |  | ||||||
| +			}; |  | ||||||
| + |  | ||||||
| +			partition@fb0000 { |  | ||||||
| +				label = "certificates"; |  | ||||||
| +				reg = <0xfb0000 0x10000>; |  | ||||||
|  			}; |  | ||||||
|   |  | ||||||
|  			partition@fc0000 { |  | ||||||
| diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-xx8300.dtsi b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-xx8300.dtsi |  | ||||||
| index 8f971e505c..0f1f083a5b 100644 |  | ||||||
| --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-xx8300.dtsi |  | ||||||
| +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-xx8300.dtsi |  | ||||||
| @@ -229,9 +229,8 @@ |  | ||||||
|  			}; |  | ||||||
|   |  | ||||||
|  			partition@b880000 { |  | ||||||
| -				label = "syscfg"; |  | ||||||
| +				label = "certificates"; |  | ||||||
|  				reg = <0xb880000 0x4680000>; |  | ||||||
| -				read-only; |  | ||||||
|  			}; |  | ||||||
|  		}; |  | ||||||
|  	}; |  | ||||||
| diff --git a/target/linux/ramips/dts/mt7628an_tplink_8m-split-uboot.dtsi b/target/linux/ramips/dts/mt7628an_tplink_8m-split-uboot.dtsi | diff --git a/target/linux/ramips/dts/mt7628an_tplink_8m-split-uboot.dtsi b/target/linux/ramips/dts/mt7628an_tplink_8m-split-uboot.dtsi | ||||||
| index b6ce7b1f56..471be72001 100644 | index b6ce7b1f56..471be72001 100644 | ||||||
| --- a/target/linux/ramips/dts/mt7628an_tplink_8m-split-uboot.dtsi | --- a/target/linux/ramips/dts/mt7628an_tplink_8m-split-uboot.dtsi | ||||||
|   | |||||||
| @@ -1,30 +0,0 @@ | |||||||
| From ed5a8958378d84bba92a70f2a56a962be73c4b3b Mon Sep 17 00:00:00 2001 |  | ||||||
| From: John Crispin <john@phrozen.org> |  | ||||||
| Date: Fri, 23 Apr 2021 16:16:31 +0200 |  | ||||||
| Subject: [PATCH 30/43] ath10k-ct: update the driver |  | ||||||
|  |  | ||||||
| Signed-off-by: John Crispin <john@phrozen.org> |  | ||||||
| --- |  | ||||||
|  package/kernel/ath10k-ct/Makefile | 6 +++--- |  | ||||||
|  1 file changed, 3 insertions(+), 3 deletions(-) |  | ||||||
|  |  | ||||||
| diff --git a/package/kernel/ath10k-ct/Makefile b/package/kernel/ath10k-ct/Makefile |  | ||||||
| index 5681c5c2cd..24e0702e2c 100644 |  | ||||||
| --- a/package/kernel/ath10k-ct/Makefile |  | ||||||
| +++ b/package/kernel/ath10k-ct/Makefile |  | ||||||
| @@ -8,9 +8,9 @@ PKG_LICENSE_FILES:= |  | ||||||
|   |  | ||||||
|  PKG_SOURCE_URL:=https://github.com/greearb/ath10k-ct.git |  | ||||||
|  PKG_SOURCE_PROTO:=git |  | ||||||
| -PKG_SOURCE_DATE:=2021-06-03 |  | ||||||
| -PKG_SOURCE_VERSION:=b44cd7b2e7b0df5995ece18f358d4dfc40834ba1 |  | ||||||
| -PKG_MIRROR_HASH:=59f961ad425eb1a48fa9c391a325cc0f23845daec9d12673445d3077f9756cf0 |  | ||||||
| +PKG_SOURCE_DATE:=2021-04-23 |  | ||||||
| +PKG_SOURCE_VERSION:=8eca56d1514042b4af34004e0bbf69e40351d499 |  | ||||||
| +PKG_MIRROR_HASH:=4ce22470b0cd15cc3cb04478678407e976c48010baab517fa1ac37685b791d95 |  | ||||||
|   |  | ||||||
|  # Build the 5.10 ath10k-ct driver version. |  | ||||||
|  # Probably this should match as closely as |  | ||||||
| --  |  | ||||||
| 2.25.1 |  | ||||||
|  |  | ||||||
| @@ -1,60 +0,0 @@ | |||||||
| From 7d1503f1fb878bf27aa1bfa15d81394eaf8888d0 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: John Crispin <john@phrozen.org> |  | ||||||
| Date: Mon, 13 Sep 2021 13:42:00 +0200 |  | ||||||
| Subject: [PATCH] mac80211: fix builds on ath79 targets |  | ||||||
|  |  | ||||||
| Signed-off-by: John Crispin <john@phrozen.org> |  | ||||||
| --- |  | ||||||
|  .../100-backport_of_get_mac_address.patch     | 40 +++++++++++++++++++ |  | ||||||
|  1 file changed, 40 insertions(+) |  | ||||||
|  create mode 100644 package/kernel/mac80211/patches/build/100-backport_of_get_mac_address.patch |  | ||||||
|  |  | ||||||
| diff --git a/package/kernel/mac80211/patches/build/100-backport_of_get_mac_address.patch b/package/kernel/mac80211/patches/build/100-backport_of_get_mac_address.patch |  | ||||||
| new file mode 100644 |  | ||||||
| index 0000000000..79c2343522 |  | ||||||
| --- /dev/null |  | ||||||
| +++ b/package/kernel/mac80211/patches/build/100-backport_of_get_mac_address.patch |  | ||||||
| @@ -0,0 +1,40 @@ |  | ||||||
| +--- a/backport-include/linux/of_net.h |  | ||||||
| ++++ b/backport-include/linux/of_net.h |  | ||||||
| +@@ -2,6 +2,7 @@ |  | ||||||
| + #define _BP_OF_NET_H |  | ||||||
| + #include_next <linux/of_net.h> |  | ||||||
| + #include <linux/version.h> |  | ||||||
| ++#include <linux/etherdevice.h> |  | ||||||
| +  |  | ||||||
| + #ifndef CONFIG_OF |  | ||||||
| + #if LINUX_VERSION_IS_LESS(3,10,0) |  | ||||||
| +@@ -12,18 +13,23 @@ static inline const void *of_get_mac_add |  | ||||||
| + #endif |  | ||||||
| + #endif |  | ||||||
| +  |  | ||||||
| +-/* The behavior of of_get_mac_address() changed in kernel 5.2, it now |  | ||||||
| +- * returns an error code and not NULL in case of an error. |  | ||||||
| ++/* The behavior of of_get_mac_address() changed in kernel 5.15, it now |  | ||||||
| ++ * accepts an argument with the destination buffer to copy the address to |  | ||||||
| +  */ |  | ||||||
| +-#if LINUX_VERSION_IS_LESS(5,2,0) |  | ||||||
| +-static inline const void *backport_of_get_mac_address(struct device_node *np) |  | ||||||
| ++#if LINUX_VERSION_IS_LESS(5,15,0) |  | ||||||
| ++static inline int backport_of_get_mac_address(struct device_node *np, u8 *addr) |  | ||||||
| + { |  | ||||||
| + 	const void *mac = of_get_mac_address(np); |  | ||||||
| +  |  | ||||||
| ++	if (IS_ERR(mac)) |  | ||||||
| ++		return PTR_ERR(mac); |  | ||||||
| ++ |  | ||||||
| + 	if (!mac) |  | ||||||
| +-		return ERR_PTR(-ENODEV); |  | ||||||
| ++		return -ENODEV; |  | ||||||
| ++ |  | ||||||
| ++	memcpy(addr, mac, ETH_ALEN); |  | ||||||
| +  |  | ||||||
| +-	return mac; |  | ||||||
| ++	return 0; |  | ||||||
| + } |  | ||||||
| + #define of_get_mac_address LINUX_BACKPORT(of_get_mac_address) |  | ||||||
| + #endif /* < 5.2 */ |  | ||||||
| --  |  | ||||||
| 2.25.1 |  | ||||||
|  |  | ||||||
| @@ -1,91 +0,0 @@ | |||||||
| From bbd31470429134c23f593a49c02d5413dcba352f Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Mark Mentovai <mark@moxienet.com> |  | ||||||
| Date: Tue, 23 Nov 2021 12:28:55 -0500 |  | ||||||
| Subject: [PATCH] hostapd: allow hostapd under ujail to communicate with |  | ||||||
|  hostapd_cli |  | ||||||
|  |  | ||||||
| When procd-ujail is available, 1f785383875a runs hostapd as user |  | ||||||
| "network", with only limited additional capabilities (CAP_NET_ADMIN and |  | ||||||
| CAP_NET_RAW). |  | ||||||
|  |  | ||||||
| hostapd_cli (CONFIG_PACKAGE_hostapd-utils) communicates with hostapd |  | ||||||
| over a named UNIX-domain socket. hostapd_cli is responsible for creating |  | ||||||
| this socket at /tmp/wpa_ctrl_$pid_$counter. Since it typically runs as |  | ||||||
| root, this endpoint is normally created with uid root, gid root, mode |  | ||||||
| 0755. As a result, hostapd running as uid network is able to receive |  | ||||||
| control messages sent through this interface, but is not able to respond |  | ||||||
| to them. If debug-level logging is enabled (CONFIG_WPA_MSG_MIN_PRIORITY |  | ||||||
| <= 2 at build, and log_level <= 2 in /etc/config/wireless wifi-device), |  | ||||||
| this message will appear from hostapd: |  | ||||||
|  |  | ||||||
| CTRL: sendto failed: Permission denied |  | ||||||
|  |  | ||||||
| As a fix, hostapd_cli should create the socket node in the filesystem |  | ||||||
| with uid network, gid network, mode 0770. This borrows the presently |  | ||||||
| Android-only strategy already in hostapd intended to solve the same |  | ||||||
| problem on Android. |  | ||||||
|  |  | ||||||
| If procd-ujail is not available and hostapd falls back to running as |  | ||||||
| root, it will still be able to read from and write to the socket even if |  | ||||||
| the node in the filesystem has been restricted to the network user and |  | ||||||
| group. This matches the logic in |  | ||||||
| package/network/services/hostapd/files/wpad.init, which sets the uid and |  | ||||||
| gid of /var/run/hostapd to network regardless of whether procd-ujail is |  | ||||||
| available. |  | ||||||
|  |  | ||||||
| As it appears that the "network" user and group are statically allocated |  | ||||||
| uid 101 and gid 101, respectively, per |  | ||||||
| package/base-files/files/etc/passwd and USERID in |  | ||||||
| package/network/services/hostapd/Makefile, this patch also uses a |  | ||||||
| constant 101 for the uid and gid. |  | ||||||
|  |  | ||||||
| Signed-off-by: Mark Mentovai <mark@moxienet.com> |  | ||||||
| [refreshed patch] |  | ||||||
| Signed-off-by: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| --- |  | ||||||
|  .../610-hostapd_cli_ujail_permission.patch    | 33 +++++++++++++++++++ |  | ||||||
|  1 file changed, 33 insertions(+) |  | ||||||
|  create mode 100644 package/network/services/hostapd/patches/610-hostapd_cli_ujail_permission.patch |  | ||||||
|  |  | ||||||
| diff --git a/package/network/services/hostapd/patches/610-hostapd_cli_ujail_permission.patch b/package/network/services/hostapd/patches/610-hostapd_cli_ujail_permission.patch |  | ||||||
| new file mode 100644 |  | ||||||
| index 0000000000..a03fcc9f92 |  | ||||||
| --- /dev/null |  | ||||||
| +++ b/package/network/services/hostapd/patches/610-hostapd_cli_ujail_permission.patch |  | ||||||
| @@ -0,0 +1,33 @@ |  | ||||||
| +--- a/src/common/wpa_ctrl.c |  | ||||||
| ++++ b/src/common/wpa_ctrl.c |  | ||||||
| +@@ -135,7 +135,7 @@ try_again: |  | ||||||
| + 		return NULL; |  | ||||||
| + 	} |  | ||||||
| + 	tries++; |  | ||||||
| +-#ifdef ANDROID |  | ||||||
| ++ |  | ||||||
| + 	/* Set client socket file permissions so that bind() creates the client |  | ||||||
| + 	 * socket with these permissions and there is no need to try to change |  | ||||||
| + 	 * them with chmod() after bind() which would have potential issues with |  | ||||||
| +@@ -147,7 +147,7 @@ try_again: |  | ||||||
| + 	 * operations to allow the response to go through. Those are using the |  | ||||||
| + 	 * no-deference-symlinks version to avoid races. */ |  | ||||||
| + 	fchmod(ctrl->s, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); |  | ||||||
| +-#endif /* ANDROID */ |  | ||||||
| ++ |  | ||||||
| + 	if (bind(ctrl->s, (struct sockaddr *) &ctrl->local, |  | ||||||
| + 		    sizeof(ctrl->local)) < 0) { |  | ||||||
| + 		if (errno == EADDRINUSE && tries < 2) { |  | ||||||
| +@@ -165,7 +165,11 @@ try_again: |  | ||||||
| + 		return NULL; |  | ||||||
| + 	} |  | ||||||
| +  |  | ||||||
| +-#ifdef ANDROID |  | ||||||
| ++#ifndef ANDROID |  | ||||||
| ++	/* Set group even if we do not have privileges to change owner */ |  | ||||||
| ++	lchown(ctrl->local.sun_path, -1, 101); |  | ||||||
| ++	lchown(ctrl->local.sun_path, 101, 101); |  | ||||||
| ++#else |  | ||||||
| + 	/* Set group even if we do not have privileges to change owner */ |  | ||||||
| + 	lchown(ctrl->local.sun_path, -1, AID_WIFI); |  | ||||||
| + 	lchown(ctrl->local.sun_path, AID_SYSTEM, AID_WIFI); |  | ||||||
| --  |  | ||||||
| 2.25.1 |  | ||||||
|  |  | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| From 07b199d0759992a17a2ef42b75776635c7e57d21 Mon Sep 17 00:00:00 2001 | From d692bfd33a8169b47dcf200fcfd238cdbc4a4084 Mon Sep 17 00:00:00 2001 | ||||||
| From: John Crispin <john@phrozen.org> | From: John Crispin <john@phrozen.org> | ||||||
| Date: Sun, 2 Jan 2022 09:56:17 +0100 | Date: Sun, 2 Jan 2022 09:56:17 +0100 | ||||||
| Subject: [PATCH] rtkmipsel: add kernel-version | Subject: [PATCH 70/83] rtkmipsel: add kernel-version | ||||||
|  |  | ||||||
| Signed-off-by: John Crispin <john@phrozen.org> | Signed-off-by: John Crispin <john@phrozen.org> | ||||||
| --- | --- | ||||||
| @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  2 files changed, 3 insertions(+), 1 deletion(-) |  2 files changed, 3 insertions(+), 1 deletion(-) | ||||||
|  |  | ||||||
| diff --git a/include/kernel-version.mk b/include/kernel-version.mk | diff --git a/include/kernel-version.mk b/include/kernel-version.mk | ||||||
| index dff01895be..f5a95af201 100644 | index efecf2f919..787abfca14 100644 | ||||||
| --- a/include/kernel-version.mk | --- a/include/kernel-version.mk | ||||||
| +++ b/include/kernel-version.mk | +++ b/include/kernel-version.mk | ||||||
| @@ -6,11 +6,13 @@ ifdef CONFIG_TESTING_KERNEL | @@ -6,11 +6,13 @@ ifdef CONFIG_TESTING_KERNEL | ||||||
| @@ -20,13 +20,13 @@ index dff01895be..f5a95af201 100644 | |||||||
| +LINUX_VERSION-3.18 = .29 | +LINUX_VERSION-3.18 = .29 | ||||||
|  LINUX_VERSION-4.4 = .60 |  LINUX_VERSION-4.4 = .60 | ||||||
|  LINUX_VERSION-4.14 = .193 |  LINUX_VERSION-4.14 = .193 | ||||||
|  LINUX_VERSION-5.4 = .142 |  LINUX_VERSION-5.4 = .158 | ||||||
|  LINUX_VERSION-5.10 = .27 |  LINUX_VERSION-5.10 = .27 | ||||||
|   |   | ||||||
| +LINUX_KERNEL_HASH-3.18.29 = d099072fcbd6aefea8c787c0325eaa56c65b35b15c52579c8a613349bcba425f | +LINUX_KERNEL_HASH-3.18.29 = d099072fcbd6aefea8c787c0325eaa56c65b35b15c52579c8a613349bcba425f | ||||||
|  LINUX_KERNEL_HASH-4.4.60 = e7f2f47acf17497d6ffd713eda65c025b3df0bce09faa8c04712bf1b3cfc9fdb |  LINUX_KERNEL_HASH-4.4.60 = e7f2f47acf17497d6ffd713eda65c025b3df0bce09faa8c04712bf1b3cfc9fdb | ||||||
|  LINUX_KERNEL_HASH-4.14.193 = 0b0fb41d4430e1a42738b341cbfd2f41951aa5cd02acabbd53f076119c8b9f03 |  LINUX_KERNEL_HASH-4.14.193 = 0b0fb41d4430e1a42738b341cbfd2f41951aa5cd02acabbd53f076119c8b9f03 | ||||||
|  LINUX_KERNEL_HASH-5.4.142 = 99785728968564ba27c7e552d024b560072dcbc885540912eabb5c021e231451 |  LINUX_KERNEL_HASH-5.4.158 = 6e018fecdc8fc24553756e582d83b82d65b10a6b03ef36262a24911f839b8d59 | ||||||
| diff --git a/include/target.mk b/include/target.mk | diff --git a/include/target.mk b/include/target.mk | ||||||
| index 691f8fb186..d198d59262 100644 | index 691f8fb186..d198d59262 100644 | ||||||
| --- a/include/target.mk | --- a/include/target.mk | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| From 10c568bd0a619a7f497d1450195f5650695cefff Mon Sep 17 00:00:00 2001 | From 4c86f99b3a97a8f0a9d0c803c322362f7866a620 Mon Sep 17 00:00:00 2001 | ||||||
| From: John Crispin <john@phrozen.org> | From: John Crispin <john@phrozen.org> | ||||||
| Date: Sun, 2 Jan 2022 10:10:13 +0100 | Date: Sun, 2 Jan 2022 10:10:13 +0100 | ||||||
| Subject: [PATCH 2/2] rtkmipsel: kernel module fixes | Subject: [PATCH 74/83] rtkmipsel: kernel module fixes | ||||||
|  |  | ||||||
| Signed-off-by: John Crispin <john@phrozen.org> | Signed-off-by: John Crispin <john@phrozen.org> | ||||||
| --- | --- | ||||||
|   | |||||||
							
								
								
									
										16557
									
								
								patches/wifi/0001-mac80211-backport-latest-HEAD.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16557
									
								
								patches/wifi/0001-mac80211-backport-latest-HEAD.patch
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										106
									
								
								patches/wifi/0002-mac80211-pending-fixes.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								patches/wifi/0002-mac80211-pending-fixes.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,106 @@ | |||||||
|  | From 1f1de369b842e8dbf3577d6e8380e57e7810007a Mon Sep 17 00:00:00 2001 | ||||||
|  | From: John Crispin <john@phrozen.org> | ||||||
|  | Date: Tue, 4 Jan 2022 06:22:59 +0100 | ||||||
|  | Subject: [PATCH 2/4] mac80211: pending fixes | ||||||
|  |  | ||||||
|  | Signed-off-by: John Crispin <john@phrozen.org> | ||||||
|  | --- | ||||||
|  |  .../files/lib/netifd/wireless/mac80211.sh     | 25 ++++++++++++++----- | ||||||
|  |  1 file changed, 19 insertions(+), 6 deletions(-) | ||||||
|  |  | ||||||
|  | diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh | ||||||
|  | index 27eecf3a7f..823cb0180c 100644 | ||||||
|  | --- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh | ||||||
|  | +++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh | ||||||
|  | @@ -29,6 +29,7 @@ drv_mac80211_init_device_config() { | ||||||
|  |  	config_add_string distance | ||||||
|  |  	config_add_int beacon_int chanbw frag rts | ||||||
|  |  	config_add_int rxantenna txantenna antenna_gain txpower | ||||||
|  | +	config_add_int num_global_macaddr | ||||||
|  |  	config_add_boolean noscan ht_coex acs_exclude_dfs | ||||||
|  |  	config_add_array ht_capab | ||||||
|  |  	config_add_array channels | ||||||
|  | @@ -514,6 +515,7 @@ mac80211_get_addr() { | ||||||
|  |   | ||||||
|  |  mac80211_generate_mac() { | ||||||
|  |  	local phy="$1" | ||||||
|  | +	local multiple_bssid="$2" | ||||||
|  |  	local id="${macidx:-0}" | ||||||
|  |   | ||||||
|  |  	local ref="$(cat /sys/class/ieee80211/${phy}/macaddress)" | ||||||
|  | @@ -537,9 +539,16 @@ mac80211_generate_mac() { | ||||||
|  |  	local mask6=$6 | ||||||
|  |   | ||||||
|  |  	local oIFS="$IFS"; IFS=":"; set -- $ref; IFS="$oIFS" | ||||||
|  | - | ||||||
|  | +	[ "$multiple_bssid" -eq 1 ] && { | ||||||
|  | +               printf "02:%s:%s:%s:%s:%02x" $b1 $2 $3 $4 $5 $macidx | ||||||
|  | +               return | ||||||
|  | +    } | ||||||
|  |  	macidx=$(($id + 1)) | ||||||
|  | -	[ "$((0x$mask1))" -gt 0 ] && { | ||||||
|  | + | ||||||
|  | +	local use_global=0 | ||||||
|  | +	[ "$id" -gt 0 -a "$macidx" -le "$num_global_macaddr" ] && use_global=1 | ||||||
|  | + | ||||||
|  | +	[ "$((0x$mask1))" -gt 0 -a "$use_global" -lt 1 ] && { | ||||||
|  |  		b1="0x$1" | ||||||
|  |  		[ "$id" -gt 0 ] && \ | ||||||
|  |  			b1=$(($b1 ^ ((($id - !($b1 & 2)) << 2)) | 0x2)) | ||||||
|  | @@ -547,7 +556,7 @@ mac80211_generate_mac() { | ||||||
|  |  		return | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  | -	[ "$((0x$mask6))" -lt 255 ] && { | ||||||
|  | +	[ "$((0x$mask6))" -lt 255 -a "$use_global" -gt 0 ] && { | ||||||
|  |  		printf "%s:%s:%s:%s:%s:%02x" $1 $2 $3 $4 $5 $(( 0x$6 ^ $id )) | ||||||
|  |  		return | ||||||
|  |  	} | ||||||
|  | @@ -646,6 +655,7 @@ mac80211_iw_interface_add() { | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  mac80211_prepare_vif() { | ||||||
|  | +	local multiple_bssid=$1 | ||||||
|  |  	json_select config | ||||||
|  |   | ||||||
|  |  	json_get_vars ifname mode ssid wds powersave macaddr enable wpa_psk_file vlan_file | ||||||
|  | @@ -659,7 +669,7 @@ mac80211_prepare_vif() { | ||||||
|  |  	json_select .. | ||||||
|  |   | ||||||
|  |  	[ -n "$macaddr" ] || { | ||||||
|  | -		macaddr="$(mac80211_generate_mac $phy)" | ||||||
|  | +		macaddr="$(mac80211_generate_mac $phy $multiple_bssid)" | ||||||
|  |  		macidx="$(($macidx + 1))" | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  | @@ -1028,7 +1038,9 @@ drv_mac80211_setup() { | ||||||
|  |  		country chanbw distance \ | ||||||
|  |  		txpower antenna_gain \ | ||||||
|  |  		rxantenna txantenna \ | ||||||
|  | -		frag rts beacon_int:100 htmode | ||||||
|  | +		frag rts beacon_int:100 htmode \ | ||||||
|  | +		multiple_bssid:0 \ | ||||||
|  | +		num_global_macaddr | ||||||
|  |  	json_get_values basic_rate_list basic_rate | ||||||
|  |  	json_get_values scan_list scan_list | ||||||
|  |  	json_select .. | ||||||
|  | @@ -1090,6 +1102,7 @@ drv_mac80211_setup() { | ||||||
|  |  	set_default txantenna 0xffffffff | ||||||
|  |  	set_default distance 0 | ||||||
|  |  	set_default antenna_gain 0 | ||||||
|  | +	set_default num_global_macaddr 1 | ||||||
|  |   | ||||||
|  |  	[ "$txantenna" = "all" ] && txantenna=0xffffffff | ||||||
|  |  	[ "$rxantenna" = "all" ] && rxantenna=0xffffffff | ||||||
|  | @@ -1121,7 +1134,7 @@ drv_mac80211_setup() { | ||||||
|  |  	mac80211_prepare_iw_htmode | ||||||
|  |  	for_each_interface "sta adhoc mesh monitor" mac80211_prepare_vif | ||||||
|  |  	NEWAPLIST= | ||||||
|  | -	for_each_interface "ap" mac80211_prepare_vif | ||||||
|  | +	for_each_interface "ap" mac80211_prepare_vif ${multiple_bssid} | ||||||
|  |  	NEW_MD5=$(test -e "${hostapd_conf_file}" && md5sum ${hostapd_conf_file}) | ||||||
|  |  	OLD_MD5=$(uci -q -P /var/state get wireless._${phy}.md5) | ||||||
|  |  	if [ "${NEWAPLIST}" != "${OLDAPLIST}" ]; then | ||||||
|  | --  | ||||||
|  | 2.25.1 | ||||||
|  |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										170
									
								
								patches/wifi/0004-hostapd-pending-fixes.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										170
									
								
								patches/wifi/0004-hostapd-pending-fixes.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,170 @@ | |||||||
|  | From 83e8509388c5648dc8217b8f86d0461fade6a8d1 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: John Crispin <john@phrozen.org> | ||||||
|  | Date: Tue, 4 Jan 2022 07:01:41 +0100 | ||||||
|  | Subject: [PATCH 4/4] hostapd: pending fixes | ||||||
|  |  | ||||||
|  | Signed-off-by: John Crispin <john@phrozen.org> | ||||||
|  | --- | ||||||
|  |  .../hostapd/files/hostapd-full.config         |  4 +- | ||||||
|  |  .../network/services/hostapd/files/hostapd.sh | 45 +++++++++++++------ | ||||||
|  |  2 files changed, 33 insertions(+), 16 deletions(-) | ||||||
|  |  | ||||||
|  | diff --git a/package/network/services/hostapd/files/hostapd-full.config b/package/network/services/hostapd/files/hostapd-full.config | ||||||
|  | index dbc2022550..38a29143d5 100644 | ||||||
|  | --- a/package/network/services/hostapd/files/hostapd-full.config | ||||||
|  | +++ b/package/network/services/hostapd/files/hostapd-full.config | ||||||
|  | @@ -94,10 +94,10 @@ CONFIG_EAP_TTLS=y | ||||||
|  |  #CONFIG_EAP_PAX=y | ||||||
|  |   | ||||||
|  |  # EAP-PSK for the integrated EAP server (this is _not_ needed for WPA-PSK) | ||||||
|  | -#CONFIG_EAP_PSK=y | ||||||
|  | +CONFIG_EAP_PSK=y | ||||||
|  |   | ||||||
|  |  # EAP-pwd for the integrated EAP server (secure authentication with a password) | ||||||
|  | -#CONFIG_EAP_PWD=y | ||||||
|  | +CONFIG_EAP_PWD=y | ||||||
|  |   | ||||||
|  |  # EAP-SAKE for the integrated EAP server | ||||||
|  |  #CONFIG_EAP_SAKE=y | ||||||
|  | diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh | ||||||
|  | index d9d5f34877..a56bc69562 100644 | ||||||
|  | --- a/package/network/services/hostapd/files/hostapd.sh | ||||||
|  | +++ b/package/network/services/hostapd/files/hostapd.sh | ||||||
|  | @@ -48,13 +48,17 @@ hostapd_append_wpa_key_mgmt() { | ||||||
|  |  		;; | ||||||
|  |  		eap192) | ||||||
|  |  			append wpa_key_mgmt "WPA-EAP-SUITE-B-192" | ||||||
|  | +			append wpa_key_mgmt "WPA-EAP-SHA256" | ||||||
|  |  			[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP" | ||||||
|  |  		;; | ||||||
|  | -		eap-eap192) | ||||||
|  | -			append wpa_key_mgmt "WPA-EAP-SUITE-B-192" | ||||||
|  | +		eap-eap256) | ||||||
|  |  			append wpa_key_mgmt "WPA-EAP" | ||||||
|  | +			append wpa_key_mgmt "WPA-EAP-SHA256" | ||||||
|  | +			[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP" | ||||||
|  | +		;; | ||||||
|  | +		eap256) | ||||||
|  | +			append wpa_key_mgmt "WPA-EAP-SHA256" | ||||||
|  |  			[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP" | ||||||
|  | -			[ "${ieee80211w:-0}" -gt 0 ] && append wpa_key_mgmt "WPA-EAP-SHA256" | ||||||
|  |  		;; | ||||||
|  |  		sae) | ||||||
|  |  			append wpa_key_mgmt "SAE" | ||||||
|  | @@ -345,7 +349,7 @@ hostapd_common_add_bss_config() { | ||||||
|  |   | ||||||
|  |  	config_add_boolean hs20 disable_dgaf osen | ||||||
|  |  	config_add_int anqp_domain_id | ||||||
|  | -	config_add_int hs20_deauth_req_timeout | ||||||
|  | +	config_add_int hs20_deauth_req_timeout hs20_release | ||||||
|  |  	config_add_array hs20_oper_friendly_name | ||||||
|  |  	config_add_array osu_provider | ||||||
|  |  	config_add_array operator_icon | ||||||
|  | @@ -371,6 +375,8 @@ hostapd_common_add_bss_config() { | ||||||
|  |   | ||||||
|  |  	config_add_boolean fils | ||||||
|  |  	config_add_string fils_dhcp | ||||||
|  | + | ||||||
|  | +	config_add_boolean ratelimit | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  hostapd_set_vlan_file() { | ||||||
|  | @@ -422,7 +428,7 @@ append_iw_anqp_3gpp_cell_net() { | ||||||
|  |  	if [ -z "$iw_anqp_3gpp_cell_net_conf" ]; then | ||||||
|  |  		iw_anqp_3gpp_cell_net_conf="$1" | ||||||
|  |  	else | ||||||
|  | -		iw_anqp_3gpp_cell_net_conf="$iw_anqp_3gpp_cell_net_conf:$1" | ||||||
|  | +		iw_anqp_3gpp_cell_net_conf="$iw_anqp_3gpp_cell_net_conf;$1" | ||||||
|  |  	fi | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | @@ -617,11 +623,11 @@ hostapd_set_bss_options() { | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  |  	case "$auth_type" in | ||||||
|  | -		sae|owe|eap192|eap-eap192) | ||||||
|  | +		sae|owe|eap192|eap256) | ||||||
|  |  			set_default ieee80211w 2 | ||||||
|  |  			set_default sae_require_mfp 1 | ||||||
|  |  		;; | ||||||
|  | -		psk-sae) | ||||||
|  | +		psk-sae|eap-eap256) | ||||||
|  |  			set_default ieee80211w 1 | ||||||
|  |  			set_default sae_require_mfp 1 | ||||||
|  |  		;; | ||||||
|  | @@ -664,7 +670,7 @@ hostapd_set_bss_options() { | ||||||
|  |  			vlan_possible=1 | ||||||
|  |  			wps_possible=1 | ||||||
|  |  		;; | ||||||
|  | -		eap|eap192|eap-eap192) | ||||||
|  | +		eap|eap192|eap-eap256|eap256) | ||||||
|  |  			json_get_vars \ | ||||||
|  |  				auth_server auth_secret auth_port \ | ||||||
|  |  				dae_client dae_secret dae_port \ | ||||||
|  | @@ -930,7 +936,16 @@ hostapd_set_bss_options() { | ||||||
|  |  				json_get_vars ieee80211w_mgmt_cipher ieee80211w_max_timeout ieee80211w_retry_timeout | ||||||
|  |  				append bss_conf "ieee80211w=$ieee80211w" "$N" | ||||||
|  |  				[ "$ieee80211w" -gt "0" ] && { | ||||||
|  | -					append bss_conf "group_mgmt_cipher=${ieee80211w_mgmt_cipher:-AES-128-CMAC}" "$N" | ||||||
|  | +					case "$auth_type" in | ||||||
|  | +					eap192) | ||||||
|  | +						append bss_conf "group_mgmt_cipher=BIP-GMAC-256" "$N" | ||||||
|  | +						append bss_conf "group_cipher=GCMP-256" "$N" | ||||||
|  | +						;; | ||||||
|  | +					*) | ||||||
|  | +						append bss_conf "group_mgmt_cipher=${ieee80211w_mgmt_cipher:-AES-128-CMAC}" "$N" | ||||||
|  | +						;; | ||||||
|  | +					esac | ||||||
|  | + | ||||||
|  |  					[ -n "$ieee80211w_max_timeout" ] && \ | ||||||
|  |  						append bss_conf "assoc_sa_query_max_timeout=$ieee80211w_max_timeout" "$N" | ||||||
|  |  					[ -n "$ieee80211w_retry_timeout" ] && \ | ||||||
|  | @@ -1045,12 +1060,13 @@ hostapd_set_bss_options() { | ||||||
|  |   | ||||||
|  |  	local hs20 disable_dgaf osen anqp_domain_id hs20_deauth_req_timeout \ | ||||||
|  |  		osu_ssid hs20_wan_metrics hs20_operating_class hs20_t_c_filename hs20_t_c_timestamp \ | ||||||
|  | -		hs20_t_c_server_url | ||||||
|  | +		hs20_t_c_server_url hs20_release | ||||||
|  |  	json_get_vars hs20 disable_dgaf osen anqp_domain_id hs20_deauth_req_timeout \ | ||||||
|  |  		osu_ssid hs20_wan_metrics hs20_operating_class hs20_t_c_filename hs20_t_c_timestamp \ | ||||||
|  | -		hs20_t_c_server_url | ||||||
|  | +		hs20_t_c_server_url hs20_release | ||||||
|  |   | ||||||
|  |  	set_default hs20 0 | ||||||
|  | +	set_default hs20_release  1 | ||||||
|  |  	set_default disable_dgaf $hs20 | ||||||
|  |  	set_default osen 0 | ||||||
|  |  	set_default anqp_domain_id 0 | ||||||
|  | @@ -1058,6 +1074,7 @@ hostapd_set_bss_options() { | ||||||
|  |  	if [ "$hs20" = "1" ]; then | ||||||
|  |  		append bss_conf "hs20=1" "$N" | ||||||
|  |  		append_hs20_icons | ||||||
|  | +		append bss_conf "hs20_release=$hs20_release" "$N" | ||||||
|  |  		append bss_conf "disable_dgaf=$disable_dgaf" "$N" | ||||||
|  |  		append bss_conf "osen=$osen" "$N" | ||||||
|  |  		append bss_conf "anqp_domain_id=$anqp_domain_id" "$N" | ||||||
|  | @@ -1248,10 +1265,10 @@ wpa_supplicant_add_network() { | ||||||
|  |  		default_disabled | ||||||
|  |   | ||||||
|  |  	case "$auth_type" in | ||||||
|  | -		sae|owe|eap192|eap-eap192) | ||||||
|  | +		sae|owe|eap-eap256) | ||||||
|  |  			set_default ieee80211w 2 | ||||||
|  |  		;; | ||||||
|  | -		psk-sae) | ||||||
|  | +		psk-sae|eap192|eap256) | ||||||
|  |  			set_default ieee80211w 1 | ||||||
|  |  		;; | ||||||
|  |  	esac | ||||||
|  | @@ -1329,7 +1346,7 @@ wpa_supplicant_add_network() { | ||||||
|  |  			fi | ||||||
|  |  			append network_data "$passphrase" "$N$T" | ||||||
|  |  		;; | ||||||
|  | -		eap|eap192|eap-eap192) | ||||||
|  | +		eap|eap192|eap-eap256|eap256) | ||||||
|  |  			hostapd_append_wpa_key_mgmt | ||||||
|  |  			key_mgmt="$wpa_key_mgmt" | ||||||
|  |   | ||||||
|  | --  | ||||||
|  | 2.25.1 | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user
	 John Crispin
					John Crispin