Lines Matching refs:ecmd
644 struct ethtool_link_ksettings *ecmd);
646 const struct ethtool_link_ksettings *ecmd);
2584 struct ethtool_link_ksettings *ecmd)
2588 netdev_get_ecmd(dev, ecmd);
2594 const struct ethtool_link_ksettings *ecmd)
2599 res = netdev_set_ecmd(dev, ecmd);
2830 struct ethtool_link_ksettings *ecmd)
2836 ecmd->base.port = dev->if_port;
2837 ecmd->base.speed = np->speed;
2838 ecmd->base.duplex = np->duplex;
2839 ecmd->base.autoneg = np->autoneg;
2854 ecmd->base.phy_address = np->phy_addr_external;
2874 switch (ecmd->base.port) {
2888 if (ecmd->base.autoneg == AUTONEG_ENABLE) {
2893 ecmd->base.speed = SPEED_100;
2895 ecmd->base.speed = SPEED_10;
2897 ecmd->base.duplex = DUPLEX_FULL;
2899 ecmd->base.duplex = DUPLEX_HALF;
2904 ethtool_convert_legacy_u32_to_link_mode(ecmd->link_modes.supported,
2906 ethtool_convert_legacy_u32_to_link_mode(ecmd->link_modes.advertising,
2913 const struct ethtool_link_ksettings *ecmd)
2919 ecmd->link_modes.advertising);
2921 if (ecmd->base.port != PORT_TP &&
2922 ecmd->base.port != PORT_MII &&
2923 ecmd->base.port != PORT_FIBRE)
2925 if (ecmd->base.autoneg == AUTONEG_ENABLE) {
2932 } else if (ecmd->base.autoneg == AUTONEG_DISABLE) {
2933 u32 speed = ecmd->base.speed;
2936 if (ecmd->base.duplex != DUPLEX_HALF &&
2937 ecmd->base.duplex != DUPLEX_FULL)
2948 if (np->ignore_phy && (ecmd->base.autoneg == AUTONEG_ENABLE ||
2949 ecmd->base.port == PORT_TP))
2957 * XCVR_EXTERNAL. The implementation thus ignores ecmd->transceiver and
2958 * selects based on ecmd->port.
2968 dev->if_port = ecmd->base.port;
2969 np->autoneg = ecmd->base.autoneg;
2970 np->phy_addr_external = ecmd->base.phy_address & PhyAddrMask;
2983 np->speed = ecmd->base.speed;
2984 np->duplex = ecmd->base.duplex;
2991 if (ecmd->base.port == PORT_TP)