kernel: bump 4.9 to 4.9.212

This commit is contained in:
CN_SZTL 2020-02-06 17:47:35 +08:00
parent bae1105f35
commit c00c457432
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
30 changed files with 357 additions and 214 deletions

View File

@ -6,11 +6,11 @@ ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
LINUX_VERSION-4.9 = .211
LINUX_VERSION-4.9 = .212
LINUX_VERSION-4.14 = .167
LINUX_VERSION-4.19 = .98
LINUX_KERNEL_HASH-4.9.211 = 2597608d5d974cfdc015eaf6a4197b36f19d722b8a309b57e741fb02e311b1be
LINUX_KERNEL_HASH-4.9.212 = ade738a606c9b52ecf764e94b4e77116caa3a2b8abd30f4534d220ac6894be30
LINUX_KERNEL_HASH-4.14.167 = 2bb78fc7a902faf4f5dad47fdbc2f4bf3df3cf9b41f408e7260f36656659fe43
LINUX_KERNEL_HASH-4.19.98 = 91feb13bc22d60d69596ab1d01dfecbec13ef70f00c89a483e0733af94dd2937

View File

@ -0,0 +1,24 @@
From fd66884da2f96d2a7ea73f58b1b86251b959a913 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@nbd.name>
Date: Fri, 7 Jul 2017 16:56:19 +0200
Subject: kernel: strip unnecessary symbol table information from kernel modules
reduces default squashfs size on ar71xx by about 4k
lede-commit: 058d331a39077f159ca8922f1f422a1346d6aa67
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/Makefile
+++ b/Makefile
@@ -398,7 +398,7 @@ KBUILD_AFLAGS_KERNEL :=
KBUILD_CFLAGS_KERNEL :=
KBUILD_AFLAGS_MODULE := -DMODULE
KBUILD_CFLAGS_MODULE := -DMODULE
-KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
+KBUILD_LDFLAGS_MODULE = -T $(srctree)/scripts/module-common.lds $(if $(CONFIG_PROFILING),,-s)
GCC_PLUGINS_CFLAGS :=
CLANG_FLAGS :=

View File

@ -21,7 +21,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/Makefile
+++ b/Makefile
@@ -402,6 +402,11 @@ KBUILD_LDFLAGS_MODULE := -T $(srctree)/s
@@ -402,6 +402,11 @@ KBUILD_LDFLAGS_MODULE = -T $(srctree)/sc
GCC_PLUGINS_CFLAGS :=
CLANG_FLAGS :=

View File

@ -21,19 +21,22 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
- default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_SPMI || REGMAP_AC97 || REGMAP_MMIO || REGMAP_IRQ)
select IRQ_DOMAIN if REGMAP_IRQ
- bool
+ tristate
+ tristate "Regmap"
config REGCACHE_COMPRESSED
select LZO_COMPRESS
@@ -17,18 +16,24 @@ config REGMAP_AC97
@@ -16,19 +15,25 @@ config REGMAP_AC97
tristate
config REGMAP_I2C
tristate
- tristate
+ tristate "Regmap I2C"
+ select REGMAP
depends on I2C
config REGMAP_SPI
tristate
- tristate
+ tristate "Regmap SPI"
+ select REGMAP
+ depends on SPI_MASTER
depends on SPI
@ -44,7 +47,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
depends on SPMI
config REGMAP_MMIO
tristate
- tristate
+ tristate "Regmap MMIO"
+ select REGMAP
config REGMAP_IRQ

View File

@ -0,0 +1,13 @@
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -900,9 +900,8 @@ int ubi_attach_mtd_dev(struct mtd_info *
* will die soon and you will lose all your data.
*/
if (mtd->type == MTD_MLCNANDFLASH) {
- pr_err("ubi: refuse attaching mtd%d - MLC NAND is not supported\n",
+ pr_warn("ubi: mtd%d has been identified as a MLC NAND!! - MLC is not supported by UBI and UBIFS and _WILL_ cause corruption in the near future!\n",
mtd->index);
- return -EINVAL;
}
if (ubi_num == UBI_DEV_NUM_AUTO) {

View File

@ -1,3 +1,4 @@
From c6905cfdeb31a5c049db3da434b10fa0d3e83569 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@nbd.name>
Date: Fri, 7 Jul 2017 17:18:54 +0200
Subject: bridge: only accept EAP locally
@ -6,9 +7,9 @@ When bridging, do not forward EAP frames to other ports, only deliver
them locally, regardless of the state.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
[add disable_eap_hack sysfs attribute]
Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
---
net/bridge/br_input.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
@ -18,7 +19,7 @@ Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
+ BR_INPUT_SKB_CB(skb)->brdev = br->dev;
+
+ if (skb->protocol == htons(ETH_P_PAE) && !br->disable_eap_hack)
+ if (skb->protocol == htons(ETH_P_PAE))
+ return br_pass_frame_up(skb);
+
if (p->state == BR_STATE_LEARNING)
@ -29,55 +30,3 @@ Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
if (IS_ENABLED(CONFIG_INET) && skb->protocol == htons(ETH_P_ARP))
br_do_proxy_arp(skb, br, vid, p);
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -295,6 +295,8 @@ struct net_bridge
u16 group_fwd_mask;
u16 group_fwd_mask_required;
+ bool disable_eap_hack;
+
/* STP */
bridge_id designated_root;
bridge_id bridge_id;
--- a/net/bridge/br_sysfs_br.c
+++ b/net/bridge/br_sysfs_br.c
@@ -169,6 +169,30 @@ static ssize_t group_fwd_mask_store(stru
}
static DEVICE_ATTR_RW(group_fwd_mask);
+static ssize_t disable_eap_hack_show(struct device *d,
+ struct device_attribute *attr,
+ char *buf)
+{
+ struct net_bridge *br = to_bridge(d);
+ return sprintf(buf, "%u\n", br->disable_eap_hack);
+}
+
+static int set_disable_eap_hack(struct net_bridge *br, unsigned long val)
+{
+ br->disable_eap_hack = !!val;
+
+ return 0;
+}
+
+static ssize_t disable_eap_hack_store(struct device *d,
+ struct device_attribute *attr,
+ const char *buf,
+ size_t len)
+{
+ return store_bridge_parm(d, buf, len, set_disable_eap_hack);
+}
+static DEVICE_ATTR_RW(disable_eap_hack);
+
static ssize_t priority_show(struct device *d, struct device_attribute *attr,
char *buf)
{
@@ -780,6 +804,7 @@ static struct attribute *bridge_attrs[]
&dev_attr_ageing_time.attr,
&dev_attr_stp_state.attr,
&dev_attr_group_fwd_mask.attr,
+ &dev_attr_disable_eap_hack.attr,
&dev_attr_priority.attr,
&dev_attr_bridge_id.attr,
&dev_attr_root_id.attr,

View File

@ -136,15 +136,3 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
header-y += synclink.h
header-y += sync_file.h
header-y += sysctl.h
--- a/include/linux/platform_data/b53.h
+++ b/include/linux/platform_data/b53.h
@@ -25,6 +25,9 @@ struct b53_platform_data {
u32 chip_id;
u16 enabled_ports;
+ /* allow to specify an ethX alias */
+ const char *alias;
+
/* only used by MMAP'd driver */
unsigned big_endian:1;
void __iomem *regs;

View File

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

View File

@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#ifdef CONFIG_UEVENT_HELPER
/* path to the userspace helper executed on an event */
extern char uevent_helper[];
@@ -239,4 +241,7 @@ int add_uevent_var(struct kobj_uevent_en
@@ -241,4 +243,7 @@ int add_uevent_var(struct kobj_uevent_en
int kobject_action_type(const char *buf, size_t count,
enum kobject_action *type);

View File

@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -5923,7 +5923,7 @@ static void __ref alloc_node_mem_map(str
@@ -5924,7 +5924,7 @@ static void __ref alloc_node_mem_map(str
mem_map = NODE_DATA(0)->node_mem_map;
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)

View File

@ -8,7 +8,7 @@ Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -696,6 +696,7 @@ static struct class *spidev_class;
@@ -699,6 +699,7 @@ static struct class *spidev_class;
static const struct of_device_id spidev_dt_ids[] = {
{ .compatible = "rohm,dh2228fv" },
{ .compatible = "lineartechnology,ltc2488" },

View File

@ -38,7 +38,16 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
;----------------------------------------------------------------
--- a/arch/arc/kernel/setup.c
+++ b/arch/arc/kernel/setup.c
@@ -444,7 +444,7 @@ ignore_uboot_args:
@@ -404,6 +404,8 @@ static inline bool uboot_arg_invalid(uns
/* We always pass 0 as magic from U-boot */
#define UBOOT_MAGIC_VALUE 0
+extern struct boot_param_header __image_dtb;
+
void __init handle_uboot_args(void)
{
bool use_embedded_dtb = true;
@@ -444,7 +446,7 @@ ignore_uboot_args:
#endif
if (use_embedded_dtb) {
@ -47,15 +56,6 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
if (!machine_desc)
panic("Embedded DT invalid\n");
}
@@ -460,6 +460,8 @@ ignore_uboot_args:
}
}
+extern struct boot_param_header __image_dtb;
+
void __init setup_arch(char **cmdline_p)
{
handle_uboot_args();
--- a/arch/arc/kernel/vmlinux.lds.S
+++ b/arch/arc/kernel/vmlinux.lds.S
@@ -30,6 +30,19 @@ SECTIONS

View File

@ -0,0 +1,52 @@
From 3fe7841bf5a582dc7fd198e5bf70162ea418a22a Mon Sep 17 00:00:00 2001
From: Koen Vandeputte <koen.vandeputte@ncentric.com>
Date: Wed, 11 Sep 2019 11:02:19 +0200
Subject: [PATCH] MIPS: ath79: Fix potentially missed IRQ handling during
dispatch
If both interrupts are set in the current implementation
only the 1st will be handled and the 2nd will be skipped
due to the "if else" condition.
Fix this by using the same approach as done for QCA955x
just below it.
Fixes: fce5cc6e0ddc ("MIPS: ath79: add IRQ handling code for AR934X")
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
CC: Felix Fietkau <nbd@nbd.name>
CC: Gabor Juhos <juhosg@freemail.hu>
CC: James Hogan <jhogan@kernel.org>
CC: Paul Burton <paul.burton@mips.com>
CC: Ralf Baechle <ralf@linux-mips.org>
CC: stable@vger.kernel.org # v3.2+
---
arch/mips/ath79/irq.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
--- a/arch/mips/ath79/irq.c
+++ b/arch/mips/ath79/irq.c
@@ -32,15 +32,21 @@ static void ar934x_ip2_irq_dispatch(stru
u32 status;
status = ath79_reset_rr(AR934X_RESET_REG_PCIE_WMAC_INT_STATUS);
+ status &= AR934X_PCIE_WMAC_INT_PCIE_ALL | AR934X_PCIE_WMAC_INT_WMAC_ALL;
+
+ if (status == 0) {
+ spurious_interrupt();
+ return;
+ }
if (status & AR934X_PCIE_WMAC_INT_PCIE_ALL) {
ath79_ddr_wb_flush(3);
generic_handle_irq(ATH79_IP2_IRQ(0));
- } else if (status & AR934X_PCIE_WMAC_INT_WMAC_ALL) {
+ }
+
+ if (status & AR934X_PCIE_WMAC_INT_WMAC_ALL) {
ath79_ddr_wb_flush(4);
generic_handle_irq(ATH79_IP2_IRQ(1));
- } else {
- spurious_interrupt();
}
}

View File

@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
mtd_add_partition_attrs(new);
return 0;
@@ -739,6 +744,29 @@ int mtd_del_partition(struct mtd_info *m
@@ -739,6 +744,35 @@ int mtd_del_partition(struct mtd_info *m
}
EXPORT_SYMBOL_GPL(mtd_del_partition);
@ -82,6 +82,11 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+{
+}
+
+void __weak arch_split_mtd_part(struct mtd_info *master, const char *name,
+ int offset, int size)
+{
+}
+
+static void mtd_partition_split(struct mtd_info *master, struct mtd_part *part)
+{
+ static int rootfs_found = 0;
@ -89,16 +94,17 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ if (rootfs_found)
+ return;
+
+ if (IS_ENABLED(CONFIG_MTD_SPLIT_FIRMWARE) &&
+ !strcmp(part->mtd.name, SPLIT_FIRMWARE_NAME) &&
+ !of_find_property(mtd_get_of_node(&part->mtd), "compatible", NULL))
+ if (!strcmp(part->mtd.name, SPLIT_FIRMWARE_NAME) &&
+ IS_ENABLED(CONFIG_MTD_SPLIT_FIRMWARE))
+ split_firmware(master, part);
+}
+
+ arch_split_mtd_part(master, part->mtd.name, part->offset,
+ part->mtd.size);
+}
/*
* This function, given a master MTD object and a partition table, creates
* and registers slave MTD objects which are bound to the master according to
@@ -779,6 +807,7 @@ int add_mtd_partitions(struct mtd_info *
@@ -779,6 +813,7 @@ int add_mtd_partitions(struct mtd_info *
goto err_del_partitions;
}
@ -106,3 +112,13 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
mtd_add_partition_attrs(slave);
/* Look for subpartitions */
parse_mtd_partitions(&slave->mtd, parts[i].types, NULL);
--- a/include/linux/mtd/partitions.h
+++ b/include/linux/mtd/partitions.h
@@ -110,5 +110,7 @@ int mtd_add_partition(struct mtd_info *m
long long offset, long long length);
int mtd_del_partition(struct mtd_info *master, int partno);
uint64_t mtd_get_device_size(const struct mtd_info *mtd);
+extern void __weak arch_split_mtd_part(struct mtd_info *master,
+ const char *name, int offset, int size);
#endif

View File

@ -9,55 +9,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -56,6 +56,10 @@ struct mtd_part {
};
static void mtd_partition_split(struct mtd_info *master, struct mtd_part *part);
+static int parse_mtd_partitions_by_type(struct mtd_info *master,
+ enum mtd_parser_type type,
+ const struct mtd_partition **pparts,
+ struct mtd_part_parser_data *data);
/*
* Given a pointer to the MTD object in the mtd_part structure, we can retrieve
@@ -744,6 +748,36 @@ int mtd_del_partition(struct mtd_info *m
}
EXPORT_SYMBOL_GPL(mtd_del_partition);
+static int
+run_parsers_by_type(struct mtd_part *slave, enum mtd_parser_type type)
+{
+ struct mtd_partition *parts;
+ int nr_parts;
+ int i;
+
+ nr_parts = parse_mtd_partitions_by_type(&slave->mtd, type, (const struct mtd_partition **)&parts,
+ NULL);
+ if (nr_parts <= 0)
+ return nr_parts;
+
+ if (WARN_ON(!parts))
+ return 0;
+
+ for (i = 0; i < nr_parts; i++) {
+ /* adjust partition offsets */
+ parts[i].offset += slave->offset;
+
+ mtd_add_partition(slave->parent,
+ parts[i].name,
+ parts[i].offset,
+ parts[i].size);
+ }
+
+ kfree(parts);
+
+ return nr_parts;
+}
+
#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME
#else
@@ -1134,6 +1168,61 @@ void mtd_part_parser_cleanup(struct mtd_
@@ -1140,6 +1140,62 @@ void mtd_part_parser_cleanup(struct mtd_
}
}
@ -85,10 +37,10 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+ return ret;
+}
+
+static int parse_mtd_partitions_by_type(struct mtd_info *master,
+ enum mtd_parser_type type,
+ const struct mtd_partition **pparts,
+ struct mtd_part_parser_data *data)
+int parse_mtd_partitions_by_type(struct mtd_info *master,
+ enum mtd_parser_type type,
+ const struct mtd_partition **pparts,
+ struct mtd_part_parser_data *data)
+{
+ struct mtd_part_parser *prev = NULL;
+ int ret = 0;
@ -115,13 +67,19 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+
+ return ret;
+}
+EXPORT_SYMBOL_GPL(parse_mtd_partitions_by_type);
+
int mtd_is_partition(const struct mtd_info *mtd)
{
struct mtd_part *part;
--- a/include/linux/mtd/partitions.h
+++ b/include/linux/mtd/partitions.h
@@ -73,6 +73,10 @@ struct mtd_part_parser_data {
@@ -68,11 +68,14 @@ struct mtd_part_parser_data {
unsigned long origin;
};
-
/*
* Functions dealing with the various ways of partitioning the space
*/
@ -132,7 +90,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
struct mtd_part_parser {
struct list_head list;
struct module *owner;
@@ -81,6 +85,7 @@ struct mtd_part_parser {
@@ -81,6 +84,7 @@ struct mtd_part_parser {
int (*parse_fn)(struct mtd_info *, const struct mtd_partition **,
struct mtd_part_parser_data *);
void (*cleanup)(const struct mtd_partition *pparts, int nr_parts);
@ -140,3 +98,13 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
};
/* Container for passing around a set of parsed partitions */
@@ -113,4 +117,9 @@ uint64_t mtd_get_device_size(const struc
extern void __weak arch_split_mtd_part(struct mtd_info *master,
const char *name, int offset, int size);
+int parse_mtd_partitions_by_type(struct mtd_info *master,
+ enum mtd_parser_type type,
+ const struct mtd_partition **pparts,
+ struct mtd_part_parser_data *data);
+
#endif

View File

@ -10,15 +10,52 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -786,6 +786,7 @@ run_parsers_by_type(struct mtd_part *sla
@@ -744,6 +744,36 @@ int mtd_del_partition(struct mtd_info *m
}
EXPORT_SYMBOL_GPL(mtd_del_partition);
+static int
+run_parsers_by_type(struct mtd_part *slave, enum mtd_parser_type type)
+{
+ struct mtd_partition *parts;
+ int nr_parts;
+ int i;
+
+ nr_parts = parse_mtd_partitions_by_type(&slave->mtd, type, (const struct mtd_partition **)&parts,
+ NULL);
+ if (nr_parts <= 0)
+ return nr_parts;
+
+ if (WARN_ON(!parts))
+ return 0;
+
+ for (i = 0; i < nr_parts; i++) {
+ /* adjust partition offsets */
+ parts[i].offset += slave->offset;
+
+ mtd_add_partition(slave->parent,
+ parts[i].name,
+ parts[i].offset,
+ parts[i].size);
+ }
+
+ kfree(parts);
+
+ return nr_parts;
+}
+
#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME
#else
@@ -752,6 +782,7 @@ EXPORT_SYMBOL_GPL(mtd_del_partition);
static void split_firmware(struct mtd_info *master, struct mtd_part *part)
{
+ run_parsers_by_type(part, MTD_PARSER_TYPE_FIRMWARE);
}
static void mtd_partition_split(struct mtd_info *master, struct mtd_part *part)
@@ -795,6 +796,12 @@ static void mtd_partition_split(struct m
void __weak arch_split_mtd_part(struct mtd_info *master, const char *name,
@@ -766,6 +797,12 @@ static void mtd_partition_split(struct m
if (rootfs_found)
return;
@ -28,12 +65,12 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+ rootfs_found = 1;
+ }
+
if (IS_ENABLED(CONFIG_MTD_SPLIT_FIRMWARE) &&
!strcmp(part->mtd.name, SPLIT_FIRMWARE_NAME) &&
!of_find_property(mtd_get_of_node(&part->mtd), "compatible", NULL))
if (!strcmp(part->mtd.name, SPLIT_FIRMWARE_NAME) &&
IS_ENABLED(CONFIG_MTD_SPLIT_FIRMWARE))
split_firmware(master, part);
--- a/include/linux/mtd/partitions.h
+++ b/include/linux/mtd/partitions.h
@@ -75,6 +75,8 @@ struct mtd_part_parser_data {
@@ -74,6 +74,8 @@ struct mtd_part_parser_data {
enum mtd_parser_type {
MTD_PARSER_TYPE_DEVICE = 0,

View File

@ -11,7 +11,25 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -1247,6 +1247,24 @@ int mtd_is_partition(const struct mtd_in
@@ -774,6 +774,17 @@ run_parsers_by_type(struct mtd_part *sla
return nr_parts;
}
+static inline unsigned long
+mtd_pad_erasesize(struct mtd_info *mtd, int offset, int len)
+{
+ unsigned long mask = mtd->erasesize - 1;
+
+ len += offset & mask;
+ len = (len + mask) & ~mask;
+ len -= offset & mask;
+ return len;
+}
+
#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME
#else
@@ -1250,6 +1261,24 @@ int mtd_is_partition(const struct mtd_in
}
EXPORT_SYMBOL_GPL(mtd_is_partition);
@ -65,12 +83,12 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
if (mtd->writesize_shift)
--- a/include/linux/mtd/partitions.h
+++ b/include/linux/mtd/partitions.h
@@ -116,6 +116,8 @@ int mtd_is_partition(const struct mtd_in
@@ -115,6 +115,8 @@ int mtd_is_partition(const struct mtd_in
int mtd_add_partition(struct mtd_info *master, const char *name,
long long offset, long long length);
int mtd_del_partition(struct mtd_info *master, int partno);
+struct mtd_info *mtdpart_get_master(const struct mtd_info *mtd);
+uint64_t mtdpart_get_offset(const struct mtd_info *mtd);
uint64_t mtd_get_device_size(const struct mtd_info *mtd);
#endif
extern void __weak arch_split_mtd_part(struct mtd_info *master,
const char *name, int offset, int size);

View File

@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* Our partition linked list */
static LIST_HEAD(mtd_partitions);
static DEFINE_MUTEX(mtd_partitions_mutex);
@@ -246,13 +248,61 @@ static int part_erase(struct mtd_info *m
@@ -242,13 +244,61 @@ static int part_erase(struct mtd_info *m
struct mtd_part *part = mtd_to_part(mtd);
int ret;
@ -81,7 +81,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
return ret;
}
@@ -260,6 +310,25 @@ void mtd_erase_callback(struct erase_inf
@@ -256,6 +306,25 @@ void mtd_erase_callback(struct erase_inf
{
if (instr->mtd->_erase == part_erase) {
struct mtd_part *part = mtd_to_part(instr->mtd);
@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN)
instr->fail_addr -= part->offset;
@@ -566,19 +635,22 @@ static struct mtd_part *allocate_partiti
@@ -562,19 +631,22 @@ static struct mtd_part *allocate_partiti
remainder = do_div(tmp, wr_alignment);
if ((slave->mtd.flags & MTD_WRITEABLE) && remainder) {
/* Doesn't start on a boundary of major erase size */

View File

@ -20,7 +20,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -348,7 +348,16 @@ static int part_lock(struct mtd_info *mt
@@ -344,7 +344,16 @@ static int part_lock(struct mtd_info *mt
static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
{
struct mtd_part *part = mtd_to_part(mtd);

View File

@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/mtd/redboot.c
+++ b/drivers/mtd/redboot.c
@@ -266,14 +266,21 @@ static int parse_redboot_partitions(stru
@@ -265,14 +265,21 @@ static int parse_redboot_partitions(stru
#endif
names += strlen(names)+1;

View File

@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#define PACKET_FANOUT_LB 1
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -1781,6 +1781,7 @@ static int packet_rcv_spkt(struct sk_buf
@@ -1787,6 +1787,7 @@ static int packet_rcv_spkt(struct sk_buf
{
struct sock *sk;
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
@@ -1788,6 +1789,7 @@ static int packet_rcv_spkt(struct sk_buf
@@ -1794,6 +1795,7 @@ static int packet_rcv_spkt(struct sk_buf
*/
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
@@ -1800,7 +1802,7 @@ static int packet_rcv_spkt(struct sk_buf
@@ -1806,7 +1808,7 @@ static int packet_rcv_spkt(struct sk_buf
* so that this procedure is noop.
*/
@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
goto out;
if (!net_eq(dev_net(dev), sock_net(sk)))
@@ -2038,12 +2040,12 @@ static int packet_rcv(struct sk_buff *sk
@@ -2044,12 +2046,12 @@ static int packet_rcv(struct sk_buff *sk
unsigned int snaplen, res;
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)))
goto drop;
@@ -2169,12 +2171,12 @@ static int tpacket_rcv(struct sk_buff *s
@@ -2175,12 +2177,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.h3)) != 48);
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
@@ -3292,6 +3294,7 @@ static int packet_create(struct net *net
@@ -3298,6 +3300,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
@@ -3905,6 +3908,16 @@ packet_setsockopt(struct socket *sock, i
@@ -3920,6 +3923,16 @@ packet_setsockopt(struct socket *sock, i
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
return 0;
}
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
default:
return -ENOPROTOOPT;
}
@@ -3957,6 +3970,13 @@ static int packet_getsockopt(struct sock
@@ -3972,6 +3985,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;

View File

@ -350,7 +350,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
memcpy(p->name, u->name, sizeof(u->name));
}
@@ -1904,6 +2066,15 @@ static int ip6_tnl_validate(struct nlatt
@@ -1902,6 +2064,15 @@ static int ip6_tnl_validate(struct nlatt
return 0;
}
@ -366,7 +366,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
static void ip6_tnl_netlink_parms(struct nlattr *data[],
struct __ip6_tnl_parm *parms)
{
@@ -1938,6 +2109,46 @@ static void ip6_tnl_netlink_parms(struct
@@ -1936,6 +2107,46 @@ static void ip6_tnl_netlink_parms(struct
if (data[IFLA_IPTUN_COLLECT_METADATA])
parms->collect_md = true;
@ -413,7 +413,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
}
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
@@ -2051,6 +2262,12 @@ static void ip6_tnl_dellink(struct net_d
@@ -2049,6 +2260,12 @@ static void ip6_tnl_dellink(struct net_d
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
/* IFLA_IPTUN_LINK */
nla_total_size(4) +
@@ -2078,6 +2295,24 @@ static size_t ip6_tnl_get_size(const str
@@ -2076,6 +2293,24 @@ static size_t ip6_tnl_get_size(const str
nla_total_size(2) +
/* IFLA_IPTUN_COLLECT_METADATA */
nla_total_size(0) +
@ -451,7 +451,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
0;
}
@@ -2085,6 +2320,9 @@ static int ip6_tnl_fill_info(struct sk_b
@@ -2083,6 +2318,9 @@ static int ip6_tnl_fill_info(struct sk_b
{
struct ip6_tnl *tunnel = netdev_priv(dev);
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) ||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
@@ -2093,9 +2331,27 @@ static int ip6_tnl_fill_info(struct sk_b
@@ -2091,9 +2329,27 @@ static int ip6_tnl_fill_info(struct sk_b
nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) ||
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
@ -490,7 +490,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
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_DPORT, tunnel->encap.dport) ||
@@ -2133,6 +2389,7 @@ static const struct nla_policy ip6_tnl_p
@@ -2131,6 +2387,7 @@ static const struct nla_policy ip6_tnl_p
[IFLA_IPTUN_ENCAP_SPORT] = { .type = NLA_U16 },
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },

View File

@ -9,7 +9,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -472,6 +472,50 @@ int phy_ethtool_ksettings_get(struct phy
@@ -473,6 +473,50 @@ int phy_ethtool_ksettings_get(struct phy
}
EXPORT_SYMBOL(phy_ethtool_ksettings_get);

View File

@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -1004,6 +1004,9 @@ void phy_detach(struct phy_device *phyde
@@ -1005,6 +1005,9 @@ void phy_detach(struct phy_device *phyde
struct mii_bus *bus;
int i;

View File

@ -0,0 +1,74 @@
From: Alexey Brodkin <abrodkin@synopsys.com>
Subject: usb: Remove annoying warning about bogus URB
When ath9k-htc Wi-Fi dongle is used with generic OHCI controller
infinite stream of warnings appears in debug console like this:
-------------------------->8----------------------
usb 1-1: new full-speed USB device number 2 using ohci-platform
usb 1-1: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested
usb 1-1: ath9k_htc: Transferred FW: ath9k_htc/htc_9271-1.4.0.fw, size:
51008
------------[ cut here ]------------
WARNING: CPU: 0 PID: 19 at drivers/usb/core/urb.c:449
usb_submit_urb+0x1b4/0x498()
usb 1-1: BOGUS urb xfer, pipe 1 != type 3
Modules linked in:
CPU: 0 PID: 19 Comm: kworker/0:1 Not tainted
4.4.0-rc4-00017-g00e2d79-dirty #3
Workqueue: events request_firmware_work_func
Stack Trace:
arc_unwind_core.constprop.1+0xa4/0x110
---[ end trace 649ef8c342817fc2 ]---
------------[ cut here ]------------
WARNING: CPU: 0 PID: 19 at drivers/usb/core/urb.c:449
usb_submit_urb+0x1b4/0x498()
usb 1-1: BOGUS urb xfer, pipe 1 != type 3
Modules linked in:
CPU: 0 PID: 19 Comm: kworker/0:1 Tainted: G W
4.4.0-rc4-00017-g00e2d79-dirty #3
Workqueue: events request_firmware_work_func
Stack Trace:
arc_unwind_core.constprop.1+0xa4/0x110
---[ end trace 649ef8c342817fc3 ]---
------------[ cut here ]------------
-------------------------->8----------------------
There're some discussions in mailing lists proposing to disable
that particular check alltogether and magically all seem to work
fine with muted warning.
Anyways new thread on that regard could be found here:
http://lists.infradead.org/pipermail/linux-snps-arc/2016-July/001310.html
Let's see what comes out of that new discussion, hopefully patching
of generic USB stuff won't be required then.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
---
drivers/leds/Makefile | 1 +
drivers/leds/trigger/Kconfig | 7 +++++++
2 files changed, 8 insertions(+)
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
@@ -77,3 +77,4 @@ obj-$(CONFIG_LEDS_DAC124S085) += leds-d
# LED Triggers
obj-$(CONFIG_LEDS_TRIGGERS) += trigger/
+obj-$(CONFIG_LEDS_TRIGGER_NETDEV) += ledtrig-netdev.o
--- a/drivers/leds/trigger/Kconfig
+++ b/drivers/leds/trigger/Kconfig
@@ -126,4 +126,11 @@ config LEDS_TRIGGER_PANIC
a different trigger.
If unsure, say Y.
+config LEDS_TRIGGER_NETDEV
+ tristate "LED Netdev Trigger"
+ depends on NET && LEDS_TRIGGERS
+ help
+ This allows LEDs to be controlled by network device activity.
+ If unsure, say Y.
+
endif # LEDS_TRIGGERS

View File

@ -197,7 +197,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
+EXPORT_SYMBOL_GPL(soc_device_match);
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -688,6 +688,25 @@ void __iomem *devm_ioremap_resource(stru
@@ -689,6 +689,25 @@ void __iomem *devm_ioremap_resource(stru
int devm_add_action(struct device *dev, void (*action)(void *), void *data);
void devm_remove_action(struct device *dev, void (*action)(void *), void *data);

View File

@ -255,9 +255,9 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
+};
+
&enet0 {
tbi-handle = <&tbi1>;
tbi-handle = <&tbi0>;
phy-handle = <&sgmii_phy2>;
@@ -228,6 +241,10 @@
@@ -235,6 +248,10 @@
};
};
@ -268,7 +268,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
&sai1 {
status = "okay";
};
@@ -243,3 +260,11 @@
@@ -250,3 +267,11 @@
&uart1 {
status = "okay";
};
@ -597,7 +597,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
clock-names = "dcu", "pix";
big-endian;
status = "disabled";
@@ -626,6 +643,8 @@
@@ -635,6 +652,8 @@
interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host";
snps,quirk-frame-length-adjustment = <0x20>;
@ -606,7 +606,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
snps,dis_rxdet_inp3_quirk;
};
@@ -634,7 +653,9 @@
@@ -643,7 +662,9 @@
reg = <0x00 0x03400000 0x0 0x00010000 /* controller registers */
0x40 0x00000000 0x0 0x00002000>; /* configuration space */
reg-names = "regs", "config";
@ -617,7 +617,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
fsl,pcie-scfg = <&scfg 0>;
#address-cells = <3>;
#size-cells = <2>;
@@ -643,7 +664,7 @@
@@ -652,7 +673,7 @@
bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */
0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
@ -626,7 +626,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0000 0 0 1 &gic GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
@@ -657,7 +678,9 @@
@@ -666,7 +687,9 @@
reg = <0x00 0x03500000 0x0 0x00010000 /* controller registers */
0x48 0x00000000 0x0 0x00002000>; /* configuration space */
reg-names = "regs", "config";
@ -637,7 +637,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
fsl,pcie-scfg = <&scfg 1>;
#address-cells = <3>;
#size-cells = <2>;
@@ -666,7 +689,7 @@
@@ -675,7 +698,7 @@
bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000 /* downstream I/O */
0x82000000 0x0 0x40000000 0x48 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
@ -646,7 +646,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0000 0 0 1 &gic GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
@@ -674,5 +697,45 @@
@@ -683,5 +706,45 @@
<0000 0 0 3 &gic GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 4 &gic GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
};

View File

@ -1607,7 +1607,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
+MODULE_LICENSE("GPL v2");
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -591,7 +591,7 @@ int phy_mii_ioctl(struct phy_device *phy
@@ -592,7 +592,7 @@ int phy_mii_ioctl(struct phy_device *phy
return 0;
case SIOCSHWTSTAMP:
@ -1616,7 +1616,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
return phydev->drv->hwtstamp(phydev, ifr);
/* fall through */
@@ -616,6 +616,9 @@ static int phy_start_aneg_priv(struct ph
@@ -617,6 +617,9 @@ static int phy_start_aneg_priv(struct ph
bool trigger = 0;
int err;
@ -1626,7 +1626,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
mutex_lock(&phydev->lock);
if (AUTONEG_DISABLE == phydev->autoneg)
@@ -1015,7 +1018,7 @@ void phy_state_machine(struct work_struc
@@ -1016,7 +1019,7 @@ void phy_state_machine(struct work_struc
old_state = phydev->state;
@ -1635,7 +1635,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
phydev->drv->link_change_notify(phydev);
switch (phydev->state) {
@@ -1317,6 +1320,9 @@ EXPORT_SYMBOL(phy_write_mmd_indirect);
@@ -1318,6 +1321,9 @@ EXPORT_SYMBOL(phy_write_mmd_indirect);
*/
int phy_init_eee(struct phy_device *phydev, bool clk_stop_enable)
{
@ -1645,7 +1645,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
/* According to 802.3az,the EEE is supported only in full duplex-mode.
* Also EEE feature is active when core is operating with MII, GMII
* or RGMII (all kinds). Internal PHYs are also allowed to proceed and
@@ -1394,6 +1400,9 @@ EXPORT_SYMBOL(phy_init_eee);
@@ -1395,6 +1401,9 @@ EXPORT_SYMBOL(phy_init_eee);
*/
int phy_get_eee_err(struct phy_device *phydev)
{
@ -1655,7 +1655,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
return phy_read_mmd_indirect(phydev, MDIO_PCS_EEE_WK_ERR, MDIO_MMD_PCS);
}
EXPORT_SYMBOL(phy_get_eee_err);
@@ -1410,6 +1419,9 @@ int phy_ethtool_get_eee(struct phy_devic
@@ -1411,6 +1420,9 @@ int phy_ethtool_get_eee(struct phy_devic
{
int val;
@ -1665,7 +1665,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
/* Get Supported EEE */
val = phy_read_mmd_indirect(phydev, MDIO_PCS_EEE_ABLE, MDIO_MMD_PCS);
if (val < 0)
@@ -1443,6 +1455,9 @@ int phy_ethtool_set_eee(struct phy_devic
@@ -1444,6 +1456,9 @@ int phy_ethtool_set_eee(struct phy_devic
{
int val = ethtool_adv_to_mmd_eee_adv_t(data->advertised);
@ -1675,7 +1675,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
/* Mask prohibited EEE modes */
val &= ~phydev->eee_broken_modes;
@@ -1454,7 +1469,7 @@ EXPORT_SYMBOL(phy_ethtool_set_eee);
@@ -1455,7 +1470,7 @@ EXPORT_SYMBOL(phy_ethtool_set_eee);
int phy_ethtool_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *wol)
{
@ -1684,7 +1684,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
return phydev->drv->set_wol(phydev, wol);
return -EOPNOTSUPP;
@@ -1463,7 +1478,7 @@ EXPORT_SYMBOL(phy_ethtool_set_wol);
@@ -1464,7 +1479,7 @@ EXPORT_SYMBOL(phy_ethtool_set_wol);
void phy_ethtool_get_wol(struct phy_device *phydev, struct ethtool_wolinfo *wol)
{
@ -1695,7 +1695,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
EXPORT_SYMBOL(phy_ethtool_get_wol);
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -1049,7 +1049,7 @@ int phy_suspend(struct phy_device *phyde
@@ -1050,7 +1050,7 @@ int phy_suspend(struct phy_device *phyde
if (wol.wolopts)
return -EBUSY;
@ -1704,7 +1704,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
ret = phydrv->suspend(phydev);
if (ret)
@@ -1066,7 +1066,7 @@ int phy_resume(struct phy_device *phydev
@@ -1067,7 +1067,7 @@ int phy_resume(struct phy_device *phydev
struct phy_driver *phydrv = to_phy_driver(phydev->mdio.dev.driver);
int ret = 0;
@ -1713,7 +1713,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
ret = phydrv->resume(phydev);
if (ret)
@@ -1723,7 +1723,7 @@ static int phy_remove(struct device *dev
@@ -1724,7 +1724,7 @@ static int phy_remove(struct device *dev
phydev->state = PHY_DOWN;
mutex_unlock(&phydev->lock);

View File

@ -301,7 +301,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
default:
goto bad_args;
}
@@ -1253,6 +1398,7 @@ static void __init clockgen_init(struct
@@ -1254,6 +1399,7 @@ static void __init clockgen_init(struct
clockgen.info.flags |= CG_CMUX_GE_PLAT;
clockgen.sysclk = create_sysclk("cg-sysclk");
@ -309,7 +309,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
create_plls(&clockgen);
create_muxes(&clockgen);
@@ -1273,8 +1419,11 @@ err:
@@ -1274,8 +1420,11 @@ err:
CLK_OF_DECLARE(qoriq_clockgen_1, "fsl,qoriq-clockgen-1.0", clockgen_init);
CLK_OF_DECLARE(qoriq_clockgen_2, "fsl,qoriq-clockgen-2.0", clockgen_init);

View File

@ -34,7 +34,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
return entry->group;
}
@@ -3197,9 +3199,10 @@ static bool amd_iommu_capable(enum iommu
@@ -3199,9 +3201,10 @@ static bool amd_iommu_capable(enum iommu
return false;
}
@ -47,7 +47,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
struct unity_map_entry *entry;
int devid;
@@ -3208,41 +3211,56 @@ static void amd_iommu_get_dm_regions(str
@@ -3210,41 +3213,56 @@ static void amd_iommu_get_dm_regions(str
return;
list_for_each_entry(entry, &amd_iommu_unity_map, list) {
@ -118,7 +118,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
{
struct dma_ops_domain *dma_dom = to_dma_ops_domain(to_pdomain(domain));
unsigned long start, end;
@@ -3266,9 +3284,9 @@ static const struct iommu_ops amd_iommu_
@@ -3268,9 +3286,9 @@ static const struct iommu_ops amd_iommu_
.add_device = amd_iommu_add_device,
.remove_device = amd_iommu_remove_device,
.device_group = amd_iommu_device_group,
@ -995,7 +995,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
};
struct dmar_atsr_unit {
@@ -4268,27 +4269,40 @@ static inline void init_iommu_pm_ops(voi
@@ -4271,27 +4272,40 @@ static inline void init_iommu_pm_ops(voi
int __init dmar_parse_one_rmrr(struct acpi_dmar_header *header, void *arg)
{
struct acpi_dmar_reserved_memory *rmrr;
@ -1041,7 +1041,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
}
static struct dmar_atsr_unit *dmar_find_atsr(struct acpi_dmar_atsr *atsr)
@@ -4502,6 +4516,7 @@ static void intel_iommu_free_dmars(void)
@@ -4505,6 +4519,7 @@ static void intel_iommu_free_dmars(void)
list_for_each_entry_safe(rmrru, rmrr_n, &dmar_rmrr_units, list) {
list_del(&rmrru->list);
dmar_free_dev_scope(&rmrru->devices, &rmrru->devices_cnt);
@ -1049,7 +1049,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
kfree(rmrru);
}
@@ -5240,6 +5255,45 @@ static void intel_iommu_remove_device(st
@@ -5243,6 +5258,45 @@ static void intel_iommu_remove_device(st
iommu_device_unlink(iommu->iommu_dev, dev);
}
@ -1095,7 +1095,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
#ifdef CONFIG_INTEL_IOMMU_SVM
#define MAX_NR_PASID_BITS (20)
static inline unsigned long intel_iommu_get_pts(struct intel_iommu *iommu)
@@ -5370,19 +5424,21 @@ struct intel_iommu *intel_svm_device_to_
@@ -5373,19 +5427,21 @@ struct intel_iommu *intel_svm_device_to_
#endif /* CONFIG_INTEL_IOMMU_SVM */
static const struct iommu_ops intel_iommu_ops = {