aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2006-09-27 15:53:45 -0400
committerAuke Kok <juke-jan.h.kok@intel.com>2006-09-27 15:53:45 -0400
commit249d71d694ee3a6c02067235995d6d4258d364f3 (patch)
treeee69a2127af46aa082eb81512cfddfb1a992fa88 /drivers
parent5f01607a5b5c8781ed5d5deae213b4f01283dba2 (diff)
e1000: Jumbo frames fixes for 82573
Disable jumbo frames for 82573L alltogether and when ASPM is enabled since the hardware has problems with it. For the NICs that do support this in the 82573 series we set ERT_2048 to attempt to receive as much traffic as early as we can. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/e1000/e1000_main.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index e55fb9cc41c3..a1f5b0605363 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -3138,11 +3138,13 @@ e1000_change_mtu(struct net_device *netdev, int new_mtu)
3138 } 3138 }
3139 break; 3139 break;
3140 case e1000_82573: 3140 case e1000_82573:
3141 /* only enable jumbo frames if ASPM is disabled completely 3141 /* Jumbo Frames not supported if:
3142 * this means both bits must be zero in 0x1A bits 3:2 */ 3142 * - this is not an 82573L device
3143 * - ASPM is enabled in any way (0x1A bits 3:2) */
3143 e1000_read_eeprom(&adapter->hw, EEPROM_INIT_3GIO_3, 1, 3144 e1000_read_eeprom(&adapter->hw, EEPROM_INIT_3GIO_3, 1,
3144 &eeprom_data); 3145 &eeprom_data);
3145 if (eeprom_data & EEPROM_WORD1A_ASPM_MASK) { 3146 if ((adapter->hw.device_id != E1000_DEV_ID_82573L) ||
3147 (eeprom_data & EEPROM_WORD1A_ASPM_MASK)) {
3146 if (max_frame > MAXIMUM_ETHERNET_FRAME_SIZE) { 3148 if (max_frame > MAXIMUM_ETHERNET_FRAME_SIZE) {
3147 DPRINTK(PROBE, ERR, 3149 DPRINTK(PROBE, ERR,
3148 "Jumbo Frames not supported.\n"); 3150 "Jumbo Frames not supported.\n");
@@ -3150,6 +3152,8 @@ e1000_change_mtu(struct net_device *netdev, int new_mtu)
3150 } 3152 }
3151 break; 3153 break;
3152 } 3154 }
3155 /* ERT will be enabled later to enable wire speed receives */
3156
3153 /* fall through to get support */ 3157 /* fall through to get support */
3154 case e1000_82571: 3158 case e1000_82571:
3155 case e1000_82572: 3159 case e1000_82572: