kernel: bump 5.4 to 5.4.53
Resolve conflicted: - 395-v5.8-net-sch_cake-Take-advantage-of-skb-hash-where-appropriate.patch - 641-sch_cake-fix-IP-protocol-handling-in-the-presence-of.patch Remove upstreamed: - 022-v5.8-mtd-rawnand-brcmnand-correctly-verify-erased-pages.patch - 024-v5.8-mtd-rawnand-brcmnand-fix-CS0-layout.patch - 742-v5.5-net-sfp-add-support-for-module-quirks.patch - 743-v5.5-net-sfp-add-some-quirks-for-GPON-modules.patch Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
This commit is contained in:
parent
1095ef2dc7
commit
69e815a417
@ -9,12 +9,12 @@ endif
|
||||
LINUX_VERSION-4.9 = .230
|
||||
LINUX_VERSION-4.14 = .188
|
||||
LINUX_VERSION-4.19 = .133
|
||||
LINUX_VERSION-5.4 = .52
|
||||
LINUX_VERSION-5.4 = .53
|
||||
|
||||
LINUX_KERNEL_HASH-4.9.230 = d5ba9256e3ebf1cead127f323acc8124965d89cc88e75eca377fcca3bd6c037c
|
||||
LINUX_KERNEL_HASH-4.14.188 = 766fe01387b1d1b7bd37ca45a5048cdad13e3a51c6c43746dbb657a0ba67064b
|
||||
LINUX_KERNEL_HASH-4.19.133 = b933e5fe7d09af623809b96fd26119381e71c8994af5f9f7a644b78ede77dbc4
|
||||
LINUX_KERNEL_HASH-5.4.52 = 037efa531120b1c20ff55e78cd3e17288b1804b3a57dc31de760837b3bea5d3a
|
||||
LINUX_KERNEL_HASH-5.4.53 = faa7b6f99220d5726f0eaee74a6394f0a3b89be1a75254f3804630211f3d6d21
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||
|
||||
@ -556,7 +556,7 @@
|
||||
#include <linux/netdevice.h>
|
||||
--- a/include/net/inet_ecn.h
|
||||
+++ b/include/net/inet_ecn.h
|
||||
@@ -139,9 +139,9 @@ static inline int IP6_ECN_set_ce(struct
|
||||
@@ -140,9 +140,9 @@ static inline int IP6_ECN_set_ce(struct
|
||||
if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph)))
|
||||
return 0;
|
||||
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
#define USB_VENDOR_ID_BELKIN 0x050d
|
||||
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
||||
|
||||
@@ -1234,6 +1237,9 @@
|
||||
@@ -1237,6 +1240,9 @@
|
||||
#define USB_VENDOR_ID_XAT 0x2505
|
||||
#define USB_DEVICE_ID_XAT_CSR 0x0220
|
||||
|
||||
@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
|
||||
@@ -178,6 +179,7 @@ static const struct hid_device_id hid_qu
|
||||
@@ -179,6 +180,7 @@ static const struct hid_device_id hid_qu
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
|
||||
|
||||
@ -61,7 +61,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
#include <linux/clockchips.h>
|
||||
#include <linux/clocksource.h>
|
||||
#include <linux/interrupt.h>
|
||||
@@ -899,6 +900,16 @@ static void arch_timer_of_configure_rate
|
||||
@@ -910,6 +911,16 @@ static void arch_timer_of_configure_rate
|
||||
if (of_property_read_u32(np, "clock-frequency", &arch_timer_rate))
|
||||
arch_timer_rate = rate;
|
||||
|
||||
|
||||
@ -40,7 +40,7 @@ Link: https://lore.kernel.org/linux-mtd/20200512075733.745374-3-noltari@gmail.co
|
||||
|
||||
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
@@ -1003,33 +1003,30 @@ static int brcmnand_hamming_ooblayout_fr
|
||||
@@ -1004,33 +1004,30 @@ static int brcmnand_hamming_ooblayout_fr
|
||||
struct brcmnand_cfg *cfg = &host->hwcfg;
|
||||
int sas = cfg->spare_area_size << cfg->sector_size_1k;
|
||||
int sectors = cfg->page_size / (512 << cfg->sector_size_1k);
|
||||
|
||||
@ -1,63 +0,0 @@
|
||||
From dcb351c03f2fa6a599de1061b174167e03ee312b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
||||
Date: Tue, 12 May 2020 10:24:51 +0200
|
||||
Subject: [PATCH] mtd: rawnand: brcmnand: correctly verify erased pages
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The current code checks that the whole OOB area is erased.
|
||||
This is a problem when JFFS2 cleanmarkers are added to the OOB, since it will
|
||||
fail due to the usable OOB bytes not being 0xff.
|
||||
Correct this by only checking that data and ECC bytes aren't 0xff.
|
||||
|
||||
Fixes: 02b88eea9f9c ("mtd: brcmnand: Add check for erased page bitflips")
|
||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/linux-mtd/20200512082451.771212-1-noltari@gmail.com
|
||||
---
|
||||
drivers/mtd/nand/raw/brcmnand/brcmnand.c | 19 +++++++++++--------
|
||||
1 file changed, 11 insertions(+), 8 deletions(-)
|
||||
|
||||
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
@@ -1787,28 +1787,31 @@ static int brcmnand_read_by_pio(struct m
|
||||
static int brcmstb_nand_verify_erased_page(struct mtd_info *mtd,
|
||||
struct nand_chip *chip, void *buf, u64 addr)
|
||||
{
|
||||
- int i, sas;
|
||||
- void *oob = chip->oob_poi;
|
||||
+ struct mtd_oob_region ecc;
|
||||
+ int i;
|
||||
int bitflips = 0;
|
||||
int page = addr >> chip->page_shift;
|
||||
int ret;
|
||||
+ void *ecc_bytes;
|
||||
void *ecc_chunk;
|
||||
|
||||
if (!buf)
|
||||
buf = nand_get_data_buf(chip);
|
||||
|
||||
- sas = mtd->oobsize / chip->ecc.steps;
|
||||
-
|
||||
/* read without ecc for verification */
|
||||
ret = chip->ecc.read_page_raw(chip, buf, true, page);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
- for (i = 0; i < chip->ecc.steps; i++, oob += sas) {
|
||||
+ for (i = 0; i < chip->ecc.steps; i++) {
|
||||
ecc_chunk = buf + chip->ecc.size * i;
|
||||
- ret = nand_check_erased_ecc_chunk(ecc_chunk,
|
||||
- chip->ecc.size,
|
||||
- oob, sas, NULL, 0,
|
||||
+
|
||||
+ mtd_ooblayout_ecc(mtd, i, &ecc);
|
||||
+ ecc_bytes = chip->oob_poi + ecc.offset;
|
||||
+
|
||||
+ ret = nand_check_erased_ecc_chunk(ecc_chunk, chip->ecc.size,
|
||||
+ ecc_bytes, ecc.length,
|
||||
+ NULL, 0,
|
||||
chip->ecc.strength);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
@ -1,34 +0,0 @@
|
||||
From 3d3fb3c5be9ce07fa85d8f67fb3922e4613b955b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
||||
Date: Fri, 22 May 2020 14:15:21 +0200
|
||||
Subject: [PATCH] mtd: rawnand: brcmnand: fix CS0 layout
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Only v3.3-v5.0 have a different CS0 layout.
|
||||
Controllers before v3.3 use the same layout for every CS.
|
||||
|
||||
Fixes: 27c5b17cd1b1 ("mtd: nand: add NAND driver "library" for Broadcom STB NAND controller")
|
||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/linux-mtd/20200522121524.4161539-3-noltari@gmail.com
|
||||
---
|
||||
drivers/mtd/nand/raw/brcmnand/brcmnand.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
|
||||
@@ -537,8 +537,9 @@ static int brcmnand_revision_init(struct
|
||||
} else {
|
||||
ctrl->cs_offsets = brcmnand_cs_offsets;
|
||||
|
||||
- /* v5.0 and earlier has a different CS0 offset layout */
|
||||
- if (ctrl->nand_version <= 0x0500)
|
||||
+ /* v3.3-5.0 have a different CS0 offset layout */
|
||||
+ if (ctrl->nand_version >= 0x0303 &&
|
||||
+ ctrl->nand_version <= 0x0500)
|
||||
ctrl->cs0_offsets = brcmnand_cs_offsets_cs0;
|
||||
}
|
||||
|
||||
@ -67,7 +67,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
||||
+ bool rev = !skb->_nfct, upd = false;
|
||||
+ __be32 ip;
|
||||
|
||||
if (tc_skb_protocol(skb) != htons(ETH_P_IP))
|
||||
if (skb_protocol(skb, true) != htons(ETH_P_IP))
|
||||
- return;
|
||||
+ return false;
|
||||
|
||||
|
||||
@ -59,7 +59,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
@@ -445,45 +446,63 @@ static void sfp_upstream_clear(struct sf
|
||||
@@ -520,45 +521,63 @@ static void sfp_upstream_clear(struct sf
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -53,7 +53,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
--- a/drivers/net/phy/sfp-bus.c
|
||||
+++ b/drivers/net/phy/sfp-bus.c
|
||||
@@ -329,10 +329,19 @@ static void sfp_bus_release(struct kref
|
||||
@@ -404,10 +404,19 @@ static void sfp_bus_release(struct kref
|
||||
kfree(bus);
|
||||
}
|
||||
|
||||
@ -75,7 +75,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
static int sfp_register_bus(struct sfp_bus *bus)
|
||||
{
|
||||
@@ -348,11 +357,11 @@ static int sfp_register_bus(struct sfp_b
|
||||
@@ -423,11 +432,11 @@ static int sfp_register_bus(struct sfp_b
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
@ -88,7 +88,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -446,13 +455,12 @@ static void sfp_upstream_clear(struct sf
|
||||
@@ -521,13 +530,12 @@ static void sfp_upstream_clear(struct sf
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,7 +106,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
*
|
||||
* Returns: on success, a pointer to the sfp_bus structure,
|
||||
* %NULL if no SFP is specified,
|
||||
@@ -462,9 +470,7 @@ static void sfp_upstream_clear(struct sf
|
||||
@@ -537,9 +545,7 @@ static void sfp_upstream_clear(struct sf
|
||||
* %-ENOMEM if we failed to allocate the bus.
|
||||
* an error from the upstream's connect_phy() method.
|
||||
*/
|
||||
@ -117,7 +117,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
{
|
||||
struct fwnode_reference_args ref;
|
||||
struct sfp_bus *bus;
|
||||
@@ -482,7 +488,39 @@ struct sfp_bus *sfp_register_upstream_no
|
||||
@@ -557,7 +563,39 @@ struct sfp_bus *sfp_register_upstream_no
|
||||
if (!bus)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
@ -157,7 +157,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
bus->upstream_ops = ops;
|
||||
bus->upstream = upstream;
|
||||
|
||||
@@ -495,33 +533,33 @@ struct sfp_bus *sfp_register_upstream_no
|
||||
@@ -570,33 +608,33 @@ struct sfp_bus *sfp_register_upstream_no
|
||||
}
|
||||
rtnl_unlock();
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
--- a/drivers/net/phy/sfp-bus.c
|
||||
+++ b/drivers/net/phy/sfp-bus.c
|
||||
@@ -331,7 +331,7 @@ static void sfp_bus_release(struct kref
|
||||
@@ -406,7 +406,7 @@ static void sfp_bus_release(struct kref
|
||||
|
||||
/**
|
||||
* sfp_bus_put() - put a reference on the &struct sfp_bus
|
||||
|
||||
@ -1,111 +0,0 @@
|
||||
From 8df5dd55cef48c0769379e04dbc085a899b106d4 Mon Sep 17 00:00:00 2001
|
||||
From: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
Date: Fri, 8 Mar 2019 14:02:25 +0000
|
||||
Subject: [PATCH 640/660] net: sfp: add support for module quirks
|
||||
|
||||
Add support for applying module quirks to the list of supported
|
||||
ethtool link modes.
|
||||
|
||||
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
---
|
||||
drivers/net/phy/sfp-bus.c | 54 +++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 54 insertions(+)
|
||||
|
||||
--- a/drivers/net/phy/sfp-bus.c
|
||||
+++ b/drivers/net/phy/sfp-bus.c
|
||||
@@ -10,6 +10,12 @@
|
||||
|
||||
#include "sfp.h"
|
||||
|
||||
+struct sfp_quirk {
|
||||
+ const char *vendor;
|
||||
+ const char *part;
|
||||
+ void (*modes)(const struct sfp_eeprom_id *id, unsigned long *modes);
|
||||
+};
|
||||
+
|
||||
/**
|
||||
* struct sfp_bus - internal representation of a sfp bus
|
||||
*/
|
||||
@@ -22,6 +28,7 @@ struct sfp_bus {
|
||||
const struct sfp_socket_ops *socket_ops;
|
||||
struct device *sfp_dev;
|
||||
struct sfp *sfp;
|
||||
+ const struct sfp_quirk *sfp_quirk;
|
||||
|
||||
const struct sfp_upstream_ops *upstream_ops;
|
||||
void *upstream;
|
||||
@@ -31,6 +38,46 @@ struct sfp_bus {
|
||||
bool started;
|
||||
};
|
||||
|
||||
+static const struct sfp_quirk sfp_quirks[] = {
|
||||
+};
|
||||
+
|
||||
+static size_t sfp_strlen(const char *str, size_t maxlen)
|
||||
+{
|
||||
+ size_t size, i;
|
||||
+
|
||||
+ /* Trailing characters should be filled with space chars */
|
||||
+ for (i = 0, size = 0; i < maxlen; i++)
|
||||
+ if (str[i] != ' ')
|
||||
+ size = i + 1;
|
||||
+
|
||||
+ return size;
|
||||
+}
|
||||
+
|
||||
+static bool sfp_match(const char *qs, const char *str, size_t len)
|
||||
+{
|
||||
+ if (!qs)
|
||||
+ return true;
|
||||
+ if (strlen(qs) != len)
|
||||
+ return false;
|
||||
+ return !strncmp(qs, str, len);
|
||||
+}
|
||||
+
|
||||
+static const struct sfp_quirk *sfp_lookup_quirk(const struct sfp_eeprom_id *id)
|
||||
+{
|
||||
+ const struct sfp_quirk *q;
|
||||
+ unsigned int i;
|
||||
+ size_t vs, ps;
|
||||
+
|
||||
+ vs = sfp_strlen(id->base.vendor_name, ARRAY_SIZE(id->base.vendor_name));
|
||||
+ ps = sfp_strlen(id->base.vendor_pn, ARRAY_SIZE(id->base.vendor_pn));
|
||||
+
|
||||
+ for (i = 0, q = sfp_quirks; i < ARRAY_SIZE(sfp_quirks); i++, q++)
|
||||
+ if (sfp_match(q->vendor, id->base.vendor_name, vs) &&
|
||||
+ sfp_match(q->part, id->base.vendor_pn, ps))
|
||||
+ return q;
|
||||
+
|
||||
+ return NULL;
|
||||
+}
|
||||
/**
|
||||
* sfp_parse_port() - Parse the EEPROM base ID, setting the port type
|
||||
* @bus: a pointer to the &struct sfp_bus structure for the sfp module
|
||||
@@ -234,6 +281,9 @@ void sfp_parse_support(struct sfp_bus *b
|
||||
phylink_set(modes, 1000baseX_Full);
|
||||
}
|
||||
|
||||
+ if (bus->sfp_quirk)
|
||||
+ bus->sfp_quirk->modes(id, modes);
|
||||
+
|
||||
bitmap_or(support, support, modes, __ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
|
||||
phylink_set(support, Autoneg);
|
||||
@@ -610,6 +660,8 @@ int sfp_module_insert(struct sfp_bus *bu
|
||||
const struct sfp_upstream_ops *ops = sfp_get_upstream_ops(bus);
|
||||
int ret = 0;
|
||||
|
||||
+ bus->sfp_quirk = sfp_lookup_quirk(id);
|
||||
+
|
||||
if (ops && ops->module_insert)
|
||||
ret = ops->module_insert(bus->upstream, id);
|
||||
|
||||
@@ -623,6 +675,8 @@ void sfp_module_remove(struct sfp_bus *b
|
||||
|
||||
if (ops && ops->module_remove)
|
||||
ops->module_remove(bus->upstream);
|
||||
+
|
||||
+ bus->sfp_quirk = NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sfp_module_remove);
|
||||
|
||||
@ -1,52 +0,0 @@
|
||||
From ecaa542cfed078dbc356dadff0bad4b6a8e704a0 Mon Sep 17 00:00:00 2001
|
||||
From: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
Date: Fri, 17 May 2019 10:14:45 +0100
|
||||
Subject: [PATCH 641/660] net: sfp: add some quirks for GPON modules
|
||||
|
||||
Marc Micalizzi reports that Huawei MA5671A and Alcatel/Lucent G-010S-P
|
||||
modules are capable of 2500base-X, but incorrectly report their
|
||||
capabilities in the EEPROM. It seems rather common that GPON modules
|
||||
mis-report.
|
||||
|
||||
Let's fix these modules by adding some quirks.
|
||||
|
||||
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
---
|
||||
drivers/net/phy/sfp-bus.c | 25 +++++++++++++++++++++++++
|
||||
1 file changed, 25 insertions(+)
|
||||
|
||||
--- a/drivers/net/phy/sfp-bus.c
|
||||
+++ b/drivers/net/phy/sfp-bus.c
|
||||
@@ -38,7 +38,32 @@ struct sfp_bus {
|
||||
bool started;
|
||||
};
|
||||
|
||||
+static void sfp_quirk_2500basex(const struct sfp_eeprom_id *id,
|
||||
+ unsigned long *modes)
|
||||
+{
|
||||
+ phylink_set(modes, 2500baseX_Full);
|
||||
+}
|
||||
+
|
||||
static const struct sfp_quirk sfp_quirks[] = {
|
||||
+ {
|
||||
+ // Alcatel Lucent G-010S-P can operate at 2500base-X, but
|
||||
+ // incorrectly report 2500MBd NRZ in their EEPROM
|
||||
+ .vendor = "ALCATELLUCENT",
|
||||
+ .part = "G010SP",
|
||||
+ .modes = sfp_quirk_2500basex,
|
||||
+ }, {
|
||||
+ // Alcatel Lucent G-010S-A can operate at 2500base-X, but
|
||||
+ // report 3.2GBd NRZ in their EEPROM
|
||||
+ .vendor = "ALCATELLUCENT",
|
||||
+ .part = "3FE46541AA",
|
||||
+ .modes = sfp_quirk_2500basex,
|
||||
+ }, {
|
||||
+ // Huawei MA5671A can operate at 2500base-X, but report 1.2GBd
|
||||
+ // NRZ in their EEPROM
|
||||
+ .vendor = "HUAWEI",
|
||||
+ .part = "MA5671A",
|
||||
+ .modes = sfp_quirk_2500basex,
|
||||
+ },
|
||||
};
|
||||
|
||||
static size_t sfp_strlen(const char *str, size_t maxlen)
|
||||
@ -98,7 +98,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
||||
bool rev = !skb->_nfct, upd = false;
|
||||
__be32 ip;
|
||||
|
||||
- if (tc_skb_protocol(skb) != htons(ETH_P_IP))
|
||||
- if (skb_protocol(skb, true) != htons(ETH_P_IP))
|
||||
+ if (cake_skb_proto(skb) != htons(ETH_P_IP))
|
||||
return false;
|
||||
|
||||
@ -107,7 +107,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
||||
u16 *buf, buf_;
|
||||
u8 dscp;
|
||||
|
||||
- switch (tc_skb_protocol(skb)) {
|
||||
- switch (skb_protocol(skb, true)) {
|
||||
+ switch (cake_skb_proto(skb)) {
|
||||
case htons(ETH_P_IP):
|
||||
buf = skb_header_pointer(skb, offset, sizeof(buf_), &buf_);
|
||||
|
||||
@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
static const struct rt6_info ip6_blk_hole_entry_template = {
|
||||
.dst = {
|
||||
.__refcnt = ATOMIC_INIT(1),
|
||||
@@ -1044,6 +1058,7 @@ static const int fib6_prop[RTN_MAX + 1]
|
||||
@@ -1047,6 +1061,7 @@ static const int fib6_prop[RTN_MAX + 1]
|
||||
[RTN_BLACKHOLE] = -EINVAL,
|
||||
[RTN_UNREACHABLE] = -EHOSTUNREACH,
|
||||
[RTN_PROHIBIT] = -EACCES,
|
||||
@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
[RTN_THROW] = -EAGAIN,
|
||||
[RTN_NAT] = -EINVAL,
|
||||
[RTN_XRESOLVE] = -EINVAL,
|
||||
@@ -1081,6 +1096,10 @@ static void ip6_rt_init_dst_reject(struc
|
||||
@@ -1084,6 +1099,10 @@ static void ip6_rt_init_dst_reject(struc
|
||||
rt->dst.output = ip6_pkt_prohibit_out;
|
||||
rt->dst.input = ip6_pkt_prohibit;
|
||||
break;
|
||||
@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
case RTN_THROW:
|
||||
case RTN_UNREACHABLE:
|
||||
default:
|
||||
@@ -4416,6 +4435,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||
@@ -4419,6 +4438,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
||||
}
|
||||
|
||||
@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
/*
|
||||
* Allocate a dst for local (unicast / anycast) address.
|
||||
*/
|
||||
@@ -4896,7 +4926,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
@@ -4899,7 +4929,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
||||
rtm->rtm_type == RTN_BLACKHOLE ||
|
||||
rtm->rtm_type == RTN_PROHIBIT ||
|
||||
@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
cfg->fc_flags |= RTF_REJECT;
|
||||
|
||||
if (rtm->rtm_type == RTN_LOCAL)
|
||||
@@ -6016,6 +6047,8 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6019,6 +6050,8 @@ static int ip6_route_dev_notify(struct n
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
||||
@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||
#endif
|
||||
@@ -6027,6 +6060,7 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6030,6 +6063,7 @@ static int ip6_route_dev_notify(struct n
|
||||
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
|
||||
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
|
||||
#endif
|
||||
}
|
||||
@@ -6219,6 +6253,8 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6222,6 +6256,8 @@ static int __net_init ip6_route_net_init
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
net->ipv6.fib6_has_custom_rules = false;
|
||||
@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
|
||||
sizeof(*net->ipv6.ip6_prohibit_entry),
|
||||
GFP_KERNEL);
|
||||
@@ -6229,11 +6265,21 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6232,11 +6268,21 @@ static int __net_init ip6_route_net_init
|
||||
ip6_template_metrics, true);
|
||||
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
|
||||
|
||||
@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||
ip6_template_metrics, true);
|
||||
@@ -6257,6 +6303,8 @@ out:
|
||||
@@ -6260,6 +6306,8 @@ out:
|
||||
return ret;
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
out_ip6_prohibit_entry:
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
out_ip6_null_entry:
|
||||
@@ -6276,6 +6324,7 @@ static void __net_exit ip6_route_net_exi
|
||||
@@ -6279,6 +6327,7 @@ static void __net_exit ip6_route_net_exi
|
||||
kfree(net->ipv6.ip6_null_entry);
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||
#endif
|
||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||
@@ -6353,6 +6402,9 @@ void __init ip6_route_init_special_entri
|
||||
@@ -6356,6 +6405,9 @@ void __init ip6_route_init_special_entri
|
||||
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
|
||||
@ -7,10 +7,10 @@
|
||||
+ {QMI_FIXED_INTF(0x1c9e, 0x9b3c, 4)}, /* LONGSUNG_U9300 */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0191, 4)}, /* Quectel EG91 */
|
||||
{QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -381,6 +381,7 @@ static void option_instat_callback(struc
|
||||
@@ -382,6 +382,7 @@ static void option_instat_callback(struc
|
||||
* Mobidata, etc sell under their own brand names.
|
||||
*/
|
||||
#define LONGCHEER_VENDOR_ID 0x1c9e
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
/* 4G Systems products */
|
||||
/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
|
||||
@@ -571,6 +572,16 @@ static void option_instat_callback(struc
|
||||
@@ -572,6 +573,16 @@ static void option_instat_callback(struc
|
||||
/* Device needs ZLP */
|
||||
#define ZLP BIT(17)
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
|
||||
static const struct usb_device_id option_ids[] = {
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
|
||||
@@ -605,6 +616,8 @@ static const struct usb_device_id option
|
||||
@@ -606,6 +617,8 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
|
||||
.driver_info = RSVD(4) },
|
||||
|
||||
@ -60,9 +60,9 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
||||
struct dma_async_tx_descriptor *fsl_edma_prep_dma_cyclic(
|
||||
--- a/drivers/dma/fsl-edma.c
|
||||
+++ b/drivers/dma/fsl-edma.c
|
||||
@@ -46,6 +46,7 @@ static irqreturn_t fsl_edma_tx_handler(i
|
||||
@@ -53,6 +53,7 @@ static irqreturn_t fsl_edma_tx_handler(i
|
||||
}
|
||||
|
||||
spin_lock(&fsl_chan->vchan.lock);
|
||||
if (!fsl_chan->edesc->iscyclic) {
|
||||
+ fsl_edma_get_realcnt(fsl_chan);
|
||||
list_del(&fsl_chan->edesc->vdesc.node);
|
||||
|
||||
@ -70,7 +70,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
};
|
||||
--- a/drivers/dma/fsl-edma.c
|
||||
+++ b/drivers/dma/fsl-edma.c
|
||||
@@ -234,6 +234,13 @@ static struct fsl_edma_drvdata vf610_dat
|
||||
@@ -241,6 +241,13 @@ static struct fsl_edma_drvdata vf610_dat
|
||||
.setup_irq = fsl_edma_irq_init,
|
||||
};
|
||||
|
||||
@ -84,7 +84,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
static struct fsl_edma_drvdata imx7ulp_data = {
|
||||
.version = v3,
|
||||
.dmamuxs = 1,
|
||||
@@ -243,6 +250,7 @@ static struct fsl_edma_drvdata imx7ulp_d
|
||||
@@ -250,6 +257,7 @@ static struct fsl_edma_drvdata imx7ulp_d
|
||||
|
||||
static const struct of_device_id fsl_edma_dt_ids[] = {
|
||||
{ .compatible = "fsl,vf610-edma", .data = &vf610_data},
|
||||
|
||||
@ -292,7 +292,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
MVNETA_RX_BUF_SIZE(pp->pkt_size));
|
||||
mvneta_rxq_bm_disable(pp, rxq);
|
||||
mvneta_rxq_fill(pp, rxq, rxq->size);
|
||||
@@ -4700,7 +4705,7 @@ static int mvneta_probe(struct platform_
|
||||
@@ -4708,7 +4713,7 @@ static int mvneta_probe(struct platform_
|
||||
SET_NETDEV_DEV(dev, &pdev->dev);
|
||||
|
||||
pp->id = global_port_id++;
|
||||
|
||||
@ -300,7 +300,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static const struct ethtool_ops mvneta_eth_tool_ops = {
|
||||
@@ -4705,7 +4835,7 @@ static int mvneta_probe(struct platform_
|
||||
@@ -4713,7 +4843,7 @@ static int mvneta_probe(struct platform_
|
||||
SET_NETDEV_DEV(dev, &pdev->dev);
|
||||
|
||||
pp->id = global_port_id++;
|
||||
|
||||
@ -38,7 +38,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
mvreg_write(pp, MVNETA_ACC_MODE, MVNETA_ACC_MODE_EXT1);
|
||||
netdev_info(pp->dev, "fail to update MTU, fall back to software BM\n");
|
||||
}
|
||||
@@ -4976,7 +4976,6 @@ static int mvneta_probe(struct platform_
|
||||
@@ -4984,7 +4984,6 @@ static int mvneta_probe(struct platform_
|
||||
SET_NETDEV_DEV(dev, &pdev->dev);
|
||||
|
||||
pp->id = global_port_id++;
|
||||
@ -46,7 +46,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
/* Obtain access to BM resources if enabled and already initialized */
|
||||
bm_node = of_parse_phandle(dn, "buffer-manager", 0);
|
||||
@@ -5001,6 +5000,10 @@ static int mvneta_probe(struct platform_
|
||||
@@ -5009,6 +5008,10 @@ static int mvneta_probe(struct platform_
|
||||
}
|
||||
of_node_put(bm_node);
|
||||
|
||||
@ -57,7 +57,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
err = mvneta_init(&pdev->dev, pp);
|
||||
if (err < 0)
|
||||
goto err_netdev;
|
||||
@@ -5154,6 +5157,7 @@ static int mvneta_resume(struct device *
|
||||
@@ -5166,6 +5169,7 @@ static int mvneta_resume(struct device *
|
||||
err = mvneta_bm_port_init(pdev, pp);
|
||||
if (err < 0) {
|
||||
dev_info(&pdev->dev, "use SW buffer management\n");
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/usb/dwc2/platform.c
|
||||
+++ b/drivers/usb/dwc2/platform.c
|
||||
@@ -430,6 +430,12 @@ static int dwc2_driver_probe(struct plat
|
||||
@@ -431,6 +431,12 @@ static int dwc2_driver_probe(struct plat
|
||||
if (retval)
|
||||
return retval;
|
||||
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
From: QiuSimons
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
|
||||
index 8dabc6e29..d58c893a6 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
|
||||
@@ -125,6 +125,16 @@
|
||||
@@ -123,6 +123,16 @@
|
||||
opp-microvolt = <1300000>;
|
||||
clock-latency-ns = <40000>;
|
||||
};
|
||||
|
||||
@ -8,29 +8,27 @@ Signed-off-by: hmz007 <hmz007@gmail.com>
|
||||
drivers/net/usb/r8152.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
|
||||
index eb78f6d9390c..ec737fffcded 100644
|
||||
--- a/drivers/net/usb/r8152.c
|
||||
+++ b/drivers/net/usb/r8152.c
|
||||
@@ -37,6 +37,11 @@
|
||||
@@ -36,6 +36,11 @@
|
||||
#define DRIVER_DESC "Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"
|
||||
#define MODULENAME "r8152"
|
||||
|
||||
|
||||
+/* LED0: Activity, LED1: Link */
|
||||
+static int ledsel = 0x78;
|
||||
+module_param(ledsel, int, 0);
|
||||
+MODULE_PARM_DESC(ledsel, "Override default LED configuration");
|
||||
+
|
||||
#define R8152_PHY_ID 32
|
||||
|
||||
|
||||
#define PLA_IDR 0xc000
|
||||
@@ -4545,6 +4550,9 @@ static void r8153b_init(struct r8152 *tp)
|
||||
@@ -4606,6 +4611,9 @@ static void r8153b_init(struct r8152 *tp
|
||||
ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
|
||||
ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data);
|
||||
|
||||
|
||||
+ /* set customized led */
|
||||
+ ocp_write_word(tp, MCU_TYPE_PLA, PLA_LEDSEL, ledsel);
|
||||
+
|
||||
rtl_tally_reset(tp);
|
||||
|
||||
|
||||
tp->coalesce = 15000; /* 15 us */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user