From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4397BC43381 for ; Fri, 22 Feb 2019 13:57:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 040F22075A for ; Fri, 22 Feb 2019 13:57:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="Uiw4MOyc" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727094AbfBVN5u (ORCPT ); Fri, 22 Feb 2019 08:57:50 -0500 Received: from mail-eopbgr10048.outbound.protection.outlook.com ([40.107.1.48]:39936 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727067AbfBVN5t (ORCPT ); Fri, 22 Feb 2019 08:57:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Mpk4UQfS82u2/NnEqVUMyzYL/3ZI177anN9LLNdTkEM=; b=Uiw4MOycBX/WXIUOTaIq+C3Oj9ZbjgqtPZFVvpXMQNA72lPBqwVgnSbQJGpgl19vJzl1vcjx0JeyLHrk7jqXxTjCgWRmWWwnu18l3v+ShuBJV4cHnwl/SF0WGFAIfmYgYBTbjrWAkHLCu+OPhzrhfwGoE8XNMqpjviCeo+gBFKA= Received: from AM6PR05MB5240.eurprd05.prod.outlook.com (20.177.196.214) by AM6PR05MB4358.eurprd05.prod.outlook.com (52.135.162.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1622.19; Fri, 22 Feb 2019 13:56:46 +0000 Received: from AM6PR05MB5240.eurprd05.prod.outlook.com ([fe80::3542:889c:3a85:3866]) by AM6PR05MB5240.eurprd05.prod.outlook.com ([fe80::3542:889c:3a85:3866%5]) with mapi id 15.20.1643.014; Fri, 22 Feb 2019 13:56:46 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , Shalom Toledo , mlxsw , Ido Schimmel Subject: [PATCH net-next 10/10] mlxsw: spectrum: Add Spectrum-2 ASIC support for new port types and speeds Thread-Topic: [PATCH net-next 10/10] mlxsw: spectrum: Add Spectrum-2 ASIC support for new port types and speeds Thread-Index: AQHUyrZzz3WoE0ZK7UWYjCT0WXuudg== Date: Fri, 22 Feb 2019 13:56:46 +0000 Message-ID: <20190222135613.27692-11-idosch@mellanox.com> References: <20190222135613.27692-1-idosch@mellanox.com> In-Reply-To: <20190222135613.27692-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6PR10CA0017.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:89::30) To AM6PR05MB5240.eurprd05.prod.outlook.com (2603:10a6:20b:64::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [79.176.7.115] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 85b22125-270d-4ef8-1b12-08d698cd956f x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605104)(4618075)(2017052603328)(7153060)(7193020);SRVR:AM6PR05MB4358; x-ms-traffictypediagnostic: AM6PR05MB4358: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1;AM6PR05MB4358;23:UNaRQnnv4t5ID4keOD4Qr6CMdTRNgqEKnqFeArd?= =?iso-8859-1?Q?ZZ1bEpfqE/nwwh6PLEBNbBth5Pkch36n0dlYJDOGoOATGnPZAzvVQNMBWV?= =?iso-8859-1?Q?GOZLscd2VIwgFaMwaYXkxlv18Mp5RJ5nVrUIHIdf/EuHPV+59KO8xYZlJ/?= =?iso-8859-1?Q?HJgTpF83s/hLZdjAvCRtnIBXO39eJAfaNXXZmrJFtp95WOxNjYFKH4fj8o?= =?iso-8859-1?Q?WiLNQVWY795h7SssmO7Ll+Y5zsgoHMDCJSwq+TfCDxEAML+EAXIcCpTwvH?= =?iso-8859-1?Q?LXKse1XpVar3bjdqkAxr9h3UX1NvjiuwGMvKs8aNiZUpVLHvFiroNKJPfy?= =?iso-8859-1?Q?piObDehWm6g024Z5zsIi5/2gAkrx9z0D0b089aAD+aTGmFDpikYXGTuSdv?= =?iso-8859-1?Q?F92s+JY9msn9s18T5I72UmIlJUoRZiKWDpBwgL2ugQMkzjc5OyZ/izbqxY?= =?iso-8859-1?Q?HCWUaonyyw//x+0GJoSlD5Ed9k8SDxREEpN8X5TSUnDVf3E2ioqSST8Vte?= =?iso-8859-1?Q?wuWcgsrbLFYSUyvgX4CgEcsgtDXH/wzLiNYA9q1Lx85OY/1wl/InK29t3t?= =?iso-8859-1?Q?Bl7GoKy6rTocHhdTh/zXse/+ymhqJ05Uuv19eTp3jIk6p53egxC4hO/e85?= =?iso-8859-1?Q?yabFA1eYRI0rs13YLHuA5E38gaZH5K8PyuHuAGkcMkQd/NuWPczdVs3f0H?= =?iso-8859-1?Q?aoYlCPYKTLroDTrn5mxCvz5mC2wqEcdgksTboVH9PyrvC9zDFVbmkrpiaT?= =?iso-8859-1?Q?XOrMXJZw3JaVAAzXA82gN40rnRDZAKEzwoNMfel5tSksrHkLZnt5WPeWej?= =?iso-8859-1?Q?TWV1YormJ9EkfzrVcsBYZSHjl88jKRkGBVqYYadRntDOjKUtAoAtNP/92u?= =?iso-8859-1?Q?NEOUmnVB6w8zTDfAyfzdgtshu/ibsGK1HE8RE8jBI+mchPzyLJp5peabJC?= =?iso-8859-1?Q?iTcErR7xmNg0zaWVtZL8dtHtRqnpfUB0XpmBH1QdxYOKnpQyrN9U03poLj?= =?iso-8859-1?Q?8HagvpigOmSphEr9WWkx5K5WuhYrsRYq/9bBl//7UEuqG7mo+U51tKHxzn?= =?iso-8859-1?Q?wo5eW6DBAil3gV5+CnXaSyCtLuo+PeIHjrwy8hNQ2R/DCKyBCotXPCJ2wO?= =?iso-8859-1?Q?e6L4SPS0pL9I4LFE/TNjL66Mp3yOdEZc17vLXcwi3c95wvcQi1U4Egm6q8?= =?iso-8859-1?Q?QCW62kuWNjwlO5C79uwxNYPxfMShqtkZElY4k0opyryCuae30s6/tXxLRt?= =?iso-8859-1?Q?qLaRzMu4E5DY4qWdL20ptiegsJElrzIpVVUu8dPqsf/a4VvSY6iCnFPH21?= =?iso-8859-1?Q?2EQXCF0LGwITAAXpxEY5fPKqG6XRrCCEH6fWfaHIgw7bROJ3sffpeEdOzg?= =?iso-8859-1?Q?gPAJEGPk=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09565527D6 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(39860400002)(346002)(136003)(376002)(396003)(189003)(199004)(81166006)(99286004)(3846002)(66066001)(50226002)(81156014)(11346002)(1730700003)(68736007)(2351001)(26005)(478600001)(8676002)(25786009)(6116002)(14454004)(97736004)(6916009)(6512007)(316002)(8936002)(6486002)(256004)(5640700003)(54906003)(6436002)(105586002)(6506007)(186003)(106356001)(386003)(7736002)(5660300002)(76176011)(1076003)(52116002)(476003)(107886003)(86362001)(2906002)(53936002)(71190400001)(2501003)(4326008)(486006)(102836004)(36756003)(446003)(71200400001)(305945005)(2616005);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR05MB4358;H:AM6PR05MB5240.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 7s5QAhWezuesehhkohPDIaLQoEzUFlNB1s5FW2Eu7OX3MOEp4hNFbmbKqCRn+FAMq7FRC0hc+c1nw8WTSUfidnsoOcRgx2Bt4HoP0IhP67cjsTRzU40MN7GapMm5hrQvcJ40tS13gO4/nU1ohE916m2RgURArQpbLpL6Y0k4z8tWXQ8RPAz/CZiHga/Y1NYTDHxT6JW3jHRVPhqW7lUB6eLoLLjNQ/dVk3ChE8elUveL7NqIdgRa8aF1lCuJo4TGwepfPfRUr2ctkI5vhrk+a0JmSuVs9q27oY9iB57iwfYopSulgU6zWJeS7SB0ifseGaKIJFF8wVLzpfPu1R8gTPyDY9tyqKn+y+EfN4VsvbsIxtJH73QL3bDbzJrnKo7u7zIy7hbl7ype+F548deoAHIAyd7i9imK+S2MwAyWi10= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 85b22125-270d-4ef8-1b12-08d698cd956f X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Feb 2019 13:56:45.5893 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB4358 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Shalom Toledo Add Spectrum-2 ASIC support for the following new port types and speeds: * 50Gbps 1-lane * 100Gbps 2-lanes * 200Gbps 4-lanes Signed-off-by: Shalom Toledo Acked-by: Jiri Pirko Signed-off-by: Ido Schimmel --- .../net/ethernet/mellanox/mlxsw/spectrum.c | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/e= thernet/mellanox/mlxsw/spectrum.c index c55b478e48e9..771188bf94de 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c @@ -2685,6 +2685,18 @@ mlxsw_sp2_mask_ethtool_50gaui_2_laui_2_50gbase_cr2_k= r2[] =3D { #define MLXSW_SP2_MASK_ETHTOOL_50GAUI_2_LAUI_2_50GBASE_CR2_KR2_LEN \ ARRAY_SIZE(mlxsw_sp2_mask_ethtool_50gaui_2_laui_2_50gbase_cr2_kr2) =20 +static const enum ethtool_link_mode_bit_indices +mlxsw_sp2_mask_ethtool_50gaui_1_laui_1_50gbase_cr_kr[] =3D { + ETHTOOL_LINK_MODE_50000baseKR_Full_BIT, + ETHTOOL_LINK_MODE_50000baseSR_Full_BIT, + ETHTOOL_LINK_MODE_50000baseCR_Full_BIT, + ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT, + ETHTOOL_LINK_MODE_50000baseDR_Full_BIT, +}; + +#define MLXSW_SP2_MASK_ETHTOOL_50GAUI_1_LAUI_1_50GBASE_CR_KR_LEN \ + ARRAY_SIZE(mlxsw_sp2_mask_ethtool_50gaui_1_laui_1_50gbase_cr_kr) + static const enum ethtool_link_mode_bit_indices mlxsw_sp2_mask_ethtool_caui_4_100gbase_cr4_kr4[] =3D { ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT, @@ -2696,6 +2708,30 @@ mlxsw_sp2_mask_ethtool_caui_4_100gbase_cr4_kr4[] =3D= { #define MLXSW_SP2_MASK_ETHTOOL_CAUI_4_100GBASE_CR4_KR4_LEN \ ARRAY_SIZE(mlxsw_sp2_mask_ethtool_caui_4_100gbase_cr4_kr4) =20 +static const enum ethtool_link_mode_bit_indices +mlxsw_sp2_mask_ethtool_100gaui_2_100gbase_cr2_kr2[] =3D { + ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT, + ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT, + ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT, + ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT, + ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT, +}; + +#define MLXSW_SP2_MASK_ETHTOOL_100GAUI_2_100GBASE_CR2_KR2_LEN \ + ARRAY_SIZE(mlxsw_sp2_mask_ethtool_100gaui_2_100gbase_cr2_kr2) + +static const enum ethtool_link_mode_bit_indices +mlxsw_sp2_mask_ethtool_200gaui_4_200gbase_cr4_kr4[] =3D { + ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT, + ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT, + ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT, + ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT, + ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT, +}; + +#define MLXSW_SP2_MASK_ETHTOOL_200GAUI_4_200GBASE_CR4_KR4_LEN \ + ARRAY_SIZE(mlxsw_sp2_mask_ethtool_200gaui_4_200gbase_cr4_kr4) + struct mlxsw_sp2_port_link_mode { const enum ethtool_link_mode_bit_indices *mask_ethtool; int m_ethtool_len; @@ -2752,12 +2788,30 @@ static const struct mlxsw_sp2_port_link_mode mlxsw_= sp2_port_link_mode[] =3D { .m_ethtool_len =3D MLXSW_SP2_MASK_ETHTOOL_50GAUI_2_LAUI_2_50GBASE_CR2_KR= 2_LEN, .speed =3D SPEED_50000, }, + { + .mask =3D MLXSW_REG_PTYS_EXT_ETH_SPEED_50GAUI_1_LAUI_1_50GBASE_CR_KR, + .mask_ethtool =3D mlxsw_sp2_mask_ethtool_50gaui_1_laui_1_50gbase_cr_kr, + .m_ethtool_len =3D MLXSW_SP2_MASK_ETHTOOL_50GAUI_1_LAUI_1_50GBASE_CR_KR_= LEN, + .speed =3D SPEED_50000, + }, { .mask =3D MLXSW_REG_PTYS_EXT_ETH_SPEED_CAUI_4_100GBASE_CR4_KR4, .mask_ethtool =3D mlxsw_sp2_mask_ethtool_caui_4_100gbase_cr4_kr4, .m_ethtool_len =3D MLXSW_SP2_MASK_ETHTOOL_CAUI_4_100GBASE_CR4_KR4_LEN, .speed =3D SPEED_100000, }, + { + .mask =3D MLXSW_REG_PTYS_EXT_ETH_SPEED_100GAUI_2_100GBASE_CR2_KR2, + .mask_ethtool =3D mlxsw_sp2_mask_ethtool_100gaui_2_100gbase_cr2_kr2, + .m_ethtool_len =3D MLXSW_SP2_MASK_ETHTOOL_100GAUI_2_100GBASE_CR2_KR2_LEN= , + .speed =3D SPEED_100000, + }, + { + .mask =3D MLXSW_REG_PTYS_EXT_ETH_SPEED_200GAUI_4_200GBASE_CR4_KR4, + .mask_ethtool =3D mlxsw_sp2_mask_ethtool_200gaui_4_200gbase_cr4_kr4, + .m_ethtool_len =3D MLXSW_SP2_MASK_ETHTOOL_200GAUI_4_200GBASE_CR4_KR4_LEN= , + .speed =3D SPEED_200000, + }, }; =20 #define MLXSW_SP2_PORT_LINK_MODE_LEN ARRAY_SIZE(mlxsw_sp2_port_link_mode) --=20 2.20.1