From e018f1fd99adcd8e467ac60796ea93f5d86d2afe Mon Sep 17 00:00:00 2001 From: Ioana Radulescu Date: Fri, 23 Mar 2018 08:44:10 -0500 Subject: staging: fsl-dpaa2/eth: Change link settings on the fly Newer MC versions allow us to change link settings while the interface is up. Only check interface status if we are using an old version. Signed-off-by: Ioana Radulescu Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-dpaa2/ethernet/dpaa2-ethtool.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-ethtool.c b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-ethtool.c index dfbfa946aa3f..bfc8b64169ca 100644 --- a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-ethtool.c +++ b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-ethtool.c @@ -119,6 +119,8 @@ out: return err; } +#define DPNI_DYNAMIC_LINK_SET_VER_MAJOR 7 +#define DPNI_DYNAMIC_LINK_SET_VER_MINOR 1 static int dpaa2_eth_set_link_ksettings(struct net_device *net_dev, const struct ethtool_link_ksettings *link_settings) @@ -127,15 +129,16 @@ dpaa2_eth_set_link_ksettings(struct net_device *net_dev, struct dpaa2_eth_priv *priv = netdev_priv(net_dev); int err = 0; - netdev_dbg(net_dev, "Setting link parameters..."); - - /* Due to a temporary MC limitation, the DPNI must be down + /* If using an older MC version, the DPNI must be down * in order to be able to change link settings. Taking steps to let * the user know that. */ - if (netif_running(net_dev)) { - netdev_info(net_dev, "Sorry, interface must be brought down first.\n"); - return -EACCES; + if (dpaa2_eth_cmp_dpni_ver(priv, DPNI_DYNAMIC_LINK_SET_VER_MAJOR, + DPNI_DYNAMIC_LINK_SET_VER_MINOR) < 0) { + if (netif_running(net_dev)) { + netdev_info(net_dev, "Interface must be brought down first.\n"); + return -EACCES; + } } cfg.rate = link_settings->base.speed; -- cgit v1.2.3-59-g8ed1b