arm: ls102xa: Rewrite the logic of ft_fixup_enet_phy_connect_type()
authorBin Meng <bmeng.cn@gmail.com>
Tue, 12 Jan 2016 06:41:26 +0000 (22:41 -0800)
committerJoe Hershberger <joe.hershberger@ni.com>
Thu, 28 Jan 2016 18:23:22 +0000 (12:23 -0600)
eth_get_dev_by_index() is an API which is not available in driver
model. Use eth_get_dev_by_name() instead, which can also simplifly
the code logic a little bit.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
arch/arm/cpu/armv7/ls102xa/fdt.c

index 856abed94182ce741643a40bbe286bf613f97977..ae5e794230cd94d31a6eab68f15e85f6847cb61b 100644 (file)
@@ -30,17 +30,13 @@ void ft_fixup_enet_phy_connect_type(void *fdt)
        int phy_node;
        int i = 0;
        uint32_t ph;
+       char *name[3] = { "eTSEC1", "eTSEC2", "eTSEC3" };
 
-       while ((dev = eth_get_dev_by_index(i++)) != NULL) {
-               if (strstr(dev->name, "eTSEC1")) {
-                       strcpy(enet, "ethernet0");
-                       strcpy(phy, "enet0_rgmii_phy");
-               } else if (strstr(dev->name, "eTSEC2")) {
-                       strcpy(enet, "ethernet1");
-                       strcpy(phy, "enet1_rgmii_phy");
-               } else if (strstr(dev->name, "eTSEC3")) {
-                       strcpy(enet, "ethernet2");
-                       strcpy(phy, "enet2_rgmii_phy");
+       for (; i < ARRAY_SIZE(name); i++) {
+               dev = eth_get_dev_by_name(name[i]);
+               if (dev) {
+                       sprintf(enet, "ethernet%d", i);
+                       sprintf(phy, "enet%d_rgmii_phy", i);
                } else {
                        continue;
                }