mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 05:12:49 +00:00
net/mlx5: Add header file for events
Separate the event API defined in the generic mlx5.h header into
a dedicated header. And remove the TODO comment in commit
69c1280b1f
("net/mlx5: Device events, Use async events chain").
Signed-off-by: Juhee Kang <claudiajkang@gmail.com>
Reviewed-by: Larysa Zaremba <larysa.zaremba@intel.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
parent
8bbe544e03
commit
2bd3b29295
7 changed files with 45 additions and 38 deletions
|
@ -30,7 +30,7 @@
|
|||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "lib/mlx5.h"
|
||||
#include "lib/events.h"
|
||||
#include "en.h"
|
||||
#include "en_accel/ktls.h"
|
||||
#include "en_accel/en_accel.h"
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#include "mlx5_core.h"
|
||||
#include "lib/eq.h"
|
||||
#include "lib/mlx5.h"
|
||||
#include "lib/events.h"
|
||||
|
||||
struct mlx5_event_nb {
|
||||
struct mlx5_nb nb;
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include "mlx5_core.h"
|
||||
#include "lib/eq.h"
|
||||
#include "lib/mlx5.h"
|
||||
#include "lib/events.h"
|
||||
#include "lib/pci_vsc.h"
|
||||
#include "lib/tout.h"
|
||||
#include "diag/fw_tracer.h"
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "lag/mp.h"
|
||||
#include "mlx5_core.h"
|
||||
#include "eswitch.h"
|
||||
#include "lib/mlx5.h"
|
||||
#include "lib/events.h"
|
||||
|
||||
static bool __mlx5_lag_is_multipath(struct mlx5_lag *ldev)
|
||||
{
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include "lag/lag.h"
|
||||
#include "eswitch.h"
|
||||
#include "esw/acl/ofld.h"
|
||||
#include "lib/mlx5.h"
|
||||
#include "lib/events.h"
|
||||
|
||||
static void mlx5_mpesw_metadata_cleanup(struct mlx5_lag *ldev)
|
||||
{
|
||||
|
|
40
drivers/net/ethernet/mellanox/mlx5/core/lib/events.h
Normal file
40
drivers/net/ethernet/mellanox/mlx5/core/lib/events.h
Normal file
|
@ -0,0 +1,40 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
|
||||
/* Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. */
|
||||
|
||||
#ifndef __LIB_EVENTS_H__
|
||||
#define __LIB_EVENTS_H__
|
||||
|
||||
#include "mlx5_core.h"
|
||||
|
||||
#define PORT_MODULE_EVENT_MODULE_STATUS_MASK 0xF
|
||||
#define PORT_MODULE_EVENT_ERROR_TYPE_MASK 0xF
|
||||
|
||||
enum port_module_event_status_type {
|
||||
MLX5_MODULE_STATUS_PLUGGED = 0x1,
|
||||
MLX5_MODULE_STATUS_UNPLUGGED = 0x2,
|
||||
MLX5_MODULE_STATUS_ERROR = 0x3,
|
||||
MLX5_MODULE_STATUS_DISABLED = 0x4,
|
||||
MLX5_MODULE_STATUS_NUM,
|
||||
};
|
||||
|
||||
enum port_module_event_error_type {
|
||||
MLX5_MODULE_EVENT_ERROR_POWER_BUDGET_EXCEEDED = 0x0,
|
||||
MLX5_MODULE_EVENT_ERROR_LONG_RANGE_FOR_NON_MLNX = 0x1,
|
||||
MLX5_MODULE_EVENT_ERROR_BUS_STUCK = 0x2,
|
||||
MLX5_MODULE_EVENT_ERROR_NO_EEPROM_RETRY_TIMEOUT = 0x3,
|
||||
MLX5_MODULE_EVENT_ERROR_ENFORCE_PART_NUMBER_LIST = 0x4,
|
||||
MLX5_MODULE_EVENT_ERROR_UNKNOWN_IDENTIFIER = 0x5,
|
||||
MLX5_MODULE_EVENT_ERROR_HIGH_TEMPERATURE = 0x6,
|
||||
MLX5_MODULE_EVENT_ERROR_BAD_CABLE = 0x7,
|
||||
MLX5_MODULE_EVENT_ERROR_PCIE_POWER_SLOT_EXCEEDED = 0xc,
|
||||
MLX5_MODULE_EVENT_ERROR_NUM,
|
||||
};
|
||||
|
||||
struct mlx5_pme_stats {
|
||||
u64 status_counters[MLX5_MODULE_STATUS_NUM];
|
||||
u64 error_counters[MLX5_MODULE_EVENT_ERROR_NUM];
|
||||
};
|
||||
|
||||
void mlx5_get_pme_stats(struct mlx5_core_dev *dev, struct mlx5_pme_stats *stats);
|
||||
int mlx5_notifier_call_chain(struct mlx5_events *events, unsigned int event, void *data);
|
||||
#endif
|
|
@ -45,40 +45,6 @@ int mlx5_crdump_enable(struct mlx5_core_dev *dev);
|
|||
void mlx5_crdump_disable(struct mlx5_core_dev *dev);
|
||||
int mlx5_crdump_collect(struct mlx5_core_dev *dev, u32 *cr_data);
|
||||
|
||||
/* TODO move to lib/events.h */
|
||||
|
||||
#define PORT_MODULE_EVENT_MODULE_STATUS_MASK 0xF
|
||||
#define PORT_MODULE_EVENT_ERROR_TYPE_MASK 0xF
|
||||
|
||||
enum port_module_event_status_type {
|
||||
MLX5_MODULE_STATUS_PLUGGED = 0x1,
|
||||
MLX5_MODULE_STATUS_UNPLUGGED = 0x2,
|
||||
MLX5_MODULE_STATUS_ERROR = 0x3,
|
||||
MLX5_MODULE_STATUS_DISABLED = 0x4,
|
||||
MLX5_MODULE_STATUS_NUM,
|
||||
};
|
||||
|
||||
enum port_module_event_error_type {
|
||||
MLX5_MODULE_EVENT_ERROR_POWER_BUDGET_EXCEEDED = 0x0,
|
||||
MLX5_MODULE_EVENT_ERROR_LONG_RANGE_FOR_NON_MLNX = 0x1,
|
||||
MLX5_MODULE_EVENT_ERROR_BUS_STUCK = 0x2,
|
||||
MLX5_MODULE_EVENT_ERROR_NO_EEPROM_RETRY_TIMEOUT = 0x3,
|
||||
MLX5_MODULE_EVENT_ERROR_ENFORCE_PART_NUMBER_LIST = 0x4,
|
||||
MLX5_MODULE_EVENT_ERROR_UNKNOWN_IDENTIFIER = 0x5,
|
||||
MLX5_MODULE_EVENT_ERROR_HIGH_TEMPERATURE = 0x6,
|
||||
MLX5_MODULE_EVENT_ERROR_BAD_CABLE = 0x7,
|
||||
MLX5_MODULE_EVENT_ERROR_PCIE_POWER_SLOT_EXCEEDED = 0xc,
|
||||
MLX5_MODULE_EVENT_ERROR_NUM,
|
||||
};
|
||||
|
||||
struct mlx5_pme_stats {
|
||||
u64 status_counters[MLX5_MODULE_STATUS_NUM];
|
||||
u64 error_counters[MLX5_MODULE_EVENT_ERROR_NUM];
|
||||
};
|
||||
|
||||
void mlx5_get_pme_stats(struct mlx5_core_dev *dev, struct mlx5_pme_stats *stats);
|
||||
int mlx5_notifier_call_chain(struct mlx5_events *events, unsigned int event, void *data);
|
||||
|
||||
static inline struct net *mlx5_core_net(struct mlx5_core_dev *dev)
|
||||
{
|
||||
return devlink_net(priv_to_devlink(dev));
|
||||
|
|
Loading…
Reference in a new issue