diff options
author | Bruce Allan <bruce.w.allan@intel.com> | 2008-08-26 21:36:50 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-09-03 10:06:47 -0400 |
commit | f4187b56e1f8a05dd110875d5094b21b51ebd79b (patch) | |
tree | 7c3f97f98c808b6f6ab8ea6acdfb2f324e8a3c09 /drivers/net/e1000e/netdev.c | |
parent | 2f15f9d60190a62bc8ac50fa84fea31fc0b00ecf (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.c | 25 |
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 | }; |
4781 | MODULE_DEVICE_TABLE(pci, e1000_pci_tbl); | 4806 | MODULE_DEVICE_TABLE(pci, e1000_pci_tbl); |