diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2010-03-22 10:08:06 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-03-22 21:30:05 -0400 |
commit | d2ba2ed8fe3aa796a671a6922119d7171bb49515 (patch) | |
tree | 8265da058e55fb264bdd94b1e41ed6ac9d8cbf03 /drivers/net/igb/e1000_82575.c | |
parent | 52a1dd4d15cc28da5d3e9bfb1526c314d65fdff8 (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.c | 13 |
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; |