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 04C43C4360F for ; Wed, 20 Feb 2019 19:32:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C3B6E2089F for ; Wed, 20 Feb 2019 19:32:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="tSH/zTHC" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726949AbfBTTcd (ORCPT ); Wed, 20 Feb 2019 14:32:33 -0500 Received: from mail-eopbgr00045.outbound.protection.outlook.com ([40.107.0.45]:11872 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726838AbfBTTcc (ORCPT ); Wed, 20 Feb 2019 14:32:32 -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=iNC5zJ8MZh55GMpvTY6mG5+vTwvONndadqDchIVbxso=; b=tSH/zTHC+IJ/xAVz2amFfNQOiqZZuJckoytRjFctcnsZmOeuR1t56H2BAG/OL9c6MEet++YYZzqkxxrk09kFVSsVh54x1/EtCpoiagpcBp2uyrjzygIr/qdY53on/HbK/gDmLGhDFGaYXuCDuNrOXBBjGtbzavqkMdLkUFb+m34= Received: from AM6PR05MB5240.eurprd05.prod.outlook.com (20.177.196.214) by AM6PR05MB4871.eurprd05.prod.outlook.com (20.177.34.223) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1622.19; Wed, 20 Feb 2019 19:32:22 +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; Wed, 20 Feb 2019 19:32:22 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , Petr Machata , mlxsw , Ido Schimmel Subject: [PATCH net-next 06/10] mlxsw: spectrum_buffers: Keep mlxsw_sp_sb_cm in sb_vals Thread-Topic: [PATCH net-next 06/10] mlxsw: spectrum_buffers: Keep mlxsw_sp_sb_cm in sb_vals Thread-Index: AQHUyVMAOdeTSa2HBEC35687tsjsVQ== Date: Wed, 20 Feb 2019 19:32:22 +0000 Message-ID: <20190220193141.16498-7-idosch@mellanox.com> References: <20190220193141.16498-1-idosch@mellanox.com> In-Reply-To: <20190220193141.16498-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6PR10CA0061.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:80::38) 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: [77.138.249.209] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bce0aa48-31ee-4cc9-09cc-08d6976a2263 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:AM6PR05MB4871; x-ms-traffictypediagnostic: AM6PR05MB4871: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1;AM6PR05MB4871;23:yzf7jypDyxMAqYpm1f0cn6MFlorDCB87xMZsU1L?= =?iso-8859-1?Q?G5Y8FR4xfmCnNMHxRZp6TFUdcQH5gO4jqUDw3VuoBKjShyl0Bt4XEKYjWs?= =?iso-8859-1?Q?zCDUxuIOzX506cansP0hTAbD5B9XroqOZFcNZNvOT5zMkp2i4SRS4wP8WZ?= =?iso-8859-1?Q?6KD7XSlm2fAXH0h0JxwgfrtBgcamfovclrGTfNlkx4MKPht9Fn2JoVGzXh?= =?iso-8859-1?Q?OZouP9kh/6a7fITMj9rdgd/PqwEPW3eYWTTzpzZwZ/TwafyJlZODA1ldcd?= =?iso-8859-1?Q?t7mgmPK4065ZBCuWYAWHEg26JOUqJViOYJbjrsnORdOj+PzJvhIlhAHh6D?= =?iso-8859-1?Q?q17CHlAO/lJbIyEAaJ2lJQ30jy2zWr5Nj8ERMIB7/aSmJ4nwsO3n2+eyj6?= =?iso-8859-1?Q?yOfYIOacslAVvb3YcBeP75xvMlYePgqnkm7wzB6EqkHuw/247IhteYlwZv?= =?iso-8859-1?Q?gJTnzU+LyQOGyMJb1hMxcy0H1syqLgN4O9flNnDofdQ8Chds65/TxkXbC1?= =?iso-8859-1?Q?w7Crert7vrGZB8cm9i0wMPm4SK4h4CcgppAtJESEvP3Dy/N7WwZ73bDslS?= =?iso-8859-1?Q?ii7dBUjSNeLg2clz6jWomqGvyLGfd2KO4mNZz91/CuVlGUv0eax+pboupW?= =?iso-8859-1?Q?0xS7gsVrNyQ8yBLHBeDZaRFzg+ne1sWF0MuID9x8CZydSDalA9KG/ANlQS?= =?iso-8859-1?Q?7LDLR2Zrr8jaKQJJ3/0KuEtTBKXRRvptXMmUji0D6iIVxYaFjPSnZ3db55?= =?iso-8859-1?Q?eIGwD3Oc1bR3ZJvNFhIK4iTqQzpfMEoiNO6jXpfmybu16DLRz1kOJ22fq4?= =?iso-8859-1?Q?oqj3jayY/NYb5Z/9tXqF+nr/CgfCeS6WCp0sOYIMax9z08FXPHqBUlZiOA?= =?iso-8859-1?Q?0Hy05IsVg14Gg2C2qjK+LEwUAQ/eDKecwsHd+lz5pE5vENACCjU01x8v4B?= =?iso-8859-1?Q?0CJl8BH7AbLPAdVTuoKOPwCvDu2jOQ1um+ci5lcTwyTubVBWPFp2ly16st?= =?iso-8859-1?Q?CLjJaU29b5WL8OcLgAKn6J1f0gRucXlEdyQXrEIVPVGCneCPvWOTHuxkkU?= =?iso-8859-1?Q?EnPpIx4H5ovMA54h1hteXCmORBDWBNAcD6gwk5FqOHtcFIjfeaAtmkgvSF?= =?iso-8859-1?Q?lGQrDI62v3Xc4ySX0K4NBq/TvwkYIdJQgwKla/XR6YiW1kMUXiaEV0nBTD?= =?iso-8859-1?Q?Ry16RYWFw9otgqgijlPgdnxbj030Q+HE5ZR3PVcw8qYuMSw6t2uMVxwqKC?= =?iso-8859-1?Q?waLZTqwX61KDDDC2TctouBPR3PRCa29zS15NeP9zFIcMntgiJAI8Qt5rNV?= =?iso-8859-1?Q?hlr7h+zlwLTDQdoOVEQGS7y3e0tCcPEG1EjLRLs0GXHoJX/oM3U9UOdNyH?= =?iso-8859-1?Q?X7GDgsTL2avLV1DJx6zTomRYzXaE+?= x-microsoft-antispam-prvs: x-forefront-prvs: 0954EE4910 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(136003)(376002)(396003)(39860400002)(346002)(366004)(199004)(189003)(486006)(86362001)(446003)(2616005)(4326008)(2351001)(478600001)(2906002)(105586002)(106356001)(11346002)(107886003)(476003)(68736007)(6916009)(54906003)(316002)(25786009)(6506007)(26005)(102836004)(386003)(53936002)(186003)(6116002)(3846002)(52116002)(99286004)(97736004)(2501003)(256004)(81156014)(6512007)(6486002)(50226002)(5640700003)(81166006)(305945005)(8936002)(7736002)(8676002)(1730700003)(14454004)(76176011)(1076003)(5660300002)(71190400001)(71200400001)(66066001)(14444005)(36756003)(6436002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR05MB4871;H:AM6PR05MB5240.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX: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: RzsQYaSE73UYeDfomZOHphccEeLA9eJiH4Ze/MPhYG7v9N4iSv0DaKJ76atXsPsXVt6ZUcnpoqCfjib3SSvabSI5u0S6+9Tz0VN/cpgxEIrKtTaxBymEXS2a1L4DxUSycL3/yw3b7csJfDTtWtDstDx0/4wmxTYj4DjEvaGaBo7sNMHMj8lsc3+/jWyoW1P8PnFmGsfueSoZ2q8b0MRRlBYUYlnyPxFeU7TLrfai+ZACTeDrgexlKHSSO7B1ipIU2IGkeFoDYG+mJtA8r3hoX3dez8E1XOVkxOMFfqCeXqEacEIShwmDLP8UyLRVFOJ1L3uRf/Odu8I9RdmjicFc13BgF/7/h4RFb8xW39T/vC12xN8sDUOVGyr+YGU+0Eu1TKLSaQHt45DCqfhHBkCslpJgoK/CrWejplO7BHdimLo= 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: bce0aa48-31ee-4cc9-09cc-08d6976a2263 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Feb 2019 19:32:20.4267 (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: AM6PR05MB4871 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Petr Machata The SBCM register configures shared buffer quota according to port-priority resp. port-TC. The default configuration depends on the chip type. Therefore keep the tables and their lengths in struct mlxsw_sp_sb_vals. Redirect the references from the global definitions to the fields. Signed-off-by: Petr Machata Signed-off-by: Ido Schimmel --- .../mellanox/mlxsw/spectrum_buffers.c | 40 ++++++++++++------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c b/drive= rs/net/ethernet/mellanox/mlxsw/spectrum_buffers.c index c100ce11417a..18b182656df2 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c @@ -76,6 +76,12 @@ struct mlxsw_sp_sb_vals { const struct mlxsw_sp_sb_pool_des *pool_dess; const struct mlxsw_sp_sb_pm *pms; const struct mlxsw_sp_sb_pr *prs; + const struct mlxsw_sp_sb_cm *cms_ingress; + const struct mlxsw_sp_sb_cm *cms_egress; + const struct mlxsw_sp_sb_cm *cms_cpu; + unsigned int cms_ingress_count; + unsigned int cms_egress_count; + unsigned int cms_cpu_count; }; =20 u32 mlxsw_sp_cells_bytes(const struct mlxsw_sp *mlxsw_sp, u32 cells) @@ -423,8 +429,6 @@ static const struct mlxsw_sp_sb_cm mlxsw_sp_sb_cms_ingr= ess[] =3D { MLXSW_SP_SB_CM(20000, 1, 3), }; =20 -#define MLXSW_SP_SB_CMS_INGRESS_LEN ARRAY_SIZE(mlxsw_sp_sb_cms_ingress) - static const struct mlxsw_sp_sb_cm mlxsw_sp_sb_cms_egress[] =3D { MLXSW_SP_SB_CM(1500, 9, 4), MLXSW_SP_SB_CM(1500, 9, 4), @@ -445,8 +449,6 @@ static const struct mlxsw_sp_sb_cm mlxsw_sp_sb_cms_egre= ss[] =3D { MLXSW_SP_SB_CM(1, 0xff, 4), }; =20 -#define MLXSW_SP_SB_CMS_EGRESS_LEN ARRAY_SIZE(mlxsw_sp_sb_cms_egress) - #define MLXSW_SP_CPU_PORT_SB_CM MLXSW_SP_SB_CM(0, 0, 4) =20 static const struct mlxsw_sp_sb_cm mlxsw_sp_cpu_port_sb_cms[] =3D { @@ -484,9 +486,6 @@ static const struct mlxsw_sp_sb_cm mlxsw_sp_cpu_port_sb= _cms[] =3D { MLXSW_SP_CPU_PORT_SB_CM, }; =20 -#define MLXSW_SP_CPU_PORT_SB_MCS_LEN \ - ARRAY_SIZE(mlxsw_sp_cpu_port_sb_cms) - static bool mlxsw_sp_sb_pool_is_static(struct mlxsw_sp *mlxsw_sp, u16 pool_index) { @@ -538,27 +537,28 @@ static int __mlxsw_sp_sb_cms_init(struct mlxsw_sp *ml= xsw_sp, u8 local_port, =20 static int mlxsw_sp_port_sb_cms_init(struct mlxsw_sp_port *mlxsw_sp_port) { + struct mlxsw_sp *mlxsw_sp =3D mlxsw_sp_port->mlxsw_sp; int err; =20 - err =3D __mlxsw_sp_sb_cms_init(mlxsw_sp_port->mlxsw_sp, + err =3D __mlxsw_sp_sb_cms_init(mlxsw_sp, mlxsw_sp_port->local_port, MLXSW_REG_SBXX_DIR_INGRESS, - mlxsw_sp_sb_cms_ingress, - MLXSW_SP_SB_CMS_INGRESS_LEN); + mlxsw_sp->sb_vals->cms_ingress, + mlxsw_sp->sb_vals->cms_ingress_count); if (err) return err; return __mlxsw_sp_sb_cms_init(mlxsw_sp_port->mlxsw_sp, mlxsw_sp_port->local_port, MLXSW_REG_SBXX_DIR_EGRESS, - mlxsw_sp_sb_cms_egress, - MLXSW_SP_SB_CMS_EGRESS_LEN); + mlxsw_sp->sb_vals->cms_egress, + mlxsw_sp->sb_vals->cms_egress_count); } =20 static int mlxsw_sp_cpu_port_sb_cms_init(struct mlxsw_sp *mlxsw_sp) { return __mlxsw_sp_sb_cms_init(mlxsw_sp, 0, MLXSW_REG_SBXX_DIR_EGRESS, - mlxsw_sp_cpu_port_sb_cms, - MLXSW_SP_CPU_PORT_SB_MCS_LEN); + mlxsw_sp->sb_vals->cms_cpu, + mlxsw_sp->sb_vals->cms_cpu_count); } =20 #define MLXSW_SP_SB_PM(_min_buff, _max_buff) \ @@ -684,6 +684,12 @@ const struct mlxsw_sp_sb_vals mlxsw_sp1_sb_vals =3D { .pool_dess =3D mlxsw_sp_sb_pool_dess, .pms =3D mlxsw_sp_sb_pms, .prs =3D mlxsw_sp_sb_prs, + .cms_ingress =3D mlxsw_sp_sb_cms_ingress, + .cms_egress =3D mlxsw_sp_sb_cms_egress, + .cms_cpu =3D mlxsw_sp_cpu_port_sb_cms, + .cms_ingress_count =3D ARRAY_SIZE(mlxsw_sp_sb_cms_ingress), + .cms_egress_count =3D ARRAY_SIZE(mlxsw_sp_sb_cms_egress), + .cms_cpu_count =3D ARRAY_SIZE(mlxsw_sp_cpu_port_sb_cms), }; =20 const struct mlxsw_sp_sb_vals mlxsw_sp2_sb_vals =3D { @@ -691,6 +697,12 @@ const struct mlxsw_sp_sb_vals mlxsw_sp2_sb_vals =3D { .pool_dess =3D mlxsw_sp_sb_pool_dess, .pms =3D mlxsw_sp_sb_pms, .prs =3D mlxsw_sp_sb_prs, + .cms_ingress =3D mlxsw_sp_sb_cms_ingress, + .cms_egress =3D mlxsw_sp_sb_cms_egress, + .cms_cpu =3D mlxsw_sp_cpu_port_sb_cms, + .cms_ingress_count =3D ARRAY_SIZE(mlxsw_sp_sb_cms_ingress), + .cms_egress_count =3D ARRAY_SIZE(mlxsw_sp_sb_cms_egress), + .cms_cpu_count =3D ARRAY_SIZE(mlxsw_sp_cpu_port_sb_cms), }; =20 int mlxsw_sp_buffers_init(struct mlxsw_sp *mlxsw_sp) --=20 2.20.1