@@ -787,10 +787,9 @@ static void get_lp_advertising(u32 eth_proto_lp,
787
787
ptys2ethtool_adver_link (lp_advertising , eth_proto_lp );
788
788
}
789
789
790
- static int mlx5e_get_link_ksettings (struct net_device * netdev ,
791
- struct ethtool_link_ksettings * link_ksettings )
790
+ int mlx5e_ethtool_get_link_ksettings (struct mlx5e_priv * priv ,
791
+ struct ethtool_link_ksettings * link_ksettings )
792
792
{
793
- struct mlx5e_priv * priv = netdev_priv (netdev );
794
793
struct mlx5_core_dev * mdev = priv -> mdev ;
795
794
u32 out [MLX5_ST_SZ_DW (ptys_reg )] = {0 };
796
795
u32 rx_pause = 0 ;
@@ -806,7 +805,7 @@ static int mlx5e_get_link_ksettings(struct net_device *netdev,
806
805
807
806
err = mlx5_query_port_ptys (mdev , out , sizeof (out ), MLX5_PTYS_EN , 1 );
808
807
if (err ) {
809
- netdev_err (netdev , "%s: query port ptys failed: %d\n" ,
808
+ netdev_err (priv -> netdev , "%s: query port ptys failed: %d\n" ,
810
809
__func__ , err );
811
810
goto err_query_regs ;
812
811
}
@@ -826,7 +825,7 @@ static int mlx5e_get_link_ksettings(struct net_device *netdev,
826
825
827
826
get_supported (eth_proto_cap , link_ksettings );
828
827
get_advertising (eth_proto_admin , tx_pause , rx_pause , link_ksettings );
829
- get_speed_duplex (netdev , eth_proto_oper , link_ksettings );
828
+ get_speed_duplex (priv -> netdev , eth_proto_oper , link_ksettings );
830
829
831
830
eth_proto_oper = eth_proto_oper ? eth_proto_oper : eth_proto_cap ;
832
831
@@ -846,7 +845,7 @@ static int mlx5e_get_link_ksettings(struct net_device *netdev,
846
845
Autoneg );
847
846
848
847
if (get_fec_supported_advertised (mdev , link_ksettings ))
849
- netdev_dbg (netdev , "%s: FEC caps query failed: %d\n" ,
848
+ netdev_dbg (priv -> netdev , "%s: FEC caps query failed: %d\n" ,
850
849
__func__ , err );
851
850
852
851
if (!an_disable_admin )
@@ -857,6 +856,14 @@ static int mlx5e_get_link_ksettings(struct net_device *netdev,
857
856
return err ;
858
857
}
859
858
859
+ static int mlx5e_get_link_ksettings (struct net_device * netdev ,
860
+ struct ethtool_link_ksettings * link_ksettings )
861
+ {
862
+ struct mlx5e_priv * priv = netdev_priv (netdev );
863
+
864
+ return mlx5e_ethtool_get_link_ksettings (priv , link_ksettings );
865
+ }
866
+
860
867
static u32 mlx5e_ethtool2ptys_adver_link (const unsigned long * link_modes )
861
868
{
862
869
u32 i , ptys_modes = 0 ;
@@ -871,10 +878,9 @@ static u32 mlx5e_ethtool2ptys_adver_link(const unsigned long *link_modes)
871
878
return ptys_modes ;
872
879
}
873
880
874
- static int mlx5e_set_link_ksettings (struct net_device * netdev ,
875
- const struct ethtool_link_ksettings * link_ksettings )
881
+ int mlx5e_ethtool_set_link_ksettings (struct mlx5e_priv * priv ,
882
+ const struct ethtool_link_ksettings * link_ksettings )
876
883
{
877
- struct mlx5e_priv * priv = netdev_priv (netdev );
878
884
struct mlx5_core_dev * mdev = priv -> mdev ;
879
885
u32 eth_proto_cap , eth_proto_admin ;
880
886
bool an_changes = false;
@@ -894,22 +900,22 @@ static int mlx5e_set_link_ksettings(struct net_device *netdev,
894
900
895
901
err = mlx5_query_port_proto_cap (mdev , & eth_proto_cap , MLX5_PTYS_EN );
896
902
if (err ) {
897
- netdev_err (netdev , "%s: query port eth proto cap failed: %d\n" ,
903
+ netdev_err (priv -> netdev , "%s: query port eth proto cap failed: %d\n" ,
898
904
__func__ , err );
899
905
goto out ;
900
906
}
901
907
902
908
link_modes = link_modes & eth_proto_cap ;
903
909
if (!link_modes ) {
904
- netdev_err (netdev , "%s: Not supported link mode(s) requested" ,
910
+ netdev_err (priv -> netdev , "%s: Not supported link mode(s) requested" ,
905
911
__func__ );
906
912
err = - EINVAL ;
907
913
goto out ;
908
914
}
909
915
910
916
err = mlx5_query_port_proto_admin (mdev , & eth_proto_admin , MLX5_PTYS_EN );
911
917
if (err ) {
912
- netdev_err (netdev , "%s: query port eth proto admin failed: %d\n" ,
918
+ netdev_err (priv -> netdev , "%s: query port eth proto admin failed: %d\n" ,
913
919
__func__ , err );
914
920
goto out ;
915
921
}
@@ -931,6 +937,14 @@ static int mlx5e_set_link_ksettings(struct net_device *netdev,
931
937
return err ;
932
938
}
933
939
940
+ static int mlx5e_set_link_ksettings (struct net_device * netdev ,
941
+ const struct ethtool_link_ksettings * link_ksettings )
942
+ {
943
+ struct mlx5e_priv * priv = netdev_priv (netdev );
944
+
945
+ return mlx5e_ethtool_set_link_ksettings (priv , link_ksettings );
946
+ }
947
+
934
948
u32 mlx5e_ethtool_get_rxfh_key_size (struct mlx5e_priv * priv )
935
949
{
936
950
return sizeof (priv -> rss_params .toeplitz_hash_key );
@@ -1127,25 +1141,31 @@ static int mlx5e_set_tunable(struct net_device *dev,
1127
1141
return err ;
1128
1142
}
1129
1143
1130
- static void mlx5e_get_pauseparam (struct net_device * netdev ,
1131
- struct ethtool_pauseparam * pauseparam )
1144
+ void mlx5e_ethtool_get_pauseparam (struct mlx5e_priv * priv ,
1145
+ struct ethtool_pauseparam * pauseparam )
1132
1146
{
1133
- struct mlx5e_priv * priv = netdev_priv (netdev );
1134
1147
struct mlx5_core_dev * mdev = priv -> mdev ;
1135
1148
int err ;
1136
1149
1137
1150
err = mlx5_query_port_pause (mdev , & pauseparam -> rx_pause ,
1138
1151
& pauseparam -> tx_pause );
1139
1152
if (err ) {
1140
- netdev_err (netdev , "%s: mlx5_query_port_pause failed:0x%x\n" ,
1153
+ netdev_err (priv -> netdev , "%s: mlx5_query_port_pause failed:0x%x\n" ,
1141
1154
__func__ , err );
1142
1155
}
1143
1156
}
1144
1157
1145
- static int mlx5e_set_pauseparam (struct net_device * netdev ,
1146
- struct ethtool_pauseparam * pauseparam )
1158
+ static void mlx5e_get_pauseparam (struct net_device * netdev ,
1159
+ struct ethtool_pauseparam * pauseparam )
1160
+ {
1161
+ struct mlx5e_priv * priv = netdev_priv (netdev );
1162
+
1163
+ mlx5e_ethtool_get_pauseparam (priv , pauseparam );
1164
+ }
1165
+
1166
+ int mlx5e_ethtool_set_pauseparam (struct mlx5e_priv * priv ,
1167
+ struct ethtool_pauseparam * pauseparam )
1147
1168
{
1148
- struct mlx5e_priv * priv = netdev_priv (netdev );
1149
1169
struct mlx5_core_dev * mdev = priv -> mdev ;
1150
1170
int err ;
1151
1171
@@ -1156,13 +1176,21 @@ static int mlx5e_set_pauseparam(struct net_device *netdev,
1156
1176
pauseparam -> rx_pause ? 1 : 0 ,
1157
1177
pauseparam -> tx_pause ? 1 : 0 );
1158
1178
if (err ) {
1159
- netdev_err (netdev , "%s: mlx5_set_port_pause failed:0x%x\n" ,
1179
+ netdev_err (priv -> netdev , "%s: mlx5_set_port_pause failed:0x%x\n" ,
1160
1180
__func__ , err );
1161
1181
}
1162
1182
1163
1183
return err ;
1164
1184
}
1165
1185
1186
+ static int mlx5e_set_pauseparam (struct net_device * netdev ,
1187
+ struct ethtool_pauseparam * pauseparam )
1188
+ {
1189
+ struct mlx5e_priv * priv = netdev_priv (netdev );
1190
+
1191
+ return mlx5e_ethtool_set_pauseparam (priv , pauseparam );
1192
+ }
1193
+
1166
1194
int mlx5e_ethtool_get_ts_info (struct mlx5e_priv * priv ,
1167
1195
struct ethtool_ts_info * info )
1168
1196
{
0 commit comments