lkml.org 
[lkml]   [2020]   [Nov]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 212/214] staging: octeon: repair "fixed-link" support
    Date
    From: Alexander Sverdlin <alexander.sverdlin@nokia.com>

    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: a25e278020bf ("staging: octeon: support fixed-link phys")
    Signed-off-by: Alexander 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/staging/octeon/ethernet-mdio.c | 6 ------
    drivers/staging/octeon/ethernet.c | 9 +++++++++
    2 files changed, 9 insertions(+), 6 deletions(-)

    --- a/drivers/staging/octeon/ethernet-mdio.c
    +++ b/drivers/staging/octeon/ethernet-mdio.c
    @@ -147,12 +147,6 @@ int cvm_oct_phy_setup_device(struct net_

    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)
    --- a/drivers/staging/octeon/ethernet.c
    +++ b/drivers/staging/octeon/ethernet.c
    @@ -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>
    @@ -894,6 +895,14 @@ static int cvm_oct_probe(struct platform
    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) {

    \
     
     \ /
      Last update: 2020-11-03 22:01    [W:4.020 / U:0.428 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site