From: Faizal Rahim <[email protected]> This series adds support for forcing 10/100 Mb/s link speed via ethtool when autonegotiation is disabled on the igc driver.
Changes in v5: - add removal justification to include copper context in commit description for igc: remove unused autoneg_failed field (Paul) - check that cmd->base.duplex is either DUPLEX_HALF or DUPLEX_FULL in igc_ethtool_set_link_ksettings() (Simon) - dynamically override hw->fc.current_mode to igc_fc_none during link configuration instead of mutating requested_mode (Simon) Changes in v4: - Validate that autoneg is AUTONEG_ENABLE or AUTONEG_DISABLE early in igc_ethtool_set_link_ksettings() to avoid passing unexpected values to igc_handle_autoneg_disabled(). (Simon Horman) Changes in v3: - Modify condition from "if (duplex == DUPLEX_HALF)" to "if (duplex != DUPLEX_FULL)". (Simon Horman) Changes in v2: - When forcing half-duplex, set hw->fc.requested_mode = igc_fc_none, since half-duplex cannot support flow control per IEEE 802.3. (Simon Horman) - Split the original single patch into three patches for clarity: patches 1 and 2 are preparatory cleanups; patch 3 carries the functional change. v4 at: https://patchwork.ozlabs.org/project/intel-wired-lan/cover/[email protected]/ v3 at: https://patchwork.ozlabs.org/project/intel-wired-lan/cover/[email protected]/ v2 at: https://patchwork.kernel.org/project/netdevbpf/patch/[email protected]/ v1 at: https://patchwork.ozlabs.org/project/intel-wired-lan/patch/[email protected]/ Faizal Rahim (4): igc: remove unused autoneg_failed field igc: move autoneg-enabled settings into igc_handle_autoneg_enabled() igc: replace goto out with direct returns in igc_config_fc_after_link_up() igc: add support for forcing link speed without autonegotiation drivers/net/ethernet/intel/igc/igc_base.c | 35 +++- drivers/net/ethernet/intel/igc/igc_defines.h | 9 +- drivers/net/ethernet/intel/igc/igc_ethtool.c | 210 +++++++++++++------ drivers/net/ethernet/intel/igc/igc_hw.h | 10 +- drivers/net/ethernet/intel/igc/igc_mac.c | 35 ++-- drivers/net/ethernet/intel/igc/igc_main.c | 2 +- drivers/net/ethernet/intel/igc/igc_phy.c | 65 +++++- drivers/net/ethernet/intel/igc/igc_phy.h | 1 + 8 files changed, 268 insertions(+), 99 deletions(-) -- 2.43.0
