[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