In preparation for allowing a different model to register DSA switches,
update dsa_of_probe() and dsa_probe() to return -EPROBE_DEFER where
appropriate.
Failure to find a phandle or Device Tree property is still fatal, but
looking up the internal device structure associated with a Device Tree
node is something that might need to be delayed based on driver probe
ordering.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
mdio_bus = of_mdio_find_bus(mdio);
if (!mdio_bus)
mdio_bus = of_mdio_find_bus(mdio);
if (!mdio_bus)
ethernet = of_parse_phandle(np, "dsa,ethernet", 0);
if (!ethernet)
ethernet = of_parse_phandle(np, "dsa,ethernet", 0);
if (!ethernet)
ethernet_dev = of_find_device_by_node(ethernet);
if (!ethernet_dev)
ethernet_dev = of_find_device_by_node(ethernet);
if (!ethernet_dev)
pd = kzalloc(sizeof(*pd), GFP_KERNEL);
if (!pd)
pd = kzalloc(sizeof(*pd), GFP_KERNEL);
if (!pd)
dev = dev_to_net_device(pd->netdev);
if (dev == NULL) {
dev = dev_to_net_device(pd->netdev);
if (dev == NULL) {