@@ -6028,7 +6028,7 @@ EXPORT_SYMBOL_GPL(qeth_core_get_drvinfo);
6028
6028
/* Autoneg and full-duplex are supported and advertised unconditionally. */
6029
6029
/* Always advertise and support all speeds up to specified, and only one */
6030
6030
/* specified port type. */
6031
- static void qeth_set_ecmd_adv_sup (struct ethtool_cmd * ecmd ,
6031
+ static void qeth_set_cmd_adv_sup (struct ethtool_link_ksettings * cmd ,
6032
6032
int maxspeed , int porttype )
6033
6033
{
6034
6034
u32 sup , adv ;
@@ -6072,55 +6072,53 @@ static void qeth_set_ecmd_adv_sup(struct ethtool_cmd *ecmd,
6072
6072
adv |= ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full ;
6073
6073
WARN_ON_ONCE (1 );
6074
6074
}
6075
- ecmd -> supported = sup ;
6076
- ecmd -> advertising = adv ;
6075
+
6076
+ ethtool_convert_legacy_u32_to_link_mode (cmd -> link_modes .supported ,
6077
+ sup );
6078
+ ethtool_convert_legacy_u32_to_link_mode (cmd -> link_modes .advertising ,
6079
+ adv );
6077
6080
}
6078
6081
6079
- int qeth_core_ethtool_get_settings (struct net_device * netdev ,
6080
- struct ethtool_cmd * ecmd )
6082
+ int qeth_core_ethtool_get_link_ksettings (struct net_device * netdev ,
6083
+ struct ethtool_link_ksettings * cmd )
6081
6084
{
6082
6085
struct qeth_card * card = netdev -> ml_priv ;
6083
6086
enum qeth_link_types link_type ;
6084
6087
struct carrier_info carrier_info ;
6085
6088
int rc ;
6086
- u32 speed ;
6087
6089
6088
6090
if ((card -> info .type == QETH_CARD_TYPE_IQD ) || (card -> info .guestlan ))
6089
6091
link_type = QETH_LINK_TYPE_10GBIT_ETH ;
6090
6092
else
6091
6093
link_type = card -> info .link_type ;
6092
6094
6093
- ecmd -> transceiver = XCVR_INTERNAL ;
6094
- ecmd -> duplex = DUPLEX_FULL ;
6095
- ecmd -> autoneg = AUTONEG_ENABLE ;
6095
+ cmd -> base .duplex = DUPLEX_FULL ;
6096
+ cmd -> base .autoneg = AUTONEG_ENABLE ;
6097
+ cmd -> base .phy_address = 0 ;
6098
+ cmd -> base .mdio_support = 0 ;
6099
+ cmd -> base .eth_tp_mdix = ETH_TP_MDI_INVALID ;
6100
+ cmd -> base .eth_tp_mdix_ctrl = ETH_TP_MDI_INVALID ;
6096
6101
6097
6102
switch (link_type ) {
6098
6103
case QETH_LINK_TYPE_FAST_ETH :
6099
6104
case QETH_LINK_TYPE_LANE_ETH100 :
6100
- qeth_set_ecmd_adv_sup (ecmd , SPEED_100 , PORT_TP );
6101
- speed = SPEED_100 ;
6102
- ecmd -> port = PORT_TP ;
6105
+ cmd -> base .speed = SPEED_100 ;
6106
+ cmd -> base .port = PORT_TP ;
6103
6107
break ;
6104
-
6105
6108
case QETH_LINK_TYPE_GBIT_ETH :
6106
6109
case QETH_LINK_TYPE_LANE_ETH1000 :
6107
- qeth_set_ecmd_adv_sup (ecmd , SPEED_1000 , PORT_FIBRE );
6108
- speed = SPEED_1000 ;
6109
- ecmd -> port = PORT_FIBRE ;
6110
+ cmd -> base .speed = SPEED_1000 ;
6111
+ cmd -> base .port = PORT_FIBRE ;
6110
6112
break ;
6111
-
6112
6113
case QETH_LINK_TYPE_10GBIT_ETH :
6113
- qeth_set_ecmd_adv_sup (ecmd , SPEED_10000 , PORT_FIBRE );
6114
- speed = SPEED_10000 ;
6115
- ecmd -> port = PORT_FIBRE ;
6114
+ cmd -> base .speed = SPEED_10000 ;
6115
+ cmd -> base .port = PORT_FIBRE ;
6116
6116
break ;
6117
-
6118
6117
default :
6119
- qeth_set_ecmd_adv_sup (ecmd , SPEED_10 , PORT_TP );
6120
- speed = SPEED_10 ;
6121
- ecmd -> port = PORT_TP ;
6118
+ cmd -> base .speed = SPEED_10 ;
6119
+ cmd -> base .port = PORT_TP ;
6122
6120
}
6123
- ethtool_cmd_speed_set ( ecmd , speed );
6121
+ qeth_set_cmd_adv_sup ( cmd , cmd -> base . speed , cmd -> base . port );
6124
6122
6125
6123
/* Check if we can obtain more accurate information. */
6126
6124
/* If QUERY_CARD_INFO command is not supported or fails, */
@@ -6145,49 +6143,48 @@ int qeth_core_ethtool_get_settings(struct net_device *netdev,
6145
6143
switch (carrier_info .card_type ) {
6146
6144
case CARD_INFO_TYPE_1G_COPPER_A :
6147
6145
case CARD_INFO_TYPE_1G_COPPER_B :
6148
- qeth_set_ecmd_adv_sup ( ecmd , SPEED_1000 , PORT_TP ) ;
6149
- ecmd -> port = PORT_TP ;
6146
+ cmd -> base . port = PORT_TP ;
6147
+ qeth_set_cmd_adv_sup ( cmd , SPEED_1000 , cmd -> base . port ) ;
6150
6148
break ;
6151
6149
case CARD_INFO_TYPE_1G_FIBRE_A :
6152
6150
case CARD_INFO_TYPE_1G_FIBRE_B :
6153
- qeth_set_ecmd_adv_sup ( ecmd , SPEED_1000 , PORT_FIBRE ) ;
6154
- ecmd -> port = PORT_FIBRE ;
6151
+ cmd -> base . port = PORT_FIBRE ;
6152
+ qeth_set_cmd_adv_sup ( cmd , SPEED_1000 , cmd -> base . port ) ;
6155
6153
break ;
6156
6154
case CARD_INFO_TYPE_10G_FIBRE_A :
6157
6155
case CARD_INFO_TYPE_10G_FIBRE_B :
6158
- qeth_set_ecmd_adv_sup ( ecmd , SPEED_10000 , PORT_FIBRE ) ;
6159
- ecmd -> port = PORT_FIBRE ;
6156
+ cmd -> base . port = PORT_FIBRE ;
6157
+ qeth_set_cmd_adv_sup ( cmd , SPEED_10000 , cmd -> base . port ) ;
6160
6158
break ;
6161
6159
}
6162
6160
6163
6161
switch (carrier_info .port_mode ) {
6164
6162
case CARD_INFO_PORTM_FULLDUPLEX :
6165
- ecmd -> duplex = DUPLEX_FULL ;
6163
+ cmd -> base . duplex = DUPLEX_FULL ;
6166
6164
break ;
6167
6165
case CARD_INFO_PORTM_HALFDUPLEX :
6168
- ecmd -> duplex = DUPLEX_HALF ;
6166
+ cmd -> base . duplex = DUPLEX_HALF ;
6169
6167
break ;
6170
6168
}
6171
6169
6172
6170
switch (carrier_info .port_speed ) {
6173
6171
case CARD_INFO_PORTS_10M :
6174
- speed = SPEED_10 ;
6172
+ cmd -> base . speed = SPEED_10 ;
6175
6173
break ;
6176
6174
case CARD_INFO_PORTS_100M :
6177
- speed = SPEED_100 ;
6175
+ cmd -> base . speed = SPEED_100 ;
6178
6176
break ;
6179
6177
case CARD_INFO_PORTS_1G :
6180
- speed = SPEED_1000 ;
6178
+ cmd -> base . speed = SPEED_1000 ;
6181
6179
break ;
6182
6180
case CARD_INFO_PORTS_10G :
6183
- speed = SPEED_10000 ;
6181
+ cmd -> base . speed = SPEED_10000 ;
6184
6182
break ;
6185
6183
}
6186
- ethtool_cmd_speed_set (ecmd , speed );
6187
6184
6188
6185
return 0 ;
6189
6186
}
6190
- EXPORT_SYMBOL_GPL (qeth_core_ethtool_get_settings );
6187
+ EXPORT_SYMBOL_GPL (qeth_core_ethtool_get_link_ksettings );
6191
6188
6192
6189
/* Callback to handle checksum offload command reply from OSA card.
6193
6190
* Verify that required features have been enabled on the card.
0 commit comments