From nobody Wed Apr 16 01:42:42 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZckLC11c3z5slky; Wed, 16 Apr 2025 01:42:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZckLB3Jgsz49V7; Wed, 16 Apr 2025 01:42:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744767762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CzdAIYLZL8sUaSn1rtbYCbradkH6rsPs0BQqq7vM3+s=; b=F8hHQV0oU0Vk5tdvdKNGkS3CMSqmP+bqIhzyCn3ZonQ3dz0gvNbh7qN9keYQcO+nKYjP+a MVy7RQ4A0c8MJKhI6psGtJDdR7GWqBhvm7UrJgLJ7dPVdyq3zmAdSbxLZrlqkdNvootHSd NmYY+Xd+Dg5ydcHJhobrYXK3dVNB1rsiqnu8yz6oCQq+6hJy2T/gH4HON+mS5AzEgM71je 4CeAHgCaVJtEBSaBnTFDr1hnUd66+/ag3BAUc27eDNmtycLjBCmq8kcofb+fIJe+/cDLw4 hEjKMSOVzq978TFr4h1Hb6Hu3Ii3SkuEnE0QRp0Nihb4I0W3kgJX+2xIoJ6V8w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744767762; a=rsa-sha256; cv=none; b=TBQhHspCzxE0pCG3GsAuW/xIRGH2Cu+sQcs3ybRlndE5Ea1LlLpPUw13fIHt96/rMYkRmq 3fyoDLQaiy/JQdiYPM2kqSCs5Pe2+mUBze/GD8XdbZV5XALfcRtQ+O2MMOUqjfzOKLt2jl QdgdPx3OPqRN+RoTVBlCN8So19QqBRdrffBGpPIf3re8ypw27o9XQwhev3HDmt0AKvCXRx 40YCdBkGFqQLS1SkTryBaUtaitbzcWf1mB/JcZLe4+9Lzwqi+WIAh6j9N35Q+/ccTAyJKg O6wB3EelYwsJ4BHQwrHDUOQb+KbJKCyLTLFu0ywBzmAR32F4bz6qNVfrT+xIHw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744767762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CzdAIYLZL8sUaSn1rtbYCbradkH6rsPs0BQqq7vM3+s=; b=TpwMR9kwNMX0Q5bRX5i10co9DXBfMsLZyfHFeWq5sYwDDxTW45y0GncS3RVjeebXDpGGt3 8p4wF1DugAK/wOlKwqiEKe2uAtYio21HyZTkxe8si0RfVAiny7txjDQlN5SpomRO7FtMqh 4I9/Pmyr9PxAuHmoCy6j0rtk1mFkQ2U77O0cQP9gggqe+DTo8dgzEKIBy1DaBRizujM5IW Iv+bqv7qpV+J1sPnxCOioIu7C13dcuBBfCQoeSQrEiCOT5EdlU3OeIs0/X/IZkH6Eopfl9 wSPqs8t6JZ9xDDw45CAeaIstBERzNbsfYWmA76UmAiy4Ovc5/1qOAmRGkbyaCg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZckLB2h3lzyk0; Wed, 16 Apr 2025 01:42:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53G1ggEO037000; Wed, 16 Apr 2025 01:42:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53G1ggHx036997; Wed, 16 Apr 2025 01:42:42 GMT (envelope-from git) Date: Wed, 16 Apr 2025 01:42:42 GMT Message-Id: <202504160142.53G1ggHx036997@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 63697ff85a3a - stable/14 - mlx5en: Use connector type instead of cable type for media detection List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 63697ff85a3a8db4da800cc797f72272797a8da8 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=63697ff85a3a8db4da800cc797f72272797a8da8 commit 63697ff85a3a8db4da800cc797f72272797a8da8 Author: Ariel Ehrenberg AuthorDate: 2025-03-25 12:40:58 +0000 Commit: Konstantin Belousov CommitDate: 2025-04-16 01:41:49 +0000 mlx5en: Use connector type instead of cable type for media detection (cherry picked from commit 89e0e3814e8ca205db7523f6ce6c63cebe4bfb0d) --- sys/dev/mlx5/mlx5_en/mlx5_en_main.c | 98 +++++++++++++++++-------------------- sys/dev/mlx5/port.h | 13 +++++ 2 files changed, 57 insertions(+), 54 deletions(-) diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c index 058923be5769..81af98082311 100644 --- a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c +++ b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c @@ -164,186 +164,186 @@ static const struct media mlx5e_mode_table[MLX5E_LINK_SPEEDS_NUMBER] = }, }; -static const struct media mlx5e_ext_mode_table[MLX5E_EXT_LINK_SPEEDS_NUMBER][MLX5E_CABLE_TYPE_NUMBER] = +static const struct media mlx5e_ext_mode_table[MLX5E_EXT_LINK_SPEEDS_NUMBER][MLX5E_CONNECTOR_TYPE_NUMBER] = { /**/ - [MLX5E_SGMII_100M][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_SGMII_100M][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_100_SGMII, .baudrate = IF_Mbps(100), }, /**/ - [MLX5E_1000BASE_X_SGMII][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_1000BASE_X_SGMII][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_1000_CX, .baudrate = IF_Mbps(1000), }, - [MLX5E_1000BASE_X_SGMII][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_1000BASE_X_SGMII][MLX5E_PORT_FIBRE] = { .subtype = IFM_1000_SX, .baudrate = IF_Mbps(1000), }, /**/ - [MLX5E_5GBASE_R][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_5GBASE_R][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_5000_KR, .baudrate = IF_Mbps(5000), }, - [MLX5E_5GBASE_R][MLX5E_CABLE_TYPE_TWISTED_PAIR] = { + [MLX5E_5GBASE_R][MLX5E_PORT_TP] = { .subtype = IFM_5000_T, .baudrate = IF_Mbps(5000), }, /**/ - [MLX5E_10GBASE_XFI_XAUI_1][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_10GBASE_XFI_XAUI_1][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_10G_KR, .baudrate = IF_Gbps(10ULL), }, - [MLX5E_10GBASE_XFI_XAUI_1][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_10GBASE_XFI_XAUI_1][MLX5E_PORT_DA] = { .subtype = IFM_10G_CR1, .baudrate = IF_Gbps(10ULL), }, - [MLX5E_10GBASE_XFI_XAUI_1][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_10GBASE_XFI_XAUI_1][MLX5E_PORT_FIBRE] = { .subtype = IFM_10G_SR, .baudrate = IF_Gbps(10ULL), }, /**/ - [MLX5E_40GBASE_XLAUI_4_XLPPI_4][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_40GBASE_XLAUI_4_XLPPI_4][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_40G_KR4, .baudrate = IF_Gbps(40ULL), }, - [MLX5E_40GBASE_XLAUI_4_XLPPI_4][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_40GBASE_XLAUI_4_XLPPI_4][MLX5E_PORT_DA] = { .subtype = IFM_40G_CR4, .baudrate = IF_Gbps(40ULL), }, - [MLX5E_40GBASE_XLAUI_4_XLPPI_4][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_40GBASE_XLAUI_4_XLPPI_4][MLX5E_PORT_FIBRE] = { .subtype = IFM_40G_SR4, .baudrate = IF_Gbps(40ULL), }, /**/ - [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_25G_KR, .baudrate = IF_Gbps(25ULL), }, - [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_PORT_DA] = { .subtype = IFM_25G_CR, .baudrate = IF_Gbps(25ULL), }, - [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_PORT_FIBRE] = { .subtype = IFM_25G_SR, .baudrate = IF_Gbps(25ULL), }, - [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_CABLE_TYPE_TWISTED_PAIR] = { + [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_PORT_TP] = { .subtype = IFM_25G_T, .baudrate = IF_Gbps(25ULL), }, /**/ - [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_50G_KR2, .baudrate = IF_Gbps(50ULL), }, - [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2][MLX5E_PORT_DA] = { .subtype = IFM_50G_CR2, .baudrate = IF_Gbps(50ULL), }, - [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2][MLX5E_PORT_FIBRE] = { .subtype = IFM_50G_SR2, .baudrate = IF_Gbps(50ULL), }, /**/ - [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_50G_KR_PAM4, .baudrate = IF_Gbps(50ULL), }, - [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR][MLX5E_PORT_DA] = { .subtype = IFM_50G_CP, .baudrate = IF_Gbps(50ULL), }, - [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR][MLX5E_PORT_FIBRE] = { .subtype = IFM_50G_SR, .baudrate = IF_Gbps(50ULL), }, /**/ - [MLX5E_CAUI_4_100GBASE_CR4_KR4][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_CAUI_4_100GBASE_CR4_KR4][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_100G_KR4, .baudrate = IF_Gbps(100ULL), }, - [MLX5E_CAUI_4_100GBASE_CR4_KR4][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_CAUI_4_100GBASE_CR4_KR4][MLX5E_PORT_DA] = { .subtype = IFM_100G_CR4, .baudrate = IF_Gbps(100ULL), }, - [MLX5E_CAUI_4_100GBASE_CR4_KR4][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_CAUI_4_100GBASE_CR4_KR4][MLX5E_PORT_FIBRE] = { .subtype = IFM_100G_SR4, .baudrate = IF_Gbps(100ULL), }, /**/ - [MLX5E_100GAUI_1_100GBASE_CR_KR][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_100GAUI_1_100GBASE_CR_KR][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_100G_KR_PAM4, .baudrate = IF_Gbps(100ULL), }, - [MLX5E_100GAUI_1_100GBASE_CR_KR][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_100GAUI_1_100GBASE_CR_KR][MLX5E_PORT_DA] = { .subtype = IFM_100G_CR_PAM4, .baudrate = IF_Gbps(100ULL), }, - [MLX5E_100GAUI_1_100GBASE_CR_KR][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_100GAUI_1_100GBASE_CR_KR][MLX5E_PORT_FIBRE] = { .subtype = IFM_100G_SR2, /* XXX */ .baudrate = IF_Gbps(100ULL), }, /**/ - [MLX5E_100GAUI_2_100GBASE_CR2_KR2][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_100GAUI_2_100GBASE_CR2_KR2][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_100G_KR4, .baudrate = IF_Gbps(100ULL), }, - [MLX5E_100GAUI_2_100GBASE_CR2_KR2][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_100GAUI_2_100GBASE_CR2_KR2][MLX5E_PORT_DA] = { .subtype = IFM_100G_CP2, .baudrate = IF_Gbps(100ULL), }, - [MLX5E_100GAUI_2_100GBASE_CR2_KR2][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_100GAUI_2_100GBASE_CR2_KR2][MLX5E_PORT_FIBRE] = { .subtype = IFM_100G_SR2, .baudrate = IF_Gbps(100ULL), }, /**/ - [MLX5E_200GAUI_2_200GBASE_CR2_KR2][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_200GAUI_2_200GBASE_CR2_KR2][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_200G_KR4_PAM4, /* XXX */ .baudrate = IF_Gbps(200ULL), }, - [MLX5E_200GAUI_2_200GBASE_CR2_KR2][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_200GAUI_2_200GBASE_CR2_KR2][MLX5E_PORT_DA] = { .subtype = IFM_200G_CR4_PAM4, /* XXX */ .baudrate = IF_Gbps(200ULL), }, - [MLX5E_200GAUI_2_200GBASE_CR2_KR2][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_200GAUI_2_200GBASE_CR2_KR2][MLX5E_PORT_FIBRE] = { .subtype = IFM_200G_SR4, /* XXX */ .baudrate = IF_Gbps(200ULL), }, /**/ - [MLX5E_200GAUI_4_200GBASE_CR4_KR4][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_200GAUI_4_200GBASE_CR4_KR4][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_200G_KR4_PAM4, .baudrate = IF_Gbps(200ULL), }, - [MLX5E_200GAUI_4_200GBASE_CR4_KR4][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_200GAUI_4_200GBASE_CR4_KR4][MLX5E_PORT_DA] = { .subtype = IFM_200G_CR4_PAM4, .baudrate = IF_Gbps(200ULL), }, - [MLX5E_200GAUI_4_200GBASE_CR4_KR4][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_200GAUI_4_200GBASE_CR4_KR4][MLX5E_PORT_FIBRE] = { .subtype = IFM_200G_SR4, .baudrate = IF_Gbps(200ULL), }, /**/ - [MLX5E_400GAUI_8][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_400GAUI_8][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_400G_LR8, /* XXX */ .baudrate = IF_Gbps(400ULL), }, /**/ - [MLX5E_400GAUI_4_400GBASE_CR4_KR4][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_400GAUI_4_400GBASE_CR4_KR4][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_400G_LR8, /* XXX */ .baudrate = IF_Gbps(400ULL), }, @@ -367,7 +367,7 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) u32 eth_proto_oper; int error; u8 i; - u8 cable_type; + u8 connector_type; u8 port_state; u8 is_er_type; bool ext; @@ -398,24 +398,14 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) ext = MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet); eth_proto_oper = MLX5_GET_ETH_PROTO(ptys_reg, out, ext, eth_proto_oper); - + connector_type = MLX5_GET(ptys_reg, out, connector_type); i = ilog2(eth_proto_oper); if (ext) { - error = mlx5_query_pddr_cable_type(mdev, 1, &cable_type); - if (error != 0) { - /* use fallback entry */ - media_entry = mlx5e_ext_mode_table[i][MLX5E_CABLE_TYPE_UNKNOWN]; - - mlx5_en_err(priv->ifp, - "query port pddr failed: %d\n", error); - } else { - media_entry = mlx5e_ext_mode_table[i][cable_type]; - + media_entry = mlx5e_ext_mode_table[i][connector_type]; /* check if we should use fallback entry */ - if (media_entry.subtype == 0) - media_entry = mlx5e_ext_mode_table[i][MLX5E_CABLE_TYPE_UNKNOWN]; - } + if (media_entry.subtype == 0) + media_entry = mlx5e_ext_mode_table[i][MLX5E_PORT_UNKNOWN]; } else { media_entry = mlx5e_mode_table[i]; } diff --git a/sys/dev/mlx5/port.h b/sys/dev/mlx5/port.h index bfbc721139d3..a35265852ae4 100644 --- a/sys/dev/mlx5/port.h +++ b/sys/dev/mlx5/port.h @@ -128,6 +128,19 @@ enum mlx5e_ext_link_speed { MLX5E_EXT_LINK_SPEEDS_NUMBER = 32, }; +enum mlx5e_connector_type { + MLX5E_PORT_UNKNOWN = 0, + MLX5E_PORT_NONE = 1, + MLX5E_PORT_TP = 2, + MLX5E_PORT_AUI = 3, + MLX5E_PORT_BNC = 4, + MLX5E_PORT_MII = 5, + MLX5E_PORT_FIBRE = 6, + MLX5E_PORT_DA = 7, + MLX5E_PORT_OTHER = 8, + MLX5E_CONNECTOR_TYPE_NUMBER = 9, +}; + enum mlx5e_cable_type { MLX5E_CABLE_TYPE_UNKNOWN = 0, MLX5E_CABLE_TYPE_ACTIVE_CABLE = 1,