X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fnet%2Fe1000%2Fe1000_hw.c;h=9be44699300b8a350041d923917cae5630b724c0;hb=42eaf0d8f2e7b8201afc00b0ebe1bd89ea51d42d;hp=ce82eb52ea9562c11616a4fa7f68ed0e7892e911;hpb=167fb2841633edd2812e385af4b593d870abd15a;p=linux-2.6-omap-h63xx.git diff --git a/drivers/net/e1000/e1000_hw.c b/drivers/net/e1000/e1000_hw.c index ce82eb52ea9..9be44699300 100644 --- a/drivers/net/e1000/e1000_hw.c +++ b/drivers/net/e1000/e1000_hw.c @@ -448,6 +448,19 @@ e1000_set_mac_type(struct e1000_hw *hw) if (hw->mac_type == e1000_82543) hw->bad_tx_carr_stats_fd = TRUE; + /* capable of receiving management packets to the host */ + if (hw->mac_type >= e1000_82571) + hw->has_manc2h = TRUE; + + /* In rare occasions, ESB2 systems would end up started without + * the RX unit being turned on. + */ + if (hw->mac_type == e1000_80003es2lan) + hw->rx_needs_kicking = TRUE; + + if (hw->mac_type > e1000_82544) + hw->has_smbus = TRUE; + return E1000_SUCCESS; } @@ -6581,7 +6594,7 @@ e1000_get_bus_info(struct e1000_hw *hw) switch (hw->mac_type) { case e1000_82542_rev2_0: case e1000_82542_rev2_1: - hw->bus_type = e1000_bus_type_unknown; + hw->bus_type = e1000_bus_type_pci; hw->bus_speed = e1000_bus_speed_unknown; hw->bus_width = e1000_bus_width_unknown; break; @@ -7823,9 +7836,8 @@ e1000_enable_mng_pass_thru(struct e1000_hw *hw) fwsm = E1000_READ_REG(hw, FWSM); factps = E1000_READ_REG(hw, FACTPS); - if (((fwsm & E1000_FWSM_MODE_MASK) == - (e1000_mng_mode_pt << E1000_FWSM_MODE_SHIFT)) && - (factps & E1000_FACTPS_MNGCG)) + if ((((fwsm & E1000_FWSM_MODE_MASK) >> E1000_FWSM_MODE_SHIFT) == + e1000_mng_mode_pt) && !(factps & E1000_FACTPS_MNGCG)) return TRUE; } else if ((manc & E1000_MANC_SMBUS_EN) && !(manc & E1000_MANC_ASF_EN))