e1000 driver update
Signed-off-by: Jeff Kirsher <[EMAIL PROTECTED]>
Signed-off-by: John Ronciak <[EMAIL PROTECTED]>
Signed-off-by: Jesse Brandeburg <[EMAIL PROTECTED]>
6. Comments/Doc/Driver Version
diff -up linux-2.6/drivers/net/e1000/e1000_hw.c
linux-2.6.new/drivers/net/e1000/e1000_hw.c
--- linux-2.6/drivers/net/e1000/e1000_hw.c 2005-11-14 16:20:34.000000000
-0800
+++ linux-2.6.new/drivers/net/e1000/e1000_hw.c 2005-11-04 01:23:40.000000000
-0800
@@ -318,6 +318,7 @@ e1000_set_mac_type(struct e1000_hw *hw)
case E1000_DEV_ID_82546GB_FIBER:
case E1000_DEV_ID_82546GB_SERDES:
case E1000_DEV_ID_82546GB_PCIE:
+ case E1000_DEV_ID_82546GB_QUAD_COPPER:
hw->mac_type = e1000_82546_rev_3;
break;
case E1000_DEV_ID_82541EI:
diff -up linux-2.6/drivers/net/e1000/e1000_main.c
linux-2.6.new/drivers/net/e1000/e1000_main.c
--- linux-2.6/drivers/net/e1000/e1000_main.c 2005-11-14 16:20:34.000000000
-0800
+++ linux-2.6.new/drivers/net/e1000/e1000_main.c 2005-11-04
01:23:40.000000000 -0800
@@ -29,10 +29,85 @@
#include "e1000.h"
/* Change Log
+ * 6.2.15 9/20/05
+ * o For all AMT enabled configurations, set/reset DRV_LOAD bit on
+ * interface open/close. The DRV_LOAD bit must not be set if the
+ * driver is loaded but the interface is not open
+ * 6.2.14 9/15/05
+ * o In AMT enabled configurations, set/reset DRV_LOAD bit on interface
+ * open/close
+ * 6.2.13 9/14/05
+ * o Invoke e1000_check_mng_mode only for 8257x controllers since it
+ * accesses the FWSM that is not supported in other controllers
+ * 6.2.12 9/9/05
+ * o Add support for device id E1000_DEV_ID_82546GB_QUAD_COPPER
+ * o set RCTL:SECRC only for controllers newer than 82543.
+ * o When the n/w interface comes down reset DRV_LOAD bit to notify f/w.
+ * This code was moved from e1000_remove to e1000_close
+ * 6.2.10 9/6/05
+ * o Fix error in updating RDT in el1000_alloc_rx_buffers[_ps] -- one off.
+ * o Enable fc by default on 82573 controllers (do not read eeprom)
+ * o Fix rx_errors statistic not to include missed_packet_count
+ * o Fix rx_dropped statistic not to include missed_packet_count
+ (Padraig Brady)
+ * 6.2.9 8/30/05
+ * o Remove call to update statistics from the controller ib e1000_get_stats
+ * 6.2.8 8/30/05
+ * o Improved algorithm for rx buffer allocation/rdt update
+ * o Flow control watermarks relative to rx PBA size
+ * o Simplified 'Tx Hung' detect logic
+ * 6.2.7 8/17/05
+ * o Report rx buffer allocation failures and tx timeout counts in stats
+ * 6.2.6 8/16/05
+ * o Implement workaround for controller erratum -- linear non-tso packet
+ * following a TSO gets written back prematurely
+ * 6.2.5 8/15/05
+ * o Set netdev->tx_queue_len based on link speed/duplex settings.
+ * o Fix net_stats.rx_fifo_errors <[EMAIL PROTECTED]>
+ * o Do not power off PHY if SoL/IDER session is active
+ * 6.2.4 8/10/05
+ * o Fix loopback test setup/cleanup for 82571/3 controllers
+ * o Fix parsing of outgoing packets (e1000_transfer_dhcp_info) to treat
+ * all packets as raw
+ * o Prevent operations that will cause the PHY to be reset if SoL/IDER
+ * sessions are active and log a message
+ * 6.2.2 7/21/05
+ * o used fixed size descriptors for all MTU sizes, reduces memory load
+ * 6.2.1 7/21/05
+ * o Performance tweaks, including copybreak and prefetch
+ * 6.1.2 4/13/05
+ * o Fixed ethtool diagnostics
+ * o Enabled flow control to take default eeprom settings
+ * o Added stats_lock around e1000_read_phy_reg commands to avoid concurrent
+ * calls, one from mii_ioctl and other from within update_stats while
processing
+ * MIIREG ioctl.
* 6.0.58 4/20/05
- * o Accepted ethtool cleanup patch from Stephen Hemminger
+ * o e1000_set_spd_dplx tests for compatible speed/duplex specification
+ * for fiber adapters
+ * 6.0.57 4/19/05
+ * o Added code to fix register test failure for devices >= 82571
+ * 6.0.55 3/23/05
+ * o Support for MODULE_VERSION
+ * o Fix APM setting for 82544 based adapters
+ * 6.0.54 3/26/05
+ * o Added a timer to expire packets that were deferred for cleanup
+ * 6.0.52 3/15/05
+ * o Added stats_lock around e1000_read_phy_reg commands to avoid concurrent
+ * calls, one from mii_ioctl and other from within update_stats while
+ * processing MIIREG ioctl.
+ * 6.0.47 3/2/05
+ * o Added enhanced functionality to the loopback diags to wrap the
+ * descriptor rings
+ * o Added manageability vlan filtering workaround.
* 6.0.44+ 2/15/05
- * o applied Anton's patch to resolve tx hang in hardware
+ * o Added code to handle raw packet based DHCP packets
+ * o Added code to fix the errata 10 buffer overflow issue
+ * o Sync up with WR01-05
+ * o applied Anton's patch to resolve tx hang in hardware
+ * o e1000 timeouts with early writeback patch
+ * o Removed Queensport IDs
+ * o fixed driver panic if MAC receives a bad large packets when packet
+ * split is enabled
* o Applied Andrew Mortons patch - e1000 stops working after resume
*/
@@ -43,7 +43,7 @@
#else
#define DRIVERNAPI "-NAPI"
#endif
-#define DRV_VERSION "6.1.16-k2"DRIVERNAPI
+#define DRV_VERSION "6.2.15-k2"DRIVERNAPI
char e1000_driver_version[] = DRV_VERSION;
static char e1000_copyright[] = "Copyright (c) 1999-2005 Intel Corporation.";
@@ -3228,16 +3138,16 @@ e1000_intr(int irq, void *data, struct p
#else /* if !CONFIG_E1000_NAPI */
/* Writing IMC and IMS is needed for 82547.
- Due to Hub Link bus being occupied, an interrupt
- de-assertion message is not able to be sent.
- When an interrupt assertion message is generated later,
- two messages are re-ordered and sent out.
- That causes APIC to think 82547 is in de-assertion
- state, while 82547 is in assertion state, resulting
- in dead lock. Writing IMC forces 82547 into
- de-assertion state.
- */
if(hw->mac_type == e1000_82547 || hw->mac_type == e1000_82547_rev_2){
+ * Due to Hub Link bus being occupied, an interrupt
+ * de-assertion message is not able to be sent.
+ * When an interrupt assertion message is generated later,
+ * two messages are re-ordered and sent out.
+ * That causes APIC to think 82547 is in de-assertion
+ * state, while 82547 is in assertion state, resulting
+ * in dead lock. Writing IMC forces 82547 into
+ * de-assertion state.
+ */
atomic_inc(&adapter->irq_sem);
E1000_WRITE_REG(hw, IMC, ~0);
}
Cheers,
Jeff
diff -up linux-2.6/drivers/net/e1000/e1000_hw.c
linux-2.6.new/drivers/net/e1000/e1000_hw.c
--- linux-2.6/drivers/net/e1000/e1000_hw.c 2005-11-14 16:20:34.000000000
-0800
+++ linux-2.6.new/drivers/net/e1000/e1000_hw.c 2005-11-04 01:23:40.000000000
-0800
@@ -318,6 +318,7 @@ e1000_set_mac_type(struct e1000_hw *hw)
case E1000_DEV_ID_82546GB_FIBER:
case E1000_DEV_ID_82546GB_SERDES:
case E1000_DEV_ID_82546GB_PCIE:
+ case E1000_DEV_ID_82546GB_QUAD_COPPER:
hw->mac_type = e1000_82546_rev_3;
break;
case E1000_DEV_ID_82541EI:
diff -up linux-2.6/drivers/net/e1000/e1000_main.c
linux-2.6.new/drivers/net/e1000/e1000_main.c
--- linux-2.6/drivers/net/e1000/e1000_main.c 2005-11-14 16:20:34.000000000
-0800
+++ linux-2.6.new/drivers/net/e1000/e1000_main.c 2005-11-04
01:23:40.000000000 -0800
@@ -29,10 +29,85 @@
#include "e1000.h"
/* Change Log
+ * 6.2.15 9/20/05
+ * o For all AMT enabled configurations, set/reset DRV_LOAD bit on
+ * interface open/close. The DRV_LOAD bit must not be set if the
+ * driver is loaded but the interface is not open
+ * 6.2.14 9/15/05
+ * o In AMT enabled configurations, set/reset DRV_LOAD bit on interface
+ * open/close
+ * 6.2.13 9/14/05
+ * o Invoke e1000_check_mng_mode only for 8257x controllers since it
+ * accesses the FWSM that is not supported in other controllers
+ * 6.2.12 9/9/05
+ * o Add support for device id E1000_DEV_ID_82546GB_QUAD_COPPER
+ * o set RCTL:SECRC only for controllers newer than 82543.
+ * o When the n/w interface comes down reset DRV_LOAD bit to notify f/w.
+ * This code was moved from e1000_remove to e1000_close
+ * 6.2.10 9/6/05
+ * o Fix error in updating RDT in el1000_alloc_rx_buffers[_ps] -- one off.
+ * o Enable fc by default on 82573 controllers (do not read eeprom)
+ * o Fix rx_errors statistic not to include missed_packet_count
+ * o Fix rx_dropped statistic not to include missed_packet_count
+ (Padraig Brady)
+ * 6.2.9 8/30/05
+ * o Remove call to update statistics from the controller ib e1000_get_stats
+ * 6.2.8 8/30/05
+ * o Improved algorithm for rx buffer allocation/rdt update
+ * o Flow control watermarks relative to rx PBA size
+ * o Simplified 'Tx Hung' detect logic
+ * 6.2.7 8/17/05
+ * o Report rx buffer allocation failures and tx timeout counts in stats
+ * 6.2.6 8/16/05
+ * o Implement workaround for controller erratum -- linear non-tso packet
+ * following a TSO gets written back prematurely
+ * 6.2.5 8/15/05
+ * o Set netdev->tx_queue_len based on link speed/duplex settings.
+ * o Fix net_stats.rx_fifo_errors <[EMAIL PROTECTED]>
+ * o Do not power off PHY if SoL/IDER session is active
+ * 6.2.4 8/10/05
+ * o Fix loopback test setup/cleanup for 82571/3 controllers
+ * o Fix parsing of outgoing packets (e1000_transfer_dhcp_info) to treat
+ * all packets as raw
+ * o Prevent operations that will cause the PHY to be reset if SoL/IDER
+ * sessions are active and log a message
+ * 6.2.2 7/21/05
+ * o used fixed size descriptors for all MTU sizes, reduces memory load
+ * 6.2.1 7/21/05
+ * o Performance tweaks, including copybreak and prefetch
+ * 6.1.2 4/13/05
+ * o Fixed ethtool diagnostics
+ * o Enabled flow control to take default eeprom settings
+ * o Added stats_lock around e1000_read_phy_reg commands to avoid concurrent
+ * calls, one from mii_ioctl and other from within update_stats while
processing
+ * MIIREG ioctl.
* 6.0.58 4/20/05
- * o Accepted ethtool cleanup patch from Stephen Hemminger
+ * o e1000_set_spd_dplx tests for compatible speed/duplex specification
+ * for fiber adapters
+ * 6.0.57 4/19/05
+ * o Added code to fix register test failure for devices >= 82571
+ * 6.0.55 3/23/05
+ * o Support for MODULE_VERSION
+ * o Fix APM setting for 82544 based adapters
+ * 6.0.54 3/26/05
+ * o Added a timer to expire packets that were deferred for cleanup
+ * 6.0.52 3/15/05
+ * o Added stats_lock around e1000_read_phy_reg commands to avoid concurrent
+ * calls, one from mii_ioctl and other from within update_stats while
+ * processing MIIREG ioctl.
+ * 6.0.47 3/2/05
+ * o Added enhanced functionality to the loopback diags to wrap the
+ * descriptor rings
+ * o Added manageability vlan filtering workaround.
* 6.0.44+ 2/15/05
- * o applied Anton's patch to resolve tx hang in hardware
+ * o Added code to handle raw packet based DHCP packets
+ * o Added code to fix the errata 10 buffer overflow issue
+ * o Sync up with WR01-05
+ * o applied Anton's patch to resolve tx hang in hardware
+ * o e1000 timeouts with early writeback patch
+ * o Removed Queensport IDs
+ * o fixed driver panic if MAC receives a bad large packets when packet
+ * split is enabled
* o Applied Andrew Mortons patch - e1000 stops working after resume
*/
@@ -43,7 +43,7 @@
#else
#define DRIVERNAPI "-NAPI"
#endif
-#define DRV_VERSION "6.1.16-k2"DRIVERNAPI
+#define DRV_VERSION "6.2.15-k2"DRIVERNAPI
char e1000_driver_version[] = DRV_VERSION;
static char e1000_copyright[] = "Copyright (c) 1999-2005 Intel Corporation.";
@@ -3228,16 +3138,16 @@ e1000_intr(int irq, void *data, struct p
#else /* if !CONFIG_E1000_NAPI */
/* Writing IMC and IMS is needed for 82547.
- Due to Hub Link bus being occupied, an interrupt
- de-assertion message is not able to be sent.
- When an interrupt assertion message is generated later,
- two messages are re-ordered and sent out.
- That causes APIC to think 82547 is in de-assertion
- state, while 82547 is in assertion state, resulting
- in dead lock. Writing IMC forces 82547 into
- de-assertion state.
- */
if(hw->mac_type == e1000_82547 || hw->mac_type == e1000_82547_rev_2){
+ * Due to Hub Link bus being occupied, an interrupt
+ * de-assertion message is not able to be sent.
+ * When an interrupt assertion message is generated later,
+ * two messages are re-ordered and sent out.
+ * That causes APIC to think 82547 is in de-assertion
+ * state, while 82547 is in assertion state, resulting
+ * in dead lock. Writing IMC forces 82547 into
+ * de-assertion state.
+ */
atomic_inc(&adapter->irq_sem);
E1000_WRITE_REG(hw, IMC, ~0);
}