aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe/ixgbe_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_main.c')
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 01d8b6b12be6..4a316e9c0541 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -2458,6 +2458,17 @@ static int ixgbe_up_complete(struct ixgbe_adapter *adapter)
2458 ixgbe_irq_enable(adapter); 2458 ixgbe_irq_enable(adapter);
2459 2459
2460 /* 2460 /*
2461 * If this adapter has a fan, check to see if we had a failure
2462 * before we enabled the interrupt.
2463 */
2464 if (adapter->flags & IXGBE_FLAG_FAN_FAIL_CAPABLE) {
2465 u32 esdp = IXGBE_READ_REG(hw, IXGBE_ESDP);
2466 if (esdp & IXGBE_ESDP_SDP1)
2467 DPRINTK(DRV, CRIT,
2468 "Fan has stopped, replace the adapter\n");
2469 }
2470
2471 /*
2461 * For hot-pluggable SFP+ devices, a new SFP+ module may have 2472 * For hot-pluggable SFP+ devices, a new SFP+ module may have
2462 * arrived before interrupts were enabled. We need to kick off 2473 * arrived before interrupts were enabled. We need to kick off
2463 * the SFP+ module setup first, then try to bring up link. 2474 * the SFP+ module setup first, then try to bring up link.
@@ -3382,9 +3393,11 @@ static int __devinit ixgbe_sw_init(struct ixgbe_adapter *adapter)
3382 adapter->ring_feature[RING_F_RSS].indices = rss; 3393 adapter->ring_feature[RING_F_RSS].indices = rss;
3383 adapter->flags |= IXGBE_FLAG_RSS_ENABLED; 3394 adapter->flags |= IXGBE_FLAG_RSS_ENABLED;
3384 adapter->ring_feature[RING_F_DCB].indices = IXGBE_MAX_DCB_INDICES; 3395 adapter->ring_feature[RING_F_DCB].indices = IXGBE_MAX_DCB_INDICES;
3385 if (hw->mac.type == ixgbe_mac_82598EB) 3396 if (hw->mac.type == ixgbe_mac_82598EB) {
3397 if (hw->device_id == IXGBE_DEV_ID_82598AT)
3398 adapter->flags |= IXGBE_FLAG_FAN_FAIL_CAPABLE;
3386 adapter->max_msix_q_vectors = MAX_MSIX_Q_VECTORS_82598; 3399 adapter->max_msix_q_vectors = MAX_MSIX_Q_VECTORS_82598;
3387 else if (hw->mac.type == ixgbe_mac_82599EB) { 3400 } else if (hw->mac.type == ixgbe_mac_82599EB) {
3388 adapter->max_msix_q_vectors = MAX_MSIX_Q_VECTORS_82599; 3401 adapter->max_msix_q_vectors = MAX_MSIX_Q_VECTORS_82599;
3389 adapter->flags |= IXGBE_FLAG_RSC_CAPABLE; 3402 adapter->flags |= IXGBE_FLAG_RSC_CAPABLE;
3390 adapter->flags |= IXGBE_FLAG_RSC_ENABLED; 3403 adapter->flags |= IXGBE_FLAG_RSC_ENABLED;
@@ -4915,6 +4928,17 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
4915 if (err) 4928 if (err)
4916 goto err_sw_init; 4929 goto err_sw_init;
4917 4930
4931 /*
4932 * If there is a fan on this device and it has failed log the
4933 * failure.
4934 */
4935 if (adapter->flags & IXGBE_FLAG_FAN_FAIL_CAPABLE) {
4936 u32 esdp = IXGBE_READ_REG(hw, IXGBE_ESDP);
4937 if (esdp & IXGBE_ESDP_SDP1)
4938 DPRINTK(PROBE, CRIT,
4939 "Fan has stopped, replace the adapter\n");
4940 }
4941
4918 /* reset_hw fills in the perm_addr as well */ 4942 /* reset_hw fills in the perm_addr as well */
4919 err = hw->mac.ops.reset_hw(hw); 4943 err = hw->mac.ops.reset_hw(hw);
4920 if (err == IXGBE_ERR_SFP_NOT_SUPPORTED) { 4944 if (err == IXGBE_ERR_SFP_NOT_SUPPORTED) {