mlxsw: Move "resources_query_enable" out of mlxsw_config_profile
authorJiri Pirko <jiri@mellanox.com>
Sun, 1 Apr 2018 14:34:57 +0000 (17:34 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 1 Apr 2018 14:56:43 +0000 (10:56 -0400)
As struct mlxsw_config_profile is mapped to the payload of the FW
command of the same name, resources_query_enable flag does not belong
there. Move it to struct mlxsw_driver.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/core.c
drivers/net/ethernet/mellanox/mlxsw/core.h
drivers/net/ethernet/mellanox/mlxsw/pci.c
drivers/net/ethernet/mellanox/mlxsw/spectrum.c
drivers/net/ethernet/mellanox/mlxsw/switchib.c
drivers/net/ethernet/mellanox/mlxsw/switchx2.c

index 3529b545675d1bfa8caf5306e2ee7df6f83447af..93ea56620a244ae8c129bfbc20e23d9ead374b64 100644 (file)
@@ -1008,6 +1008,7 @@ int mlxsw_core_bus_device_register(const struct mlxsw_bus_info *mlxsw_bus_info,
        const char *device_kind = mlxsw_bus_info->device_kind;
        struct mlxsw_core *mlxsw_core;
        struct mlxsw_driver *mlxsw_driver;
+       struct mlxsw_res *res;
        size_t alloc_size;
        int err;
 
@@ -1032,8 +1033,8 @@ int mlxsw_core_bus_device_register(const struct mlxsw_bus_info *mlxsw_bus_info,
        mlxsw_core->bus_priv = bus_priv;
        mlxsw_core->bus_info = mlxsw_bus_info;
 
-       err = mlxsw_bus->init(bus_priv, mlxsw_core, mlxsw_driver->profile,
-                             &mlxsw_core->res);
+       res = mlxsw_driver->res_query_enabled ? &mlxsw_core->res : NULL;
+       err = mlxsw_bus->init(bus_priv, mlxsw_core, mlxsw_driver->profile, res);
        if (err)
                goto err_bus_init;
 
index ff9daa09341d6f32121984ed58ca2b85435cd29c..092d39399f3ce46aed8a84dddc5bca8d218a5837 100644 (file)
@@ -257,7 +257,6 @@ struct mlxsw_config_profile {
        u32     kvd_linear_size;
        u8      kvd_hash_single_parts;
        u8      kvd_hash_double_parts;
-       u8      resource_query_enable;
        struct mlxsw_swid_config swid_config[MLXSW_CONFIG_PROFILE_SWID_COUNT];
 };
 
@@ -314,6 +313,7 @@ struct mlxsw_driver {
                             u64 *p_linear_size);
        u8 txhdr_len;
        const struct mlxsw_config_profile *profile;
+       bool res_query_enabled;
 };
 
 int mlxsw_core_kvd_sizes_get(struct mlxsw_core *mlxsw_core,
index 5ab068aec033d6663d844644a389057d31131a25..3a9381977d6d397c2f7b55b60c91ba368624b2ec 100644 (file)
@@ -1015,16 +1015,14 @@ mlxsw_pci_config_profile_swid_config(struct mlxsw_pci *mlxsw_pci,
 }
 
 static int mlxsw_pci_resources_query(struct mlxsw_pci *mlxsw_pci, char *mbox,
-                                    struct mlxsw_res *res,
-                                    u8 query_enabled)
+                                    struct mlxsw_res *res)
 {
        int index, i;
        u64 data;
        u16 id;
        int err;
 
-       /* Not all the versions support resources query */
-       if (!query_enabled)
+       if (!res)
                return 0;
 
        mlxsw_cmd_mbox_zero(mbox);
@@ -1376,8 +1374,7 @@ static int mlxsw_pci_init(void *bus_priv, struct mlxsw_core *mlxsw_core,
        if (err)
                goto err_boardinfo;
 
-       err = mlxsw_pci_resources_query(mlxsw_pci, mbox, res,
-                                       profile->resource_query_enable);
+       err = mlxsw_pci_resources_query(mlxsw_pci, mbox, res);
        if (err)
                goto err_query_resources;
 
index 12062aab13c553580fed120ea210ae5df071fcab..b831af38e0a148a4acd877af9c731a66ef5d0170 100644 (file)
@@ -3803,7 +3803,6 @@ static const struct mlxsw_config_profile mlxsw_sp_config_profile = {
                        .type           = MLXSW_PORT_SWID_TYPE_ETH,
                }
        },
-       .resource_query_enable          = 1,
 };
 
 static u64 mlxsw_sp_resource_kvd_linear_occ_get(struct devlink *devlink)
@@ -4002,6 +4001,7 @@ static struct mlxsw_driver mlxsw_sp_driver = {
        .kvd_sizes_get                  = mlxsw_sp_kvd_sizes_get,
        .txhdr_len                      = MLXSW_TXHDR_LEN,
        .profile                        = &mlxsw_sp_config_profile,
+       .res_query_enabled              = true,
 };
 
 bool mlxsw_sp_port_dev_check(const struct net_device *dev)
index ab7a29846bfa4a84b266bf253f626860644a3378..c698ec4fd9d447191c27a367aa6411f999ff751c 100644 (file)
@@ -510,7 +510,6 @@ static const struct mlxsw_config_profile mlxsw_sib_config_profile = {
                        .type           = MLXSW_PORT_SWID_TYPE_IB,
                }
        },
-       .resource_query_enable          = 0,
 };
 
 static struct mlxsw_driver mlxsw_sib_driver = {
index c87b0934a40526bb964bf747f2a91a93c18c7a21..a655c5850aa6ac3d247072d5202aa36907e502b5 100644 (file)
@@ -1706,7 +1706,6 @@ static const struct mlxsw_config_profile mlxsw_sx_config_profile = {
                        .type           = MLXSW_PORT_SWID_TYPE_IB,
                }
        },
-       .resource_query_enable          = 0,
 };
 
 static struct mlxsw_driver mlxsw_sx_driver = {