mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 22:47:56 +00:00
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:
parent
536adedcd3
commit
1b310cff0f
@ -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))))
|
||||||
|
@ -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
|
|
@ -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]);
|
||||||
|
@ -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];
|
|
||||||
|
|
@ -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)
|
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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 },
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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>;
|
||||||
|
@ -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);
|
||||||
|
@ -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 */
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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 |
|
||||||
|
@ -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 = {
|
||||||
|
@ -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,
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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 {
|
||||||
|
@ -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>;
|
||||||
};
|
};
|
||||||
|
@ -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 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user