openwrt-21.02: update to latest upstream commit

Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
John Crispin
2022-01-02 15:17:32 +01:00
parent 75ed221675
commit 19128346ae
26 changed files with 19035 additions and 6857 deletions

View File

@@ -1,12 +1,13 @@
repo: https://github.com/openwrt/openwrt.git
branch: openwrt-21.02
revision: 378769b5551714ccaa821b481bfeecbf362f351e
revision: c67509efd7d0c43eb3f622f06c8a31aa28d22f6e
output_dir: ./output
patch_folders:
- patches/backports/
- patches/ath79
- patches/base
- patches/wifi
- patches/ath79
- patches/ramips
- patches/ipq40xx
- patches/ipq806x

View File

@@ -11,7 +11,7 @@ define Package/ratelimit
SECTION:=net
CATEGORY:=Network
TITLE:=Wireless ratelimiting
DEPENDS:=+hostapd-utils +tc +kmod-ifb
DEPENDS:=+tc +kmod-ifb
endef
define Package/ratelimit/description

View File

@@ -7,6 +7,7 @@ PKG_SOURCE_URL=https://git.openwrt.org/project/usteer.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2021-04-19
PKG_SOURCE_VERSION:=ab4d89e7429df19fb7af862213bc5f09ca964948
PKG_MIRROR_HASH:=84f6143fea887aca896337756d393494a4cfb698f5e48da760c38723ceaca226
PKG_BUILD_PARALLEL:=1

View File

@@ -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>
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>
---
@@ -24,7 +24,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
.../files-5.4/drivers/net/dsa/rtl83xx/Kconfig | 2 +-
.../drivers/net/dsa/rtl83xx/Makefile | 2 +-
.../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 +++++--
.../drivers/net/dsa/rtl83xx/rtl838x.c | 1749 ++++++++-
.../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/net/dsa/tag_rtl83xx.c | 119 +
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 +++++
...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 +-
...04-include-linux-add-phy-hsgmii-mode.patch | 19 +
.../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/711-ec4100.patch | 150 +
.../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/98_remove_preinit_realtek
delete mode 100644 target/linux/realtek/dts/rtl8380_zyxel_gs1900-8.dts
@@ -15346,13 +15347,14 @@ index 18e5fedb9b..a4b2ea892c 100644
$(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
new file mode 100644
index 0000000000..3d1992e4cb
index 0000000000..5a28760ba9
--- /dev/null
+++ b/target/linux/realtek/patches-5.4/100-dsa-lag.patch
@@ -0,0 +1,3123 @@
+diff -urpN linux-5.4.137.old/drivers/net/bonding/bond_main.c linux-5.4.137/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
@@ -0,0 +1,3145 @@
+Index: linux-5.4.158/drivers/net/bonding/bond_main.c
+===================================================================
+--- 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
+ goto err_unregister;
+ }
@@ -15362,9 +15364,10 @@ index 0000000000..3d1992e4cb
+ res = bond_sysfs_slave_add(new_slave);
+ if (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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/b53/b53_common.c
+===================================================================
+--- 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
+ if (!dsa_is_user_port(ds, port))
+ return 0;
@@ -15392,7 +15395,7 @@ index 0000000000..3d1992e4cb
+ unsigned int i;
+ 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 b53_device *dev;
+
@@ -15407,9 +15410,10 @@ index 0000000000..3d1992e4cb
+ dev = devm_kzalloc(base, sizeof(*dev), GFP_KERNEL);
+ if (!dev)
+ 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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/bcm_sf2.c
+===================================================================
+--- 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
+ * state machine and make it go in PHY_FORCING state instead.
+ */
@@ -15440,9 +15444,10 @@ index 0000000000..3d1992e4cb
+ struct ethtool_wolinfo pwol = { };
+
+ 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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/bcm_sf2_cfp.c
+===================================================================
+--- 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
+ struct ethtool_rx_flow_spec *fs)
+ {
@@ -15470,9 +15475,10 @@ index 0000000000..3d1992e4cb
+ struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
+ 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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/dsa_loop.c
+===================================================================
+--- 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
+ dev_info(&mdiodev->dev, "%s: 0x%0x\n",
+ pdata->name, pdata->enabled_ports);
@@ -15488,10 +15494,11 @@ index 0000000000..3d1992e4cb
+ ps = devm_kzalloc(&mdiodev->dev, sizeof(*ps), GFP_KERNEL);
+ if (!ps)
+ 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
+--- 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
+@@ -1283,10 +1283,12 @@ static int lan9303_register_switch(struc
+Index: linux-5.4.158/drivers/net/dsa/lan9303-core.c
+===================================================================
+--- linux-5.4.158.orig/drivers/net/dsa/lan9303-core.c
++++ linux-5.4.158/drivers/net/dsa/lan9303-core.c
+@@ -1287,10 +1287,12 @@ static int lan9303_register_switch(struc
+ {
+ int base;
+
@@ -15505,10 +15512,11 @@ index 0000000000..3d1992e4cb
+ chip->ds->priv = chip;
+ chip->ds->ops = &lan9303_switch_ops;
+ 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
+--- 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
+@@ -2006,10 +2006,12 @@ static int gswip_probe(struct platform_d
+Index: linux-5.4.158/drivers/net/dsa/lantiq_gswip.c
+===================================================================
+--- linux-5.4.158.orig/drivers/net/dsa/lantiq_gswip.c
++++ 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)
+ return -EINVAL;
+
@@ -15522,9 +15530,10 @@ index 0000000000..3d1992e4cb
+ priv->ds->priv = priv;
+ priv->ds->ops = &gswip_switch_ops;
+ 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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/microchip/ksz_common.c
+===================================================================
+--- 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
+ struct dsa_switch *ds;
+ struct ksz_device *swdev;
@@ -15540,10 +15549,11 @@ index 0000000000..3d1992e4cb
+ swdev = devm_kzalloc(base, sizeof(*swdev), GFP_KERNEL);
+ if (!swdev)
+ return NULL;
+diff -urpN linux-5.4.137.old/drivers/net/dsa/mt7530.c linux-5.4.137/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
+@@ -785,7 +785,7 @@ mt7530_port_set_vlan_unaware(struct dsa_
+Index: linux-5.4.158/drivers/net/dsa/mt7530.c
+===================================================================
+--- linux-5.4.158.orig/drivers/net/dsa/mt7530.c
++++ 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++) {
+ if (dsa_is_user_port(ds, i) &&
@@ -15552,16 +15562,7 @@ index 0000000000..3d1992e4cb
+ all_user_ports_removed = false;
+ break;
+ }
+@@ -843,7 +843,7 @@ mt7530_port_bridge_leave(struct dsa_swit
+ * 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)
+@@ -1217,7 +1217,7 @@ mt7530_setup(struct dsa_switch *ds)
+ * controller also is the container for two GMACs nodes representing
+ * as two netdev instances.
+ */
@@ -15570,7 +15571,7 @@ index 0000000000..3d1992e4cb
+ ds->configure_vlan_while_not_filtering = true;
+
+ 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)) {
+ priv->p5_intf_sel = P5_INTF_SEL_GMAC5;
@@ -15579,7 +15580,7 @@ index 0000000000..3d1992e4cb
+ } else {
+ /* Scan the ethernet nodes. look for GMAC1, lookup used phy */
+ 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)
+ return -ENOMEM;
+
@@ -15594,9 +15595,10 @@ index 0000000000..3d1992e4cb
+ /* Use medatek,mcm property to distinguish hardware type that would
+ * 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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/mv88e6060.c
+===================================================================
+--- 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
+
+ dev_info(dev, "switch %s detected\n", name);
@@ -15611,9 +15613,10 @@ index 0000000000..3d1992e4cb
+ ds->priv = priv;
+ ds->dev = dev;
+ 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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/mv88e6xxx/chip.c
+===================================================================
+--- 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
+ if (dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port))
+ return mv88e6xxx_port_mask(chip);
@@ -16025,9 +16028,10 @@ index 0000000000..3d1992e4cb
+ dev_set_drvdata(dev, 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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/mv88e6xxx/global2.c
+===================================================================
+--- 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
+
+ /* Offset 0x07: Trunk Mask Table register */
@@ -16050,9 +16054,10 @@ index 0000000000..3d1992e4cb
+ {
+ const u16 port_mask = BIT(mv88e6xxx_num_ports(chip)) - 1;
+ 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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/mv88e6xxx/global2.h
+===================================================================
+--- 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 @@
+ #define MV88E6XXX_G2_PVT_ADDR_OP_WRITE_PVLAN 0x3000
+ #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_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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/mv88e6xxx/port.c
+===================================================================
+--- 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
+ return mv88e6xxx_port_write(chip, port, MV88E6XXX_PORT_CTL1, val);
+ }
@@ -16103,9 +16109,10 @@ index 0000000000..3d1992e4cb
+ /* Offset 0x06: Port Based VLAN 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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/mv88e6xxx/port.h
+===================================================================
+--- 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 @@
+ /* Offset 0x05: Port Control 1 */
+ #define MV88E6XXX_PORT_CTL1 0x05
@@ -16125,9 +16132,10 @@ index 0000000000..3d1992e4cb
+ int mv88e6165_port_set_jumbo_size(struct mv88e6xxx_chip *chip, int port,
+ size_t size);
+ 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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/qca8k.c
+===================================================================
+--- 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)
+ return ret;
+
@@ -16152,9 +16160,10 @@ index 0000000000..3d1992e4cb
+ priv->ds->priv = priv;
+ priv->ops = qca8k_switch_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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/realtek-smi-core.c
+===================================================================
+--- 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
+ return ret;
+ }
@@ -16169,10 +16178,11 @@ index 0000000000..3d1992e4cb
+ smi->ds->priv = smi;
+
+ 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
+--- 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
+@@ -1096,7 +1096,7 @@ int sja1105pqrs_fdb_add(struct dsa_switc
+Index: linux-5.4.158/drivers/net/dsa/sja1105/sja1105_main.c
+===================================================================
+--- linux-5.4.158.orig/drivers/net/dsa/sja1105/sja1105_main.c
++++ 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.iotag = SJA1105_S_TAG;
+ 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_iotag = BIT(0);
+ } 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.iotag = SJA1105_S_TAG;
+ 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_iotag = BIT(0);
+ } 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,
+ * no VID gets printed at all.
+ */
@@ -16199,7 +16209,7 @@ index 0000000000..3d1992e4cb
+ vid = 0;
+
+ 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;
+
@@ -16208,16 +16218,16 @@ index 0000000000..3d1992e4cb
+ vid = 0;
+
+ 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);
+
+ /* 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(dsa_to_port(ds, port)))
+ l2_lookup.vlanid = 0;
+ cb(macaddr, l2_lookup.vlanid, l2_lookup.lockeds, data);
+ }
+@@ -1748,7 +1748,7 @@ static int sja1105_port_enable(struct ds
+ rc = cb(macaddr, l2_lookup.vlanid, l2_lookup.lockeds, data);
+ if (rc)
+@@ -1805,7 +1805,7 @@ static int sja1105_port_enable(struct ds
+ if (!dsa_is_user_port(ds, port))
+ return 0;
+
@@ -16226,7 +16236,7 @@ index 0000000000..3d1992e4cb
+
+ 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. */
@@ -16235,7 +16245,7 @@ index 0000000000..3d1992e4cb
+
+ /* Wait until the switch has processed the frame */
+ 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);
+
@@ -16249,7 +16259,7 @@ index 0000000000..3d1992e4cb
+ ds->ops = &sja1105_switch_ops;
+ ds->priv = priv;
+ 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++) {
+ struct sja1105_port *sp = &priv->ports[i];
+
@@ -16260,9 +16270,10 @@ index 0000000000..3d1992e4cb
+ sp->data = tagger_data;
+ }
+ 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
+--- 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
+Index: linux-5.4.158/drivers/net/dsa/vitesse-vsc73xx-core.c
+===================================================================
+--- 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)
+ * We allocate 8 ports and avoid access to the nonexistant
+ * ports.
@@ -16277,9 +16288,10 @@ index 0000000000..3d1992e4cb
+ vsc->ds->priv = vsc;
+
+ 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
+--- 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
+Index: linux-5.4.158/include/net/dsa.h
+===================================================================
+--- 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 {
+ */
+ struct dsa_platform_data *pd;
@@ -16508,9 +16520,10 @@ index 0000000000..3d1992e4cb
+ #endif
+
+ /* 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
+--- 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
+Index: linux-5.4.158/net/dsa/Kconfig
+===================================================================
+--- linux-5.4.158.orig/net/dsa/Kconfig
++++ linux-5.4.158/net/dsa/Kconfig
+@@ -56,14 +56,19 @@ config NET_DSA_TAG_GSWIP
+ Say Y or M if you want to enable support for tagging frames for the
+ Lantiq / Intel GSWIP switches.
@@ -16531,9 +16544,10 @@ index 0000000000..3d1992e4cb
+ help
+ Say Y or M if you want to enable support for tagging frames for the
+ Marvell switches which use EtherType DSA headers.
+diff -urpN linux-5.4.137.old/net/dsa/Makefile linux-5.4.137/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
+Index: linux-5.4.158/net/dsa/Makefile
+===================================================================
+--- 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
+ # tagging formats
+ 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_KSZ) += tag_ksz.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
+--- 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
+Index: linux-5.4.158/net/dsa/dsa.c
+===================================================================
+--- 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
+ }
+
@@ -16599,10 +16614,11 @@ index 0000000000..3d1992e4cb
+ if (ret)
+ return ret;
+ }
+diff -urpN linux-5.4.137.old/net/dsa/dsa2.c linux-5.4.137/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
+@@ -25,6 +25,65 @@ static DEFINE_MUTEX(dsa2_mutex);
+Index: linux-5.4.158/net/dsa/dsa2.c
+===================================================================
+--- linux-5.4.158.orig/net/dsa/dsa2.c
++++ 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 = {
+ };
+
@@ -16668,7 +16684,7 @@ index 0000000000..3d1992e4cb
+ static struct dsa_switch_tree *dsa_tree_find(int index)
+ {
+ 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;
+
@@ -16679,7 +16695,7 @@ index 0000000000..3d1992e4cb
+ INIT_LIST_HEAD(&dst->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,
+ struct device_node *dn)
+ {
@@ -16731,7 +16747,7 @@ index 0000000000..3d1992e4cb
+ }
+
+ 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 of_phandle_iterator it;
+ struct dsa_port *link_dp;
@@ -16739,7 +16755,7 @@ index 0000000000..3d1992e4cb
+ int err;
+
+ 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;
+ }
+
@@ -16771,7 +16787,7 @@ index 0000000000..3d1992e4cb
+ if (dsa_port_is_dsa(dp)) {
+ complete = dsa_port_setup_routing_table(dp);
+ 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;
+ }
+
@@ -16868,7 +16884,7 @@ index 0000000000..3d1992e4cb
+ }
+
+ 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;
+ int err = 0;
+
@@ -16878,7 +16894,7 @@ index 0000000000..3d1992e4cb
+ switch (dp->type) {
+ case DSA_PORT_TYPE_UNUSED:
+ 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);
+ if (err && devlink_port_registered)
+ devlink_port_unregister(dlp);
@@ -16901,7 +16917,7 @@ index 0000000000..3d1992e4cb
+ switch (dp->type) {
+ case DSA_PORT_TYPE_UNUSED:
+ break;
+@@ -365,11 +412,16 @@ static void dsa_port_teardown(struct dsa
+@@ -363,11 +410,16 @@ static void dsa_port_teardown(struct dsa
+ }
+ break;
+ }
@@ -16919,7 +16935,7 @@ index 0000000000..3d1992e4cb
+
+ /* Initialize ds->phys_mii_mask before registering the slave MDIO bus
+ * 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;
+ }
+
@@ -16928,7 +16944,7 @@ index 0000000000..3d1992e4cb
+ return 0;
+
+ teardown:
+@@ -429,6 +483,9 @@ free_devlink:
+@@ -427,6 +481,9 @@ free_devlink:
+
+ 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)
+ 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;
+ }
+
@@ -17089,7 +17105,7 @@ index 0000000000..3d1992e4cb
+ }
+
+ 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)
+ goto teardown_switches;
+
@@ -17108,7 +17124,7 @@ index 0000000000..3d1992e4cb
+ teardown_switches:
+ dsa_tree_teardown_switches(dst);
+ 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)
+ {
@@ -17180,7 +17196,7 @@ index 0000000000..3d1992e4cb
+ }
+
+ 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;
+ }
+
@@ -17189,7 +17205,7 @@ index 0000000000..3d1992e4cb
+
+ err = dsa_port_parse_of(dp, port);
+ 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;
+
+ ds->index = m[1];
@@ -17198,7 +17214,7 @@ index 0000000000..3d1992e4cb
+
+ ds->dst = dsa_tree_touch(m[0]);
+ 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;
+ }
+
@@ -17219,7 +17235,7 @@ index 0000000000..3d1992e4cb
+ static int dsa_switch_parse_of(struct dsa_switch *ds, struct device_node *dn)
+ {
+ 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)
+ return err;
+
@@ -17230,7 +17246,7 @@ index 0000000000..3d1992e4cb
+ 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++) {
+ name = cd->port_names[i];
+ dev = cd->netdev[i];
@@ -17239,7 +17255,7 @@ index 0000000000..3d1992e4cb
+
+ if (!name)
+ 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)
+ {
@@ -17248,7 +17264,7 @@ index 0000000000..3d1992e4cb
+ ds->cd = cd;
+
+ /* 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)
+ return -ENOMEM;
+
@@ -17282,7 +17298,7 @@ index 0000000000..3d1992e4cb
+ if (np)
+ err = dsa_switch_parse_of(ds, np);
+ 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)
+ return err;
+
@@ -17318,7 +17334,7 @@ index 0000000000..3d1992e4cb
+
+ 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)
+ {
+ struct dsa_switch_tree *dst = ds->dst;
@@ -17336,9 +17352,10 @@ index 0000000000..3d1992e4cb
+ }
+
+ 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
+--- 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
+Index: linux-5.4.158/net/dsa/dsa_priv.h
+===================================================================
+--- linux-5.4.158.orig/net/dsa/dsa_priv.h
++++ linux-5.4.158/net/dsa/dsa_priv.h
+@@ -19,6 +19,9 @@ enum {
+ DSA_NOTIFIER_BRIDGE_LEAVE,
+ DSA_NOTIFIER_FDB_ADD,
@@ -17442,9 +17459,10 @@ index 0000000000..3d1992e4cb
++void dsa_lag_unmap(struct dsa_switch_tree *dst, struct net_device *lag);
++
+ #endif
+diff -urpN linux-5.4.137.old/net/dsa/port.c linux-5.4.137/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
+Index: linux-5.4.158/net/dsa/port.c
+===================================================================
+--- 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
+ 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,
+ bool vlan_filtering)
+ {
+diff -urpN linux-5.4.137.old/net/dsa/slave.c linux-5.4.137/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
+Index: linux-5.4.158/net/dsa/slave.c
+===================================================================
+--- linux-5.4.158.orig/net/dsa/slave.c
++++ linux-5.4.158/net/dsa/slave.c
+@@ -26,8 +26,6 @@
+
+ #include "dsa_priv.h"
@@ -17589,7 +17608,7 @@ index 0000000000..3d1992e4cb
+ return -EOPNOTSUPP;
+ err = dsa_port_mdb_del(dp, SWITCHDEV_OBJ_PORT_MDB(obj));
+ 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);
+ }
+
@@ -17602,7 +17621,7 @@ index 0000000000..3d1992e4cb
+
+ static int dsa_slave_changeupper(struct net_device *dev,
+ 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);
+ err = NOTIFY_OK;
+ }
@@ -17649,7 +17668,7 @@ index 0000000000..3d1992e4cb
+ }
+
+ 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);
+
@@ -17685,9 +17704,10 @@ index 0000000000..3d1992e4cb
+ }
+
+ return NOTIFY_DONE;
+diff -urpN linux-5.4.137.old/net/dsa/switch.c linux-5.4.137/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
+Index: linux-5.4.158/net/dsa/switch.c
+===================================================================
+--- 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
+ int i;
+
@@ -17770,9 +17790,10 @@ index 0000000000..3d1992e4cb
+ case DSA_NOTIFIER_MDB_ADD:
+ err = dsa_switch_mdb_add(ds, info);
+ break;
+diff -urpN linux-5.4.137.old/net/dsa/tag_8021q.c linux-5.4.137/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
+Index: linux-5.4.158/net/dsa/tag_8021q.c
+===================================================================
+--- linux-5.4.158.orig/net/dsa/tag_8021q.c
++++ linux-5.4.158/net/dsa/tag_8021q.c
+@@ -31,15 +31,14 @@
+ * Must be transmitted as zero and ignored on receive.
+ *
@@ -17818,9 +17839,10 @@ index 0000000000..3d1992e4cb
+ struct bridge_vlan_info vinfo;
+ int err;
+
+diff -urpN linux-5.4.137.old/net/dsa/tag_dsa.c linux-5.4.137/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
+Index: linux-5.4.158/net/dsa/tag_dsa.c
+===================================================================
+--- linux-5.4.158.orig/net/dsa/tag_dsa.c
++++ linux-5.4.158/net/dsa/tag_dsa.c
+@@ -1,7 +1,48 @@
+ // SPDX-License-Identifier: GPL-2.0+
+ /*
@@ -18254,9 +18276,10 @@ index 0000000000..3d1992e4cb
++module_dsa_tag_drivers(dsa_tag_drivers);
++
++MODULE_LICENSE("GPL");
+diff -urpN linux-5.4.137.old/net/dsa/tag_edsa.c linux-5.4.137/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
+Index: linux-5.4.158/net/dsa/tag_edsa.c
+===================================================================
+--- linux-5.4.158.orig/net/dsa/tag_edsa.c
++++ /dev/null
+@@ -1,215 +0,0 @@
+-// SPDX-License-Identifier: GPL-2.0+
+-/*
@@ -19707,6 +19730,18 @@ index 0000000000..8b43f07e8a
++MODULE_DESCRIPTION("Realtek Otto GPIO support");
++MODULE_AUTHOR("Sander Vanheule <sander@svanheule.net>");
++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
index 03accd1e07..3682eb30a3 100644
--- a/target/linux/realtek/patches-5.4/703-include-linux-add-phy-ops-for-rtl838x.patch

View File

@@ -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>
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>
---
@@ -9,7 +9,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
1 file changed, 6 insertions(+)
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
+++ b/include/kernel-version.mk
@@ -6,9 +6,15 @@ ifdef CONFIG_TESTING_KERNEL
@@ -18,12 +18,12 @@ index fe81dbf603..3c109c13c8 100644
+LINUX_VERSION-4.4 = .60
+LINUX_VERSION-4.14 = .193
LINUX_VERSION-5.4 = .142
LINUX_VERSION-5.4 = .158
+LINUX_VERSION-5.10 = .27
+LINUX_KERNEL_HASH-4.4.60 = 2cd8df6f1ac6a5329c5a286ec9b5956215977221a1b731597ed169fff74a9659
+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
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))

View File

@@ -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>
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>
---
package/network/config/netifd/Makefile | 8 ++--
package/network/config/netifd/Makefile | 2 -
.../config/netifd/patches/100-script.patch | 21 +++++++++++
.../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/hairpin.patch
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
+++ b/package/network/config/netifd/Makefile
@@ -5,16 +5,14 @@ PKG_RELEASE:=1
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>
@@ -13,8 +13,6 @@ PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=
@@ -63,49 +52,6 @@ index 0000000000..e7ba83f4bb
+ psk3-mixed*|sae-mixed*)
+ 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

File diff suppressed because it is too large Load Diff

View File

@@ -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

View File

@@ -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

View File

@@ -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>
Date: Tue, 14 Dec 2021 09:39:42 +0100
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
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
+++ /dev/null
@@ -1,356 +0,0 @@
@@ -824,7 +824,7 @@ index f45efdf12b..0000000000
-
- static int netif_rx_internal(struct sk_buff *skb);
- 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;
-
@@ -836,7 +836,7 @@ index f45efdf12b..0000000000
- local_irq_save(flags);
- ____napi_schedule(this_cpu_ptr(&softnet_data), n);
- 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)
- {
@@ -848,7 +848,7 @@ index f45efdf12b..0000000000
- if (!IS_ENABLED(CONFIG_PREEMPT_RT))
- ____napi_schedule(this_cpu_ptr(&softnet_data), n);
- 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;
- }
-
@@ -938,7 +938,7 @@ index f45efdf12b..0000000000
- INIT_LIST_HEAD(&napi->poll_list);
- hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED);
- 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
- napi->poll_owner = -1;
- #endif
@@ -946,7 +946,7 @@ index f45efdf12b..0000000000
- set_bit(NAPI_STATE_SCHED, &napi->state);
- set_bit(NAPI_STATE_NPSVC, &napi->state);
- 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)
- {
- might_sleep();
@@ -954,7 +954,7 @@ index f45efdf12b..0000000000
- if (napi_hash_del(napi))
- synchronize_net();
- 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)
- {
@@ -1009,7 +1009,7 @@ index f45efdf12b..0000000000
-
- /* Some drivers may have called napi_schedule
- * 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;
- }
-

View File

@@ -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>
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/.
Signed-off-by: John Crispin <john@phrozen.org>
---
scripts/gen_config.py | 236 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 236 insertions(+)
scripts/gen_config.py | 237 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 237 insertions(+)
create mode 100755 scripts/gen_config.py
diff --git a/scripts/gen_config.py b/scripts/gen_config.py
new file mode 100755
index 0000000000..d39066f44d
index 0000000000..01c3f4050d
--- /dev/null
+++ b/scripts/gen_config.py
@@ -0,0 +1,236 @@
@@ -0,0 +1,237 @@
+#!/usr/bin/env python3
+
+from os import getenv
@@ -244,11 +244,12 @@ index 0000000000..d39066f44d
+ clean_tree()
+ setup_feeds(profile)
+ generate_config(profile)
+ if profile["image"]:
+ Path("tmp/image-file").write_text(profile["image"])
+ run(["rm", "-rf", "tmp/"])
+ print("Running make defconfig")
+ if run(["make", "defconfig"]).returncode:
+ die(f"Error running make defconfig")
+ if profile["image"]:
+ Path("tmp/image-file").write_text(profile["image"])
+
+ print("#########################\n" * 3)
+ print("\n".join(warnings))

View File

@@ -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

View File

@@ -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>
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.
@@ -50,12 +50,12 @@ index af55ee4dd5..9dc38bcfcc 100644
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
index c35ba2799f..9758f013f0 100644
index ca7f0ca350..8b3ae53bd9 100644
--- a/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)
ar40xx_rmw(priv, AR40XX_REG_PORT_STATUS(port),
AR40XX_PORT_AUTO_LINK_EN, 0);
@@ -1200,7 +1200,11 @@ ar40xx_init_port(struct ar40xx_priv *priv, int port)
ar40xx_write(priv, AR40XX_REG_PORT_STATUS(port), 0);
- ar40xx_write(priv, AR40XX_REG_PORT_HEADER(port), 0);
+ /* 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);
@@ -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) |
AR40XX_PORT0_FC_THRESH_OFF_DFLT;
ar40xx_write(priv, AR40XX_REG_PORT_FLOWCTRL_THRESH(0), t);
@@ -77,7 +77,7 @@ index c35ba2799f..9758f013f0 100644
}
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]];
if (priv->vlan) {
@@ -89,7 +89,7 @@ index c35ba2799f..9758f013f0 100644
ingress = AR40XX_IN_SECURE;
} 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;
ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), t);

View File

@@ -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

View File

@@ -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>
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>
---
config/Config-kernel.in | 9 +
include/image.mk | 6 +-
config/Config-kernel.in | 9 ++++++
include/image.mk | 6 +++-
include/kernel-version.mk | 2 +-
package/boot/uboot-envtools/files/ipq807x | 37 +
.../etc/hotplug.d/firmware/11-ath10k-caldata | 5 +
target/linux/ipq807x/109-logspam.patch | 24 +
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(-)
package/boot/uboot-envtools/files/ipq807x | 37 +++++++++++++++++++++++
toolchain/kernel-headers/Makefile | 8 +++++
5 files changed, 60 insertions(+), 2 deletions(-)
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
index f71114b5da..4a85d83118 100644
index d4648a5064..2d5c9f1437 100644
--- a/config/Config-kernel.in
+++ b/config/Config-kernel.in
@@ -2,6 +2,15 @@
@@ -173,17 +58,17 @@ index 6fc02a3f6b..92b23321b1 100644
$(LINUX_DIR)/scripts/dtc/dtc -O dtb \
-i$(dir $(1)) $(DTC_FLAGS) $(4) \
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
+++ b/include/kernel-version.mk
@@ -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_KERNEL_HASH-4.4.60 = 2cd8df6f1ac6a5329c5a286ec9b5956215977221a1b731597ed169fff74a9659
+LINUX_KERNEL_HASH-4.4.60 = e7f2f47acf17497d6ffd713eda65c025b3df0bce09faa8c04712bf1b3cfc9fdb
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
diff --git a/package/boot/uboot-envtools/files/ipq807x b/package/boot/uboot-envtools/files/ipq807x
new file mode 100644

View File

@@ -11,39 +11,6 @@ Signed-off-by: John Crispin <john@phrozen.org>
.../linux/ramips/dts/mt7628an_tplink_8m-split-uboot.dtsi | 7 ++++++-
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
index b6ce7b1f56..471be72001 100644
--- a/target/linux/ramips/dts/mt7628an_tplink_8m-split-uboot.dtsi

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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>
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>
---
@@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
2 files changed, 3 insertions(+), 1 deletion(-)
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
+++ b/include/kernel-version.mk
@@ -6,11 +6,13 @@ ifdef CONFIG_TESTING_KERNEL
@@ -20,13 +20,13 @@ index dff01895be..f5a95af201 100644
+LINUX_VERSION-3.18 = .29
LINUX_VERSION-4.4 = .60
LINUX_VERSION-4.14 = .193
LINUX_VERSION-5.4 = .142
LINUX_VERSION-5.4 = .158
LINUX_VERSION-5.10 = .27
+LINUX_KERNEL_HASH-3.18.29 = d099072fcbd6aefea8c787c0325eaa56c65b35b15c52579c8a613349bcba425f
LINUX_KERNEL_HASH-4.4.60 = e7f2f47acf17497d6ffd713eda65c025b3df0bce09faa8c04712bf1b3cfc9fdb
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
index 691f8fb186..d198d59262 100644
--- a/include/target.mk

View File

@@ -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>
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>
---

File diff suppressed because it is too large Load Diff

View 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

View 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