Lines Matching refs:ecmd
172 * @ecmd: Ethtool request structure
176 * The @ecmd parameter is expected to have been cleared before calling
184 struct ethtool_cmd *ecmd,
193 ecmd->transceiver = XCVR_INTERNAL;
194 ecmd->phy_address = mdio->prtad;
195 ecmd->mdio_support =
205 ecmd->port = PORT_TP;
206 ecmd->supported = SUPPORTED_TP;
210 ecmd->supported |= SUPPORTED_10000baseT_Full;
212 ecmd->supported |= (SUPPORTED_1000baseT_Full |
215 ecmd->supported |= (SUPPORTED_100baseT_Full |
218 ecmd->supported |= (SUPPORTED_10baseT_Full |
220 ecmd->advertising = ADVERTISED_TP;
224 ecmd->port = PORT_OTHER;
225 ecmd->supported = 0;
226 ecmd->advertising = 0;
232 ecmd->port = PORT_OTHER;
233 ecmd->supported = SUPPORTED_Backplane;
237 ecmd->supported |= SUPPORTED_10000baseKX4_Full;
239 ecmd->supported |= SUPPORTED_10000baseKR_Full;
241 ecmd->supported |= SUPPORTED_1000baseKX_Full;
245 ecmd->supported |= SUPPORTED_10000baseR_FEC;
246 ecmd->advertising = ADVERTISED_Backplane;
251 ecmd->port = PORT_FIBRE;
252 ecmd->supported = SUPPORTED_FIBRE;
253 ecmd->advertising = ADVERTISED_FIBRE;
258 ecmd->supported |= SUPPORTED_Autoneg;
262 ecmd->autoneg = AUTONEG_ENABLE;
263 ecmd->advertising |=
268 ecmd->autoneg = AUTONEG_DISABLE;
271 ecmd->autoneg = AUTONEG_DISABLE;
274 if (ecmd->autoneg) {
282 ecmd->lp_advertising =
285 ecmd->lp_advertising |= ADVERTISED_Autoneg;
286 modes = ecmd->advertising & ecmd->lp_advertising;
289 modes = ecmd->advertising;
295 ecmd->duplex = DUPLEX_FULL;
300 ecmd->duplex = !(modes & ADVERTISED_1000baseT_Half);
304 ecmd->duplex = !!(modes & ADVERTISED_100baseT_Full);
307 ecmd->duplex = !!(modes & ADVERTISED_10baseT_Full);
315 ecmd->duplex = (reg & MDIO_CTRL1_FULLDPLX ||
319 ethtool_cmd_speed_set(ecmd, speed);
322 if (ecmd->port == PORT_TP
323 && (ethtool_cmd_speed(ecmd) == SPEED_10000)) {
327 ecmd->eth_tp_mdix = ETH_TP_MDI;
330 ecmd->eth_tp_mdix = ETH_TP_MDI_X;
334 ecmd->eth_tp_mdix = ETH_TP_MDI_INVALID;