mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 00:11:13 +00:00
e39414ed07
Refreshed all patches Dropped upstreamed patches: 522-PCI-aardvark-fix-logic-in-PCI-configuration-read-write-functions.patch 523-PCI-aardvark-set-PIO_ADDR_LS-correctly-in-advk_pcie_rd_conf.patch 525-PCI-aardvark-use-isr1-instead-of-isr0-interrupt-in-legacy-irq-mode.patch 527-PCI-aardvark-fix-PCIe-max-read-request-size-setting.patch updated patches: 524-PCI-aardvark-set-host-and-device-to-the-same-MAX-payload-size.patch 030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch Added new ARM64 symbol: CONFIG_ARM64_ERRATUM_1024718 Compile-tested on: cns3xxx, imx6, mvebu (arm64), x86_64 Runtime-tested on: cns3xxx, imx6, x86_64 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
80 lines
1.9 KiB
Diff
80 lines
1.9 KiB
Diff
From 53980645bb12bd8723ac226805ee171780b24196 Mon Sep 17 00:00:00 2001
|
|
From: Jonas Gorski <jonas.gorski@gmail.com>
|
|
Date: Mon, 26 Jun 2017 13:37:11 +0200
|
|
Subject: [PATCH 1/4] mtd: add of_match_table parsing for partition parsers
|
|
|
|
Allow partition parsers to be matched by attaching compatible strings to
|
|
partitions.
|
|
|
|
This allows specifying the expected format of flash partitions for
|
|
matching partition parsers.
|
|
|
|
Example:
|
|
|
|
flash@foo {
|
|
...
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
|
|
cfe@0 {
|
|
reg = <0x0 0x10000>;
|
|
label = "cfe";
|
|
read-only;
|
|
};
|
|
|
|
firmware@10000 {
|
|
reg = <0x10000 0x3e0000>;
|
|
label = "firmware";
|
|
compatible = "brcm,bcm63xx-imagetag";
|
|
};
|
|
|
|
nvram@3f0000 {
|
|
reg = <0x3e0000 0x10000>;
|
|
label = "nvram";
|
|
};
|
|
};
|
|
};
|
|
|
|
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
|
|
---
|
|
drivers/mtd/mtdpart.c | 12 ++++++++----
|
|
1 file changed, 8 insertions(+), 4 deletions(-)
|
|
|
|
--- a/drivers/mtd/mtdpart.c
|
|
+++ b/drivers/mtd/mtdpart.c
|
|
@@ -948,8 +948,7 @@ int add_mtd_partitions(struct mtd_info *
|
|
add_mtd_device(&slave->mtd);
|
|
mtd_partition_split(master, slave);
|
|
mtd_add_partition_attrs(slave);
|
|
- if (parts[i].types)
|
|
- mtd_parse_part(slave, parts[i].types);
|
|
+ mtd_parse_part(slave, parts[i].types);
|
|
|
|
cur_offset = slave->offset + slave->mtd.size;
|
|
}
|
|
@@ -1121,7 +1120,9 @@ static int mtd_part_of_parse(struct mtd_
|
|
const char *fixed = "fixed-partitions";
|
|
int ret, err = 0;
|
|
|
|
- np = of_get_child_by_name(mtd_get_of_node(master), "partitions");
|
|
+ np = mtd_get_of_node(master);
|
|
+ if (!mtd_is_partition(master))
|
|
+ np = of_get_child_by_name(np, "partitions");
|
|
of_property_for_each_string(np, "compatible", prop, compat) {
|
|
parser = mtd_part_get_compatible_parser(compat);
|
|
if (!parser)
|
|
@@ -1190,8 +1191,12 @@ int parse_mtd_partitions(struct mtd_info
|
|
types = types_of;
|
|
}
|
|
|
|
- if (!types)
|
|
+ if (!types) {
|
|
+ if (mtd_is_partition(master))
|
|
+ return -ENOENT;
|
|
+
|
|
types = default_mtd_part_types;
|
|
+ }
|
|
|
|
for ( ; *types; types++) {
|
|
/*
|