kernel: deprecate support for the generic "linux,part-probe" DT binding

It has been rejected upstream and instead a nice/more generic solution
has been implemented. It's possible now to describe partitions format
using "compatible" DT string.

No OpenWrt target uses "linux,part-probe" anymore, leave it only in case
some forks need it. It will be dropped with support for new kernels.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This commit is contained in:
Rafał Miłecki 2018-11-09 14:57:45 +01:00
parent 1a73b2d089
commit c7c4ae35d6
3 changed files with 19 additions and 8 deletions

View file

@ -6,6 +6,12 @@ physmap_of.c to mtdpart.c. Now all drivers can use this feature by just
providing a reference to their device tree node in struct
mtd_part_parser_data.
THIS METHOD HAS BEEN DEPRECATED
Linux supports "compatible" property in the "partitions" subnode now. It
should be used to specify partitions format (and trigger proper parser
usage) if needed.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
Documentation/devicetree/bindings/mtd/nand.txt | 16 +++++++++
@ -104,10 +110,13 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
#include <linux/err.h>
#include <linux/of.h>
@@ -835,6 +836,32 @@ void deregister_mtd_parser(struct mtd_pa
@@ -834,6 +835,37 @@ void deregister_mtd_parser(struct mtd_pa
}
EXPORT_SYMBOL_GPL(deregister_mtd_parser);
/*
+#include <linux/version.h>
+
+/*
+ * Parses the linux,part-probe device tree property.
+ * When a non null value is returned it has to be freed with kfree() by
+ * the caller.
@ -130,14 +139,16 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+ if (count < 0)
+ return NULL;
+
+ pr_warn("Support for the generic \"linux,part-probe\" has been deprecated and will be removed soon");
+ BUILD_BUG_ON(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0));
+
+ return res;
+}
+
+/*
/*
* Do not forget to update 'parse_mtd_partitions()' kerneldoc comment if you
* are changing this array!
*/
@@ -983,6 +1010,13 @@ int parse_mtd_partitions(struct mtd_info
@@ -983,6 +1015,13 @@ int parse_mtd_partitions(struct mtd_info
struct mtd_partitions pparts = { };
struct mtd_part_parser *parser;
int ret, err = 0;
@ -151,7 +162,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
if (!types)
types = mtd_is_partition(master) ? default_subpartition_types :
@@ -1024,6 +1058,7 @@ int parse_mtd_partitions(struct mtd_info
@@ -1024,6 +1063,7 @@ int parse_mtd_partitions(struct mtd_info
if (ret < 0 && !err)
err = ret;
}

View file

@ -9,7 +9,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -1113,6 +1113,62 @@ void mtd_part_parser_cleanup(struct mtd_
@@ -1118,6 +1118,62 @@ void mtd_part_parser_cleanup(struct mtd_
}
}

View file

@ -29,7 +29,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME
#else
@@ -1223,6 +1234,24 @@ int mtd_is_partition(const struct mtd_in
@@ -1228,6 +1239,24 @@ int mtd_is_partition(const struct mtd_in
}
EXPORT_SYMBOL_GPL(mtd_is_partition);