Commit c5f5d0cd authored by Rafał Miłecki's avatar Rafał Miłecki Committed by Miquel Raynal
Browse files

mtd: core: simplify (a bit) code find partition-matching dynamic OF node



1. Don't hardcode "partition-" string twice
2. Use simpler logic & use ->name to avoid of_property_read_string()
3. Use mtd_get_of_node() helper

Cc: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: default avatarRafał Miłecki <rafal@milecki.pl>
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20221004083710.27704-1-zajec5@gmail.com
parent 30a0b95b
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -551,18 +551,17 @@ static void mtd_check_of_node(struct mtd_info *mtd)
	struct device_node *partitions, *parent_dn, *mtd_dn = NULL;
	const char *pname, *prefix = "partition-";
	int plen, mtd_name_len, offset, prefix_len;
	struct mtd_info *parent;
	bool found = false;

	/* Check if MTD already has a device node */
	if (dev_of_node(&mtd->dev))
	if (mtd_get_of_node(mtd))
		return;

	/* Check if a partitions node exist */
	if (!mtd_is_partition(mtd))
		return;
	parent = mtd->parent;
	parent_dn = of_node_get(dev_of_node(&parent->dev));

	parent_dn = of_node_get(mtd_get_of_node(mtd->parent));
	if (!parent_dn)
		return;

@@ -575,15 +574,15 @@ static void mtd_check_of_node(struct mtd_info *mtd)

	/* Search if a partition is defined with the same name */
	for_each_child_of_node(partitions, mtd_dn) {
		offset = 0;

		/* Skip partition with no/wrong prefix */
		if (!of_node_name_prefix(mtd_dn, "partition-"))
		if (!of_node_name_prefix(mtd_dn, prefix))
			continue;

		/* Label have priority. Check that first */
		if (of_property_read_string(mtd_dn, "label", &pname)) {
			of_property_read_string(mtd_dn, "name", &pname);
		if (!of_property_read_string(mtd_dn, "label", &pname)) {
			offset = 0;
		} else {
			pname = mtd_dn->name;
			offset = prefix_len;
		}