aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000/e1000_hw.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-12-15 10:56:10 -0500
committerJeff Garzik <jeff@garzik.org>2006-12-26 15:51:29 -0500
commit0fccd0e9e3802748855d967940c16f8c59d4e2b6 (patch)
tree6c869abd0f2af31d532b90a489ca1db749f8bd5b /drivers/net/e1000/e1000_hw.c
parent167fb2841633edd2812e385af4b593d870abd15a (diff)
e1000: consolidate managability enabling/disabling
Several bugs existed in how we handle manageability issues all over the driver. This patch consolidates all the managability release and init code in two single functions and call them from appropriate locations. This fixes several BMC packet redirect issues and powerup/down hiccups. Originally from Jesse Brandeburg <jesse.brandeburg@intel.com>, rewritten to use feature flags by me. Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/e1000/e1000_hw.c')
-rw-r--r--drivers/net/e1000/e1000_hw.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/e1000/e1000_hw.c b/drivers/net/e1000/e1000_hw.c
index ce82eb52ea95..1ea556ef093b 100644
--- a/drivers/net/e1000/e1000_hw.c
+++ b/drivers/net/e1000/e1000_hw.c
@@ -448,6 +448,10 @@ e1000_set_mac_type(struct e1000_hw *hw)
448 if (hw->mac_type == e1000_82543) 448 if (hw->mac_type == e1000_82543)
449 hw->bad_tx_carr_stats_fd = TRUE; 449 hw->bad_tx_carr_stats_fd = TRUE;
450 450
451 /* capable of receiving management packets to the host */
452 if (hw->mac_type >= e1000_82571)
453 hw->has_manc2h = TRUE;
454
451 return E1000_SUCCESS; 455 return E1000_SUCCESS;
452} 456}
453 457
@@ -7823,9 +7827,8 @@ e1000_enable_mng_pass_thru(struct e1000_hw *hw)
7823 fwsm = E1000_READ_REG(hw, FWSM); 7827 fwsm = E1000_READ_REG(hw, FWSM);
7824 factps = E1000_READ_REG(hw, FACTPS); 7828 factps = E1000_READ_REG(hw, FACTPS);
7825 7829
7826 if (((fwsm & E1000_FWSM_MODE_MASK) == 7830 if ((((fwsm & E1000_FWSM_MODE_MASK) >> E1000_FWSM_MODE_SHIFT) ==
7827 (e1000_mng_mode_pt << E1000_FWSM_MODE_SHIFT)) && 7831 e1000_mng_mode_pt) && !(factps & E1000_FACTPS_MNGCG))
7828 (factps & E1000_FACTPS_MNGCG))
7829 return TRUE; 7832 return TRUE;
7830 } else 7833 } else
7831 if ((manc & E1000_MANC_SMBUS_EN) && !(manc & E1000_MANC_ASF_EN)) 7834 if ((manc & E1000_MANC_SMBUS_EN) && !(manc & E1000_MANC_ASF_EN))