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;
 
        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;
 
 
        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];
 };
 
                             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,
 
 }
 
 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);
        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;
 
 
                        .type           = MLXSW_PORT_SWID_TYPE_ETH,
                }
        },
-       .resource_query_enable          = 1,
 };
 
 static u64 mlxsw_sp_resource_kvd_linear_occ_get(struct devlink *devlink)
        .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)
 
                        .type           = MLXSW_PORT_SWID_TYPE_IB,
                }
        },
-       .resource_query_enable          = 0,
 };
 
 static struct mlxsw_driver mlxsw_sib_driver = {
 
                        .type           = MLXSW_PORT_SWID_TYPE_IB,
                }
        },
-       .resource_query_enable          = 0,
 };
 
 static struct mlxsw_driver mlxsw_sx_driver = {