• Emil Tantilov's avatar
    ixgbe: use link instead of I2C combined abstraction · b71f6c40
    Emil Tantilov authored
    Introduce ixgbe_link_operations struct with the following changes:
    
    	read_i2c_combined		=> read_link
    	read_i2c_combined_unlocked	=> read_link_unlocked
    	write_i2c_combined		=> write_link
    	write_i2c_combined_unlocked	=> write_link_unlocked
    
    This will allow X550EM_a to override these methods for MDIO access
    while X550EM_x provides methods to use I2C combined access. This
    also adds a new structure, ixgbe_link_info, to hold information
    about the link. Initially this is just method pointers and a bus
    address.
    
    The functions involved in combined I2C accesses were moved from
    ixgbe_phy.c to ixgbe_x550.c. The underlying functions that carry
    out the combined I2C accesses were left in ixgbe_phy.c because
    they share some functions with other I2C methods.
    
    v2 - set hw->link.ops in probe.
    v3 - check ii->link_ops before setting it since we don't have it
    for all devices.
    Signed-off-by: default avatarEmil Tantilov <emil.s.tantilov@intel.com>
    Tested-by: default avatarKrishneil Singh <krishneil.k.singh@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    b71f6c40
ixgbe_main.c 277 KB