Lines Matching refs:ecmd

643 static int netdev_get_ecmd(struct net_device *dev, struct ethtool_cmd *ecmd);
644 static int netdev_set_ecmd(struct net_device *dev, struct ethtool_cmd *ecmd);
2586 static int get_settings(struct net_device *dev, struct ethtool_cmd *ecmd) in get_settings() argument
2590 netdev_get_ecmd(dev, ecmd); in get_settings()
2595 static int set_settings(struct net_device *dev, struct ethtool_cmd *ecmd) in set_settings() argument
2600 res = netdev_set_ecmd(dev, ecmd); in set_settings()
2830 static int netdev_get_ecmd(struct net_device *dev, struct ethtool_cmd *ecmd) in netdev_get_ecmd() argument
2835 ecmd->port = dev->if_port; in netdev_get_ecmd()
2836 ethtool_cmd_speed_set(ecmd, np->speed); in netdev_get_ecmd()
2837 ecmd->duplex = np->duplex; in netdev_get_ecmd()
2838 ecmd->autoneg = np->autoneg; in netdev_get_ecmd()
2839 ecmd->advertising = 0; in netdev_get_ecmd()
2841 ecmd->advertising |= ADVERTISED_10baseT_Half; in netdev_get_ecmd()
2843 ecmd->advertising |= ADVERTISED_10baseT_Full; in netdev_get_ecmd()
2845 ecmd->advertising |= ADVERTISED_100baseT_Half; in netdev_get_ecmd()
2847 ecmd->advertising |= ADVERTISED_100baseT_Full; in netdev_get_ecmd()
2848 ecmd->supported = (SUPPORTED_Autoneg | in netdev_get_ecmd()
2852 ecmd->phy_address = np->phy_addr_external; in netdev_get_ecmd()
2872 switch (ecmd->port) { in netdev_get_ecmd()
2875 ecmd->advertising |= ADVERTISED_TP; in netdev_get_ecmd()
2876 ecmd->transceiver = XCVR_INTERNAL; in netdev_get_ecmd()
2879 ecmd->advertising |= ADVERTISED_MII; in netdev_get_ecmd()
2880 ecmd->transceiver = XCVR_EXTERNAL; in netdev_get_ecmd()
2883 ecmd->advertising |= ADVERTISED_FIBRE; in netdev_get_ecmd()
2884 ecmd->transceiver = XCVR_EXTERNAL; in netdev_get_ecmd()
2889 if (ecmd->autoneg == AUTONEG_ENABLE) { in netdev_get_ecmd()
2890 ecmd->advertising |= ADVERTISED_Autoneg; in netdev_get_ecmd()
2894 ethtool_cmd_speed_set(ecmd, SPEED_100); in netdev_get_ecmd()
2896 ethtool_cmd_speed_set(ecmd, SPEED_10); in netdev_get_ecmd()
2898 ecmd->duplex = DUPLEX_FULL; in netdev_get_ecmd()
2900 ecmd->duplex = DUPLEX_HALF; in netdev_get_ecmd()
2908 static int netdev_set_ecmd(struct net_device *dev, struct ethtool_cmd *ecmd) in netdev_set_ecmd() argument
2912 if (ecmd->port != PORT_TP && ecmd->port != PORT_MII && ecmd->port != PORT_FIBRE) in netdev_set_ecmd()
2914 if (ecmd->transceiver != XCVR_INTERNAL && ecmd->transceiver != XCVR_EXTERNAL) in netdev_set_ecmd()
2916 if (ecmd->autoneg == AUTONEG_ENABLE) { in netdev_set_ecmd()
2917 if ((ecmd->advertising & (ADVERTISED_10baseT_Half | in netdev_set_ecmd()
2923 } else if (ecmd->autoneg == AUTONEG_DISABLE) { in netdev_set_ecmd()
2924 u32 speed = ethtool_cmd_speed(ecmd); in netdev_set_ecmd()
2927 if (ecmd->duplex != DUPLEX_HALF && ecmd->duplex != DUPLEX_FULL) in netdev_set_ecmd()
2938 if (np->ignore_phy && (ecmd->autoneg == AUTONEG_ENABLE || in netdev_set_ecmd()
2939 ecmd->port == PORT_TP)) in netdev_set_ecmd()
2958 dev->if_port = ecmd->port; in netdev_set_ecmd()
2959 np->autoneg = ecmd->autoneg; in netdev_set_ecmd()
2960 np->phy_addr_external = ecmd->phy_address & PhyAddrMask; in netdev_set_ecmd()
2964 if (ecmd->advertising & ADVERTISED_10baseT_Half) in netdev_set_ecmd()
2966 if (ecmd->advertising & ADVERTISED_10baseT_Full) in netdev_set_ecmd()
2968 if (ecmd->advertising & ADVERTISED_100baseT_Half) in netdev_set_ecmd()
2970 if (ecmd->advertising & ADVERTISED_100baseT_Full) in netdev_set_ecmd()
2973 np->speed = ethtool_cmd_speed(ecmd); in netdev_set_ecmd()
2974 np->duplex = ecmd->duplex; in netdev_set_ecmd()
2981 if (ecmd->port == PORT_TP) in netdev_set_ecmd()