Lines Matching refs:ecmd
46 * mii_ethtool_gset - get settings that are specified in @ecmd
48 * @ecmd: requested ethtool_cmd
50 * The @ecmd parameter is expected to have been cleared before calling
55 int mii_ethtool_gset(struct mii_if_info *mii, struct ethtool_cmd *ecmd)
61 ecmd->supported =
66 ecmd->supported |= SUPPORTED_1000baseT_Half |
70 ecmd->port = PORT_MII;
73 ecmd->transceiver = XCVR_INTERNAL;
76 ecmd->phy_address = mii->phy_id;
77 ecmd->mdio_support = ETH_MDIO_SUPPORTS_C22;
79 ecmd->advertising = ADVERTISED_TP | ADVERTISED_MII;
88 ecmd->advertising |= ADVERTISED_Autoneg;
89 ecmd->autoneg = AUTONEG_ENABLE;
91 ecmd->advertising |= mii_get_an(mii, MII_ADVERTISE);
93 ecmd->advertising |=
97 ecmd->lp_advertising = mii_get_an(mii, MII_LPA);
98 ecmd->lp_advertising |=
101 ecmd->lp_advertising = 0;
104 nego = ecmd->advertising & ecmd->lp_advertising;
108 ethtool_cmd_speed_set(ecmd, SPEED_1000);
109 ecmd->duplex = !!(nego & ADVERTISED_1000baseT_Full);
112 ethtool_cmd_speed_set(ecmd, SPEED_100);
113 ecmd->duplex = !!(nego & ADVERTISED_100baseT_Full);
115 ethtool_cmd_speed_set(ecmd, SPEED_10);
116 ecmd->duplex = !!(nego & ADVERTISED_10baseT_Full);
119 ecmd->autoneg = AUTONEG_DISABLE;
121 ethtool_cmd_speed_set(ecmd,
127 ecmd->duplex = (bmcr & BMCR_FULLDPLX) ? DUPLEX_FULL : DUPLEX_HALF;
130 mii->full_duplex = ecmd->duplex;
231 * mii_ethtool_sset - set settings that are specified in @ecmd
233 * @ecmd: requested ethtool_cmd
237 int mii_ethtool_sset(struct mii_if_info *mii, struct ethtool_cmd *ecmd)
240 u32 speed = ethtool_cmd_speed(ecmd);
246 if (ecmd->duplex != DUPLEX_HALF && ecmd->duplex != DUPLEX_FULL)
248 if (ecmd->port != PORT_MII)
250 if (ecmd->transceiver != XCVR_INTERNAL)
252 if (ecmd->phy_address != mii->phy_id)
254 if (ecmd->autoneg != AUTONEG_DISABLE && ecmd->autoneg != AUTONEG_ENABLE)
261 if (ecmd->autoneg == AUTONEG_ENABLE) {
265 if ((ecmd->advertising & (ADVERTISED_10baseT_Half |
280 tmp |= ethtool_adv_to_mii_adv_t(ecmd->advertising);
284 ethtool_adv_to_mii_ctrl1000_t(ecmd->advertising);
309 if (ecmd->duplex == DUPLEX_FULL) {