|
@@ -951,9 +951,7 @@ void fdt_fixup_mtdparts(void *blob, const struct node_info *node_info,
|
|
|
struct mtd_device *dev;
|
|
|
int i, idx;
|
|
|
int noff;
|
|
|
-
|
|
|
- if (mtdparts_init() != 0)
|
|
|
- return;
|
|
|
+ bool inited = false;
|
|
|
|
|
|
for (i = 0; i < node_info_size; i++) {
|
|
|
idx = 0;
|
|
@@ -963,6 +961,13 @@ void fdt_fixup_mtdparts(void *blob, const struct node_info *node_info,
|
|
|
debug("%s: %s, mtd dev type %d\n",
|
|
|
fdt_get_name(blob, noff, 0),
|
|
|
node_info[i].compat, node_info[i].type);
|
|
|
+
|
|
|
+ if (!inited) {
|
|
|
+ if (mtdparts_init() != 0)
|
|
|
+ return;
|
|
|
+ inited = true;
|
|
|
+ }
|
|
|
+
|
|
|
dev = device_find(node_info[i].type, idx++);
|
|
|
if (dev) {
|
|
|
if (fdt_node_set_part_info(blob, noff, dev))
|