[kernel] r18818 - in dists/squeeze/linux-2.6/debian: . patches/bugfix/all patches/series

Ben Hutchings benh at alioth.debian.org
Mon Mar 12 00:11:22 UTC 2012


Author: benh
Date: Mon Mar 12 00:11:20 2012
New Revision: 18818

Log:
e1000e: workaround for packet drop on 82579 at 100Mbps (Closes: #644906)

Added:
   dists/squeeze/linux-2.6/debian/patches/bugfix/all/e1000e-workaround-for-packet-drop-on-82579-at-100Mbp.patch
Modified:
   dists/squeeze/linux-2.6/debian/changelog
   dists/squeeze/linux-2.6/debian/patches/series/42

Modified: dists/squeeze/linux-2.6/debian/changelog
==============================================================================
--- dists/squeeze/linux-2.6/debian/changelog	Sun Mar 11 23:21:35 2012	(r18817)
+++ dists/squeeze/linux-2.6/debian/changelog	Mon Mar 12 00:11:20 2012	(r18818)
@@ -47,6 +47,7 @@
      http://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/ChangeLog-2.6.32.58
     and the bug report which this closes: #662573.
   * ia64: Define is_compat_task(), now needed by autofs
+  * e1000e: workaround for packet drop on 82579 at 100Mbps (Closes: #644906)
 
  -- Uwe Kleine-König <u.kleine-koenig at pengutronix.de>  Mon, 16 Jan 2012 16:47:21 +0100
 

Added: dists/squeeze/linux-2.6/debian/patches/bugfix/all/e1000e-workaround-for-packet-drop-on-82579-at-100Mbp.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze/linux-2.6/debian/patches/bugfix/all/e1000e-workaround-for-packet-drop-on-82579-at-100Mbp.patch	Mon Mar 12 00:11:20 2012	(r18818)
@@ -0,0 +1,69 @@
+From: Bruce Allan <bruce.w.allan at intel.com>
+Date: Fri, 29 Jul 2011 05:52:56 +0000
+Subject: e1000e: workaround for packet drop on 82579 at 100Mbps
+
+commit 0ed013e28fe853244f4972cf18d8e2bd62eeb8fc upstream.
+
+The MAC can drop short packets when the PHY detects noise on the line at
+100Mbps due to a timing issue.  Workaround the issue by increasing the PLL
+counter so the PHY properly recognizes the synchronization pattern from the
+MAC.
+
+Signed-off-by: Bruce Allan <bruce.w.allan at intel.com>
+Tested-by: Jeff Pieper <jeffrey.e.pieper at intel.com>
+Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
+Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
+---
+ drivers/net/e1000e/ich8lan.c |   19 ++++++++++++++-----
+ 1 file changed, 14 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/net/e1000e/ich8lan.c b/drivers/net/e1000e/ich8lan.c
+index fb46974cfec1..92812f439860 100644
+--- a/drivers/net/e1000e/ich8lan.c
++++ b/drivers/net/e1000e/ich8lan.c
+@@ -137,8 +137,9 @@
+ #define HV_PM_CTRL		PHY_REG(770, 17)
+ 
+ /* PHY Low Power Idle Control */
+-#define I82579_LPI_CTRL			PHY_REG(772, 20)
+-#define I82579_LPI_CTRL_ENABLE_MASK	0x6000
++#define I82579_LPI_CTRL				PHY_REG(772, 20)
++#define I82579_LPI_CTRL_ENABLE_MASK		0x6000
++#define I82579_LPI_CTRL_FORCE_PLL_LOCK_COUNT	0x80
+ 
+ /* Strapping Option Register - RO */
+ #define E1000_STRAP                     0x0000C
+@@ -1596,6 +1597,7 @@ static s32 e1000_k1_workaround_lv(struct e1000_hw *hw)
+ 	s32 ret_val = 0;
+ 	u16 status_reg = 0;
+ 	u32 mac_reg;
++	u16 phy_reg;
+ 
+ 	if (hw->mac.type != e1000_pch2lan)
+ 		goto out;
+@@ -1610,12 +1612,19 @@ static s32 e1000_k1_workaround_lv(struct e1000_hw *hw)
+ 		mac_reg = er32(FEXTNVM4);
+ 		mac_reg &= ~E1000_FEXTNVM4_BEACON_DURATION_MASK;
+ 
+-		if (status_reg & HV_M_STATUS_SPEED_1000)
++		ret_val = e1e_rphy(hw, I82579_LPI_CTRL, &phy_reg);
++		if (ret_val)
++			goto out;
++
++		if (status_reg & HV_M_STATUS_SPEED_1000) {
+ 			mac_reg |= E1000_FEXTNVM4_BEACON_DURATION_8USEC;
+-		else
++			phy_reg &= ~I82579_LPI_CTRL_FORCE_PLL_LOCK_COUNT;
++		} else {
+ 			mac_reg |= E1000_FEXTNVM4_BEACON_DURATION_16USEC;
+-
++			phy_reg |= I82579_LPI_CTRL_FORCE_PLL_LOCK_COUNT;
++		}
+ 		ew32(FEXTNVM4, mac_reg);
++		ret_val = e1e_wphy(hw, I82579_LPI_CTRL, phy_reg);
+ 	}
+ 
+ out:
+-- 
+1.7.9.2
+

Modified: dists/squeeze/linux-2.6/debian/patches/series/42
==============================================================================
--- dists/squeeze/linux-2.6/debian/patches/series/42	Sun Mar 11 23:21:35 2012	(r18817)
+++ dists/squeeze/linux-2.6/debian/patches/series/42	Mon Mar 12 00:11:20 2012	(r18818)
@@ -10,3 +10,4 @@
 + bugfix/all/appletalk-da.s_net-not-copied-but-assigned-to-itself.patch
 + bugfix/all/stable/2.6.32.58.patch
 + debian/ia64-Define-is_compat_task.patch
++ bugfix/all/e1000e-workaround-for-packet-drop-on-82579-at-100Mbp.patch



More information about the Kernel-svn-changes mailing list