aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000e/netdev.c
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2008-08-26 21:36:50 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-09-03 10:06:47 -0400
commitf4187b56e1f8a05dd110875d5094b21b51ebd79b (patch)
tree7c3f97f98c808b6f6ab8ea6acdfb2f324e8a3c09 /drivers/net/e1000e/netdev.c
parent2f15f9d60190a62bc8ac50fa84fea31fc0b00ecf (diff)
e1000e: add support for 82567LM-3 and 82567LF-3 (ICH10D) parts
Add support for new LOM devices on the latest generation ICHx platforms. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/e1000e/netdev.c')
-rw-r--r--drivers/net/e1000e/netdev.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index c3d74115a6b9..2d9bcb02d093 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -58,6 +58,7 @@ static const struct e1000_info *e1000_info_tbl[] = {
58 [board_80003es2lan] = &e1000_es2_info, 58 [board_80003es2lan] = &e1000_es2_info,
59 [board_ich8lan] = &e1000_ich8_info, 59 [board_ich8lan] = &e1000_ich8_info,
60 [board_ich9lan] = &e1000_ich9_info, 60 [board_ich9lan] = &e1000_ich9_info,
61 [board_ich10lan] = &e1000_ich10_info,
61}; 62};
62 63
63#ifdef DEBUG 64#ifdef DEBUG
@@ -3201,6 +3202,27 @@ static void e1000_watchdog_task(struct work_struct *work)
3201 &adapter->link_duplex); 3202 &adapter->link_duplex);
3202 e1000_print_link_info(adapter); 3203 e1000_print_link_info(adapter);
3203 /* 3204 /*
3205 * On supported PHYs, check for duplex mismatch only
3206 * if link has autonegotiated at 10/100 half
3207 */
3208 if ((hw->phy.type == e1000_phy_igp_3 ||
3209 hw->phy.type == e1000_phy_bm) &&
3210 (hw->mac.autoneg == true) &&
3211 (adapter->link_speed == SPEED_10 ||
3212 adapter->link_speed == SPEED_100) &&
3213 (adapter->link_duplex == HALF_DUPLEX)) {
3214 u16 autoneg_exp;
3215
3216 e1e_rphy(hw, PHY_AUTONEG_EXP, &autoneg_exp);
3217
3218 if (!(autoneg_exp & NWAY_ER_LP_NWAY_CAPS))
3219 e_info("Autonegotiated half duplex but"
3220 " link partner cannot autoneg. "
3221 " Try forcing full duplex if "
3222 "link gets many collisions.\n");
3223 }
3224
3225 /*
3204 * tweak tx_queue_len according to speed/duplex 3226 * tweak tx_queue_len according to speed/duplex
3205 * and adjust the timeout factor 3227 * and adjust the timeout factor
3206 */ 3228 */
@@ -4776,6 +4798,9 @@ static struct pci_device_id e1000_pci_tbl[] = {
4776 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_LF), board_ich9lan }, 4798 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_LF), board_ich9lan },
4777 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_V), board_ich9lan }, 4799 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_V), board_ich9lan },
4778 4800
4801 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_D_BM_LM), board_ich10lan },
4802 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_D_BM_LF), board_ich10lan },
4803
4779 { } /* terminate list */ 4804 { } /* terminate list */
4780}; 4805};
4781MODULE_DEVICE_TABLE(pci, e1000_pci_tbl); 4806MODULE_DEVICE_TABLE(pci, e1000_pci_tbl);