From patchwork Wed Jul 25 06:24:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 949046 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="kS8UymsR"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41b4w23H8pz9ryt for ; Wed, 25 Jul 2018 16:25:06 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728571AbeGYHfO (ORCPT ); Wed, 25 Jul 2018 03:35:14 -0400 Received: from mail-eopbgr70072.outbound.protection.outlook.com ([40.107.7.72]:7718 "EHLO EUR04-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728352AbeGYHfN (ORCPT ); Wed, 25 Jul 2018 03:35:13 -0400 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=LHx1p71VS6BYesFqRRcMSoG+lSvTbb4BXpFs3VfSloU=; b=kS8UymsRjaT4MNBVGjfMCYzemuBu88giOtVWp70aO8252NS2nSONlyJq/iDj7U4SoJ8k1CpXi+SxsDMqqfQm2ZC8QG9/tJ56PTHKVUbN+xoytfo6T2UWrfuTW7694wwr5YUzL5iOEy0Uk1pBuNeZVx5fe6ElSWyLPxn082825sA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; Received: from splinter.mtl.com (193.47.165.251) by HE1PR0501MB2330.eurprd05.prod.outlook.com (2603:10a6:3:27::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.973.21; Wed, 25 Jul 2018 06:24:49 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, jiri@mellanox.com, mlxsw@mellanox.com, Ido Schimmel Subject: [PATCH net-next 11/17] mlxsw: spectrum_acl: Add A-TCAM initialization Date: Wed, 25 Jul 2018 09:24:00 +0300 Message-Id: <20180725062406.3342-12-idosch@mellanox.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180725062406.3342-1-idosch@mellanox.com> References: <20180725062406.3342-1-idosch@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [193.47.165.251] X-ClientProxiedBy: VI1PR0202CA0033.eurprd02.prod.outlook.com (2603:10a6:803:14::46) To HE1PR0501MB2330.eurprd05.prod.outlook.com (2603:10a6:3:27::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 210ce217-035e-44b2-e136-08d5f1f753ae X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600073)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:HE1PR0501MB2330; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2330; 3:GJeR3agJIiHvplfY5p8TOVYFjELGYxdMzJmflxDYRCDvBEYt0uYDDLQKbJAjPaXu7VhZWf3s0FSUi6dH+qhPsHaWmgR5tKFZibAn1zTSvIzc44/szWXd3pXYPlsK1qvNF64zG5GuHuzM7mSc5zp0ArMGUS5whfgORJjJWuv5mKBg2B4Pdtky5o2OTXFlR5ONBXhOxjyqUEMdCo1lwwWjzTXMqMWrIpgBXwPmpl3U6cK0Z8W7Wog+tEQNQR/jrOJ/; 25:u4gLuMdxyQiNzaUzO0zggQAclyrayaRa02Jm31R59pzF/6QLB48nEaxYvgp550GLW3slEvIP61AJn4GX9XKCx9kWycxECt1tRR8hxBF5izCpXwbqs4llSRvabic7+cuLIm/BgxQwiZw3V+xmBi2FQpqKyiMqz8C9Y64eKLVmvAK8YzXJH4Pms12RO69p6RpqsYsaQOjFs3NoGDYRm5dnZvD3KDTwLW0Qs+IBMtkrtZ6EuWWGqM3k4M3uLVxLYVXxzzyZpLLfp8RQifm27+xZFTSCI3iENa0ICeFYzX4IHJRMYvKdGHflI+e2/D8A3CvV0IWVhryUghmlP61XHv6wbg==; 31:rhpgpDpZFZYVN2m7uhrb9WsOothng25QN+ZQhsN92jzWqfoXPyJ023VuPvNkjWAi9nmB8/ADeAGVpk4+DaOeBHBqupWevbrppn/WOnzC6mvDw76N0B2WFrF79SCiT4sm5H/Fd66up7q+WsUd2wPeNu5wvQ2rKQ1UGgpQsqSJHxiSqGJ58lSHzmho0t5HD+/v4hnmg2qbX4KfWqqxL1DzAY/GmTuZ6a3hJ6tYQm4AtjU= X-MS-TrafficTypeDiagnostic: HE1PR0501MB2330: X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2330; 20:TuWYui+Ac4SAMWMlMi8Z2zAah9znTKJ0zRpjgmW4fSeTGLBm5X1W25pPgg1jtU/UyPgFPXhqsOQ/BPXiqxQnevcWp1jjRVBINh1+nnmji6NwjyvtFnT2ipnUgBwy56kegFzg6dt9U/zEiFOHF53ZMH9BZ1EnedM7yPx40SRSBvTtSgtAOxkCZWvAiMDa+CbyT3cJz6x7ZBSslk7KkYfLDShYq+3n1NIFlc16dcvB+ZjCbuKmjOi7hklfr1j0sx4h57wKCL4Sm1LUUX7gR9XwJ6v8Bj6hilNAEEgust7xkjd4y4CwqOwCVR6vHjRGFYqZwuBLH3aDo+s4U3brLSER3l1Fzx3SKnsFRRWlVEDfvrCBwT8ch3IsyAyilYCLJhgwbMkeODNy3e4Jd/Bz4DKCJLwyozt2hzeu3kK/D7NJfMIDgMc11LyhDk/2v/r4UKlEVX68S1B4KJ6QDW4GrBf61qczeCYElFhRurTChJ/fRW1zbULehHiDwlyBnYW8HmrR; 4:UDXSGakfmZt2jXi/9UZefaHli2jqL9EEM9SWShFJl/Xug2iPatIT3nveAm/UGlTN4A9I4oV3p677F3UhEkzL7rk+ZjmRtEHaA237pkGpbFtHXZ3iNjYlylD3hx+nRkV4mmbbRt0f8dPbPGnw/9RA9cwq2g+nHSzSuza+Nu4cFZuwqutGPWOSTQT5zSlSoz+H7tyyi0BvwT08j0P/MyhExeNU+UnCMU+kZL6TCgxfepJh3ApLTxliFJ/5v/1Lg/+FqyKpVw6IY6NyXCdDKJFVPA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3231311)(944501410)(52105095)(3002001)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123562045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:HE1PR0501MB2330; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0501MB2330; X-Forefront-PRVS: 0744CFB5E8 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(376002)(346002)(136003)(39860400002)(366004)(396003)(199004)(189003)(50466002)(53416004)(446003)(6512007)(2616005)(48376002)(97736004)(956004)(5660300001)(305945005)(6116002)(36756003)(6486002)(7736002)(107886003)(47776003)(106356001)(66066001)(6916009)(2906002)(476003)(6666003)(16586007)(575784001)(4326008)(68736007)(316002)(76176011)(2351001)(8936002)(2361001)(478600001)(50226002)(6506007)(51416003)(386003)(186003)(86362001)(8676002)(26005)(25786009)(486006)(11346002)(52116002)(3846002)(1076002)(53936002)(81166006)(16526019)(105586002)(81156014); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0501MB2330; H:splinter.mtl.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-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2330; 23:8HVMlfDjFddPXLUTKaKRURwzdnXVliUXeVQgGWUd6V87oWkZbBejhUNxLQQXiZkjlZR4y/AKbzU1yR1PSlTxDxLPNELoPy54r8gK0Z4q1aQOtBo8FPqKSsDK14UHXlAmvVbGeGXDnpdzhROqHlje66GTY3Hyp1gGSdbCOFn2Bi0QwCN5PpevNJ1yvsxj+8q6/TdwTFA0jFhtcUyO8Av/8Q/V5RpqCEJsAbyfidLmoKrPze7IQwiourX9AA8jHFHAGof+hU+AK5Y5dJr2MBgx9rvTLtIf9sPv2ELAia8FGQMijaqKoj93kmtBidS5LjEZbmcuX8osmcPWIsXAqBt1efcU2zRpXF+utrIW4I8V364kXSqqtXtQ5vwY8y5pQq4EspvYcsT8yOFK1rs8fI1yHzM4WR3rq20GQKziueZw03lAnhJ+sHWS5rtmUffdLnT6f2CpP5eXEQ4hNEclVboly8oZ6i4EokLElahcSpEt7SL80dW5kYnH+HXrTfOEvdSw4Qf4SViF7oGf8DXdSLo3W/csNufb2n7AnkQAAqjf6wiGeZtKP+h7Nkw8uUuf2WA4keKRjpmjlnwsTIwBVZTtjBZszwKIjmSjgRk/uvCQmDsKFVI+PtsdiKDWTdTGpq++jMwIGiC9YXSxxXsCMdCorYNuzruII1kHd8Op8Z8vVgymeBS8rChYPZt7h9I0FF2Dpoke0ig/00pKpjO1Xg/nOlNDVHCzl/4yMWXfUbisLaVuJ0pZ1OE/hUVbIprxTD+h15iNypQB28hAVb10XPBXheQWwBbnz4HzKge06zyukMz5BpHX72ap0LQZ04WUwnnuIB30WaFvkgoC7hNklmpsZDjK+69hBvXqL6++5jPXytA3AXaX3b4DP4S8wB8d6ddepIhHJbZi8jVJCZ3dNftsBGfNti8gd5OA3Sm0ms0yAiTlzcf1ZWpIpr1eV7mef4Bu1r6lAVKt/+8+T1NL5O6FZs73q5UHmd3XwgmntTepKOgjliqC4NkcaiVUoO3aVcBR9cuPfflBRQJskhRAAI/obnTKs7l3KVgCqm0WRF/yXetqrjpQOH7D4zf9WT30GCcRsUhckM1Qjs/3HpV5uOBcUzuvtC0yb4/7TdMpyVfuK3DBP78dm3eS1qd9Qmh+HaZWteM7V8uut+SSP3emmY9R3fS5ekLjEZivu5NwJ1swyMkm8QV6DLROK59INF5xv1a7riUw1C9Ob1223mKGhWV4FbB8/m3nnAFS/zK9hTYrEJ1QBnKVoEq9NJbeUAvlOGIyi/u7vvOOtsALpHKT2vbCtQ== X-Microsoft-Antispam-Message-Info: noyuy5a/739LoQxc3xyAffL+lmOBpnOOPDxppdVBW55fUyeqa/gkV3LioFPLowWGNzIiAeMQJu4NQRQQ8CZgwh9R9AUEc+d5u6cYqYsPRcfhEeP7ZooKqHEjjR6aam0qhrUtUCNsP5NP9f9Jh/ToK6f+AjuwYFmRNX6qKJ6ISuS28IlCnPCB/UC89x52LyBWul8VeJbFUuyQ/gUBkelDsM0r2Zeh8hDyEQrjFcYsLwX8ovxkDfs9+OcX2JTG+D43dvhycCVDDGEWGjdj2NVdWroR7oHlADLgQyTQNhAhG5I5QB4ycAOjD6o7ohkqwjqbUCn87tFKH95JnOnZqbmFepnFyCJSrRbx42e/Q5/W1PE= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2330; 6:Pn1Z3BGegzZOojWajwNyYJ4PwHf03Chf+8ayJNmnMVFoQGWAzZi1y+7UV1nJ4WHiORcy0qHuy7hDI2GXYfMMcNnVquHeMaBQFol179ytaraGGwKtcYIX88YrtqEd4WMfoyWmJ37lSbqbXThptizw41l2FYaZ8f+rMwbMCwUqcKQksNIa3XjBRpa0S1FgmktwQ3/X2AHtt9KjTXdWvzC+RnRp+k/AxzMk29g7jy9KQcS22lScvWc+tFyUVgv4pNt6WjCHA7aHTFOwpI7XkpBmqKozaLWu25gw/F4KpwjLOmlkLuAaBsRyITrYBtX4nod1TmMDCPahRnk7g7naU7R0D/l96h0wixo/6Z6l3Xo4jfY8hjTyz7zet9MMNYUSYfLmbHz4ydcVa8YJzuJQG8uAjiYScNI4dEN6Oy/v1DKiFu+L+0IOLeIKLXWYcVb9ezLpjJMcdQTHYsXUIIws5xOzeA==; 5:47RMnbZSuRWbEOcA2moKdFm2hNl3gtvg+/9PL2XdZ4PkeVO2tQYucA5sVKhTsPUg/SiqFfFm3W7ITBYfdJqG4gXCPjZu1M32IBgECdad/5zn3shpxL9aJwzMB9akzVYFM77oJOhiWirW+QtgzuUrt0rL9xSt1oZR+GBqOaXUoQU=; 7:nGxAEreUJ9htkahVRZHsmkbPU5Ya4bhltkWe453bMuSEp3vj9VYFlBBlyO7JVN6895mQQZZvPDJufV7NQKlVwyJleJUVBT2D+/TZehd0OD0nt9ZoVPxIyDlxEbOCEDHY6VnGP/JF8GgnlR/oW97ZLfiCz57UT7e0lmS0wmS7G1NaSGn4Dv08wZPXpBy+4JK8wF/BKzK5W94JtmedjKhg4j1LRdR7SH+gxPAm73mev3fJaGX1zIRQrJD3rgzu9g5C SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2018 06:24:49.8312 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 210ce217-035e-44b2-e136-08d5f1f753ae X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0501MB2330 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Initialize the A-TCAM as part of the driver's initialization routine. Specifically, initialize the eRP tables so that A-TCAM regions will be able to perform allocations of eRP tables upon rule insertion in subsequent patches. Signed-off-by: Ido Schimmel Reviewed-by: Jiri Pirko --- .../net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c | 7 +++++++ .../net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c | 12 ++++++++++++ .../net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h | 4 ++++ 3 files changed, 23 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c index 33787b154e74..2442decd0652 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c @@ -39,6 +39,7 @@ #include "core_acl_flex_actions.h" struct mlxsw_sp2_acl_tcam { + struct mlxsw_sp_acl_atcam atcam; u32 kvdl_index; unsigned int kvdl_count; }; @@ -100,9 +101,14 @@ static int mlxsw_sp2_acl_tcam_init(struct mlxsw_sp *mlxsw_sp, void *priv, if (err) goto err_pgcr_write; + err = mlxsw_sp_acl_atcam_init(mlxsw_sp, &tcam->atcam); + if (err) + goto err_atcam_init; + mlxsw_afa_block_destroy(afa_block); return 0; +err_atcam_init: err_pgcr_write: err_pefa_write: err_afa_block_continue: @@ -117,6 +123,7 @@ static void mlxsw_sp2_acl_tcam_fini(struct mlxsw_sp *mlxsw_sp, void *priv) { struct mlxsw_sp2_acl_tcam *tcam = priv; + mlxsw_sp_acl_atcam_fini(mlxsw_sp, &tcam->atcam); mlxsw_sp_kvdl_free(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_ACTSET, tcam->kvdl_count, tcam->kvdl_index); } diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c index a27d3b0f9fcb..89c78c62e7e5 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c @@ -93,3 +93,15 @@ int mlxsw_sp_acl_atcam_region_init(struct mlxsw_sp *mlxsw_sp, return 0; } + +int mlxsw_sp_acl_atcam_init(struct mlxsw_sp *mlxsw_sp, + struct mlxsw_sp_acl_atcam *atcam) +{ + return mlxsw_sp_acl_erps_init(mlxsw_sp, atcam); +} + +void mlxsw_sp_acl_atcam_fini(struct mlxsw_sp *mlxsw_sp, + struct mlxsw_sp_acl_atcam *atcam) +{ + mlxsw_sp_acl_erps_fini(mlxsw_sp, atcam); +} diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h index 70094936ca43..ac6bdffd99a7 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h @@ -173,6 +173,10 @@ int mlxsw_sp_acl_atcam_region_associate(struct mlxsw_sp *mlxsw_sp, u16 region_id); int mlxsw_sp_acl_atcam_region_init(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_acl_tcam_region *region); +int mlxsw_sp_acl_atcam_init(struct mlxsw_sp *mlxsw_sp, + struct mlxsw_sp_acl_atcam *atcam); +void mlxsw_sp_acl_atcam_fini(struct mlxsw_sp *mlxsw_sp, + struct mlxsw_sp_acl_atcam *atcam); struct mlxsw_sp_acl_erp;