Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp3274051pxb; Mon, 18 Oct 2021 11:40:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxK2q6W+MQWE/H67Z0jsMwy/IMYn0cFuvK0Eh8d0WApMboRGJ3WDVUvJGSH2+gPUy7pzd3L X-Received: by 2002:a17:906:bceb:: with SMTP id op11mr32284812ejb.449.1634582414099; Mon, 18 Oct 2021 11:40:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634582414; cv=none; d=google.com; s=arc-20160816; b=WSwL+SJ+duMF2Rcbn5zbP8NQX1C2sMKFaLZlPSSxDD4Pq0qUMFTCbZ89/craD0ycuL 6QT+5QqWFTt2Bk2Tm8mS6IR33rLNqaZwcWwJZXcLQ0vLcGunXCyUoVCX29tc7ahEkaue xkmNuiMQFiTEHyDaRTYOy7rb6e3dTfgBhBNKBzhPOP/f+2OqZklyRI7miRpuFrtErVWv c9E8dz0b3M6X/FuKQfNDjBFn2jbfRYk+nPKzfDtjchtcaAmarsdCk4LYeq04vpYYiWlE 54xD1TKnjZpcu7XVS9DEeBO3yU2+YFlsyYZzQgvMIqCC49uJJGHuUt2/tK9hfqNNvPwx xHUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=7hfYG9ngN44n8cK8yaU0t5TJm8OEoNDtrTeVqiPoS4I=; b=NweqcHF6sBtJHwNZb61oacED51E1Sa5EE5JvnXkT+tQP42+5F/DFs4qYo2f82KyZlu ZYzFxELsepyfzCL9Rpn0pwaw/oA36NjdAN4/YGWVwyzJ1SNICkSUZWkKZoh6dqwgWMxb i07oISJWMCOOc2XJCVV56N1SFxGal/EyJMsgVM6q+ZY0W3ZXwxoK6o8oM1Yrh7du9CTw wE8mZ+BdGXsVBVHZKgAr1MgSZXApfHxBrawCyHhBkqhHykaB7xp9aymjiRB2KxDP8G5w +afrA6LV8jBp5HZ0IvFNYVZm6vJZ65n5iPZNx1teI3HBV4Yz1uKghTNM69t70di2vpQ+ hSew== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kryo-se.20210112.gappssmtp.com header.s=20210112 header.b=EqLhAXgE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t14si23682385edd.142.2021.10.18.11.39.50; Mon, 18 Oct 2021 11:40:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kryo-se.20210112.gappssmtp.com header.s=20210112 header.b=EqLhAXgE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232280AbhJRSj4 (ORCPT + 99 others); Mon, 18 Oct 2021 14:39:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50202 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229924AbhJRSjz (ORCPT ); Mon, 18 Oct 2021 14:39:55 -0400 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3B288C061745 for ; Mon, 18 Oct 2021 11:37:44 -0700 (PDT) Received: by mail-wm1-x329.google.com with SMTP id a140-20020a1c7f92000000b0030d8315b593so84085wmd.5 for ; Mon, 18 Oct 2021 11:37:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kryo-se.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=7hfYG9ngN44n8cK8yaU0t5TJm8OEoNDtrTeVqiPoS4I=; b=EqLhAXgEh92tFGr5kjK32t76DTlz+yMUUz3jHLk+X1fkwEESsHZescMt+GcyiZGu0E xk12D07vdi1OBfDol6ltIk6bMRCz1jGNcpf/qkliIuG9JSKuWTpmaCQMzy0nKfLNTt3t L+moys2I97dsm3SL7GCtsduzLY2lGRH+J7MvnGfVS9/xVDT1aOFKxWE6abBlzNNusTvP vptWeG8qLqUUJKF9exuWgzmCah0jQFbMKzxd39eOeXfpiFdssEcYHa33CYo8JXsCyFra ticuoiE1QIUdHlF1/LcASoK9izea58aFZcJA2o8pXHaCYHh50AaKjhR8m6yNbUUKF5gM 63TA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=7hfYG9ngN44n8cK8yaU0t5TJm8OEoNDtrTeVqiPoS4I=; b=Q9ktpO1ONfgovskOLL56QcPg1HSgxp1mVYTK/rbN5gpSTgscQxXHs6mPQ4XX91uWQm AykDDDEU/sWJ3zDSGwmx1dDosHtaat85Pq+xRNc4emDDep7+iAKdyHton0JC/kGuZFgv PN82r/1Y8FYlWIoxXIolNa7hJ4w+p9s6JBnm+JRHED+aDByvwbUvfwbOVTWMTo4uglDo sOAkKxabEI+q/O+8dGJdj63vpiOqo31jQaQXh/dW5u0D5Q+gZlLRMfrPIW24xZeC8AF5 nWtDED2BCeLbAuwJbEMLgPLoVJRmYr9pUTznvp7DNOWZVn0xXnpLACpk/qpGbUr3xbBT ZT0w== X-Gm-Message-State: AOAM532piXamNsl0xpFk+NiYxVWhRES2+fKJ10Pr68sLXP6TlSpZzmXy sW8GM5tNAM4pwadD0Y3A8Qqa8Q== X-Received: by 2002:a7b:c856:: with SMTP id c22mr627144wml.178.1634582262201; Mon, 18 Oct 2021 11:37:42 -0700 (PDT) Received: from kerfuffle.. ([2a02:168:9619:0:5497:3715:36d:f557]) by smtp.gmail.com with ESMTPSA id n1sm195958wmi.30.2021.10.18.11.37.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Oct 2021 11:37:41 -0700 (PDT) From: Erik Ekman To: Edward Cree , Martin Habets , "David S. Miller" , Jakub Kicinski Cc: Erik Ekman , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] sfc: Export fibre-specific link modes for 1/10G Date: Mon, 18 Oct 2021 20:37:08 +0200 Message-Id: <20211018183709.124744-1-erik@kryo.se> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org These modes were added to ethtool.h in 5711a98221443 ("net: ethtool: add support for 1000BaseX and missing 10G link modes") back in 2016. Only setting CR mode for 10G, similar to how 25/40/50/100G modes are set up. Tested using SFN5122F-R7 (with 2 SFP+ ports) and a 1000BASE-BX10 SFP module. Before: $ ethtool ext Settings for ext: Supported ports: [ FIBRE ] Supported link modes: 1000baseT/Full 10000baseT/Full Supported pause frame use: Symmetric Receive-only Supports auto-negotiation: No Supported FEC modes: Not reported Advertised link modes: Not reported Advertised pause frame use: No Advertised auto-negotiation: No Advertised FEC modes: Not reported Link partner advertised link modes: Not reported Link partner advertised pause frame use: No Link partner advertised auto-negotiation: No Link partner advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Auto-negotiation: off Port: FIBRE PHYAD: 255 Transceiver: internal Current message level: 0x000020f7 (8439) drv probe link ifdown ifup rx_err tx_err hw Link detected: yes After: $ ethtool ext Settings for ext: Supported ports: [ FIBRE ] Supported link modes: 1000baseX/Full 10000baseCR/Full Supported pause frame use: Symmetric Receive-only Supports auto-negotiation: No Supported FEC modes: Not reported Advertised link modes: Not reported Advertised pause frame use: No Advertised auto-negotiation: No Advertised FEC modes: Not reported Link partner advertised link modes: Not reported Link partner advertised pause frame use: No Link partner advertised auto-negotiation: No Link partner advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Auto-negotiation: off Port: FIBRE PHYAD: 255 Transceiver: internal Supports Wake-on: g Wake-on: d Current message level: 0x000020f7 (8439) drv probe link ifdown ifup rx_err tx_err hw Link detected: yes Signed-off-by: Erik Ekman --- drivers/net/ethernet/sfc/mcdi_port_common.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/sfc/mcdi_port_common.c b/drivers/net/ethernet/sfc/mcdi_port_common.c index 4bd3ef8f3384..e84cdcb6a595 100644 --- a/drivers/net/ethernet/sfc/mcdi_port_common.c +++ b/drivers/net/ethernet/sfc/mcdi_port_common.c @@ -133,9 +133,9 @@ void mcdi_to_ethtool_linkset(u32 media, u32 cap, unsigned long *linkset) case MC_CMD_MEDIA_QSFP_PLUS: SET_BIT(FIBRE); if (cap & (1 << MC_CMD_PHY_CAP_1000FDX_LBN)) - SET_BIT(1000baseT_Full); + SET_BIT(1000baseX_Full); if (cap & (1 << MC_CMD_PHY_CAP_10000FDX_LBN)) - SET_BIT(10000baseT_Full); + SET_BIT(10000baseCR_Full); if (cap & (1 << MC_CMD_PHY_CAP_40000FDX_LBN)) SET_BIT(40000baseCR4_Full); if (cap & (1 << MC_CMD_PHY_CAP_100000FDX_LBN)) @@ -192,9 +192,11 @@ u32 ethtool_linkset_to_mcdi_cap(const unsigned long *linkset) result |= (1 << MC_CMD_PHY_CAP_100FDX_LBN); if (TEST_BIT(1000baseT_Half)) result |= (1 << MC_CMD_PHY_CAP_1000HDX_LBN); - if (TEST_BIT(1000baseT_Full) || TEST_BIT(1000baseKX_Full)) + if (TEST_BIT(1000baseT_Full) || TEST_BIT(1000baseKX_Full) || + TEST_BIT(1000baseX_Full)) result |= (1 << MC_CMD_PHY_CAP_1000FDX_LBN); - if (TEST_BIT(10000baseT_Full) || TEST_BIT(10000baseKX4_Full)) + if (TEST_BIT(10000baseT_Full) || TEST_BIT(10000baseKX4_Full) || + TEST_BIT(10000baseCR_Full)) result |= (1 << MC_CMD_PHY_CAP_10000FDX_LBN); if (TEST_BIT(40000baseCR4_Full) || TEST_BIT(40000baseKR4_Full)) result |= (1 << MC_CMD_PHY_CAP_40000FDX_LBN); -- 2.31.1