aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Rustad <mark.d.rustad@intel.com>2016-04-01 15:18:46 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2016-04-07 20:14:06 -0400
commitf572b2c4c86dcebe6b8684cbab03d9b2ea0d2ad6 (patch)
tree2276059b38afdca7f8029531557e4bf590540612
parent200157c2e31a5931d0d825e9fddb44d10888e6b3 (diff)
ixgbe: Add KR backplane support for x550em_a
Add support for x550em_a-based KR backplane devices. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c2
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_type.h2
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c18
3 files changed, 18 insertions, 4 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index c96af3fdd554..1a7bfcfc030e 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -131,6 +131,8 @@ static const struct pci_device_id ixgbe_pci_tbl[] = {
131 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_X_KR), board_X550EM_x}, 131 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_X_KR), board_X550EM_x},
132 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_X_10G_T), board_X550EM_x}, 132 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_X_10G_T), board_X550EM_x},
133 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_X_SFP), board_X550EM_x}, 133 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_X_SFP), board_X550EM_x},
134 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_A_KR), board_x550em_a },
135 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_A_KR_L), board_x550em_a },
134 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_A_SFP_N), board_x550em_a }, 136 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_A_SFP_N), board_x550em_a },
135 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_A_SGMII), board_x550em_a }, 137 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_A_SGMII), board_x550em_a },
136 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_A_SGMII_L), board_x550em_a }, 138 {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_A_SGMII_L), board_x550em_a },
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
index 50e8bc0ef4e7..ba3b837c7e9d 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
@@ -81,6 +81,8 @@
81#define IXGBE_DEV_ID_X550EM_X_SFP 0x15AC 81#define IXGBE_DEV_ID_X550EM_X_SFP 0x15AC
82#define IXGBE_DEV_ID_X550EM_X_10G_T 0x15AD 82#define IXGBE_DEV_ID_X550EM_X_10G_T 0x15AD
83#define IXGBE_DEV_ID_X550EM_X_1G_T 0x15AE 83#define IXGBE_DEV_ID_X550EM_X_1G_T 0x15AE
84#define IXGBE_DEV_ID_X550EM_A_KR 0x15C2
85#define IXGBE_DEV_ID_X550EM_A_KR_L 0x15C3
84#define IXGBE_DEV_ID_X550EM_A_SFP_N 0x15C4 86#define IXGBE_DEV_ID_X550EM_A_SFP_N 0x15C4
85#define IXGBE_DEV_ID_X550EM_A_SGMII 0x15C6 87#define IXGBE_DEV_ID_X550EM_A_SGMII 0x15C6
86#define IXGBE_DEV_ID_X550EM_A_SGMII_L 0x15C7 88#define IXGBE_DEV_ID_X550EM_A_SGMII_L 0x15C7
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
index 81e5d54476c7..c71e93ed4451 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
@@ -291,6 +291,8 @@ static s32 ixgbe_identify_phy_x550em(struct ixgbe_hw *hw)
291 hw->phy.type = ixgbe_phy_x550em_kx4; 291 hw->phy.type = ixgbe_phy_x550em_kx4;
292 break; 292 break;
293 case IXGBE_DEV_ID_X550EM_X_KR: 293 case IXGBE_DEV_ID_X550EM_X_KR:
294 case IXGBE_DEV_ID_X550EM_A_KR:
295 case IXGBE_DEV_ID_X550EM_A_KR_L:
294 hw->phy.type = ixgbe_phy_x550em_kr; 296 hw->phy.type = ixgbe_phy_x550em_kr;
295 break; 297 break;
296 case IXGBE_DEV_ID_X550EM_X_1G_T: 298 case IXGBE_DEV_ID_X550EM_X_1G_T:
@@ -1984,13 +1986,17 @@ static s32 ixgbe_setup_kx4_x550em(struct ixgbe_hw *hw)
1984 return status; 1986 return status;
1985} 1987}
1986 1988
1987/** ixgbe_setup_kr_x550em - Configure the KR PHY. 1989/**
1988 * @hw: pointer to hardware structure 1990 * ixgbe_setup_kr_x550em - Configure the KR PHY
1991 * @hw: pointer to hardware structure
1989 * 1992 *
1990 * Configures the integrated KR PHY. 1993 * Configures the integrated KR PHY for X550EM_x.
1991 **/ 1994 **/
1992static s32 ixgbe_setup_kr_x550em(struct ixgbe_hw *hw) 1995static s32 ixgbe_setup_kr_x550em(struct ixgbe_hw *hw)
1993{ 1996{
1997 if (hw->mac.type != ixgbe_mac_X550EM_x)
1998 return 0;
1999
1994 return ixgbe_setup_kr_speed_x550em(hw, hw->phy.autoneg_advertised); 2000 return ixgbe_setup_kr_speed_x550em(hw, hw->phy.autoneg_advertised);
1995} 2001}
1996 2002
@@ -2196,7 +2202,9 @@ static s32 ixgbe_setup_fc_x550em(struct ixgbe_hw *hw)
2196 return IXGBE_ERR_CONFIG; 2202 return IXGBE_ERR_CONFIG;
2197 } 2203 }
2198 2204
2199 if (hw->device_id != IXGBE_DEV_ID_X550EM_X_KR) 2205 if (hw->device_id != IXGBE_DEV_ID_X550EM_X_KR &&
2206 hw->device_id != IXGBE_DEV_ID_X550EM_A_KR &&
2207 hw->device_id != IXGBE_DEV_ID_X550EM_A_KR_L)
2200 return 0; 2208 return 0;
2201 2209
2202 rc = hw->mac.ops.read_iosf_sb_reg(hw, 2210 rc = hw->mac.ops.read_iosf_sb_reg(hw,
@@ -2437,6 +2445,8 @@ static enum ixgbe_media_type ixgbe_get_media_type_X550em(struct ixgbe_hw *hw)
2437 /* Fallthrough */ 2445 /* Fallthrough */
2438 case IXGBE_DEV_ID_X550EM_X_KR: 2446 case IXGBE_DEV_ID_X550EM_X_KR:
2439 case IXGBE_DEV_ID_X550EM_X_KX4: 2447 case IXGBE_DEV_ID_X550EM_X_KX4:
2448 case IXGBE_DEV_ID_X550EM_A_KR:
2449 case IXGBE_DEV_ID_X550EM_A_KR_L:
2440 media_type = ixgbe_media_type_backplane; 2450 media_type = ixgbe_media_type_backplane;
2441 break; 2451 break;
2442 case IXGBE_DEV_ID_X550EM_X_SFP: 2452 case IXGBE_DEV_ID_X550EM_X_SFP: