Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2f30d7f authored by Alexander Sverdlin's avatar Alexander Sverdlin Committed by Greg Kroah-Hartman
Browse files

staging: octeon: repair "fixed-link" support



commit 179f5dc36b0a1aa31538d7d8823deb65c39847b3 upstream.

The PHYs must be registered once in device probe function, not in device
open callback because it's only possible to register them once.

Fixes: a25e2780 ("staging: octeon: support fixed-link phys")
Signed-off-by: default avatarAlexander Sverdlin <alexander.sverdlin@nokia.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20201016101858.11374-1-alexander.sverdlin@nokia.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 28f7c57a
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -152,12 +152,6 @@ int cvm_oct_phy_setup_device(struct net_device *dev)

	phy_node = of_parse_phandle(priv->of_node, "phy-handle", 0);
	if (!phy_node && of_phy_is_fixed_link(priv->of_node)) {
		int rc;

		rc = of_phy_register_fixed_link(priv->of_node);
		if (rc)
			return rc;

		phy_node = of_node_get(priv->of_node);
	}
	if (!phy_node)
+9 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#include <linux/phy.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/of_mdio.h>
#include <linux/of_net.h>
#include <linux/if_ether.h>
#include <linux/if_vlan.h>
@@ -875,6 +876,14 @@ static int cvm_oct_probe(struct platform_device *pdev)
				break;
			}

			if (priv->of_node && of_phy_is_fixed_link(priv->of_node)) {
				if (of_phy_register_fixed_link(priv->of_node)) {
					netdev_err(dev, "Failed to register fixed link for interface %d, port %d\n",
						   interface, priv->port);
					dev->netdev_ops = NULL;
				}
			}

			if (!dev->netdev_ops) {
				free_netdev(dev);
			} else if (register_netdev(dev) < 0) {