kernel: bump 4.14 to 4.14.169

Refreshed all patches.

Fixes:
- CVE-2019-14896
- CVE-2019-14897

Remove upstreamed:
- 023-0007-crypto-crypto4xx-Fix-wrong-ppc4xx_trng_probe-ppc4xx_.patch
- 001-4.22-01-MIPS-BCM63XX-drop-unused-and-broken-DSP-platform-dev.patch

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
Koen Vandeputte 2020-02-04 12:04:59 +01:00
parent 536adedcd3
commit 1b310cff0f
27 changed files with 80 additions and 327 deletions

View File

@ -6,10 +6,10 @@ ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif endif
LINUX_VERSION-4.14 = .167 LINUX_VERSION-4.14 = .169
LINUX_VERSION-4.19 = .98 LINUX_VERSION-4.19 = .98
LINUX_KERNEL_HASH-4.14.167 = 2bb78fc7a902faf4f5dad47fdbc2f4bf3df3cf9b41f408e7260f36656659fe43 LINUX_KERNEL_HASH-4.14.169 = d88ea97993c56b1fa0b0a05061bcde476c6be4fc3bb2de8bd97a8f8ff7278249
LINUX_KERNEL_HASH-4.19.98 = 91feb13bc22d60d69596ab1d01dfecbec13ef70f00c89a483e0733af94dd2937 LINUX_KERNEL_HASH-4.19.98 = 91feb13bc22d60d69596ab1d01dfecbec13ef70f00c89a483e0733af94dd2937
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))

View File

@ -1,39 +0,0 @@
From 6e88098ca43a3d80ae86908f7badba683c8a0d84 Mon Sep 17 00:00:00 2001
From: Corentin Labbe <clabbe@baylibre.com>
Date: Wed, 23 Jan 2019 11:24:18 +0000
Subject: [PATCH 07/15] crypto: crypto4xx - Fix wrong
ppc4xx_trng_probe()/ppc4xx_trng_remove() arguments
When building without CONFIG_HW_RANDOM_PPC4XX, I hit the following build failure:
drivers/crypto/amcc/crypto4xx_core.c: In function 'crypto4xx_probe':
drivers/crypto/amcc/crypto4xx_core.c:1407:20: error: passing argument 1 of 'ppc4xx_trng_probe' from incompatible pointer type [-Werror=incompatible-pointer-types]
In file included from drivers/crypto/amcc/crypto4xx_core.c:50:0:
drivers/crypto/amcc/crypto4xx_trng.h:28:20: note: expected 'struct crypto4xx_device *' but argument is of type 'struct crypto4xx_core_device *'
drivers/crypto/amcc/crypto4xx_core.c: In function 'crypto4xx_remove':
drivers/crypto/amcc/crypto4xx_core.c:1434:21: error: passing argument 1 of 'ppc4xx_trng_remove' from incompatible pointer type [-Werror=incompatible-pointer-types]
In file included from drivers/crypto/amcc/crypto4xx_core.c:50:0:
drivers/crypto/amcc/crypto4xx_trng.h:30:20: note: expected 'struct crypto4xx_device *' but argument is of type 'struct crypto4xx_core_device *'
This patch fix the needed argument of ppc4xx_trng_probe()/ppc4xx_trng_remove() in that case.
Fixes: 5343e674f32f ("crypto4xx: integrate ppc4xx-rng into crypto4xx")
Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
---
drivers/crypto/amcc/crypto4xx_trng.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/drivers/crypto/amcc/crypto4xx_trng.h
+++ b/drivers/crypto/amcc/crypto4xx_trng.h
@@ -26,9 +26,9 @@ void ppc4xx_trng_probe(struct crypto4xx_
void ppc4xx_trng_remove(struct crypto4xx_core_device *core_dev);
#else
static inline void ppc4xx_trng_probe(
- struct crypto4xx_device *dev __maybe_unused) { }
+ struct crypto4xx_core_device *dev __maybe_unused) { }
static inline void ppc4xx_trng_remove(
- struct crypto4xx_device *dev __maybe_unused) { }
+ struct crypto4xx_core_device *dev __maybe_unused) { }
#endif
#endif

View File

@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
--- a/drivers/mtd/spi-nor/spi-nor.c --- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -1222,6 +1222,18 @@ static const struct flash_info *spi_nor_ @@ -1226,6 +1226,18 @@ static const struct flash_info *spi_nor_
} }
dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n", dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n",
id[0], id[1], id[2]); id[0], id[1], id[2]);

View File

@ -1,203 +0,0 @@
From 51559154375fff4a94bbbc249fdd9248a80827b3 Mon Sep 17 00:00:00 2001
From: Jonas Gorski <jonas.gorski@gmail.com>
Date: Tue, 18 Dec 2018 10:19:02 +0100
Subject: [PATCH] MIPS: BCM63XX: drop unused and broken DSP platform device
Trying to register the DSP platform device results in a null pointer
access:
[ 0.124184] CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 804e305c, ra == 804e6f20
[ 0.135208] Oops[#1]:
[ 0.137514] CPU: 0 PID: 1 Comm: swapper Not tainted 4.14.87
...
[ 0.197117] epc : 804e305c bcm63xx_dsp_register+0x80/0xa4
[ 0.202838] ra : 804e6f20 board_register_devices+0x258/0x390
...
This happens because it tries to copy the passed platform data over the
platform_device's unpopulated platform_data.
Since this code has been broken since its submission, no driver was ever
submitted for it, and apparently nobody was using it, just remove it
instead of trying to fix it.
Fixes: e7300d04bd08 ("MIPS: BCM63xx: Add support for the Broadcom BCM63xx family of SOCs.")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
---
arch/mips/bcm63xx/Makefile | 6 +--
arch/mips/bcm63xx/boards/board_bcm963xx.c | 20 --------
arch/mips/bcm63xx/dev-dsp.c | 56 ----------------------
.../include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h | 14 ------
.../mips/include/asm/mach-bcm63xx/board_bcm963xx.h | 5 --
5 files changed, 3 insertions(+), 98 deletions(-)
delete mode 100644 arch/mips/bcm63xx/dev-dsp.c
delete mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h
--- a/arch/mips/bcm63xx/Makefile
+++ b/arch/mips/bcm63xx/Makefile
@@ -1,8 +1,8 @@
# SPDX-License-Identifier: GPL-2.0
obj-y += clk.o cpu.o cs.o gpio.o irq.o nvram.o prom.o reset.o \
- setup.o timer.o dev-dsp.o dev-enet.o dev-flash.o \
- dev-pcmcia.o dev-rng.o dev-spi.o dev-hsspi.o dev-uart.o \
- dev-wdt.o dev-usb-usbd.o
+ setup.o timer.o dev-enet.o dev-flash.o dev-pcmcia.o \
+ dev-rng.o dev-spi.o dev-hsspi.o dev-uart.o dev-wdt.o \
+ dev-usb-usbd.o
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-y += boards/
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -23,7 +23,6 @@
#include <bcm63xx_nvram.h>
#include <bcm63xx_dev_pci.h>
#include <bcm63xx_dev_enet.h>
-#include <bcm63xx_dev_dsp.h>
#include <bcm63xx_dev_flash.h>
#include <bcm63xx_dev_hsspi.h>
#include <bcm63xx_dev_pcmcia.h>
@@ -289,14 +288,6 @@ static struct board_info __initdata boar
.has_pccard = 1,
.has_ehci0 = 1,
- .has_dsp = 1,
- .dsp = {
- .gpio_rst = 6,
- .gpio_int = 34,
- .cs = 2,
- .ext_irq = 2,
- },
-
.leds = {
{
.name = "adsl-fail",
@@ -401,14 +392,6 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
- .has_dsp = 1,
- .dsp = {
- .gpio_rst = 6,
- .gpio_int = 34,
- .ext_irq = 2,
- .cs = 2,
- },
-
.leds = {
{
.name = "adsl-fail",
@@ -898,9 +881,6 @@ int __init board_register_devices(void)
if (board.has_usbd)
bcm63xx_usbd_register(&board.usbd);
- if (board.has_dsp)
- bcm63xx_dsp_register(&board.dsp);
-
/* Generate MAC address for WLAN and register our SPROM,
* do this after registering enet devices
*/
--- a/arch/mips/bcm63xx/dev-dsp.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Broadcom BCM63xx VoIP DSP registration
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 2009 Florian Fainelli <florian@openwrt.org>
- */
-
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/platform_device.h>
-
-#include <bcm63xx_cpu.h>
-#include <bcm63xx_dev_dsp.h>
-#include <bcm63xx_regs.h>
-#include <bcm63xx_io.h>
-
-static struct resource voip_dsp_resources[] = {
- {
- .start = -1, /* filled at runtime */
- .end = -1, /* filled at runtime */
- .flags = IORESOURCE_MEM,
- },
- {
- .start = -1, /* filled at runtime */
- .flags = IORESOURCE_IRQ,
- },
-};
-
-static struct platform_device bcm63xx_voip_dsp_device = {
- .name = "bcm63xx-voip-dsp",
- .id = -1,
- .num_resources = ARRAY_SIZE(voip_dsp_resources),
- .resource = voip_dsp_resources,
-};
-
-int __init bcm63xx_dsp_register(const struct bcm63xx_dsp_platform_data *pd)
-{
- struct bcm63xx_dsp_platform_data *dpd;
- u32 val;
-
- /* Get the memory window */
- val = bcm_mpi_readl(MPI_CSBASE_REG(pd->cs - 1));
- val &= MPI_CSBASE_BASE_MASK;
- voip_dsp_resources[0].start = val;
- voip_dsp_resources[0].end = val + 0xFFFFFFF;
- voip_dsp_resources[1].start = pd->ext_irq;
-
- /* copy given platform data */
- dpd = bcm63xx_voip_dsp_device.dev.platform_data;
- memcpy(dpd, pd, sizeof (*pd));
-
- return platform_device_register(&bcm63xx_voip_dsp_device);
-}
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __BCM63XX_DSP_H
-#define __BCM63XX_DSP_H
-
-struct bcm63xx_dsp_platform_data {
- unsigned gpio_rst;
- unsigned gpio_int;
- unsigned cs;
- unsigned ext_irq;
-};
-
-int __init bcm63xx_dsp_register(const struct bcm63xx_dsp_platform_data *pd);
-
-#endif /* __BCM63XX_DSP_H */
--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
@@ -7,7 +7,6 @@
#include <linux/leds.h>
#include <bcm63xx_dev_enet.h>
#include <bcm63xx_dev_usb_usbd.h>
-#include <bcm63xx_dev_dsp.h>
/*
* flash mapping
@@ -31,7 +30,6 @@ struct board_info {
unsigned int has_ohci0:1;
unsigned int has_ehci0:1;
unsigned int has_usbd:1;
- unsigned int has_dsp:1;
unsigned int has_uart0:1;
unsigned int has_uart1:1;
@@ -43,9 +41,6 @@ struct board_info {
/* USB config */
struct bcm63xx_usbd_platform_data usbd;
- /* DSP config */
- struct bcm63xx_dsp_platform_data dsp;
-
/* GPIO LEDs */
struct gpio_led leds[5];

View File

@ -80,11 +80,9 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
net/netfilter/xt_connmark.c | 19 +++++++++++++++++-- net/netfilter/xt_connmark.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-) 1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/net/netfilter/xt_connmark.c b/net/netfilter/xt_connmark.c
index ec377cc6a369..823d925b3aaf 100644
--- a/net/netfilter/xt_connmark.c --- a/net/netfilter/xt_connmark.c
+++ b/net/netfilter/xt_connmark.c +++ b/net/netfilter/xt_connmark.c
@@ -42,6 +42,7 @@ connmark_tg(struct sk_buff *skb, const struct xt_action_param *par) @@ -42,6 +42,7 @@ connmark_tg(struct sk_buff *skb, const s
enum ip_conntrack_info ctinfo; enum ip_conntrack_info ctinfo;
struct nf_conn *ct; struct nf_conn *ct;
u_int32_t newmark; u_int32_t newmark;
@ -92,7 +90,7 @@ index ec377cc6a369..823d925b3aaf 100644
ct = nf_ct_get(skb, &ctinfo); ct = nf_ct_get(skb, &ctinfo);
if (ct == NULL) if (ct == NULL)
@@ -49,7 +50,21 @@ connmark_tg(struct sk_buff *skb, const struct xt_action_param *par) @@ -49,7 +50,21 @@ connmark_tg(struct sk_buff *skb, const s
switch (info->mode) { switch (info->mode) {
case XT_CONNMARK_SET: case XT_CONNMARK_SET:
@ -115,7 +113,7 @@ index ec377cc6a369..823d925b3aaf 100644
if (ct->mark != newmark) { if (ct->mark != newmark) {
ct->mark = newmark; ct->mark = newmark;
nf_conntrack_event_cache(IPCT_MARK, ct); nf_conntrack_event_cache(IPCT_MARK, ct);
@@ -57,7 +72,7 @@ connmark_tg(struct sk_buff *skb, const struct xt_action_param *par) @@ -57,7 +72,7 @@ connmark_tg(struct sk_buff *skb, const s
break; break;
case XT_CONNMARK_SAVE: case XT_CONNMARK_SAVE:
newmark = (ct->mark & ~info->ctmask) ^ newmark = (ct->mark & ~info->ctmask) ^
@ -124,6 +122,3 @@ index ec377cc6a369..823d925b3aaf 100644
if (ct->mark != newmark) { if (ct->mark != newmark) {
ct->mark = newmark; ct->mark = newmark;
nf_conntrack_event_cache(IPCT_MARK, ct); nf_conntrack_event_cache(IPCT_MARK, ct);
--
2.21.0 (Apple Git-122.2)

View File

@ -15,7 +15,7 @@
--- a/drivers/net/phy/phy_device.c --- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c
@@ -1461,6 +1461,9 @@ int genphy_update_link(struct phy_device @@ -1462,6 +1462,9 @@ int genphy_update_link(struct phy_device
{ {
int status; int status;

View File

@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#define PACKET_FANOUT_LB 1 #define PACKET_FANOUT_LB 1
--- a/net/packet/af_packet.c --- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c +++ b/net/packet/af_packet.c
@@ -1830,6 +1830,7 @@ static int packet_rcv_spkt(struct sk_buf @@ -1836,6 +1836,7 @@ static int packet_rcv_spkt(struct sk_buf
{ {
struct sock *sk; struct sock *sk;
struct sockaddr_pkt *spkt; struct sockaddr_pkt *spkt;
@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* /*
* When we registered the protocol we saved the socket in the data * When we registered the protocol we saved the socket in the data
@@ -1837,6 +1838,7 @@ static int packet_rcv_spkt(struct sk_buf @@ -1843,6 +1844,7 @@ static int packet_rcv_spkt(struct sk_buf
*/ */
sk = pt->af_packet_priv; sk = pt->af_packet_priv;
@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* /*
* Yank back the headers [hope the device set this * Yank back the headers [hope the device set this
@@ -1849,7 +1851,7 @@ static int packet_rcv_spkt(struct sk_buf @@ -1855,7 +1857,7 @@ static int packet_rcv_spkt(struct sk_buf
* so that this procedure is noop. * so that this procedure is noop.
*/ */
@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
goto out; goto out;
if (!net_eq(dev_net(dev), sock_net(sk))) if (!net_eq(dev_net(dev), sock_net(sk)))
@@ -2076,12 +2078,12 @@ static int packet_rcv(struct sk_buff *sk @@ -2082,12 +2084,12 @@ static int packet_rcv(struct sk_buff *sk
unsigned int snaplen, res; unsigned int snaplen, res;
bool is_drop_n_account = false; bool is_drop_n_account = false;
@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk))) if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop; goto drop;
@@ -2207,12 +2209,12 @@ static int tpacket_rcv(struct sk_buff *s @@ -2213,12 +2215,12 @@ static int tpacket_rcv(struct sk_buff *s
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk))) if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop; goto drop;
@@ -3295,6 +3297,7 @@ static int packet_create(struct net *net @@ -3301,6 +3303,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock); mutex_init(&po->pg_vec_lock);
po->rollover = NULL; po->rollover = NULL;
po->prot_hook.func = packet_rcv; po->prot_hook.func = packet_rcv;
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (sock->type == SOCK_PACKET) if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt; po->prot_hook.func = packet_rcv_spkt;
@@ -3908,6 +3911,16 @@ packet_setsockopt(struct socket *sock, i @@ -3923,6 +3926,16 @@ packet_setsockopt(struct socket *sock, i
po->xmit = val ? packet_direct_xmit : dev_queue_xmit; po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
return 0; return 0;
} }
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
default: default:
return -ENOPROTOOPT; return -ENOPROTOOPT;
} }
@@ -3960,6 +3973,13 @@ static int packet_getsockopt(struct sock @@ -3975,6 +3988,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR: case PACKET_VNET_HDR:
val = po->has_vnet_hdr; val = po->has_vnet_hdr;
break; break;

View File

@ -350,7 +350,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
memcpy(p->name, u->name, sizeof(u->name)); memcpy(p->name, u->name, sizeof(u->name));
} }
@@ -1922,6 +2084,15 @@ static int ip6_tnl_validate(struct nlatt @@ -1920,6 +2082,15 @@ static int ip6_tnl_validate(struct nlatt
return 0; return 0;
} }
@ -366,7 +366,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
static void ip6_tnl_netlink_parms(struct nlattr *data[], static void ip6_tnl_netlink_parms(struct nlattr *data[],
struct __ip6_tnl_parm *parms) struct __ip6_tnl_parm *parms)
{ {
@@ -1959,6 +2130,46 @@ static void ip6_tnl_netlink_parms(struct @@ -1957,6 +2128,46 @@ static void ip6_tnl_netlink_parms(struct
if (data[IFLA_IPTUN_FWMARK]) if (data[IFLA_IPTUN_FWMARK])
parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]); parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
@ -413,7 +413,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
} }
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[], static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
@@ -2074,6 +2285,12 @@ static void ip6_tnl_dellink(struct net_d @@ -2072,6 +2283,12 @@ static void ip6_tnl_dellink(struct net_d
static size_t ip6_tnl_get_size(const struct net_device *dev) static size_t ip6_tnl_get_size(const struct net_device *dev)
{ {
@ -426,7 +426,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
return return
/* IFLA_IPTUN_LINK */ /* IFLA_IPTUN_LINK */
nla_total_size(4) + nla_total_size(4) +
@@ -2103,6 +2320,24 @@ static size_t ip6_tnl_get_size(const str @@ -2101,6 +2318,24 @@ static size_t ip6_tnl_get_size(const str
nla_total_size(0) + nla_total_size(0) +
/* IFLA_IPTUN_FWMARK */ /* IFLA_IPTUN_FWMARK */
nla_total_size(4) + nla_total_size(4) +
@ -451,7 +451,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
0; 0;
} }
@@ -2110,6 +2345,9 @@ static int ip6_tnl_fill_info(struct sk_b @@ -2108,6 +2343,9 @@ static int ip6_tnl_fill_info(struct sk_b
{ {
struct ip6_tnl *tunnel = netdev_priv(dev); struct ip6_tnl *tunnel = netdev_priv(dev);
struct __ip6_tnl_parm *parm = &tunnel->parms; struct __ip6_tnl_parm *parm = &tunnel->parms;
@ -461,7 +461,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) || if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) || nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
@@ -2119,9 +2357,27 @@ static int ip6_tnl_fill_info(struct sk_b @@ -2117,9 +2355,27 @@ static int ip6_tnl_fill_info(struct sk_b
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) || nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) || nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) || nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
@ -490,7 +490,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) || if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) || nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) || nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
@@ -2161,6 +2417,7 @@ static const struct nla_policy ip6_tnl_p @@ -2159,6 +2415,7 @@ static const struct nla_policy ip6_tnl_p
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 }, [IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG }, [IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },
[IFLA_IPTUN_FWMARK] = { .type = NLA_U32 }, [IFLA_IPTUN_FWMARK] = { .type = NLA_U32 },

View File

@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info); &changeupper_info.info);
} }
@@ -6970,6 +7017,7 @@ int dev_set_mac_address(struct net_devic @@ -6961,6 +7008,7 @@ int dev_set_mac_address(struct net_devic
if (err) if (err)
return err; return err;
dev->addr_assign_type = NET_ADDR_SET; dev->addr_assign_type = NET_ADDR_SET;

View File

@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/phy/phy_device.c --- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c
@@ -1105,6 +1105,9 @@ void phy_detach(struct phy_device *phyde @@ -1106,6 +1106,9 @@ void phy_detach(struct phy_device *phyde
struct module *ndev_owner = dev->dev.parent->driver->owner; struct module *ndev_owner = dev->dev.parent->driver->owner;
struct mii_bus *bus; struct mii_bus *bus;

View File

@ -8,7 +8,7 @@
{ "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) }, { "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },
{ "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) }, { "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },
{ "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }, { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
@@ -1201,11 +1202,12 @@ static const struct flash_info spi_nor_i @@ -1205,11 +1206,12 @@ static const struct flash_info spi_nor_i
{ }, { },
}; };
@ -23,7 +23,7 @@
tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN); tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN);
if (tmp < 0) { if (tmp < 0) {
@@ -1216,10 +1218,16 @@ static const struct flash_info *spi_nor_ @@ -1220,10 +1222,16 @@ static const struct flash_info *spi_nor_
for (tmp = 0; tmp < ARRAY_SIZE(spi_nor_ids) - 1; tmp++) { for (tmp = 0; tmp < ARRAY_SIZE(spi_nor_ids) - 1; tmp++) {
info = &spi_nor_ids[tmp]; info = &spi_nor_ids[tmp];
if (info->id_len) { if (info->id_len) {
@ -42,7 +42,7 @@
dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n", dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n",
id[0], id[1], id[2]); id[0], id[1], id[2]);
return ERR_PTR(-ENODEV); return ERR_PTR(-ENODEV);
@@ -2679,7 +2687,7 @@ int spi_nor_scan(struct spi_nor *nor, co @@ -2683,7 +2691,7 @@ int spi_nor_scan(struct spi_nor *nor, co
info = spi_nor_match_id(name); info = spi_nor_match_id(name);
/* Try to auto-detect if chip name wasn't specified or not found */ /* Try to auto-detect if chip name wasn't specified or not found */
if (!info) if (!info)
@ -51,7 +51,7 @@
if (IS_ERR_OR_NULL(info)) if (IS_ERR_OR_NULL(info))
return -ENOENT; return -ENOENT;
@@ -2690,7 +2698,7 @@ int spi_nor_scan(struct spi_nor *nor, co @@ -2694,7 +2702,7 @@ int spi_nor_scan(struct spi_nor *nor, co
if (name && info->id_len) { if (name && info->id_len) {
const struct flash_info *jinfo; const struct flash_info *jinfo;

View File

@ -77,8 +77,8 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
* *
* A side effect of the link creation is re-ordering of dpm_list and the * A side effect of the link creation is re-ordering of dpm_list and the
* devices_kset list by moving the consumer device and all devices depending * devices_kset list by moving the consumer device and all devices depending
@@ -182,7 +182,8 @@ struct device_link *device_link_add(stru @@ -183,7 +183,8 @@ struct device_link *device_link_add(stru
struct device_link *link; bool rpm_put_supplier = false;
if (!consumer || !supplier || if (!consumer || !supplier ||
- ((flags & DL_FLAG_STATELESS) && (flags & DL_FLAG_AUTOREMOVE))) - ((flags & DL_FLAG_STATELESS) && (flags & DL_FLAG_AUTOREMOVE)))
@ -86,8 +86,8 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
+ (flags & DL_FLAG_AUTOREMOVE_CONSUMER))) + (flags & DL_FLAG_AUTOREMOVE_CONSUMER)))
return NULL; return NULL;
device_links_write_lock(); if (flags & DL_FLAG_PM_RUNTIME && flags & DL_FLAG_RPM_ACTIVE) {
@@ -200,8 +201,10 @@ struct device_link *device_link_add(stru @@ -209,8 +210,10 @@ struct device_link *device_link_add(stru
} }
list_for_each_entry(link, &supplier->links.consumers, s_node) list_for_each_entry(link, &supplier->links.consumers, s_node)
@ -99,7 +99,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
link = kzalloc(sizeof(*link), GFP_KERNEL); link = kzalloc(sizeof(*link), GFP_KERNEL);
if (!link) if (!link)
@@ -233,6 +236,7 @@ struct device_link *device_link_add(stru @@ -237,6 +240,7 @@ struct device_link *device_link_add(stru
link->consumer = consumer; link->consumer = consumer;
INIT_LIST_HEAD(&link->c_node); INIT_LIST_HEAD(&link->c_node);
link->flags = flags; link->flags = flags;
@ -107,7 +107,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
/* Determine the initial link state. */ /* Determine the initial link state. */
if (flags & DL_FLAG_STATELESS) { if (flags & DL_FLAG_STATELESS) {
@@ -303,8 +307,10 @@ static void __device_link_free_srcu(stru @@ -311,8 +315,10 @@ static void __device_link_free_srcu(stru
device_link_free(container_of(rhead, struct device_link, rcu_head)); device_link_free(container_of(rhead, struct device_link, rcu_head));
} }
@ -119,7 +119,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
dev_info(link->consumer, "Dropping the link to %s\n", dev_info(link->consumer, "Dropping the link to %s\n",
dev_name(link->supplier)); dev_name(link->supplier));
@@ -316,8 +322,10 @@ static void __device_link_del(struct dev @@ -324,8 +330,10 @@ static void __device_link_del(struct dev
call_srcu(&device_links_srcu, &link->rcu_head, __device_link_free_srcu); call_srcu(&device_links_srcu, &link->rcu_head, __device_link_free_srcu);
} }
#else /* !CONFIG_SRCU */ #else /* !CONFIG_SRCU */
@ -131,7 +131,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
dev_info(link->consumer, "Dropping the link to %s\n", dev_info(link->consumer, "Dropping the link to %s\n",
dev_name(link->supplier)); dev_name(link->supplier));
@@ -335,18 +343,50 @@ static void __device_link_del(struct dev @@ -343,18 +351,50 @@ static void __device_link_del(struct dev
* @link: Device link to delete. * @link: Device link to delete.
* *
* The caller must ensure proper synchronization of this function with runtime * The caller must ensure proper synchronization of this function with runtime
@ -184,7 +184,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
static void device_links_missing_supplier(struct device *dev) static void device_links_missing_supplier(struct device *dev)
{ {
struct device_link *link; struct device_link *link;
@@ -454,8 +494,8 @@ static void __device_links_no_driver(str @@ -462,8 +502,8 @@ static void __device_links_no_driver(str
if (link->flags & DL_FLAG_STATELESS) if (link->flags & DL_FLAG_STATELESS)
continue; continue;
@ -195,7 +195,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
else if (link->status != DL_STATE_SUPPLIER_UNBIND) else if (link->status != DL_STATE_SUPPLIER_UNBIND)
WRITE_ONCE(link->status, DL_STATE_AVAILABLE); WRITE_ONCE(link->status, DL_STATE_AVAILABLE);
} }
@@ -490,8 +530,18 @@ void device_links_driver_cleanup(struct @@ -498,8 +538,18 @@ void device_links_driver_cleanup(struct
if (link->flags & DL_FLAG_STATELESS) if (link->flags & DL_FLAG_STATELESS)
continue; continue;
@ -215,7 +215,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
WRITE_ONCE(link->status, DL_STATE_DORMANT); WRITE_ONCE(link->status, DL_STATE_DORMANT);
} }
@@ -608,13 +658,13 @@ static void device_links_purge(struct de @@ -616,13 +666,13 @@ static void device_links_purge(struct de
list_for_each_entry_safe_reverse(link, ln, &dev->links.suppliers, c_node) { list_for_each_entry_safe_reverse(link, ln, &dev->links.suppliers, c_node) {
WARN_ON(link->status == DL_STATE_ACTIVE); WARN_ON(link->status == DL_STATE_ACTIVE);
@ -231,7 +231,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
} }
device_links_write_unlock(); device_links_write_unlock();
@@ -1036,6 +1086,34 @@ static ssize_t online_store(struct devic @@ -1044,6 +1094,34 @@ static ssize_t online_store(struct devic
} }
static DEVICE_ATTR_RW(online); static DEVICE_ATTR_RW(online);
@ -266,7 +266,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
int device_add_groups(struct device *dev, const struct attribute_group **groups) int device_add_groups(struct device *dev, const struct attribute_group **groups)
{ {
return sysfs_create_groups(&dev->kobj, groups); return sysfs_create_groups(&dev->kobj, groups);
@@ -1207,8 +1285,20 @@ static int device_add_attrs(struct devic @@ -1215,8 +1293,20 @@ static int device_add_attrs(struct devic
goto err_remove_dev_groups; goto err_remove_dev_groups;
} }
@ -287,7 +287,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
err_remove_dev_groups: err_remove_dev_groups:
device_remove_groups(dev, dev->groups); device_remove_groups(dev, dev->groups);
err_remove_type_groups: err_remove_type_groups:
@@ -1226,6 +1316,8 @@ static void device_remove_attrs(struct d @@ -1234,6 +1324,8 @@ static void device_remove_attrs(struct d
struct class *class = dev->class; struct class *class = dev->class;
const struct device_type *type = dev->type; const struct device_type *type = dev->type;
@ -462,7 +462,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
extern int __must_check bus_create_file(struct bus_type *, extern int __must_check bus_create_file(struct bus_type *,
struct bus_attribute *); struct bus_attribute *);
@@ -750,14 +752,16 @@ enum device_link_state { @@ -751,14 +753,16 @@ enum device_link_state {
* Device link flags. * Device link flags.
* *
* STATELESS: The core won't track the presence of supplier/consumer drivers. * STATELESS: The core won't track the presence of supplier/consumer drivers.
@ -484,7 +484,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
/** /**
* struct device_link - Device link representation. * struct device_link - Device link representation.
@@ -768,6 +772,7 @@ enum device_link_state { @@ -769,6 +773,7 @@ enum device_link_state {
* @status: The state of the link (with respect to the presence of drivers). * @status: The state of the link (with respect to the presence of drivers).
* @flags: Link flags. * @flags: Link flags.
* @rpm_active: Whether or not the consumer device is runtime-PM-active. * @rpm_active: Whether or not the consumer device is runtime-PM-active.
@ -492,7 +492,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
* @rcu_head: An RCU head to use for deferred execution of SRCU callbacks. * @rcu_head: An RCU head to use for deferred execution of SRCU callbacks.
*/ */
struct device_link { struct device_link {
@@ -778,6 +783,7 @@ struct device_link { @@ -779,6 +784,7 @@ struct device_link {
enum device_link_state status; enum device_link_state status;
u32 flags; u32 flags;
bool rpm_active; bool rpm_active;
@ -500,7 +500,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
#ifdef CONFIG_SRCU #ifdef CONFIG_SRCU
struct rcu_head rcu_head; struct rcu_head rcu_head;
#endif #endif
@@ -850,6 +856,8 @@ struct dev_links_info { @@ -851,6 +857,8 @@ struct dev_links_info {
* @coherent_dma_mask: Like dma_mask, but for alloc_coherent mapping as not all * @coherent_dma_mask: Like dma_mask, but for alloc_coherent mapping as not all
* hardware supports 64-bit addresses for consistent allocations * hardware supports 64-bit addresses for consistent allocations
* such descriptors. * such descriptors.
@ -509,7 +509,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
* @dma_pfn_offset: offset of DMA memory range relatively of RAM * @dma_pfn_offset: offset of DMA memory range relatively of RAM
* @dma_parms: A low level driver may set these to teach IOMMU code about * @dma_parms: A low level driver may set these to teach IOMMU code about
* segment limitations. * segment limitations.
@@ -929,6 +937,7 @@ struct device { @@ -930,6 +938,7 @@ struct device {
not all hardware supports not all hardware supports
64 bit addresses for consistent 64 bit addresses for consistent
allocations such descriptors. */ allocations such descriptors. */
@ -517,7 +517,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
unsigned long dma_pfn_offset; unsigned long dma_pfn_offset;
struct device_dma_parameters *dma_parms; struct device_dma_parameters *dma_parms;
@@ -1267,6 +1276,7 @@ extern const char *dev_driver_string(con @@ -1268,6 +1277,7 @@ extern const char *dev_driver_string(con
struct device_link *device_link_add(struct device *consumer, struct device_link *device_link_add(struct device *consumer,
struct device *supplier, u32 flags); struct device *supplier, u32 flags);
void device_link_del(struct device_link *link); void device_link_del(struct device_link *link);

View File

@ -607,9 +607,9 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
+}; +};
+ +
&enet0 { &enet0 {
tbi-handle = <&tbi1>; tbi-handle = <&tbi0>;
phy-handle = <&sgmii_phy2>; phy-handle = <&sgmii_phy2>;
@@ -228,6 +243,10 @@ @@ -235,6 +250,10 @@
}; };
}; };
@ -620,7 +620,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
&sai1 { &sai1 {
status = "okay"; status = "okay";
}; };
@@ -243,3 +262,11 @@ @@ -250,3 +269,11 @@
&uart1 { &uart1 {
status = "okay"; status = "okay";
}; };
@ -740,7 +740,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
dcu: dcu@2ce0000 { dcu: dcu@2ce0000 {
compatible = "fsl,ls1021a-dcu"; compatible = "fsl,ls1021a-dcu";
reg = <0x0 0x2ce0000 0x0 0x10000>; reg = <0x0 0x2ce0000 0x0 0x10000>;
@@ -684,6 +734,11 @@ @@ -693,6 +743,11 @@
dr_mode = "host"; dr_mode = "host";
snps,quirk-frame-length-adjustment = <0x20>; snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk; snps,dis_rxdet_inp3_quirk;
@ -752,7 +752,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
}; };
pcie@3400000 { pcie@3400000 {
@@ -691,7 +746,9 @@ @@ -700,7 +755,9 @@
reg = <0x00 0x03400000 0x0 0x00010000 /* controller registers */ reg = <0x00 0x03400000 0x0 0x00010000 /* controller registers */
0x40 0x00000000 0x0 0x00002000>; /* configuration space */ 0x40 0x00000000 0x0 0x00002000>; /* configuration space */
reg-names = "regs", "config"; reg-names = "regs", "config";
@ -763,7 +763,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
fsl,pcie-scfg = <&scfg 0>; fsl,pcie-scfg = <&scfg 0>;
#address-cells = <3>; #address-cells = <3>;
#size-cells = <2>; #size-cells = <2>;
@@ -707,6 +764,7 @@ @@ -716,6 +773,7 @@
<0000 0 0 2 &gic GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 2 &gic GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 3 &gic GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 3 &gic GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 4 &gic GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; <0000 0 0 4 &gic GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
@ -771,7 +771,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
}; };
pcie@3500000 { pcie@3500000 {
@@ -714,7 +772,9 @@ @@ -723,7 +781,9 @@
reg = <0x00 0x03500000 0x0 0x00010000 /* controller registers */ reg = <0x00 0x03500000 0x0 0x00010000 /* controller registers */
0x48 0x00000000 0x0 0x00002000>; /* configuration space */ 0x48 0x00000000 0x0 0x00002000>; /* configuration space */
reg-names = "regs", "config"; reg-names = "regs", "config";
@ -782,7 +782,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
fsl,pcie-scfg = <&scfg 1>; fsl,pcie-scfg = <&scfg 1>;
#address-cells = <3>; #address-cells = <3>;
#size-cells = <2>; #size-cells = <2>;
@@ -730,6 +790,47 @@ @@ -739,6 +799,47 @@
<0000 0 0 2 &gic GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 2 &gic GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 3 &gic GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 3 &gic GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 4 &gic GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; <0000 0 0 4 &gic GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;

View File

@ -75,7 +75,7 @@ Signed-off-by: Yogesh Gaur <yogeshnarayan.gaur@nxp.com>
snprintf(pll->div[i].name, sizeof(pll->div[i].name), snprintf(pll->div[i].name, sizeof(pll->div[i].name),
"cg-pll%d-div%d", idx, i + 1); "cg-pll%d-div%d", idx, i + 1);
@@ -1417,6 +1435,7 @@ CLK_OF_DECLARE(qoriq_clockgen_ls1043a, " @@ -1418,6 +1436,7 @@ CLK_OF_DECLARE(qoriq_clockgen_ls1043a, "
CLK_OF_DECLARE(qoriq_clockgen_ls1046a, "fsl,ls1046a-clockgen", clockgen_init); CLK_OF_DECLARE(qoriq_clockgen_ls1046a, "fsl,ls1046a-clockgen", clockgen_init);
CLK_OF_DECLARE(qoriq_clockgen_ls1088a, "fsl,ls1088a-clockgen", clockgen_init); CLK_OF_DECLARE(qoriq_clockgen_ls1088a, "fsl,ls1088a-clockgen", clockgen_init);
CLK_OF_DECLARE(qoriq_clockgen_ls2080a, "fsl,ls2080a-clockgen", clockgen_init); CLK_OF_DECLARE(qoriq_clockgen_ls2080a, "fsl,ls2080a-clockgen", clockgen_init);

View File

@ -1534,7 +1534,7 @@ Signed-off-by: Yogesh Gaur <yogeshnarayan.gaur@nxp.com>
/* PMC */ /* PMC */
{ "pm25lv512", INFO(0, 0, 32 * 1024, 2, SECT_4K_PMC) }, { "pm25lv512", INFO(0, 0, 32 * 1024, 2, SECT_4K_PMC) },
{ "pm25lv010", INFO(0, 0, 32 * 1024, 4, SECT_4K_PMC) }, { "pm25lv010", INFO(0, 0, 32 * 1024, 4, SECT_4K_PMC) },
@@ -2431,6 +2438,7 @@ static int spi_nor_init_params(struct sp @@ -2435,6 +2442,7 @@ static int spi_nor_init_params(struct sp
params->quad_enable = macronix_quad_enable; params->quad_enable = macronix_quad_enable;
break; break;
@ -1542,7 +1542,7 @@ Signed-off-by: Yogesh Gaur <yogeshnarayan.gaur@nxp.com>
case SNOR_MFR_MICRON: case SNOR_MFR_MICRON:
break; break;
@@ -2749,7 +2757,8 @@ int spi_nor_scan(struct spi_nor *nor, co @@ -2753,7 +2761,8 @@ int spi_nor_scan(struct spi_nor *nor, co
mtd->_read = spi_nor_read; mtd->_read = spi_nor_read;
/* NOR protection support for STmicro/Micron chips and similar */ /* NOR protection support for STmicro/Micron chips and similar */

View File

@ -11852,7 +11852,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
dev = caam_jr_alloc(); dev = caam_jr_alloc();
if (IS_ERR(dev)) { if (IS_ERR(dev)) {
@@ -361,10 +342,3 @@ free_caam_alloc: @@ -364,10 +345,3 @@ free_caam_alloc:
caam_jr_free(dev); caam_jr_free(dev);
return err; return err;
} }

View File

@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
--- a/drivers/net/phy/phy_device.c --- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c
@@ -1943,7 +1943,7 @@ static struct phy_driver genphy_driver = @@ -1944,7 +1944,7 @@ static struct phy_driver genphy_driver =
.config_init = genphy_config_init, .config_init = genphy_config_init,
.features = PHY_GBIT_FEATURES | SUPPORTED_MII | .features = PHY_GBIT_FEATURES | SUPPORTED_MII |
SUPPORTED_AUI | SUPPORTED_FIBRE | SUPPORTED_AUI | SUPPORTED_FIBRE |

View File

@ -40,7 +40,7 @@ Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
struct mtk_thermal; struct mtk_thermal;
struct thermal_bank_cfg { struct thermal_bank_cfg {
@@ -765,7 +758,7 @@ static struct platform_driver mtk_therma @@ -767,7 +760,7 @@ static struct platform_driver mtk_therma
.probe = mtk_thermal_probe, .probe = mtk_thermal_probe,
.remove = mtk_thermal_remove, .remove = mtk_thermal_remove,
.driver = { .driver = {

View File

@ -68,7 +68,7 @@ Signed-off-by: Shunli Wang <shunli.wang@mediatek.com>
/** /**
* raw_to_mcelsius - convert a raw ADC value to mcelsius * raw_to_mcelsius - convert a raw ADC value to mcelsius
* @mt: The thermal controller * @mt: The thermal controller
@@ -631,6 +662,10 @@ static const struct of_device_id mtk_the @@ -633,6 +664,10 @@ static const struct of_device_id mtk_the
{ {
.compatible = "mediatek,mt2712-thermal", .compatible = "mediatek,mt2712-thermal",
.data = (void *)&mt2712_thermal_data, .data = (void *)&mt2712_thermal_data,

View File

@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
--- a/drivers/mtd/spi-nor/spi-nor.c --- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -2663,6 +2663,7 @@ int spi_nor_scan(struct spi_nor *nor, co @@ -2667,6 +2667,7 @@ int spi_nor_scan(struct spi_nor *nor, co
struct device *dev = nor->dev; struct device *dev = nor->dev;
struct mtd_info *mtd = &nor->mtd; struct mtd_info *mtd = &nor->mtd;
struct device_node *np = spi_nor_get_flash_node(nor); struct device_node *np = spi_nor_get_flash_node(nor);
@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
int ret; int ret;
int i; int i;
@@ -2738,7 +2739,12 @@ int spi_nor_scan(struct spi_nor *nor, co @@ -2742,7 +2743,12 @@ int spi_nor_scan(struct spi_nor *nor, co
spi_nor_wait_till_ready(nor); spi_nor_wait_till_ready(nor);
} }

View File

@ -125,7 +125,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
{ "w25m512jv", INFO(0xef7119, 0, 64 * 1024, 1024, { "w25m512jv", INFO(0xef7119, 0, 64 * 1024, 1024,
SECT_4K | SPI_NOR_QUAD_READ | SPI_NOR_DUAL_READ) }, SECT_4K | SPI_NOR_QUAD_READ | SPI_NOR_DUAL_READ) },
@@ -1237,6 +1289,9 @@ static int spi_nor_read(struct mtd_info @@ -1241,6 +1293,9 @@ static int spi_nor_read(struct mtd_info
if (ret) if (ret)
return ret; return ret;
@ -135,7 +135,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
while (len) { while (len) {
loff_t addr = from; loff_t addr = from;
@@ -1261,6 +1316,18 @@ static int spi_nor_read(struct mtd_info @@ -1265,6 +1320,18 @@ static int spi_nor_read(struct mtd_info
ret = 0; ret = 0;
read_err: read_err:
@ -154,7 +154,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_READ); spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_READ);
return ret; return ret;
} }
@@ -1362,6 +1429,10 @@ static int spi_nor_write(struct mtd_info @@ -1366,6 +1433,10 @@ static int spi_nor_write(struct mtd_info
if (ret) if (ret)
return ret; return ret;
@ -165,7 +165,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
for (i = 0; i < len; ) { for (i = 0; i < len; ) {
ssize_t written; ssize_t written;
loff_t addr = to + i; loff_t addr = to + i;
@@ -1402,6 +1473,7 @@ static int spi_nor_write(struct mtd_info @@ -1406,6 +1477,7 @@ static int spi_nor_write(struct mtd_info
} }
write_err: write_err:
@ -173,7 +173,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE); spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE);
return ret; return ret;
} }
@@ -2818,8 +2890,10 @@ int spi_nor_scan(struct spi_nor *nor, co @@ -2822,8 +2894,10 @@ int spi_nor_scan(struct spi_nor *nor, co
} else if (mtd->size > 0x1000000) { } else if (mtd->size > 0x1000000) {
/* enable 4-byte addressing if the device exceeds 16MiB */ /* enable 4-byte addressing if the device exceeds 16MiB */
nor->addr_width = 4; nor->addr_width = 4;

View File

@ -33,7 +33,7 @@
/* /*
* Write status register 1 byte * Write status register 1 byte
* Returns negative if error occurred. * Returns negative if error occurred.
@@ -2890,9 +2899,16 @@ int spi_nor_scan(struct spi_nor *nor, co @@ -2894,9 +2903,16 @@ int spi_nor_scan(struct spi_nor *nor, co
} else if (mtd->size > 0x1000000) { } else if (mtd->size > 0x1000000) {
/* enable 4-byte addressing if the device exceeds 16MiB */ /* enable 4-byte addressing if the device exceeds 16MiB */
nor->addr_width = 4; nor->addr_width = 4;

View File

@ -18,7 +18,7 @@ For reference see:
{ "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) }, { "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },
{ "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) }, { "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },
{ "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }, { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
@@ -1267,11 +1268,12 @@ static const struct flash_info spi_nor_i @@ -1271,11 +1272,12 @@ static const struct flash_info spi_nor_i
{ }, { },
}; };
@ -33,7 +33,7 @@ For reference see:
tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN); tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN);
if (tmp < 0) { if (tmp < 0) {
@@ -1282,10 +1284,16 @@ static const struct flash_info *spi_nor_ @@ -1286,10 +1288,16 @@ static const struct flash_info *spi_nor_
for (tmp = 0; tmp < ARRAY_SIZE(spi_nor_ids) - 1; tmp++) { for (tmp = 0; tmp < ARRAY_SIZE(spi_nor_ids) - 1; tmp++) {
info = &spi_nor_ids[tmp]; info = &spi_nor_ids[tmp];
if (info->id_len) { if (info->id_len) {
@ -52,7 +52,7 @@ For reference see:
dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n", dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n",
id[0], id[1], id[2]); id[0], id[1], id[2]);
return ERR_PTR(-ENODEV); return ERR_PTR(-ENODEV);
@@ -2765,7 +2773,7 @@ int spi_nor_scan(struct spi_nor *nor, co @@ -2769,7 +2777,7 @@ int spi_nor_scan(struct spi_nor *nor, co
info = spi_nor_match_id(name); info = spi_nor_match_id(name);
/* Try to auto-detect if chip name wasn't specified or not found */ /* Try to auto-detect if chip name wasn't specified or not found */
if (!info) if (!info)
@ -61,7 +61,7 @@ For reference see:
if (IS_ERR_OR_NULL(info)) if (IS_ERR_OR_NULL(info))
return -ENOENT; return -ENOENT;
@@ -2776,7 +2784,7 @@ int spi_nor_scan(struct spi_nor *nor, co @@ -2780,7 +2788,7 @@ int spi_nor_scan(struct spi_nor *nor, co
if (name && info->id_len) { if (name && info->id_len) {
const struct flash_info *jinfo; const struct flash_info *jinfo;

View File

@ -155,7 +155,7 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
pinctrl-0 = <&mmc2_pins>; pinctrl-0 = <&mmc2_pins>;
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -449,6 +449,26 @@ @@ -450,6 +450,26 @@
#size-cells = <0>; #size-cells = <0>;
}; };

View File

@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -464,6 +464,7 @@ @@ -465,6 +465,7 @@
#size-cells = <0>; #size-cells = <0>;
mdio: mdio { mdio: mdio {

View File

@ -32,7 +32,7 @@ Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
Example: Example:
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -537,5 +537,12 @@ @@ -538,5 +538,12 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
}; };

View File

@ -21,7 +21,7 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -325,6 +325,16 @@ @@ -326,6 +326,16 @@
drive-strength = <40>; drive-strength = <40>;
}; };
@ -38,7 +38,7 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
uart0_pins_a: uart0@0 { uart0_pins_a: uart0@0 {
pins = "PB8", "PB9"; pins = "PB8", "PB9";
function = "uart0"; function = "uart0";
@@ -470,6 +480,37 @@ @@ -471,6 +481,37 @@
}; };
}; };