ethernet:ti:cpsw: fix phy identification with multiple slaves on fixed-phy
authorPascal Speck (Iktek) <kernel@iktek.de>
Fri, 4 Dec 2015 15:55:17 +0000 (16:55 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Dec 2015 19:46:05 +0000 (14:46 -0500)
When using more than one slave with ti cpsw and fixed phy the pd->phy_id
will be always zero, but slave_data->phy_id must be unique. pd->phy_id
means a "phy hardware id" whereas slave_data->phy_id means an "unique id",
so we should use pd->addr which has the same unique meaning.

Fixes: 1f71e8c96fc6 ("drivers: net: cpsw: Add support for fixed-link PHY")
Signed-off-by: Pascal Speck <kernel@iktek.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/cpsw.c

index 48b92c9..e3b220d 100644 (file)
@@ -2047,7 +2047,7 @@ static int cpsw_probe_dt(struct cpsw_priv *priv,
                        if (!pd)
                                return -ENODEV;
                        snprintf(slave_data->phy_id, sizeof(slave_data->phy_id),
-                                PHY_ID_FMT, pd->bus->id, pd->phy_id);
+                                PHY_ID_FMT, pd->bus->id, pd->addr);
                        goto no_phy_slave;
                }
                parp = of_get_property(slave_node, "phy_id", &lenp);