aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/igb/e1000_82575.c
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2010-03-22 10:08:06 -0400
committerDavid S. Miller <davem@davemloft.net>2010-03-22 21:30:05 -0400
commitd2ba2ed8fe3aa796a671a6922119d7171bb49515 (patch)
tree8265da058e55fb264bdd94b1e41ed6ac9d8cbf03 /drivers/net/igb/e1000_82575.c
parent52a1dd4d15cc28da5d3e9bfb1526c314d65fdff8 (diff)
igb: add support for Intel I350 Gigabit Network Connection
This patch adds support for the the I350 Gigabit network connection which is the follow-on part to the 82580. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> CC: James Hearn <james.r.hearn@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/igb/e1000_82575.c')
-rw-r--r--drivers/net/igb/e1000_82575.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/igb/e1000_82575.c b/drivers/net/igb/e1000_82575.c
index ea944f518215..430631f49d9d 100644
--- a/drivers/net/igb/e1000_82575.c
+++ b/drivers/net/igb/e1000_82575.c
@@ -105,6 +105,12 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
105 case E1000_DEV_ID_82580_COPPER_DUAL: 105 case E1000_DEV_ID_82580_COPPER_DUAL:
106 mac->type = e1000_82580; 106 mac->type = e1000_82580;
107 break; 107 break;
108 case E1000_DEV_ID_I350_COPPER:
109 case E1000_DEV_ID_I350_FIBER:
110 case E1000_DEV_ID_I350_SERDES:
111 case E1000_DEV_ID_I350_SGMII:
112 mac->type = e1000_i350;
113 break;
108 default: 114 default:
109 return -E1000_ERR_MAC_INIT; 115 return -E1000_ERR_MAC_INIT;
110 break; 116 break;
@@ -154,8 +160,10 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
154 mac->rar_entry_count = E1000_RAR_ENTRIES_82576; 160 mac->rar_entry_count = E1000_RAR_ENTRIES_82576;
155 if (mac->type == e1000_82580) 161 if (mac->type == e1000_82580)
156 mac->rar_entry_count = E1000_RAR_ENTRIES_82580; 162 mac->rar_entry_count = E1000_RAR_ENTRIES_82580;
163 if (mac->type == e1000_i350)
164 mac->rar_entry_count = E1000_RAR_ENTRIES_I350;
157 /* reset */ 165 /* reset */
158 if (mac->type == e1000_82580) 166 if (mac->type >= e1000_82580)
159 mac->ops.reset_hw = igb_reset_hw_82580; 167 mac->ops.reset_hw = igb_reset_hw_82580;
160 else 168 else
161 mac->ops.reset_hw = igb_reset_hw_82575; 169 mac->ops.reset_hw = igb_reset_hw_82575;
@@ -226,7 +234,7 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
226 phy->ops.reset = igb_phy_hw_reset_sgmii_82575; 234 phy->ops.reset = igb_phy_hw_reset_sgmii_82575;
227 phy->ops.read_reg = igb_read_phy_reg_sgmii_82575; 235 phy->ops.read_reg = igb_read_phy_reg_sgmii_82575;
228 phy->ops.write_reg = igb_write_phy_reg_sgmii_82575; 236 phy->ops.write_reg = igb_write_phy_reg_sgmii_82575;
229 } else if (hw->mac.type == e1000_82580) { 237 } else if (hw->mac.type >= e1000_82580) {
230 phy->ops.reset = igb_phy_hw_reset; 238 phy->ops.reset = igb_phy_hw_reset;
231 phy->ops.read_reg = igb_read_phy_reg_82580; 239 phy->ops.read_reg = igb_read_phy_reg_82580;
232 phy->ops.write_reg = igb_write_phy_reg_82580; 240 phy->ops.write_reg = igb_write_phy_reg_82580;
@@ -262,6 +270,7 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
262 phy->ops.set_d3_lplu_state = igb_set_d3_lplu_state; 270 phy->ops.set_d3_lplu_state = igb_set_d3_lplu_state;
263 break; 271 break;
264 case I82580_I_PHY_ID: 272 case I82580_I_PHY_ID:
273 case I350_I_PHY_ID:
265 phy->type = e1000_phy_82580; 274 phy->type = e1000_phy_82580;
266 phy->ops.force_speed_duplex = igb_phy_force_speed_duplex_82580; 275 phy->ops.force_speed_duplex = igb_phy_force_speed_duplex_82580;
267 phy->ops.get_cable_length = igb_get_cable_length_82580; 276 phy->ops.get_cable_length = igb_get_cable_length_82580;