forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-04 1543e317f1da31b75942316931e8f491a8920811
kernel/drivers/net/ethernet/mellanox/mlx5/core/en/port.h
....@@ -36,13 +36,41 @@
3636 #include <linux/mlx5/driver.h>
3737 #include "en.h"
3838
39
-u32 mlx5e_port_ptys2speed(u32 eth_proto_oper);
39
+struct mlx5e_port_eth_proto {
40
+ u32 cap;
41
+ u32 admin;
42
+ u32 oper;
43
+};
44
+
45
+int mlx5_port_query_eth_proto(struct mlx5_core_dev *dev, u8 port, bool ext,
46
+ struct mlx5e_port_eth_proto *eproto);
47
+void mlx5_port_query_eth_autoneg(struct mlx5_core_dev *dev, u8 *an_status,
48
+ u8 *an_disable_cap, u8 *an_disable_admin);
49
+int mlx5_port_set_eth_ptys(struct mlx5_core_dev *dev, bool an_disable,
50
+ u32 proto_admin, bool ext);
51
+u32 mlx5e_port_ptys2speed(struct mlx5_core_dev *mdev, u32 eth_proto_oper,
52
+ bool force_legacy);
4053 int mlx5e_port_linkspeed(struct mlx5_core_dev *mdev, u32 *speed);
4154 int mlx5e_port_max_linkspeed(struct mlx5_core_dev *mdev, u32 *speed);
42
-u32 mlx5e_port_speed2linkmodes(u32 speed);
43
-
55
+u32 mlx5e_port_speed2linkmodes(struct mlx5_core_dev *mdev, u32 speed,
56
+ bool force_legacy);
57
+bool mlx5e_ptys_ext_supported(struct mlx5_core_dev *mdev);
4458 int mlx5e_port_query_pbmc(struct mlx5_core_dev *mdev, void *out);
4559 int mlx5e_port_set_pbmc(struct mlx5_core_dev *mdev, void *in);
4660 int mlx5e_port_query_priority2buffer(struct mlx5_core_dev *mdev, u8 *buffer);
4761 int mlx5e_port_set_priority2buffer(struct mlx5_core_dev *mdev, u8 *buffer);
62
+
63
+bool mlx5e_fec_in_caps(struct mlx5_core_dev *dev, int fec_policy);
64
+int mlx5e_get_fec_mode(struct mlx5_core_dev *dev, u32 *fec_mode_active,
65
+ u16 *fec_configured_mode);
66
+int mlx5e_set_fec_mode(struct mlx5_core_dev *dev, u16 fec_policy);
67
+
68
+enum {
69
+ MLX5E_FEC_NOFEC,
70
+ MLX5E_FEC_FIRECODE,
71
+ MLX5E_FEC_RS_528_514,
72
+ MLX5E_FEC_RS_544_514 = 7,
73
+ MLX5E_FEC_LLRS_272_257_1 = 9,
74
+};
75
+
4876 #endif