kernel: backport 5.13 mtd partitioning changes
1. Use upstream accepted NVMEM patches
2. Minor fix for BCM4908 partitioning
3. Support for Linksys firmware partitions on Northstar
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 3fd0a4222b)
			
			
This commit is contained in:
		| @@ -1,18 +1,18 @@ | ||||
| --- a/drivers/mtd/parsers/Makefile | ||||
| +++ b/drivers/mtd/parsers/Makefile | ||||
| @@ -7,6 +7,7 @@ obj-$(CONFIG_MTD_MYLOADER_PARTS)		+= myl | ||||
|  obj-$(CONFIG_MTD_OF_PARTS)		+= ofpart.o | ||||
| @@ -8,6 +8,7 @@ obj-$(CONFIG_MTD_OF_PARTS)		+= ofpart.o | ||||
|  ofpart-y				+= ofpart_core.o | ||||
|  ofpart-$(CONFIG_MTD_OF_PARTS_BCM4908)	+= ofpart_bcm4908.o | ||||
|  ofpart-$(CONFIG_MTD_OF_PARTS_LINKSYS_NS)+= ofpart_linksys_ns.o | ||||
| +obj-$(CONFIG_MTD_PARSER_CYBERTAN)	+= parser_cybertan.o | ||||
|  obj-$(CONFIG_MTD_PARSER_IMAGETAG)	+= parser_imagetag.o | ||||
|  obj-$(CONFIG_MTD_AFS_PARTS)		+= afs.o | ||||
|  obj-$(CONFIG_MTD_PARSER_TRX)		+= parser_trx.o | ||||
| --- a/drivers/mtd/parsers/Kconfig | ||||
| +++ b/drivers/mtd/parsers/Kconfig | ||||
| @@ -92,6 +92,14 @@ config MTD_OF_PARTS_BCM4908 | ||||
|  	  that can have multiple "firmware" partitions. It takes care of | ||||
|  	  finding currently used one and backup ones. | ||||
| @@ -102,6 +102,14 @@ config MTD_OF_PARTS_LINKSYS_NS | ||||
|  	  two "firmware" partitions. Currently used firmware has to be detected | ||||
|  	  using CFE environment variable. | ||||
|   | ||||
| +config MTD_PARSER_CYBERTAN | ||||
| +	tristate "Parser for Cybertan format partitions" | ||||
|   | ||||
| @@ -139,6 +139,7 @@ CONFIG_MTD_NAND_BRCMNAND=y | ||||
| CONFIG_MTD_NAND_CORE=y | ||||
| CONFIG_MTD_NAND_ECC_SW_HAMMING=y | ||||
| CONFIG_MTD_OF_PARTS_BCM4908=y | ||||
| # CONFIG_MTD_OF_PARTS_LINKSYS_NS is not set | ||||
| CONFIG_MTD_RAW_NAND=y | ||||
| CONFIG_MTD_SPLIT_CFE_BOOTFS=y | ||||
| # CONFIG_MTD_SPLIT_SQUASHFS_ROOT is not set | ||||
|   | ||||
| @@ -258,6 +258,7 @@ CONFIG_MTD_BCM47XX_PARTS=y | ||||
| CONFIG_MTD_NAND_BRCMNAND=y | ||||
| CONFIG_MTD_NAND_CORE=y | ||||
| CONFIG_MTD_NAND_ECC_SW_HAMMING=y | ||||
| CONFIG_MTD_OF_PARTS_LINKSYS_NS=y | ||||
| CONFIG_MTD_PARSER_TRX=y | ||||
| CONFIG_MTD_RAW_NAND=y | ||||
| CONFIG_MTD_SPI_NOR=y | ||||
|   | ||||
| @@ -0,0 +1,34 @@ | ||||
| From b87b6d2d6f540e29c3f98e1572d64e560d73d6c1 Mon Sep 17 00:00:00 2001 | ||||
| From: Wei Yongjun <weiyongjun1@huawei.com> | ||||
| Date: Thu, 4 Mar 2021 06:46:00 +0000 | ||||
| Subject: [PATCH] mtd: parsers: ofpart: make symbol 'bcm4908_partitions_quirks' | ||||
|  static | ||||
|  | ||||
| The sparse tool complains as follows: | ||||
|  | ||||
| drivers/mtd/parsers/ofpart_core.c:25:32: warning: | ||||
|  symbol 'bcm4908_partitions_quirks' was not declared. Should it be static? | ||||
|  | ||||
| This symbol is not used outside of ofpart_core.c, so this | ||||
| commit marks it static. | ||||
|  | ||||
| Fixes: 457da931b608 ("mtd: parsers: ofpart: support BCM4908 fixed partitions") | ||||
| Reported-by: Hulk Robot <hulkci@huawei.com> | ||||
| Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> | ||||
| Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> | ||||
| Link: https://lore.kernel.org/linux-mtd/20210304064600.3279138-1-weiyongjun1@huawei.com | ||||
| --- | ||||
|  drivers/mtd/parsers/ofpart_core.c | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
|  | ||||
| --- a/drivers/mtd/parsers/ofpart_core.c | ||||
| +++ b/drivers/mtd/parsers/ofpart_core.c | ||||
| @@ -22,7 +22,7 @@ struct fixed_partitions_quirks { | ||||
|  	int (*post_parse)(struct mtd_info *mtd, struct mtd_partition *parts, int nr_parts); | ||||
|  }; | ||||
|   | ||||
| -struct fixed_partitions_quirks bcm4908_partitions_quirks = { | ||||
| +static struct fixed_partitions_quirks bcm4908_partitions_quirks = { | ||||
|  	.post_parse = bcm4908_partitions_post_parse, | ||||
|  }; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| From a5d83d6e2bc747b13f347962d4b335d70b23559b Mon Sep 17 00:00:00 2001 | ||||
| From 658c4448bbbf02a143abf1b89d09a3337ebd3ba6 Mon Sep 17 00:00:00 2001 | ||||
| From: Ansuel Smith <ansuelsmth@gmail.com> | ||||
| Date: Fri, 12 Mar 2021 07:28:19 +0100 | ||||
| Subject: [PATCH] mtd: core: add nvmem-cells compatible to parse mtd as nvmem | ||||
| @@ -13,6 +13,8 @@ nvmem provider. | ||||
| 
 | ||||
| Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | ||||
| Tested-by: Rafał Miłecki <rafal@milecki.pl> | ||||
| Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> | ||||
| Link: https://lore.kernel.org/linux-mtd/20210312062830.20548-1-ansuelsmth@gmail.com | ||||
| ---
 | ||||
|  drivers/mtd/mtdcore.c | 3 ++- | ||||
|  1 file changed, 2 insertions(+), 1 deletion(-) | ||||
| @@ -1,12 +1,15 @@ | ||||
| From 42645976c3289b03a12f1bd2bc131fd98fc27170 Mon Sep 17 00:00:00 2001 | ||||
| From 52981a0fa9f7d68641e0e6bb584054c6d9eb2056 Mon Sep 17 00:00:00 2001 | ||||
| From: Ansuel Smith <ansuelsmth@gmail.com> | ||||
| Date: Fri, 12 Mar 2021 07:28:20 +0100 | ||||
| Subject: [PATCH] devicetree: nvmem: nvmem: drop $nodename restriction | ||||
| Subject: [PATCH] dt-bindings: nvmem: drop $nodename restriction | ||||
| 
 | ||||
| Drop $nodename restriction as now mtd partition can also be used as | ||||
| nvmem provider. | ||||
| 
 | ||||
| Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | ||||
| Reviewed-by: Rob Herring <robh@kernel.org> | ||||
| Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> | ||||
| Link: https://lore.kernel.org/linux-mtd/20210312062830.20548-2-ansuelsmth@gmail.com | ||||
| ---
 | ||||
|  Documentation/devicetree/bindings/nvmem/nvmem.yaml | 3 --- | ||||
|  1 file changed, 3 deletions(-) | ||||
| @@ -1,4 +1,4 @@ | ||||
| From 377aa0135dc8489312edd3184d143ce3a89ff7ee Mon Sep 17 00:00:00 2001 | ||||
| From ac42c46f983e4a9003a7bb91ad44a23ab7b8f534 Mon Sep 17 00:00:00 2001 | ||||
| From: Ansuel Smith <ansuelsmth@gmail.com> | ||||
| Date: Fri, 12 Mar 2021 07:28:21 +0100 | ||||
| Subject: [PATCH] dt-bindings: mtd: Document use of nvmem-cells compatible | ||||
| @@ -8,6 +8,8 @@ nvmem provider. | ||||
| 
 | ||||
| Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | ||||
| Reviewed-by: Rob Herring <robh@kernel.org> | ||||
| Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> | ||||
| Link: https://lore.kernel.org/linux-mtd/20210312062830.20548-3-ansuelsmth@gmail.com | ||||
| ---
 | ||||
|  .../bindings/mtd/partitions/nvmem-cells.yaml  | 99 +++++++++++++++++++ | ||||
|  1 file changed, 99 insertions(+) | ||||
| @@ -0,0 +1,98 @@ | ||||
| From 2fa7294175c76e1ec568aa75c1891fd908728c8d Mon Sep 17 00:00:00 2001 | ||||
| From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> | ||||
| Date: Fri, 12 Mar 2021 14:49:18 +0100 | ||||
| Subject: [PATCH] dt-bindings: mtd: add binding for Linksys Northstar | ||||
|  partitions | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
|  | ||||
| Linksys on Broadcom Northstar devices uses fixed flash layout with | ||||
| multiple firmware partitions. | ||||
|  | ||||
| Signed-off-by: Rafał Miłecki <rafal@milecki.pl> | ||||
| Reviewed-by: Rob Herring <robh@kernel.org> | ||||
| Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> | ||||
| Link: https://lore.kernel.org/linux-mtd/20210312134919.7767-1-zajec5@gmail.com | ||||
| --- | ||||
|  .../mtd/partitions/linksys,ns-partitions.yaml | 74 +++++++++++++++++++ | ||||
|  1 file changed, 74 insertions(+) | ||||
|  create mode 100644 Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.yaml | ||||
|  | ||||
| --- /dev/null | ||||
| +++ b/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.yaml | ||||
| @@ -0,0 +1,74 @@ | ||||
| +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause | ||||
| +%YAML 1.2 | ||||
| +--- | ||||
| +$id: http://devicetree.org/schemas/mtd/partitions/linksys,ns-partitions.yaml# | ||||
| +$schema: http://devicetree.org/meta-schemas/core.yaml# | ||||
| + | ||||
| +title: Linksys Northstar partitioning | ||||
| + | ||||
| +description: | | ||||
| +  Linksys devices based on Broadcom Northstar architecture often use two | ||||
| +  firmware partitions. One is used for regular booting, the other is treated as | ||||
| +  fallback. | ||||
| + | ||||
| +  This binding allows defining all fixed partitions and marking those containing | ||||
| +  firmware. System can use that information e.g. for booting or flashing | ||||
| +  purposes. | ||||
| + | ||||
| +maintainers: | ||||
| +  - Rafał Miłecki <rafal@milecki.pl> | ||||
| + | ||||
| +properties: | ||||
| +  compatible: | ||||
| +    const: linksys,ns-partitions | ||||
| + | ||||
| +  "#address-cells": | ||||
| +    enum: [ 1, 2 ] | ||||
| + | ||||
| +  "#size-cells": | ||||
| +    enum: [ 1, 2 ] | ||||
| + | ||||
| +patternProperties: | ||||
| +  "^partition@[0-9a-f]+$": | ||||
| +    $ref: "partition.yaml#" | ||||
| +    properties: | ||||
| +      compatible: | ||||
| +        items: | ||||
| +          - const: linksys,ns-firmware | ||||
| +          - const: brcm,trx | ||||
| +    unevaluatedProperties: false | ||||
| + | ||||
| +required: | ||||
| +  - "#address-cells" | ||||
| +  - "#size-cells" | ||||
| + | ||||
| +additionalProperties: false | ||||
| + | ||||
| +examples: | ||||
| +  - | | ||||
| +    partitions { | ||||
| +        compatible = "linksys,ns-partitions"; | ||||
| +        #address-cells = <1>; | ||||
| +        #size-cells = <1>; | ||||
| + | ||||
| +        partition@0 { | ||||
| +            label = "boot"; | ||||
| +            reg = <0x0 0x100000>; | ||||
| +            read-only; | ||||
| +        }; | ||||
| + | ||||
| +        partition@100000 { | ||||
| +            label = "nvram"; | ||||
| +            reg = <0x100000 0x100000>; | ||||
| +        }; | ||||
| + | ||||
| +        partition@200000 { | ||||
| +            compatible = "linksys,ns-firmware", "brcm,trx"; | ||||
| +            reg = <0x200000 0xf00000>; | ||||
| +        }; | ||||
| + | ||||
| +        partition@1100000 { | ||||
| +            compatible = "linksys,ns-firmware", "brcm,trx"; | ||||
| +            reg = <0x1100000 0xf00000>; | ||||
| +        }; | ||||
| +    }; | ||||
| @@ -0,0 +1,156 @@ | ||||
| From 7134a2d026d942210b4d26d6059c9d979ca7866e Mon Sep 17 00:00:00 2001 | ||||
| From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> | ||||
| Date: Fri, 12 Mar 2021 14:49:19 +0100 | ||||
| Subject: [PATCH] mtd: parsers: ofpart: support Linksys Northstar partitions | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
|  | ||||
| This allows extending ofpart parser with support for Linksys Northstar | ||||
| devices. That support uses recently added quirks mechanism. | ||||
|  | ||||
| Signed-off-by: Rafał Miłecki <rafal@milecki.pl> | ||||
| Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> | ||||
| Link: https://lore.kernel.org/linux-mtd/20210312134919.7767-2-zajec5@gmail.com | ||||
| --- | ||||
|  drivers/mtd/parsers/Kconfig             | 10 +++++ | ||||
|  drivers/mtd/parsers/Makefile            |  1 + | ||||
|  drivers/mtd/parsers/ofpart_core.c       |  6 +++ | ||||
|  drivers/mtd/parsers/ofpart_linksys_ns.c | 50 +++++++++++++++++++++++++ | ||||
|  drivers/mtd/parsers/ofpart_linksys_ns.h | 18 +++++++++ | ||||
|  5 files changed, 85 insertions(+) | ||||
|  create mode 100644 drivers/mtd/parsers/ofpart_linksys_ns.c | ||||
|  create mode 100644 drivers/mtd/parsers/ofpart_linksys_ns.h | ||||
|  | ||||
| --- a/drivers/mtd/parsers/Kconfig | ||||
| +++ b/drivers/mtd/parsers/Kconfig | ||||
| @@ -76,6 +76,16 @@ config MTD_OF_PARTS_BCM4908 | ||||
|  	  that can have multiple "firmware" partitions. It takes care of | ||||
|  	  finding currently used one and backup ones. | ||||
|   | ||||
| +config MTD_OF_PARTS_LINKSYS_NS | ||||
| +	bool "Linksys Northstar partitioning support" | ||||
| +	depends on MTD_OF_PARTS && (ARCH_BCM_5301X || ARCH_BCM4908 || COMPILE_TEST) | ||||
| +	default ARCH_BCM_5301X | ||||
| +	help | ||||
| +	  This provides partitions parser for Linksys devices based on Broadcom | ||||
| +	  Northstar architecture. Linksys commonly uses fixed flash layout with | ||||
| +	  two "firmware" partitions. Currently used firmware has to be detected | ||||
| +	  using CFE environment variable. | ||||
| + | ||||
|  config MTD_PARSER_IMAGETAG | ||||
|  	tristate "Parser for BCM963XX Image Tag format partitions" | ||||
|  	depends on BCM63XX || BMIPS_GENERIC || COMPILE_TEST | ||||
| --- a/drivers/mtd/parsers/Makefile | ||||
| +++ b/drivers/mtd/parsers/Makefile | ||||
| @@ -6,6 +6,7 @@ obj-$(CONFIG_MTD_CMDLINE_PARTS)		+= cmdl | ||||
|  obj-$(CONFIG_MTD_OF_PARTS)		+= ofpart.o | ||||
|  ofpart-y				+= ofpart_core.o | ||||
|  ofpart-$(CONFIG_MTD_OF_PARTS_BCM4908)	+= ofpart_bcm4908.o | ||||
| +ofpart-$(CONFIG_MTD_OF_PARTS_LINKSYS_NS)+= ofpart_linksys_ns.o | ||||
|  obj-$(CONFIG_MTD_PARSER_IMAGETAG)	+= parser_imagetag.o | ||||
|  obj-$(CONFIG_MTD_AFS_PARTS)		+= afs.o | ||||
|  obj-$(CONFIG_MTD_PARSER_TRX)		+= parser_trx.o | ||||
| --- a/drivers/mtd/parsers/ofpart_core.c | ||||
| +++ b/drivers/mtd/parsers/ofpart_core.c | ||||
| @@ -17,6 +17,7 @@ | ||||
|  #include <linux/mtd/partitions.h> | ||||
|   | ||||
|  #include "ofpart_bcm4908.h" | ||||
| +#include "ofpart_linksys_ns.h" | ||||
|   | ||||
|  struct fixed_partitions_quirks { | ||||
|  	int (*post_parse)(struct mtd_info *mtd, struct mtd_partition *parts, int nr_parts); | ||||
| @@ -26,6 +27,10 @@ static struct fixed_partitions_quirks bc | ||||
|  	.post_parse = bcm4908_partitions_post_parse, | ||||
|  }; | ||||
|   | ||||
| +static struct fixed_partitions_quirks linksys_ns_partitions_quirks = { | ||||
| +	.post_parse = linksys_ns_partitions_post_parse, | ||||
| +}; | ||||
| + | ||||
|  static const struct of_device_id parse_ofpart_match_table[]; | ||||
|   | ||||
|  static bool node_has_compatible(struct device_node *pp) | ||||
| @@ -164,6 +169,7 @@ static const struct of_device_id parse_o | ||||
|  	{ .compatible = "fixed-partitions" }, | ||||
|  	/* Customized */ | ||||
|  	{ .compatible = "brcm,bcm4908-partitions", .data = &bcm4908_partitions_quirks, }, | ||||
| +	{ .compatible = "linksys,ns-partitions", .data = &linksys_ns_partitions_quirks, }, | ||||
|  	{}, | ||||
|  }; | ||||
|  MODULE_DEVICE_TABLE(of, parse_ofpart_match_table); | ||||
| --- /dev/null | ||||
| +++ b/drivers/mtd/parsers/ofpart_linksys_ns.c | ||||
| @@ -0,0 +1,50 @@ | ||||
| +// SPDX-License-Identifier: GPL-2.0 | ||||
| +/* | ||||
| + * Copyright (C) 2021 Rafał Miłecki <rafal@milecki.pl> | ||||
| + */ | ||||
| + | ||||
| +#include <linux/bcm47xx_nvram.h> | ||||
| +#include <linux/mtd/mtd.h> | ||||
| +#include <linux/mtd/partitions.h> | ||||
| + | ||||
| +#include "ofpart_linksys_ns.h" | ||||
| + | ||||
| +#define NVRAM_BOOT_PART		"bootpartition" | ||||
| + | ||||
| +static int ofpart_linksys_ns_bootpartition(void) | ||||
| +{ | ||||
| +	char buf[4]; | ||||
| +	int bootpartition; | ||||
| + | ||||
| +	/* Check CFE environment variable */ | ||||
| +	if (bcm47xx_nvram_getenv(NVRAM_BOOT_PART, buf, sizeof(buf)) > 0) { | ||||
| +		if (!kstrtoint(buf, 0, &bootpartition)) | ||||
| +			return bootpartition; | ||||
| +		pr_warn("Failed to parse %s value \"%s\"\n", NVRAM_BOOT_PART, | ||||
| +			buf); | ||||
| +	} else { | ||||
| +		pr_warn("Failed to get NVRAM \"%s\"\n", NVRAM_BOOT_PART); | ||||
| +	} | ||||
| + | ||||
| +	return 0; | ||||
| +} | ||||
| + | ||||
| +int linksys_ns_partitions_post_parse(struct mtd_info *mtd, | ||||
| +				     struct mtd_partition *parts, | ||||
| +				     int nr_parts) | ||||
| +{ | ||||
| +	int bootpartition = ofpart_linksys_ns_bootpartition(); | ||||
| +	int trx_idx = 0; | ||||
| +	int i; | ||||
| + | ||||
| +	for (i = 0; i < nr_parts; i++) { | ||||
| +		if (of_device_is_compatible(parts[i].of_node, "linksys,ns-firmware")) { | ||||
| +			if (trx_idx++ == bootpartition) | ||||
| +				parts[i].name = "firmware"; | ||||
| +			else | ||||
| +				parts[i].name = "backup"; | ||||
| +		} | ||||
| +	} | ||||
| + | ||||
| +	return 0; | ||||
| +} | ||||
| --- /dev/null | ||||
| +++ b/drivers/mtd/parsers/ofpart_linksys_ns.h | ||||
| @@ -0,0 +1,18 @@ | ||||
| +/* SPDX-License-Identifier: GPL-2.0 */ | ||||
| +#ifndef __OFPART_LINKSYS_NS_H | ||||
| +#define __OFPART_LINKSYS_NS_H | ||||
| + | ||||
| +#ifdef CONFIG_MTD_OF_PARTS_LINKSYS_NS | ||||
| +int linksys_ns_partitions_post_parse(struct mtd_info *mtd, | ||||
| +				     struct mtd_partition *parts, | ||||
| +				     int nr_parts); | ||||
| +#else | ||||
| +static inline int linksys_ns_partitions_post_parse(struct mtd_info *mtd, | ||||
| +						   struct mtd_partition *parts, | ||||
| +						   int nr_parts) | ||||
| +{ | ||||
| +	return -EOPNOTSUPP; | ||||
| +} | ||||
| +#endif | ||||
| + | ||||
| +#endif | ||||
| @@ -16,7 +16,7 @@ Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org> | ||||
|  | ||||
| --- a/drivers/mtd/parsers/Kconfig | ||||
| +++ b/drivers/mtd/parsers/Kconfig | ||||
| @@ -185,3 +185,12 @@ config MTD_REDBOOT_PARTS_READONLY | ||||
| @@ -195,3 +195,12 @@ config MTD_REDBOOT_PARTS_READONLY | ||||
|  	  'FIS directory' images, enable this option. | ||||
|   | ||||
|  endif # MTD_REDBOOT_PARTS | ||||
| @@ -31,7 +31,7 @@ Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org> | ||||
| +	 formatted DTS. | ||||
| --- a/drivers/mtd/parsers/Makefile | ||||
| +++ b/drivers/mtd/parsers/Makefile | ||||
| @@ -12,3 +12,4 @@ obj-$(CONFIG_MTD_AFS_PARTS)		+= afs.o | ||||
| @@ -13,3 +13,4 @@ obj-$(CONFIG_MTD_AFS_PARTS)		+= afs.o | ||||
|  obj-$(CONFIG_MTD_PARSER_TRX)		+= parser_trx.o | ||||
|  obj-$(CONFIG_MTD_SHARPSL_PARTS)		+= sharpslpart.o | ||||
|  obj-$(CONFIG_MTD_REDBOOT_PARTS)		+= redboot.o | ||||
|   | ||||
| @@ -18,7 +18,7 @@ Signed-off-by: Ram Chandra Jangir <rjangi@codeaurora.org> | ||||
|  | ||||
| --- a/drivers/mtd/parsers/Kconfig | ||||
| +++ b/drivers/mtd/parsers/Kconfig | ||||
| @@ -128,6 +128,13 @@ config MTD_PARSER_TRX | ||||
| @@ -138,6 +138,13 @@ config MTD_PARSER_TRX | ||||
|  	  This driver will parse TRX header and report at least two partitions: | ||||
|  	  kernel and rootfs. | ||||
|   | ||||
| @@ -34,7 +34,7 @@ Signed-off-by: Ram Chandra Jangir <rjangi@codeaurora.org> | ||||
|  	depends on MTD_NAND_SHARPSL || MTD_NAND_TMIO || COMPILE_TEST | ||||
| --- a/drivers/mtd/parsers/Makefile | ||||
| +++ b/drivers/mtd/parsers/Makefile | ||||
| @@ -10,6 +10,7 @@ ofpart-$(CONFIG_MTD_OF_PARTS_BCM4908)	+= | ||||
| @@ -11,6 +11,7 @@ ofpart-$(CONFIG_MTD_OF_PARTS_LINKSYS_NS) | ||||
|  obj-$(CONFIG_MTD_PARSER_IMAGETAG)	+= parser_imagetag.o | ||||
|  obj-$(CONFIG_MTD_AFS_PARTS)		+= afs.o | ||||
|  obj-$(CONFIG_MTD_PARSER_TRX)		+= parser_trx.o | ||||
|   | ||||
| @@ -5,7 +5,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org> | ||||
| --- | ||||
| --- a/drivers/mtd/parsers/ofpart_core.c | ||||
| +++ b/drivers/mtd/parsers/ofpart_core.c | ||||
| @@ -33,6 +33,8 @@ static bool node_has_compatible(struct d | ||||
| @@ -38,6 +38,8 @@ static bool node_has_compatible(struct d | ||||
|  	return of_get_property(pp, "compatible", NULL); | ||||
|  } | ||||
|   | ||||
| @@ -14,7 +14,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org> | ||||
|  static int parse_fixed_partitions(struct mtd_info *master, | ||||
|  				  const struct mtd_partition **pparts, | ||||
|  				  struct mtd_part_parser_data *data) | ||||
| @@ -42,6 +44,7 @@ static int parse_fixed_partitions(struct | ||||
| @@ -47,6 +49,7 @@ static int parse_fixed_partitions(struct | ||||
|  	struct mtd_partition *parts; | ||||
|  	struct device_node *mtd_node; | ||||
|  	struct device_node *ofpart_node; | ||||
| @@ -22,7 +22,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org> | ||||
|  	const char *partname; | ||||
|  	struct device_node *pp; | ||||
|  	int nr_parts, i, ret = 0; | ||||
| @@ -126,9 +129,15 @@ static int parse_fixed_partitions(struct | ||||
| @@ -131,9 +134,15 @@ static int parse_fixed_partitions(struct | ||||
|  		parts[i].size = of_read_number(reg + a_cells, s_cells); | ||||
|  		parts[i].of_node = pp; | ||||
|   | ||||
| @@ -41,7 +41,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org> | ||||
|  		parts[i].name = partname; | ||||
|   | ||||
|  		if (of_get_property(pp, "read-only", &len)) | ||||
| @@ -241,6 +250,18 @@ static int __init ofpart_parser_init(voi | ||||
| @@ -247,6 +256,18 @@ static int __init ofpart_parser_init(voi | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| --- a/drivers/mtd/parsers/ofpart_core.c | ||||
| +++ b/drivers/mtd/parsers/ofpart_core.c | ||||
| @@ -33,6 +33,38 @@ static bool node_has_compatible(struct d | ||||
| @@ -38,6 +38,38 @@ static bool node_has_compatible(struct d | ||||
|  	return of_get_property(pp, "compatible", NULL); | ||||
|  } | ||||
|   | ||||
| @@ -39,7 +39,7 @@ | ||||
|  static int parse_fixed_partitions(struct mtd_info *master, | ||||
|  				  const struct mtd_partition **pparts, | ||||
|  				  struct mtd_part_parser_data *data) | ||||
| @@ -46,6 +78,8 @@ static int parse_fixed_partitions(struct | ||||
| @@ -51,6 +83,8 @@ static int parse_fixed_partitions(struct | ||||
|  	struct device_node *pp; | ||||
|  	int nr_parts, i, ret = 0; | ||||
|  	bool dedicated = true; | ||||
| @@ -48,7 +48,7 @@ | ||||
|   | ||||
|  	/* Pull of_node from the master device node */ | ||||
|  	mtd_node = mtd_get_of_node(master); | ||||
| @@ -88,7 +122,9 @@ static int parse_fixed_partitions(struct | ||||
| @@ -93,7 +127,9 @@ static int parse_fixed_partitions(struct | ||||
|  		return 0; | ||||
|   | ||||
|  	parts = kcalloc(nr_parts, sizeof(*parts), GFP_KERNEL); | ||||
| @@ -59,7 +59,7 @@ | ||||
|  		return -ENOMEM; | ||||
|   | ||||
|  	i = 0; | ||||
| @@ -137,6 +173,11 @@ static int parse_fixed_partitions(struct | ||||
| @@ -142,6 +178,11 @@ static int parse_fixed_partitions(struct | ||||
|  		if (of_get_property(pp, "lock", &len)) | ||||
|  			parts[i].mask_flags |= MTD_POWERUP_LOCK; | ||||
|   | ||||
| @@ -71,7 +71,7 @@ | ||||
|  		i++; | ||||
|  	} | ||||
|   | ||||
| @@ -146,6 +187,11 @@ static int parse_fixed_partitions(struct | ||||
| @@ -151,6 +192,11 @@ static int parse_fixed_partitions(struct | ||||
|  	if (quirks && quirks->post_parse) | ||||
|  		quirks->post_parse(master, parts, nr_parts); | ||||
|   | ||||
| @@ -83,7 +83,7 @@ | ||||
|  	*pparts = parts; | ||||
|  	return nr_parts; | ||||
|   | ||||
| @@ -156,6 +202,7 @@ ofpart_fail: | ||||
| @@ -161,6 +207,7 @@ ofpart_fail: | ||||
|  ofpart_none: | ||||
|  	of_node_put(pp); | ||||
|  	kfree(parts); | ||||
|   | ||||
| @@ -5,7 +5,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org> | ||||
|  | ||||
| --- a/drivers/mtd/parsers/ofpart_core.c | ||||
| +++ b/drivers/mtd/parsers/ofpart_core.c | ||||
| @@ -33,6 +33,8 @@ static bool node_has_compatible(struct d | ||||
| @@ -38,6 +38,8 @@ static bool node_has_compatible(struct d | ||||
|  	return of_get_property(pp, "compatible", NULL); | ||||
|  } | ||||
|   | ||||
| @@ -14,7 +14,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org> | ||||
|  static int parse_fixed_partitions(struct mtd_info *master, | ||||
|  				  const struct mtd_partition **pparts, | ||||
|  				  struct mtd_part_parser_data *data) | ||||
| @@ -43,6 +45,7 @@ static int parse_fixed_partitions(struct | ||||
| @@ -48,6 +50,7 @@ static int parse_fixed_partitions(struct | ||||
|  	struct device_node *mtd_node; | ||||
|  	struct device_node *ofpart_node; | ||||
|  	const char *partname; | ||||
| @@ -22,7 +22,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org> | ||||
|  	struct device_node *pp; | ||||
|  	int nr_parts, i, ret = 0; | ||||
|  	bool dedicated = true; | ||||
| @@ -126,9 +129,13 @@ static int parse_fixed_partitions(struct | ||||
| @@ -131,9 +134,13 @@ static int parse_fixed_partitions(struct | ||||
|  		parts[i].size = of_read_number(reg + a_cells, s_cells); | ||||
|  		parts[i].of_node = pp; | ||||
|   | ||||
| @@ -39,7 +39,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org> | ||||
|  		parts[i].name = partname; | ||||
|   | ||||
|  		if (of_get_property(pp, "read-only", &len)) | ||||
| @@ -241,6 +248,18 @@ static int __init ofpart_parser_init(voi | ||||
| @@ -247,6 +254,18 @@ static int __init ofpart_parser_init(voi | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Rafał Miłecki
					Rafał Miłecki