KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-5.4 = .85
+LINUX_VERSION-5.4 = .86
-LINUX_KERNEL_HASH-5.4.85 = 1de3586d8e7a9a814726610745d80907a267590d2770ec1079ef2875c4984008
+LINUX_KERNEL_HASH-5.4.86 = eb36b5fc6ef7b953acba0a3e62d872e0330c4d34b38d58f5714493a4fe3b0e8b
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
+MODULE_ALIAS("platform:" DRIVER_NAME);
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
-@@ -1830,6 +1830,13 @@ config PIC32_DMT
+@@ -1832,6 +1832,13 @@ config PIC32_DMT
To compile this driver as a loadable module, choose M here.
The module will be called pic32-dmt.
Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: linux-mips@vger.kernel.org
-diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
-index b8884de89c81e1b444b218a15519556b4a374089..e56dd6c25d46336fcb9af21326f697d0c37aac1c 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
-@@ -538,11 +538,88 @@ static void __init check_kernel_sections_mem(void)
+@@ -538,11 +538,88 @@ static void __init check_kernel_sections
}
}
/*
* arch_mem_init - initialize memory management subsystem
-@@ -570,48 +647,12 @@ static void __init arch_mem_init(char **cmdline_p)
+@@ -570,48 +647,12 @@ static void __init arch_mem_init(char **
{
extern void plat_mem_setup(void);
uport->cons->cflag = 0;
}
/*
-@@ -2104,8 +2106,10 @@ uart_set_options(struct uart_port *port,
+@@ -2108,8 +2110,10 @@ uart_set_options(struct uart_port *port,
* Allow the setting of the UART parameters with a NULL console
* too:
*/
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -8511,8 +8511,6 @@ int alloc_contig_range(unsigned long sta
+@@ -8512,8 +8512,6 @@ int alloc_contig_range(unsigned long sta
/* Make sure the range is really isolated. */
if (test_pages_isolated(outer_start, end, false)) {
--- a/drivers/bluetooth/hci_h5.c
+++ b/drivers/bluetooth/hci_h5.c
-@@ -339,7 +339,8 @@ static void h5_handle_internal_rx(struct
+@@ -342,7 +342,8 @@ static void h5_handle_internal_rx(struct
h5_link_control(hu, conf_req, 3);
} else if (memcmp(data, conf_req, 2) == 0) {
h5_link_control(hu, conf_rsp, 2);
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
-@@ -3114,6 +3114,7 @@ static int __spi_validate_bits_per_word(
+@@ -3115,6 +3115,7 @@ static int __spi_validate_bits_per_word(
*/
int spi_setup(struct spi_device *spi)
{
unsigned bad_bits, ugly_bits;
int status;
-@@ -3131,6 +3132,14 @@ int spi_setup(struct spi_device *spi)
+@@ -3132,6 +3133,14 @@ int spi_setup(struct spi_device *spi)
(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL |
SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL)))
return -EINVAL;
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
-@@ -1792,15 +1792,6 @@ static int of_spi_parse_dt(struct spi_co
+@@ -1793,15 +1793,6 @@ static int of_spi_parse_dt(struct spi_co
}
spi->chip_select = value;
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
-@@ -3126,8 +3126,8 @@ int spi_setup(struct spi_device *spi)
+@@ -3127,8 +3127,8 @@ int spi_setup(struct spi_device *spi)
if (ctlr->use_gpio_descriptors && ctlr->cs_gpiods &&
ctlr->cs_gpiods[spi->chip_select] && !(spi->mode & SPI_CS_HIGH)) {
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
-@@ -1655,6 +1655,15 @@ config WDT_MTX1
+@@ -1657,6 +1657,15 @@ config WDT_MTX1
Hardware driver for the MTX-1 boards. This is a watchdog timer that
will reboot the machine after a 100 seconds timer expired.
#include <linux/clockchips.h>
#include <linux/clocksource.h>
#include <linux/interrupt.h>
-@@ -910,6 +911,16 @@ static void arch_timer_of_configure_rate
+@@ -919,6 +920,16 @@ static void arch_timer_of_configure_rate
if (of_property_read_u32(np, "clock-frequency", &arch_timer_rate))
arch_timer_rate = rate;
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
-@@ -353,7 +353,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(
+@@ -349,7 +349,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(
# Linker scripts preprocessor (.lds.S -> .lds)
# ---------------------------------------------------------------------------
quiet_cmd_cpp_lds_S = LDS $@
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -6883,7 +6883,7 @@ static void __ref alloc_node_mem_map(str
+@@ -6884,7 +6884,7 @@ static void __ref alloc_node_mem_map(str
mem_map = NODE_DATA(0)->node_mem_map;
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
drivers/rtc/rtc-rs5c372.c | 48 ++++++++++++++++++++++++++++++++++-----
1 file changed, 42 insertions(+), 6 deletions(-)
-diff --git a/drivers/rtc/rtc-rs5c372.c b/drivers/rtc/rtc-rs5c372.c
-index 3bd6eaa0d..94b778c6e 100644
--- a/drivers/rtc/rtc-rs5c372.c
+++ b/drivers/rtc/rtc-rs5c372.c
-@@ -393,7 +393,9 @@ static int rs5c_read_alarm(struct device *dev, struct rtc_wkalrm *t)
+@@ -393,7 +393,9 @@ static int rs5c_read_alarm(struct device
{
struct i2c_client *client = to_i2c_client(dev);
struct rs5c372 *rs5c = i2c_get_clientdata(client);
status = rs5c_get_regs(rs5c);
if (status < 0)
-@@ -403,6 +405,30 @@ static int rs5c_read_alarm(struct device *dev, struct rtc_wkalrm *t)
+@@ -403,6 +405,30 @@ static int rs5c_read_alarm(struct device
t->time.tm_sec = 0;
t->time.tm_min = bcd2bin(rs5c->regs[RS5C_REG_ALARM_A_MIN] & 0x7f);
t->time.tm_hour = rs5c_reg2hr(rs5c, rs5c->regs[RS5C_REG_ALARM_A_HOURS]);
/* ... and status */
t->enabled = !!(rs5c->regs[RS5C_REG_CTRL1] & RS5C_CTRL1_AALE);
-@@ -417,12 +443,20 @@ static int rs5c_set_alarm(struct device *dev, struct rtc_wkalrm *t)
+@@ -417,12 +443,20 @@ static int rs5c_set_alarm(struct device
struct rs5c372 *rs5c = i2c_get_clientdata(client);
int status, addr, i;
unsigned char buf[3];
/* REVISIT: round up tm_sec */
-@@ -443,7 +477,9 @@ static int rs5c_set_alarm(struct device *dev, struct rtc_wkalrm *t)
+@@ -443,7 +477,9 @@ static int rs5c_set_alarm(struct device
/* set alarm */
buf[0] = bin2bcd(t->time.tm_min);
buf[1] = rs5c_hr2reg(rs5c, t->time.tm_hour);
drivers/rtc/rtc-rs5c372.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
-diff --git a/drivers/rtc/rtc-rs5c372.c b/drivers/rtc/rtc-rs5c372.c
-index 94b778c6e..76775d66e 100644
--- a/drivers/rtc/rtc-rs5c372.c
+++ b/drivers/rtc/rtc-rs5c372.c
-@@ -654,6 +654,7 @@ static int rs5c372_probe(struct i2c_client *client,
+@@ -654,6 +654,7 @@ static int rs5c372_probe(struct i2c_clie
int err = 0;
int smbus_mode = 0;
struct rs5c372 *rs5c372;
dev_dbg(&client->dev, "%s\n", __func__);
-@@ -689,6 +690,12 @@ static int rs5c372_probe(struct i2c_client *client,
+@@ -689,6 +690,12 @@ static int rs5c372_probe(struct i2c_clie
else
rs5c372->type = id->driver_data;
/* we read registers 0x0f then 0x00-0x0f; skip the first one */
rs5c372->regs = &rs5c372->buf[1];
rs5c372->smbus = smbus_mode;
-@@ -722,6 +729,8 @@ static int rs5c372_probe(struct i2c_client *client,
+@@ -722,6 +729,8 @@ static int rs5c372_probe(struct i2c_clie
goto exit;
}
/* if the oscillator lost power and no other software (like
* the bootloader) set it up, do it here.
*
-@@ -748,6 +757,10 @@ static int rs5c372_probe(struct i2c_client *client,
+@@ -748,6 +757,10 @@ static int rs5c372_probe(struct i2c_clie
);
/* REVISIT use client->irq to register alarm irq ... */
rs5c372->rtc = devm_rtc_device_register(&client->dev,
rs5c372_driver.driver.name,
&rs5c372_rtc_ops, THIS_MODULE);
-@@ -761,6 +774,9 @@ static int rs5c372_probe(struct i2c_client *client,
+@@ -761,6 +774,9 @@ static int rs5c372_probe(struct i2c_clie
if (err)
goto exit;
+++ /dev/null
-From: Sven Eckelmann <sven@narfation.org>
-Date: Sun, 22 Nov 2020 00:48:33 +0100
-Subject: [PATCH RFC] mtd: parser: cmdline: Fix parsing of part-names with colons
-
-Some devices (especially QCA ones) are already using hardcoded partition
-names with colons in it. The OpenMesh A62 for example provides following
-mtd relevant information via cmdline:
-
- root=31:11 mtdparts=spi0.0:256k(0:SBL1),128k(0:MIBIB),384k(0:QSEE),64k(0:CDT),64k(0:DDRPARAMS),64k(0:APPSBLENV),512k(0:APPSBL),64k(0:ART),64k(custom),64k(0:KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive) rootfsname=rootfs rootwait
-
-The change to split only on the last colon between mtd-id and partitions
-will cause newpart to see following string for the first partition:
-
- KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive)
-
-Such a partition list cannot be parsed and thus the device fails to boot.
-
-Avoid this behavior by making sure that the start of the first part-name
-("(") will also be the last byte the mtd-id split algorithm is using for
-its colon search.
-
-Forwarded: https://patchwork.ozlabs.org/project/linux-mtd/patch/20201122001533.985641-1-sven@narfation.org/
-Fixes: eb13fa022741 ("mtd: parser: cmdline: Support MTD names containing one or more colons")
-Signed-off-by: Sven Eckelmann <sven@narfation.org>
-
---- a/drivers/mtd/parsers/cmdlinepart.c
-+++ b/drivers/mtd/parsers/cmdlinepart.c
-@@ -218,7 +218,7 @@ static int mtdpart_setup_real(char *s)
- struct cmdline_mtd_partition *this_mtd;
- struct mtd_partition *parts;
- int mtd_id_len, num_parts;
-- char *p, *mtd_id, *semicol;
-+ char *p, *mtd_id, *semicol, *open_parenth;
-
- /*
- * Replace the first ';' by a NULL char so strrchr can work
-@@ -228,6 +228,13 @@ static int mtdpart_setup_real(char *s)
- if (semicol)
- *semicol = '\0';
-
-+ /* make sure that part-names with ":" will not be handled as
-+ * part of the mtd-id with an ":"
-+ */
-+ open_parenth = strchr(s, '(');
-+ if (open_parenth)
-+ *open_parenth = '\0';
-+
- mtd_id = s;
-
- /*
-@@ -237,6 +244,10 @@ static int mtdpart_setup_real(char *s)
- */
- p = strrchr(s, ':');
-
-+ /* Restore the '(' now. */
-+ if (open_parenth)
-+ *open_parenth = '(';
-+
- /* Restore the ';' now. */
- if (semicol)
- *semicol = ';';
+}
--- a/fs/jffs2/super.c
+++ b/fs/jffs2/super.c
-@@ -360,14 +360,41 @@ static int __init init_jffs2_fs(void)
+@@ -377,14 +377,41 @@ static int __init init_jffs2_fs(void)
BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68);
BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);
return -ENOMEM;
@@ -818,6 +846,7 @@ copy_entries_to_user(unsigned int total_
- const struct xt_table_info *private = table->private;
+ const struct xt_table_info *private = xt_table_get_private_protected(table);
int ret = 0;
const void *loc_cpu_entry;
+ u8 flags;
/* Initialization */
+ WARN_ON(!(table->valid_hooks & (1 << hook)));
+ local_bh_disable();
-+ private = READ_ONCE(table->private); /* Address dependency. */
++ private = rcu_access_pointer(table->private);
+ cpu = smp_processor_id();
+ table_base = private->entries;
+
- WARN_ON(!(table->valid_hooks & (1 << hook)));
- local_bh_disable();
addend = xt_write_recseq_begin();
-- private = READ_ONCE(table->private); /* Address dependency. */
+- private = rcu_access_pointer(table->private);
- cpu = smp_processor_id();
- table_base = private->entries;
jumpstack = (struct ipt_entry **)private->jumpstack[cpu];
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
-@@ -616,6 +616,14 @@ config CRYPTO_DEV_QCE
+@@ -617,6 +617,14 @@ config CRYPTO_DEV_QCE
tristate "Qualcomm crypto engine accelerator"
depends on ARCH_QCOM || COMPILE_TEST
depends on HAS_IOMEM
select CRYPTO_AES
select CRYPTO_LIB_DES
select CRYPTO_ECB
-@@ -623,10 +631,57 @@ config CRYPTO_DEV_QCE
+@@ -624,10 +632,57 @@ config CRYPTO_DEV_QCE
select CRYPTO_XTS
select CRYPTO_CTR
select CRYPTO_BLKCIPHER
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
-@@ -683,6 +683,29 @@ choice
+@@ -684,6 +684,29 @@ choice
endchoice
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -843,6 +843,22 @@ dtb-$(CONFIG_ARCH_QCOM) += \
+@@ -842,7 +842,23 @@ dtb-$(CONFIG_ARCH_QCOM) += \
+ qcom-ipq4019-ap.dk04.1-c3.dtb \
qcom-ipq4019-ap.dk07.1-c1.dtb \
qcom-ipq4019-ap.dk07.1-c2.dtb \
+ qcom-ipq8062-wg2600hp3.dtb \
+ { .compatible = "qcom,msm8960", .data = &match_data_krait },
{},
};
-
+ MODULE_DEVICE_TABLE(of, qcom_cpufreq_match_list);
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -1836,6 +1836,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_MANGL
+@@ -1838,6 +1838,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_MANGL
Only command line ATAG will be processed, the rest of the ATAGs
sent by bootloader will be ignored.
ethernet@0,4 {
compatible = "fsl,enetc-ptp";
reg = <0x000400 0 0 0 0>;
- clocks = <&clockgen 4 0>;
+ clocks = <&clockgen 2 3>;
little-endian;
};
+ switch@0,5 {
--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
@@ -774,30 +774,39 @@
- clocks = <&clockgen 4 0>;
+ clocks = <&clockgen 2 3>;
little-endian;
};
- switch@0,5 {
--- a/drivers/bus/fsl-mc/fsl-mc-allocator.c
+++ b/drivers/bus/fsl-mc/fsl-mc-allocator.c
-@@ -547,6 +547,7 @@ void fsl_mc_init_all_resource_pools(stru
+@@ -549,6 +549,7 @@ void fsl_mc_init_all_resource_pools(stru
mutex_init(&res_pool->mutex);
}
}
static void fsl_mc_cleanup_resource_pool(struct fsl_mc_device *mc_bus_dev,
enum fsl_mc_pool_type pool_type)
-@@ -571,6 +572,7 @@ void fsl_mc_cleanup_all_resource_pools(s
+@@ -573,6 +574,7 @@ void fsl_mc_cleanup_all_resource_pools(s
for (pool_type = 0; pool_type < FSL_MC_NUM_POOL_TYPES; pool_type++)
fsl_mc_cleanup_resource_pool(mc_bus_dev, pool_type);
}
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
-@@ -1802,13 +1802,8 @@ static int of_spi_parse_dt(struct spi_co
+@@ -1803,13 +1803,8 @@ static int of_spi_parse_dt(struct spi_co
spi->mode |= SPI_CS_HIGH;
/* Device speed */
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
-@@ -491,7 +491,7 @@ static int spinand_mtd_read(struct mtd_i
+@@ -495,7 +495,7 @@ static int spinand_mtd_read(struct mtd_i
int ret = 0;
if (ops->mode != MTD_OPS_RAW && spinand->eccinfo.ooblayout)
mutex_lock(&spinand->lock);
-@@ -539,7 +539,7 @@ static int spinand_mtd_write(struct mtd_
+@@ -543,7 +543,7 @@ static int spinand_mtd_write(struct mtd_
int ret = 0;
if (ops->mode != MTD_OPS_RAW && mtd->ooblayout)
}
netif_tx_start_all_queues(port->dev);
-@@ -5125,8 +5129,11 @@ static void mvpp2_mac_config(struct phyl
+@@ -5126,8 +5130,11 @@ static void mvpp2_mac_config(struct phyl
mvpp2_port_enable(port);
}
+ int speed, int duplex,
+ bool tx_pause, bool rx_pause)
{
- struct net_device *dev = to_net_dev(config->dev);
- struct mvpp2_port *port = netdev_priv(dev);
+ struct mvpp2_port *port = mvpp2_phylink_to_port(config);
+ u32 val;
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -449,9 +449,10 @@ static void mtk_mac_link_down(struct phy
drivers/gpio/gpio-mvebu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
-index d2b999c7987f1..3c9f4fb3d5a28 100644
--- a/drivers/gpio/gpio-mvebu.c
+++ b/drivers/gpio/gpio-mvebu.c
-@@ -1245,7 +1245,7 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
+@@ -1253,7 +1253,7 @@ static int mvebu_gpio_probe(struct platf
* pins.
*/
for (i = 0; i < 4; i++) {