forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-04 1543e317f1da31b75942316931e8f491a8920811
kernel/drivers/net/ethernet/mellanox/mlx5/core/lib/mlx5.h
....@@ -33,11 +33,66 @@
3333 #ifndef __LIB_MLX5_H__
3434 #define __LIB_MLX5_H__
3535
36
+#include "mlx5_core.h"
37
+
3638 void mlx5_init_reserved_gids(struct mlx5_core_dev *dev);
3739 void mlx5_cleanup_reserved_gids(struct mlx5_core_dev *dev);
3840 int mlx5_core_reserve_gids(struct mlx5_core_dev *dev, unsigned int count);
3941 void mlx5_core_unreserve_gids(struct mlx5_core_dev *dev, unsigned int count);
4042 int mlx5_core_reserved_gid_alloc(struct mlx5_core_dev *dev, int *gid_index);
4143 void mlx5_core_reserved_gid_free(struct mlx5_core_dev *dev, int gid_index);
44
+int mlx5_crdump_enable(struct mlx5_core_dev *dev);
45
+void mlx5_crdump_disable(struct mlx5_core_dev *dev);
46
+int mlx5_crdump_collect(struct mlx5_core_dev *dev, u32 *cr_data);
47
+
48
+/* TODO move to lib/events.h */
49
+
50
+#define PORT_MODULE_EVENT_MODULE_STATUS_MASK 0xF
51
+#define PORT_MODULE_EVENT_ERROR_TYPE_MASK 0xF
52
+
53
+enum port_module_event_status_type {
54
+ MLX5_MODULE_STATUS_PLUGGED = 0x1,
55
+ MLX5_MODULE_STATUS_UNPLUGGED = 0x2,
56
+ MLX5_MODULE_STATUS_ERROR = 0x3,
57
+ MLX5_MODULE_STATUS_DISABLED = 0x4,
58
+ MLX5_MODULE_STATUS_NUM,
59
+};
60
+
61
+enum port_module_event_error_type {
62
+ MLX5_MODULE_EVENT_ERROR_POWER_BUDGET_EXCEEDED = 0x0,
63
+ MLX5_MODULE_EVENT_ERROR_LONG_RANGE_FOR_NON_MLNX = 0x1,
64
+ MLX5_MODULE_EVENT_ERROR_BUS_STUCK = 0x2,
65
+ MLX5_MODULE_EVENT_ERROR_NO_EEPROM_RETRY_TIMEOUT = 0x3,
66
+ MLX5_MODULE_EVENT_ERROR_ENFORCE_PART_NUMBER_LIST = 0x4,
67
+ MLX5_MODULE_EVENT_ERROR_UNKNOWN_IDENTIFIER = 0x5,
68
+ MLX5_MODULE_EVENT_ERROR_HIGH_TEMPERATURE = 0x6,
69
+ MLX5_MODULE_EVENT_ERROR_BAD_CABLE = 0x7,
70
+ MLX5_MODULE_EVENT_ERROR_PCIE_POWER_SLOT_EXCEEDED = 0xc,
71
+ MLX5_MODULE_EVENT_ERROR_NUM,
72
+};
73
+
74
+struct mlx5_pme_stats {
75
+ u64 status_counters[MLX5_MODULE_STATUS_NUM];
76
+ u64 error_counters[MLX5_MODULE_EVENT_ERROR_NUM];
77
+};
78
+
79
+void mlx5_get_pme_stats(struct mlx5_core_dev *dev, struct mlx5_pme_stats *stats);
80
+int mlx5_notifier_call_chain(struct mlx5_events *events, unsigned int event, void *data);
81
+
82
+/* Crypto */
83
+enum {
84
+ MLX5_ACCEL_OBJ_TLS_KEY = MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_TYPE_TLS,
85
+ MLX5_ACCEL_OBJ_IPSEC_KEY = MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_TYPE_IPSEC,
86
+};
87
+
88
+int mlx5_create_encryption_key(struct mlx5_core_dev *mdev,
89
+ void *key, u32 sz_bytes,
90
+ u32 key_type, u32 *p_key_id);
91
+void mlx5_destroy_encryption_key(struct mlx5_core_dev *mdev, u32 key_id);
92
+
93
+static inline struct net *mlx5_core_net(struct mlx5_core_dev *dev)
94
+{
95
+ return devlink_net(priv_to_devlink(dev));
96
+}
4297
4398 #endif