libfdt: Sync fdt_for_each_subnode() with upstream
authorSimon Glass <sjg@chromium.org>
Sun, 2 Oct 2016 23:59:29 +0000 (17:59 -0600)
committerSimon Glass <sjg@chromium.org>
Thu, 13 Oct 2016 20:10:32 +0000 (14:10 -0600)
The signature for this macro has changed. Bring in the upstream version and
adjust U-Boot's usages to suit.

Signed-off-by: Simon Glass <sjg@chromium.org>
Update to drivers/power/pmic/palmas.c:
Signed-off-by: Keerthy <j-keerthy@ti.com>
Change-Id: I6cc9021339bfe686f9df21d61a1095ca2b3776e8

14 files changed:
arch/arm/mach-tegra/xusb-padctl-common.c
common/image-fit.c
common/image-sig.c
drivers/net/cpsw.c
drivers/net/keystone_net.c
drivers/net/mvpp2.c
drivers/pci/pci_tegra.c
drivers/phy/marvell/comphy_core.c
drivers/pinctrl/meson/pinctrl-meson.c
drivers/power/pmic/palmas.c
drivers/spi/fsl_qspi.c
include/libfdt.h
lib/fdtdec.c
lib/libfdt/fdt_overlay.c

index 6867065790f40ee3f709648c3b6d37fe8f179ec0..dfbc8ef1fe000ce572e560aa58be4cfcb7a78984 100644 (file)
@@ -223,7 +223,7 @@ tegra_xusb_padctl_config_parse_dt(struct tegra_xusb_padctl *padctl,
 
        config->name = fdt_get_name(fdt, node, NULL);
 
-       fdt_for_each_subnode(fdt, subnode, node) {
+       fdt_for_each_subnode(subnode, fdt, node) {
                struct tegra_xusb_padctl_group *group;
                int err;
 
@@ -253,7 +253,7 @@ static int tegra_xusb_padctl_parse_dt(struct tegra_xusb_padctl *padctl,
                return err;
        }
 
-       fdt_for_each_subnode(fdt, subnode, node) {
+       fdt_for_each_subnode(subnode, fdt, node) {
                struct tegra_xusb_padctl_config *config = &padctl->config;
 
                err = tegra_xusb_padctl_config_parse_dt(padctl, config, fdt,
index d67678a6dd56bd57623e2a90820328125c89491a..77dc011dc3bfc25f5e9d084f54bb25192dda9367 100644 (file)
@@ -1026,7 +1026,7 @@ int fit_image_verify(const void *fit, int image_noffset)
        }
 
        /* Process all hash subnodes of the component image node */
-       fdt_for_each_subnode(fit, noffset, image_noffset) {
+       fdt_for_each_subnode(noffset, fit, image_noffset) {
                const char *name = fit_get_name(fit, noffset, NULL);
 
                /*
index eda5e1353ab0add00db84fd00a53590ac28238cc..28f7a20cadfb249ec9ac565e9a03f2eae5b76780 100644 (file)
@@ -212,7 +212,7 @@ static int fit_image_verify_sig(const void *fit, int image_noffset,
        int ret;
 
        /* Process all hash subnodes of the component image node */
-       fdt_for_each_subnode(fit, noffset, image_noffset) {
+       fdt_for_each_subnode(noffset, fit, image_noffset) {
                const char *name = fit_get_name(fit, noffset, NULL);
 
                if (!strncmp(name, FIT_SIG_NODENAME,
@@ -260,7 +260,7 @@ int fit_image_verify_required_sigs(const void *fit, int image_noffset,
                return 0;
        }
 
-       fdt_for_each_subnode(sig_blob, noffset, sig_node) {
+       fdt_for_each_subnode(noffset, sig_blob, sig_node) {
                const char *required;
                int ret;
 
@@ -393,7 +393,7 @@ static int fit_config_verify_sig(const void *fit, int conf_noffset,
        int ret;
 
        /* Process all hash subnodes of the component conf node */
-       fdt_for_each_subnode(fit, noffset, conf_noffset) {
+       fdt_for_each_subnode(noffset, fit, conf_noffset) {
                const char *name = fit_get_name(fit, noffset, NULL);
 
                if (!strncmp(name, FIT_SIG_NODENAME,
@@ -438,7 +438,7 @@ int fit_config_verify_required_sigs(const void *fit, int conf_noffset,
                return 0;
        }
 
-       fdt_for_each_subnode(sig_blob, noffset, sig_node) {
+       fdt_for_each_subnode(noffset, sig_blob, sig_node) {
                const char *required;
                int ret;
 
index d17505e08882c4bd46de3ab3a267639026d2e84c..c3018fba3239900de76b7cae129a8850a8303a51 100644 (file)
@@ -1219,7 +1219,7 @@ static int cpsw_eth_ofdata_to_platdata(struct udevice *dev)
        active_slave = fdtdec_get_int(fdt, node, "active_slave", 0);
        priv->data.active_slave = active_slave;
 
-       fdt_for_each_subnode(fdt, subnode, node) {
+       fdt_for_each_subnode(subnode, fdt, node) {
                int len;
                const char *name;
 
index e41b7d1365d106f6b93c554b8a5a10824c376413..f88d83e727339e928d66f8964cbc6de1573e34f6 100644 (file)
@@ -990,7 +990,7 @@ static int ks2_eth_bind_slaves(struct udevice *dev, int gbe, int *gbe_0)
        char *slave_name;
 
        interfaces = fdt_subnode_offset(fdt, gbe, "interfaces");
-       fdt_for_each_subnode(fdt, slave, interfaces) {
+       fdt_for_each_subnode(slave, fdt, interfaces) {
                int slave_no;
 
                slave_no = fdtdec_get_int(fdt, slave, "slave-port", -ENOENT);
@@ -1015,7 +1015,7 @@ static int ks2_eth_bind_slaves(struct udevice *dev, int gbe, int *gbe_0)
        }
 
        sec_slave = fdt_subnode_offset(fdt, gbe, "secondary-slave-ports");
-       fdt_for_each_subnode(fdt, slave, sec_slave) {
+       fdt_for_each_subnode(slave, fdt, sec_slave) {
                int slave_no;
 
                slave_no = fdtdec_get_int(fdt, slave, "slave-port", -ENOENT);
index 340b85a71015fb62722e4016fee5d24ecab43f53..405776af95db191fa00c76451b25b766fcfa7943 100644 (file)
@@ -4153,7 +4153,7 @@ static int mvpp2_base_bind(struct udevice *parent)
                return -ENOENT;
        }
 
-       fdt_for_each_subnode(blob, subnode, node) {
+       fdt_for_each_subnode(subnode, blob, node) {
                /* Skip disabled ports */
                if (!fdtdec_get_is_enabled(blob, subnode))
                        continue;
index ea8adb98db33c5c1ec73a3b674377dbcb91339f3..430270ec2923597412f039d41f76117562f4d9f8 100644 (file)
@@ -531,7 +531,7 @@ static int tegra_pcie_parse_dt(const void *fdt, int node, enum tegra_pci_id id,
        }
 #endif
 
-       fdt_for_each_subnode(fdt, subnode, node) {
+       fdt_for_each_subnode(subnode, fdt, node) {
                unsigned int index = 0, num_lanes = 0;
                struct tegra_pcie_port *port;
 
index 344df3bed1d414d4c47444a718c693bb5ac7b533..651397d8161d0ea4fc5f40db9702c0e057779678 100644 (file)
@@ -152,7 +152,7 @@ static int comphy_probe(struct udevice *dev)
        }
 
        lane = 0;
-       fdt_for_each_subnode(blob, subnode, node) {
+       fdt_for_each_subnode(subnode, blob, node) {
                /* Skip disabled ports */
                if (!fdtdec_get_is_enabled(blob, subnode))
                        continue;
index 46470eaae94f97a6894bb7bb2684875bd95c42cd..30f7cfc8200acdb68fd46b10fd5ecec0f6b9bfd5 100644 (file)
@@ -154,7 +154,7 @@ int meson_pinctrl_probe(struct udevice *dev)
                return -EINVAL;
        }
 
-       fdt_for_each_subnode(gd->fdt_blob, node, dev->of_offset) {
+       fdt_for_each_subnode(node, gd->fdt_blob, dev->of_offset) {
                if (fdt_getprop(gd->fdt_blob, node, "gpio-controller", &len)) {
                        gpio = node;
                        break;
index 6c79a93d1b746d644db336fd0e3bd46d42ddc107..0ab425e5dc70770549019816226f7886e45e56ec 100644 (file)
@@ -52,7 +52,7 @@ static int palmas_bind(struct udevice *dev)
        int node = dev->of_offset;
        int subnode, len;
 
-       fdt_for_each_subnode(blob, subnode, node) {
+       fdt_for_each_subnode(subnode, blob, node) {
                const char *name;
                char *temp;
 
index 729ded9a0505ae98282bd75d691e7c695d3c19c7..4d378c227d5bc7e47e1211ed27a7e3cb91716b92 100644 (file)
@@ -1098,7 +1098,7 @@ static int fsl_qspi_ofdata_to_platdata(struct udevice *bus)
        }
 
        /* Count flash numbers */
-       fdt_for_each_subnode(blob, subnode, node)
+       fdt_for_each_subnode(subnode, blob, node)
                ++flash_num;
 
        if (flash_num == 0) {
index f3b61c94271ad57cd4d5395fa155ff7fa0cb4d70..398748c5c4953f3d5a1ca4714a216d315b033073 100644 (file)
@@ -176,24 +176,27 @@ int fdt_next_subnode(const void *fdt, int offset);
 /**
  * fdt_for_each_subnode - iterate over all subnodes of a parent
  *
+ * @node:      child node (int, lvalue)
+ * @fdt:       FDT blob (const void *)
+ * @parent:    parent node (int)
+ *
  * This is actually a wrapper around a for loop and would be used like so:
  *
- *     fdt_for_each_subnode(fdt, node, parent) {
- *             ...
- *             use node
+ *     fdt_for_each_subnode(node, fdt, parent) {
+ *             Use node
  *             ...
  *     }
  *
- * Note that this is implemented as a macro and node is used as iterator in
- * the loop. It should therefore be a locally allocated variable. The parent
- * variable on the other hand is never modified, so it can be constant or
- * even a literal.
+ *     if ((node < 0) && (node != -FDT_ERR_NOT_FOUND)) {
+ *             Error handling
+ *     }
+ *
+ * Note that this is implemented as a macro and @node is used as
+ * iterator in the loop. The parent variable be constant or even a
+ * literal.
  *
- * @fdt:       FDT blob (const void *)
- * @node:      child node (int)
- * @parent:    parent node (int)
  */
-#define fdt_for_each_subnode(fdt, node, parent)                \
+#define fdt_for_each_subnode(node, fdt, parent)                \
        for (node = fdt_first_subnode(fdt, parent);     \
             node >= 0;                                 \
             node = fdt_next_subnode(fdt, node))
index adc9975c3610f6b8d480f9ec0ff8eb7cb6865be5..4e619c49a2ffb2332a06c62906753b3b2eba3262 100644 (file)
@@ -836,7 +836,7 @@ int fdtdec_get_child_count(const void *blob, int node)
        int subnode;
        int num = 0;
 
-       fdt_for_each_subnode(blob, subnode, node)
+       fdt_for_each_subnode(subnode, blob, node)
                num++;
 
        return num;
index 40b6d274558a1ae5edc0f18fc4eb8e1421ba06d4..d35ceacbf0017328fae569276f9571f71d636ad3 100644 (file)
@@ -146,7 +146,7 @@ static int overlay_adjust_node_phandles(void *fdto, int node,
        if (!found && !ret)
                return ret;
 
-       fdt_for_each_subnode(fdto, child, node)
+       fdt_for_each_subnode(child, fdto, node)
                overlay_adjust_node_phandles(fdto, child, delta);
 
        return 0;
@@ -248,7 +248,7 @@ static int overlay_update_local_node_references(void *fdto,
                }
        }
 
-       fdt_for_each_subnode(fdto, fixup_child, fixup_node) {
+       fdt_for_each_subnode(fixup_child, fdto, fixup_node) {
                const char *fixup_child_name = fdt_get_name(fdto, fixup_child,
                                                            NULL);
                int tree_child;
@@ -511,7 +511,7 @@ static int overlay_apply_node(void *fdt, int target,
                        return ret;
        }
 
-       fdt_for_each_subnode(fdto, node, fragment) {
+       fdt_for_each_subnode(node, fdto, fragment) {
                const char *name = fdt_get_name(fdto, node, NULL);
                int nnode;
                int ret;
@@ -550,7 +550,7 @@ static int overlay_merge(void *dt, void *dto)
 {
        int fragment;
 
-       fdt_for_each_subnode(dto, fragment, 0) {
+       fdt_for_each_subnode(fragment, dto, 0) {
                int overlay;
                int target;
                int ret;