ixgbe: Add support for another X550 device.
authorDon Skidmore <donald.c.skidmore@intel.com>
Wed, 10 Jun 2015 00:39:46 +0000 (17:39 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 10 Jun 2015 00:39:46 +0000 (17:39 -0700)
This patch adds support for another 10baseT X550 device.

Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c

index 4b681c41a036bf73256aa598fe9f123885f43bf1..3bf2f3cfd9f6d9f25e17a5dcc37386f0e1831bd7 100644 (file)
@@ -133,6 +133,7 @@ static const struct pci_device_id ixgbe_pci_tbl[] = {
        {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550T), board_X550},
        {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_X_KX4), board_X550EM_x},
        {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_X_KR), board_X550EM_x},
+       {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_X_10G_T), board_X550EM_x},
        /* required last entry */
        {0, }
 };
index 22646c3dfddf5876a2b75735ee9dfa17b9a1aa8a..ac6c0af3badc8ed0dddd56c3175061472ce21995 100644 (file)
@@ -347,6 +347,7 @@ static enum ixgbe_phy_type ixgbe_get_phy_type_from_id(u32 phy_id)
        case TN1010_PHY_ID:
                phy_type = ixgbe_phy_tn;
                break;
+       case X550_PHY_ID:
        case X540_PHY_ID:
                phy_type = ixgbe_phy_aq;
                break;
index b9eee325b4237d52bfb31d61e04ec2e4720ae393..b6f424f3b1a8388da48c6038faae16922e773e7a 100644 (file)
@@ -1353,6 +1353,7 @@ struct ixgbe_thermal_sensor_data {
 #define TN1010_PHY_ID    0x00A19410
 #define TNX_FW_REV       0xB
 #define X540_PHY_ID      0x01540200
+#define X550_PHY_ID      0x01540220
 #define X557_PHY_ID      0x01540240
 #define QT2022_PHY_ID    0x0043A400
 #define ATH_PHY_ID       0x03429050
index fee3d07a05a09041ff335560f2538cabd059a177..886bef568a13918a61ddd12fc63dcb9019216be6 100644 (file)
@@ -1561,6 +1561,7 @@ static s32 ixgbe_reset_hw_X550em(struct ixgbe_hw *hw)
        s32 status;
        u32 ctrl = 0;
        u32 i;
+       u32 hlreg0;
        bool link_up = false;
 
        /* Call adapter stop to disable Tx/Rx and clear interrupts */
@@ -1645,6 +1646,12 @@ mac_reset_top:
        hw->mac.num_rar_entries = 128;
        hw->mac.ops.init_rx_addrs(hw);
 
+       if (hw->device_id == IXGBE_DEV_ID_X550EM_X_10G_T) {
+               hlreg0 = IXGBE_READ_REG(hw, IXGBE_HLREG0);
+               hlreg0 &= ~IXGBE_HLREG0_MDCSPD;
+               IXGBE_WRITE_REG(hw, IXGBE_HLREG0, hlreg0);
+       }
+
        if (hw->device_id == IXGBE_DEV_ID_X550EM_X_SFP)
                ixgbe_setup_mux_ctl(hw);