From patchwork Fri Jul 9 19:08:24 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Asmaa Mnebhi X-Patchwork-Id: 1503335 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4GM2m03Hlvz9sPf; Sat, 10 Jul 2021 05:09:52 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1m1vsf-0003mi-6d; Fri, 09 Jul 2021 19:09:45 +0000 Received: from mail-il-dmz.mellanox.com ([193.47.165.129] helo=mellanox.co.il) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1m1vrx-0003G2-17 for kernel-team@lists.ubuntu.com; Fri, 09 Jul 2021 19:09:01 +0000 Received: from Internal Mail-Server by MTLPINE1 (envelope-from asmaa@mellanox.com) with SMTP; 9 Jul 2021 22:08:56 +0300 Received: from farm-0002.mtbu.labs.mlnx (farm-0002.mtbu.labs.mlnx [10.15.2.32]) by mtbu-labmailer.labs.mlnx (8.14.4/8.14.4) with ESMTP id 169J8tMD030244; Fri, 9 Jul 2021 15:08:55 -0400 Received: (from asmaa@localhost) by farm-0002.mtbu.labs.mlnx (8.14.7/8.13.8/Submit) id 169J8tdI005470; Fri, 9 Jul 2021 15:08:55 -0400 From: Asmaa Mnebhi To: kernel-team@lists.ubuntu.com Subject: [SRU][F][PULL][PATCH v2 17/23] Revert "UBUNTU: SAUCE: mlxbf_gige_main.c: Fix OOB's ethtool command" Date: Fri, 9 Jul 2021 15:08:24 -0400 Message-Id: <20210709190830.5405-18-asmaa@nvidia.com> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210709190830.5405-1-asmaa@nvidia.com> References: <20210709190830.5405-1-asmaa@nvidia.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: asmaa@nvidia.com, davthompson@nvidia.com Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" BugLink: https://bugs.launchpad.net/bugs/1934923 This reverts commit a9139cd0033706cfc4610009f61035ec2c155a16. Signed-off-by: Asmaa Mnebhi --- .../mellanox/mlxbf_gige/mlxbf_gige_main.c | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c index 75263fcd542e..b267d473f978 100644 --- a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c +++ b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c @@ -481,6 +481,50 @@ static void mlxbf_gige_get_pauseparam(struct net_device *netdev, pause->tx_pause = 1; } +static int mlxbf_gige_get_link_ksettings(struct net_device *netdev, + struct ethtool_link_ksettings *link_ksettings) +{ + struct phy_device *phydev = netdev->phydev; + u32 supported, advertising; + u32 lp_advertising = 0; + int status; + + supported = SUPPORTED_TP | SUPPORTED_1000baseT_Full | + SUPPORTED_Autoneg | SUPPORTED_Pause; + + advertising = ADVERTISED_1000baseT_Full | ADVERTISED_Autoneg | + ADVERTISED_Pause; + + status = phy_read(phydev, MII_LPA); + if (status >= 0) { + lp_advertising = mii_lpa_to_ethtool_lpa_t(status & 0xffff); + } + + status = phy_read(phydev, MII_STAT1000); + if (status >= 0) { + lp_advertising |= mii_stat1000_to_ethtool_lpa_t(status & 0xffff); + } + + ethtool_convert_legacy_u32_to_link_mode(link_ksettings->link_modes.supported, + supported); + ethtool_convert_legacy_u32_to_link_mode(link_ksettings->link_modes.advertising, + advertising); + ethtool_convert_legacy_u32_to_link_mode(link_ksettings->link_modes.lp_advertising, + lp_advertising); + + link_ksettings->base.autoneg = AUTONEG_ENABLE; + link_ksettings->base.speed = SPEED_1000; + link_ksettings->base.duplex = DUPLEX_FULL; + link_ksettings->base.port = PORT_TP; + link_ksettings->base.phy_address = MLXBF_GIGE_DEFAULT_PHY_ADDR; + link_ksettings->base.transceiver = XCVR_INTERNAL; + link_ksettings->base.mdio_support = ETH_MDIO_SUPPORTS_C22; + link_ksettings->base.eth_tp_mdix = ETH_TP_MDI_INVALID; + link_ksettings->base.eth_tp_mdix_ctrl = ETH_TP_MDI_INVALID; + + return 0; +} + static const struct ethtool_ops mlxbf_gige_ethtool_ops = { .get_drvinfo = mlxbf_gige_get_drvinfo, .get_link = ethtool_op_get_link, @@ -493,7 +537,7 @@ static const struct ethtool_ops mlxbf_gige_ethtool_ops = { .get_ethtool_stats = mlxbf_gige_get_ethtool_stats, .nway_reset = phy_ethtool_nway_reset, .get_pauseparam = mlxbf_gige_get_pauseparam, - .get_link_ksettings = phy_ethtool_get_link_ksettings, + .get_link_ksettings = mlxbf_gige_get_link_ksettings, }; static void mlxbf_gige_handle_link_change(struct net_device *netdev)