Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/822119/?format=api
{ "id": 822119, "url": "http://patchwork.ozlabs.org/api/patches/822119/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20171005215344.2886-13-alan.brady@intel.com/", "project": { "id": 46, "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api", "name": "Intel Wired Ethernet development", "link_name": "intel-wired-lan", "list_id": "intel-wired-lan.osuosl.org", "list_email": "intel-wired-lan@osuosl.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20171005215344.2886-13-alan.brady@intel.com>", "list_archive_url": null, "date": "2017-10-05T21:53:42", "name": "[v3,12/14,net-next] i40e: convert i40e_get_settings_link_up to new API", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "2553888c3e078ca7edc028e4bf64ebdcd1b22831", "submitter": { "id": 69551, "url": "http://patchwork.ozlabs.org/api/people/69551/?format=api", "name": "Alan Brady", "email": "alan.brady@intel.com" }, "delegate": { "id": 68, "url": "http://patchwork.ozlabs.org/api/users/68/?format=api", "username": "jtkirshe", "first_name": "Jeff", "last_name": "Kirsher", "email": "jeffrey.t.kirsher@intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20171005215344.2886-13-alan.brady@intel.com/mbox/", "series": [ { "id": 6727, "url": "http://patchwork.ozlabs.org/api/series/6727/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=6727", "date": "2017-10-05T21:53:35", "name": "i40e: refactor ethtool interface", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/6727/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/822119/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/822119/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<intel-wired-lan-bounces@osuosl.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Authentication-Results": "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=osuosl.org\n\t(client-ip=140.211.166.136; helo=silver.osuosl.org;\n\tenvelope-from=intel-wired-lan-bounces@osuosl.org;\n\treceiver=<UNKNOWN>)", "Received": [ "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3y7RSt4jygz9t6D\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 6 Oct 2017 08:57:18 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 1DC432628A;\n\tThu, 5 Oct 2017 21:57:17 +0000 (UTC)", "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id Iojda-sosonh; Thu, 5 Oct 2017 21:57:15 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id 8EAE627161;\n\tThu, 5 Oct 2017 21:57:15 +0000 (UTC)", "from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\tby ash.osuosl.org (Postfix) with ESMTP id A7B181CEB29\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 5 Oct 2017 21:57:08 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 9D5F689107\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 5 Oct 2017 21:57:08 +0000 (UTC)", "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id WBmwmHy55rAx for <intel-wired-lan@lists.osuosl.org>;\n\tThu, 5 Oct 2017 21:57:05 +0000 (UTC)", "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby whitealder.osuosl.org (Postfix) with ESMTPS id CD838890F0\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 5 Oct 2017 21:57:05 +0000 (UTC)", "from fmsmga005.fm.intel.com ([10.253.24.32])\n\tby orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t05 Oct 2017 14:56:42 -0700", "from dev1-atbrady.jf.intel.com ([10.165.248.38])\n\tby fmsmga005.fm.intel.com with ESMTP; 05 Oct 2017 14:56:42 -0700" ], "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.42,482,1500966000\"; d=\"scan'208\";a=\"159384239\"", "From": "Alan Brady <alan.brady@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Thu, 5 Oct 2017 14:53:42 -0700", "Message-Id": "<20171005215344.2886-13-alan.brady@intel.com>", "X-Mailer": "git-send-email 2.14.1", "In-Reply-To": "<20171005215344.2886-1-alan.brady@intel.com>", "References": "<20171005215344.2886-1-alan.brady@intel.com>", "Subject": "[Intel-wired-lan] [PATCH v3 12/14 net-next] i40e: convert\n\ti40e_get_settings_link_up to new API", "X-BeenThere": "intel-wired-lan@osuosl.org", "X-Mailman-Version": "2.1.18-1", "Precedence": "list", "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.osuosl.org>", "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>", "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>", "List-Post": "<mailto:intel-wired-lan@osuosl.org>", "List-Help": "<mailto:intel-wired-lan-request@osuosl.org?subject=help>", "List-Subscribe": "<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "intel-wired-lan-bounces@osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>" }, "content": "This removes references to old ethtool API macros and functions in\ni40e_get_settings_link_up as part of the process of converting to the\nnew API. The new API also allows us to provide more explicit support\nfor new 25G and 10G PHY types so some of the PHY types have been\nadjusted where necessary as well.\n\nSigned-off-by: Alan Brady <alan.brady@intel.com>\n---\n drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 187 +++++++++++++++++--------\n 1 file changed, 125 insertions(+), 62 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\nindex 77022ab6dc7e..2c34c82cfc54 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n@@ -474,125 +474,192 @@ static void i40e_get_settings_link_up(struct i40e_hw *hw,\n \tstruct i40e_link_status *hw_link_info = &hw->phy.link_info;\n \tstruct ethtool_link_ksettings cap_ksettings;\n \tu32 link_speed = hw_link_info->link_speed;\n-\tu32 supported, advertising;\n-\n-\tethtool_convert_link_mode_to_legacy_u32(&supported,\n-\t\t\t\t\t\tks->link_modes.supported);\n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tks->link_modes.advertising);\n \n \t/* Initialize supported and advertised settings based on phy settings */\n \tswitch (hw_link_info->phy_type) {\n \tcase I40E_PHY_TYPE_40GBASE_CR4:\n \tcase I40E_PHY_TYPE_40GBASE_CR4_CU:\n-\t\tsupported = SUPPORTED_Autoneg |\n-\t\t\t SUPPORTED_40000baseCR4_Full;\n-\t\tadvertising = ADVERTISED_Autoneg |\n-\t\t\t ADVERTISED_40000baseCR4_Full;\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 40000baseCR4_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 40000baseCR4_Full);\n \t\tbreak;\n \tcase I40E_PHY_TYPE_XLAUI:\n \tcase I40E_PHY_TYPE_XLPPI:\n \tcase I40E_PHY_TYPE_40GBASE_AOC:\n-\t\tsupported = SUPPORTED_40000baseCR4_Full;\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 40000baseCR4_Full);\n \t\tbreak;\n \tcase I40E_PHY_TYPE_40GBASE_SR4:\n-\t\tsupported = SUPPORTED_40000baseSR4_Full;\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 40000baseSR4_Full);\n \t\tbreak;\n \tcase I40E_PHY_TYPE_40GBASE_LR4:\n-\t\tsupported = SUPPORTED_40000baseLR4_Full;\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 40000baseLR4_Full);\n \t\tbreak;\n+\tcase I40E_PHY_TYPE_25GBASE_SR:\n+\tcase I40E_PHY_TYPE_25GBASE_LR:\n \tcase I40E_PHY_TYPE_10GBASE_SR:\n \tcase I40E_PHY_TYPE_10GBASE_LR:\n \tcase I40E_PHY_TYPE_1000BASE_SX:\n \tcase I40E_PHY_TYPE_1000BASE_LX:\n-\t\tsupported = SUPPORTED_10000baseT_Full;\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 25000baseSR_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 25000baseSR_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 10000baseSR_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 10000baseSR_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 10000baseLR_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 10000baseLR_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 1000baseX_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 1000baseX_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 10000baseT_Full);\n \t\tif (hw_link_info->module_type[2] &\n \t\t I40E_MODULE_TYPE_1000BASE_SX ||\n \t\t hw_link_info->module_type[2] &\n \t\t I40E_MODULE_TYPE_1000BASE_LX) {\n-\t\t\tsupported |= SUPPORTED_1000baseT_Full;\n+\t\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t\t 1000baseT_Full);\n \t\t\tif (hw_link_info->requested_speeds &\n \t\t\t I40E_LINK_SPEED_1GB)\n-\t\t\t\tadvertising |= ADVERTISED_1000baseT_Full;\n+\t\t\t\tethtool_link_ksettings_add_link_mode(\n+\t\t\t\t ks, advertising, 1000baseT_Full);\n \t\t}\n \t\tif (hw_link_info->requested_speeds & I40E_LINK_SPEED_10GB)\n-\t\t\tadvertising |= ADVERTISED_10000baseT_Full;\n+\t\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t\t 10000baseT_Full);\n \t\tbreak;\n \tcase I40E_PHY_TYPE_10GBASE_T:\n \tcase I40E_PHY_TYPE_1000BASE_T:\n \tcase I40E_PHY_TYPE_100BASE_TX:\n-\t\tsupported = SUPPORTED_Autoneg |\n-\t\t\t SUPPORTED_10000baseT_Full |\n-\t\t\t SUPPORTED_1000baseT_Full |\n-\t\t\t SUPPORTED_100baseT_Full;\n-\t\tadvertising = ADVERTISED_Autoneg;\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 10000baseT_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 1000baseT_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 100baseT_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising, Autoneg);\n \t\tif (hw_link_info->requested_speeds & I40E_LINK_SPEED_10GB)\n-\t\t\tadvertising |= ADVERTISED_10000baseT_Full;\n+\t\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t\t 10000baseT_Full);\n \t\tif (hw_link_info->requested_speeds & I40E_LINK_SPEED_1GB)\n-\t\t\tadvertising |= ADVERTISED_1000baseT_Full;\n+\t\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t\t 1000baseT_Full);\n \t\tif (hw_link_info->requested_speeds & I40E_LINK_SPEED_100MB)\n-\t\t\tadvertising |= ADVERTISED_100baseT_Full;\n+\t\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t\t 100baseT_Full);\n \t\tbreak;\n \tcase I40E_PHY_TYPE_1000BASE_T_OPTICAL:\n-\t\tsupported = SUPPORTED_Autoneg |\n-\t\t\t SUPPORTED_1000baseT_Full;\n-\t\tadvertising = ADVERTISED_Autoneg |\n-\t\t\t ADVERTISED_1000baseT_Full;\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 1000baseT_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 1000baseT_Full);\n \t\tbreak;\n \tcase I40E_PHY_TYPE_10GBASE_CR1_CU:\n \tcase I40E_PHY_TYPE_10GBASE_CR1:\n-\t\tsupported = SUPPORTED_Autoneg |\n-\t\t\t SUPPORTED_10000baseT_Full;\n-\t\tadvertising = ADVERTISED_Autoneg |\n-\t\t\t ADVERTISED_10000baseT_Full;\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 10000baseT_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 10000baseT_Full);\n \t\tbreak;\n \tcase I40E_PHY_TYPE_XAUI:\n \tcase I40E_PHY_TYPE_XFI:\n \tcase I40E_PHY_TYPE_SFI:\n \tcase I40E_PHY_TYPE_10GBASE_SFPP_CU:\n \tcase I40E_PHY_TYPE_10GBASE_AOC:\n-\t\tsupported = SUPPORTED_10000baseT_Full;\n-\t\tadvertising = SUPPORTED_10000baseT_Full;\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 10000baseT_Full);\n+\t\tif (hw_link_info->requested_speeds & I40E_LINK_SPEED_10GB)\n+\t\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t\t 10000baseT_Full);\n \t\tbreak;\n \tcase I40E_PHY_TYPE_SGMII:\n-\t\tsupported = SUPPORTED_Autoneg |\n-\t\t\t SUPPORTED_1000baseT_Full;\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 1000baseT_Full);\n \t\tif (hw_link_info->requested_speeds & I40E_LINK_SPEED_1GB)\n-\t\t\tadvertising |= ADVERTISED_1000baseT_Full;\n+\t\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t\t 1000baseT_Full);\n \t\tif (pf->hw_features & I40E_HW_100M_SGMII_CAPABLE) {\n-\t\t\tsupported |= SUPPORTED_100baseT_Full;\n+\t\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t\t 100baseT_Full);\n \t\t\tif (hw_link_info->requested_speeds &\n \t\t\t I40E_LINK_SPEED_100MB)\n-\t\t\t\tadvertising |= ADVERTISED_100baseT_Full;\n+\t\t\t\tethtool_link_ksettings_add_link_mode(\n+\t\t\t\t ks, advertising, 100baseT_Full);\n \t\t}\n \t\tbreak;\n \tcase I40E_PHY_TYPE_40GBASE_KR4:\n+\tcase I40E_PHY_TYPE_25GBASE_KR:\n \tcase I40E_PHY_TYPE_20GBASE_KR2:\n \tcase I40E_PHY_TYPE_10GBASE_KR:\n \tcase I40E_PHY_TYPE_10GBASE_KX4:\n \tcase I40E_PHY_TYPE_1000BASE_KX:\n-\t\tsupported |= SUPPORTED_40000baseKR4_Full |\n-\t\t\t SUPPORTED_20000baseKR2_Full |\n-\t\t\t SUPPORTED_10000baseKR_Full |\n-\t\t\t SUPPORTED_10000baseKX4_Full |\n-\t\t\t SUPPORTED_1000baseKX_Full |\n-\t\t\t SUPPORTED_Autoneg;\n-\t\tadvertising |= ADVERTISED_40000baseKR4_Full |\n-\t\t\t ADVERTISED_20000baseKR2_Full |\n-\t\t\t ADVERTISED_10000baseKR_Full |\n-\t\t\t ADVERTISED_10000baseKX4_Full |\n-\t\t\t ADVERTISED_1000baseKX_Full |\n-\t\t\t ADVERTISED_Autoneg;\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 40000baseKR4_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 25000baseKR_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 20000baseKR2_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 10000baseKR_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 10000baseKX4_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 1000baseKX_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 40000baseKR4_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 25000baseKR_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 20000baseKR2_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 10000baseKR_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 10000baseKX4_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 1000baseKX_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising, Autoneg);\n \t\tbreak;\n-\tcase I40E_PHY_TYPE_25GBASE_KR:\n \tcase I40E_PHY_TYPE_25GBASE_CR:\n-\tcase I40E_PHY_TYPE_25GBASE_SR:\n-\tcase I40E_PHY_TYPE_25GBASE_LR:\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 25000baseCR_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 25000baseCR_Full);\n+\t\tbreak;\n \tcase I40E_PHY_TYPE_25GBASE_AOC:\n \tcase I40E_PHY_TYPE_25GBASE_ACC:\n-\t\tsupported = SUPPORTED_Autoneg;\n-\t\tadvertising = ADVERTISED_Autoneg;\n-\t\t/* TODO: add speeds when ethtool is ready to support*/\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising, Autoneg);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 25000baseCR_Full);\n+\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 25000baseCR_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, supported,\n+\t\t\t\t\t\t 10000baseCR_Full);\n+\t\tethtool_link_ksettings_add_link_mode(ks, advertising,\n+\t\t\t\t\t\t 10000baseCR_Full);\n \t\tbreak;\n \tdefault:\n \t\t/* if we got here and link is up something bad is afoot */\n@@ -605,10 +672,6 @@ static void i40e_get_settings_link_up(struct i40e_hw *hw,\n \t * current PHY type, get what is supported by the NVM and intersect\n \t * them to get what is truly supported\n \t */\n-\tethtool_convert_legacy_u32_to_link_mode(ks->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(ks->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n \tmemset(&cap_ksettings, 0, sizeof(struct ethtool_link_ksettings));\n \ti40e_phy_type_to_ethtool(pf, &cap_ksettings);\n \tethtool_intersect_link_masks(ks, &cap_ksettings);\n", "prefixes": [ "v3", "12/14", "net-next" ] }