From patchwork Tue Apr 2 08:15:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 1074058 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=none (p=none dis=none) header.from=resnulli.us Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="G7l3xtNX"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44YMTb26yWz9sNr for ; Tue, 2 Apr 2019 19:15:31 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729479AbfDBIP3 (ORCPT ); Tue, 2 Apr 2019 04:15:29 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:37835 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729457AbfDBIPZ (ORCPT ); Tue, 2 Apr 2019 04:15:25 -0400 Received: by mail-wm1-f67.google.com with SMTP id v14so2471442wmf.2 for ; Tue, 02 Apr 2019 01:15:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=HQXILX5r3bov4lrC7Eabg7ZCrXMQiib/RijCjnCaGts=; b=G7l3xtNXzcAQCslv3uXxbi8Sm/j3+OLt6E4wjL4zTM7MpRMnS6Y1g726Ywi5cotbEA ZXpBh7vwyB+IjKfLP6+nGZSQbGbU4KRYsCcu+SG8DVcy7kAo/iXPHm8ykS0PMzJ23nSw VaFfn+dMORYcNZ5454Bn7MGHDCEX3mn7iAfZED73X7hSku1dWJQXRsyTGb/cOsYpILjP +VEQ5aP5j8XUlvygcgWX1H2D9W13ugIJB0VztDOzvASI1eNoAHL+4/1L0sJoHb/3O41C OWJngKDnp4KPrnqSNR0p3lCnKZVbzxbetx9jvCAcrr6UNjXQs73DZ+cbzbx5XSDkfQht kmnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=HQXILX5r3bov4lrC7Eabg7ZCrXMQiib/RijCjnCaGts=; b=CY69g+PkDbS8C7ha914wbwpAZhNWKxOcYJUjB/f2JywBmCzisHL/IsiuFhbO/joSbd 9SEASuzDPo9cyuW2mR333rU6EnQ5NG3rL9jfXbiySRSPTdJdxR44om+W+yC5m/JSFGdT T6ihLNTe4ZXENtTsBrYTllMUDMFGupugeTXp8wYJ+jP7yb8TZsQAE8BBTaGsfs5L40xt kjncpt7Htm1GZKfZk02MUNzq07wX2R157YM7GARvR5WAQh7yY+RCxE05PyzW7r5mkZfT 62B146ZHxzYOXMdfcVN2rvoa8qLy7uHwPiy4yRNJGzhYpavxkN5CMNLKEAqAt+jHHqpJ 4f3A== X-Gm-Message-State: APjAAAXlq/qSEzuoJyA8KVogAXarL9yQXp4caBz6xxj7QkJRIK6jnIF5 6tTEHXXI/Go/6dABxKjnOeCvmqdbZSk= X-Google-Smtp-Source: APXvYqxcLGbQQZUwrJj9sNWoFoexDDaiOdqRHvPCz/8djdb+e40R82HhuUZg44UBZzBpZsCuPL0fqg== X-Received: by 2002:a1c:988d:: with SMTP id a135mr2810856wme.24.1554192924060; Tue, 02 Apr 2019 01:15:24 -0700 (PDT) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id c20sm20693963wre.28.2019.04.02.01.15.23 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Apr 2019 01:15:23 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, mlxsw@mellanox.com, idosch@mellanox.com, jakub.kicinski@netronome.com, f.fainelli@gmail.com, andrew@lunn.ch, vivien.didelot@gmail.com, michael.chan@broadcom.com Subject: [patch net-next v3 10/12] mlxsw: switch_ib: Pass valid HW id down to mlxsw_core_port_init() Date: Tue, 2 Apr 2019 10:15:10 +0200 Message-Id: <20190402081512.2988-11-jiri@resnulli.us> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190402081512.2988-1-jiri@resnulli.us> References: <20190402081512.2988-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Obtain HW id and pass it down to mlxsw_core_port_init() as it would be used as switch_id in devlink and exposed to user. Signed-off-by: Jiri Pirko --- .../net/ethernet/mellanox/mlxsw/switchib.c | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/switchib.c b/drivers/net/ethernet/mellanox/mlxsw/switchib.c index b22caa154310..0d9356b3f65d 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/switchib.c +++ b/drivers/net/ethernet/mellanox/mlxsw/switchib.c @@ -30,6 +30,7 @@ struct mlxsw_sib { struct mlxsw_sib_port **ports; struct mlxsw_core *core; const struct mlxsw_bus_info *bus_info; + u8 hw_id[ETH_ALEN]; }; struct mlxsw_sib_port { @@ -102,6 +103,18 @@ mlxsw_sib_tx_v1_hdr_construct(struct sk_buff *skb, mlxsw_tx_v1_hdr_type_set(txhdr, MLXSW_TXHDR_TYPE_CONTROL); } +static int mlxsw_sib_hw_id_get(struct mlxsw_sib *mlxsw_sib) +{ + char spad_pl[MLXSW_REG_SPAD_LEN] = {0}; + int err; + + err = mlxsw_reg_query(mlxsw_sib->core, MLXSW_REG(spad), spad_pl); + if (err) + return err; + mlxsw_reg_spad_base_mac_memcpy_from(spad_pl, mlxsw_sib->hw_id); + return 0; +} + static int mlxsw_sib_port_admin_status_set(struct mlxsw_sib_port *mlxsw_sib_port, bool is_up) @@ -268,7 +281,8 @@ static int mlxsw_sib_port_create(struct mlxsw_sib *mlxsw_sib, u8 local_port, int err; err = mlxsw_core_port_init(mlxsw_sib->core, local_port, - module + 1, false, 0, NULL, 0); + module + 1, false, 0, + mlxsw_sib->hw_id, sizeof(mlxsw_sib->hw_id)); if (err) { dev_err(mlxsw_sib->bus_info->dev, "Port %d: Failed to init core port\n", local_port); @@ -440,6 +454,12 @@ static int mlxsw_sib_init(struct mlxsw_core *mlxsw_core, mlxsw_sib->core = mlxsw_core; mlxsw_sib->bus_info = mlxsw_bus_info; + err = mlxsw_sib_hw_id_get(mlxsw_sib); + if (err) { + dev_err(mlxsw_sib->bus_info->dev, "Failed to get switch HW ID\n"); + return err; + } + err = mlxsw_sib_ports_create(mlxsw_sib); if (err) { dev_err(mlxsw_sib->bus_info->dev, "Failed to create ports\n");