netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net 0/4][pull request] Intel Wired LAN Driver Updates
@ 2014-05-05 20:07 Jeff Kirsher
  2014-05-05 20:07 ` [net 1/4] e1000e: Workaround for dropped packets in Gig/100 speeds on 82579 Jeff Kirsher
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Jeff Kirsher @ 2014-05-05 20:07 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series contains updates to e1000e only.

David provides four fixes for e1000e, first is a workaround for a hardware
erratum on 82579 devices which experienced packet loss in gigabit and 100
speeds when interconnect between the PHY and MAC is exiting K1 power saving
state.  Second expands the scope of a workaround to include i217 and i218
parts as well to address over aggressive transmit behavior when connecting
at 10Mbs half-duplex.  Next is to resolve a reported link flap issue on
82579 parts which was root caused as an interoperability problem between
82579 and at least some Broadcom PHYs in the Energy Efficient Ethernet wake
mechanism.  Lastly, restricts the workaround of putting the PHY into MDIO
slow mode to access the PHY id to relevant parts since this issue has been
fixed on the newer hardware.

The following are changes since commit 9d4619c492c84e4c1e6d7127f1cbf55da04599d0:
  Altera TSE: ALTERA_TSE should depend on HAS_DMA
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master

David Ertman (4):
  e1000e: Workaround for dropped packets in Gig/100 speeds on 82579
  e1000e: Expand workaround for 10Mb HD throughput bug
  e1000e: Fix issue with link flap on 82579
  e1000e: Restrict MDIO Slow Mode workaround to relevant parts

 drivers/net/ethernet/intel/e1000e/ich8lan.c | 71 +++++++++++++++++------------
 drivers/net/ethernet/intel/e1000e/ich8lan.h |  3 ++
 drivers/net/ethernet/intel/e1000e/phy.h     |  1 +
 3 files changed, 46 insertions(+), 29 deletions(-)

-- 
1.9.0

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [net 1/4] e1000e: Workaround for dropped packets in Gig/100 speeds on 82579
  2014-05-05 20:07 [net 0/4][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2014-05-05 20:07 ` Jeff Kirsher
  2014-05-05 20:07 ` [net 2/4] e1000e: Expand workaround for 10Mb HD throughput bug Jeff Kirsher
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Jeff Kirsher @ 2014-05-05 20:07 UTC (permalink / raw)
  To: davem; +Cc: David Ertman, netdev, gospo, sassmann, Jeff Kirsher

From: David Ertman <davidx.m.ertman@intel.com>

This is a workaround for a HW erratum on 82579 devices.
Erratum is #23 in Intel 6 Series Chipset and Intel C200 Series Chipset
specification Update June 2013.

Problem: 82579 parts experience packet loss in Gig and 100 speeds
when interconnect between PHY and MAC is exiting K1 power saving state.
This was previously believed to only affect 1Gig speed, but has been observed
at 100Mbs also.

Workaround: Disable K1 for 82579 devices at Gig and 100 speeds.

Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/ich8lan.c | 31 +++++++++++------------------
 drivers/net/ethernet/intel/e1000e/phy.h     |  1 +
 2 files changed, 13 insertions(+), 19 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index 9866f26..9b736b8 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -2493,51 +2493,44 @@ release:
  *  e1000_k1_gig_workaround_lv - K1 Si workaround
  *  @hw:   pointer to the HW structure
  *
- *  Workaround to set the K1 beacon duration for 82579 parts
+ *  Workaround to set the K1 beacon duration for 82579 parts in 10Mbps
+ *  Disable K1 in 1000Mbps and 100Mbps
  **/
 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)
 		return 0;
 
-	/* Set K1 beacon duration based on 1Gbps speed or otherwise */
+	/* Set K1 beacon duration based on 10Mbs speed */
 	ret_val = e1e_rphy(hw, HV_M_STATUS, &status_reg);
 	if (ret_val)
 		return ret_val;
 
 	if ((status_reg & (HV_M_STATUS_LINK_UP | HV_M_STATUS_AUTONEG_COMPLETE))
 	    == (HV_M_STATUS_LINK_UP | HV_M_STATUS_AUTONEG_COMPLETE)) {
-		mac_reg = er32(FEXTNVM4);
-		mac_reg &= ~E1000_FEXTNVM4_BEACON_DURATION_MASK;
-
-		ret_val = e1e_rphy(hw, I82579_LPI_CTRL, &phy_reg);
-		if (ret_val)
-			return ret_val;
-
-		if (status_reg & HV_M_STATUS_SPEED_1000) {
+		if (status_reg &
+		    (HV_M_STATUS_SPEED_1000 | HV_M_STATUS_SPEED_100)) {
 			u16 pm_phy_reg;
 
-			mac_reg |= E1000_FEXTNVM4_BEACON_DURATION_8USEC;
-			phy_reg &= ~I82579_LPI_CTRL_FORCE_PLL_LOCK_COUNT;
-			/* LV 1G Packet drop issue wa  */
+			/* LV 1G/100 Packet drop issue wa  */
 			ret_val = e1e_rphy(hw, HV_PM_CTRL, &pm_phy_reg);
 			if (ret_val)
 				return ret_val;
-			pm_phy_reg &= ~HV_PM_CTRL_PLL_STOP_IN_K1_GIGA;
+			pm_phy_reg &= ~HV_PM_CTRL_K1_ENABLE;
 			ret_val = e1e_wphy(hw, HV_PM_CTRL, pm_phy_reg);
 			if (ret_val)
 				return ret_val;
 		} else {
+			u32 mac_reg;
+
+			mac_reg = er32(FEXTNVM4);
+			mac_reg &= ~E1000_FEXTNVM4_BEACON_DURATION_MASK;
 			mac_reg |= E1000_FEXTNVM4_BEACON_DURATION_16USEC;
-			phy_reg |= I82579_LPI_CTRL_FORCE_PLL_LOCK_COUNT;
+			ew32(FEXTNVM4, mac_reg);
 		}
-		ew32(FEXTNVM4, mac_reg);
-		ret_val = e1e_wphy(hw, I82579_LPI_CTRL, phy_reg);
 	}
 
 	return ret_val;
diff --git a/drivers/net/ethernet/intel/e1000e/phy.h b/drivers/net/ethernet/intel/e1000e/phy.h
index 3841bcc..537d278 100644
--- a/drivers/net/ethernet/intel/e1000e/phy.h
+++ b/drivers/net/ethernet/intel/e1000e/phy.h
@@ -164,6 +164,7 @@ s32 e1000_get_cable_length_82577(struct e1000_hw *hw);
 #define HV_M_STATUS_AUTONEG_COMPLETE	0x1000
 #define HV_M_STATUS_SPEED_MASK		0x0300
 #define HV_M_STATUS_SPEED_1000		0x0200
+#define HV_M_STATUS_SPEED_100		0x0100
 #define HV_M_STATUS_LINK_UP		0x0040
 
 #define IGP01E1000_PHY_PCS_INIT_REG	0x00B4
-- 
1.9.0

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [net 2/4] e1000e: Expand workaround for 10Mb HD throughput bug
  2014-05-05 20:07 [net 0/4][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
  2014-05-05 20:07 ` [net 1/4] e1000e: Workaround for dropped packets in Gig/100 speeds on 82579 Jeff Kirsher
@ 2014-05-05 20:07 ` Jeff Kirsher
  2014-05-05 20:07 ` [net 3/4] e1000e: Fix issue with link flap on 82579 Jeff Kirsher
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Jeff Kirsher @ 2014-05-05 20:07 UTC (permalink / raw)
  To: davem; +Cc: David Ertman, netdev, gospo, sassmann, Jeff Kirsher

From: David Ertman <davidx.m.ertman@intel.com>

In commit 772d05c51c4f4896c120ad418b1e91144a2ac813 "e1000e: slow performance
between two 82579 connected via 10Mbit hub", a workaround was put into place
to address the overaggressive transmit behavior of 82579 parts when connecting
at 10Mbs half-duplex.

This same behavior is seen on i217 and i218 parts as well.  This patch expands
the original workaround to encompass these parts.

Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/ich8lan.c | 15 +++++++++++----
 drivers/net/ethernet/intel/e1000e/ich8lan.h |  1 +
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index 9b736b8..059f1b0 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -1314,14 +1314,17 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw)
 			return ret_val;
 	}
 
-	/* When connected at 10Mbps half-duplex, 82579 parts are excessively
+	/* When connected at 10Mbps half-duplex, some parts are excessively
 	 * aggressive resulting in many collisions. To avoid this, increase
 	 * the IPG and reduce Rx latency in the PHY.
 	 */
-	if ((hw->mac.type == e1000_pch2lan) && link) {
+	if (((hw->mac.type == e1000_pch2lan) ||
+	     (hw->mac.type == e1000_pch_lpt)) && link) {
 		u32 reg;
 		reg = er32(STATUS);
 		if (!(reg & (E1000_STATUS_FD | E1000_STATUS_SPEED_MASK))) {
+			u16 emi_addr;
+
 			reg = er32(TIPG);
 			reg &= ~E1000_TIPG_IPGT_MASK;
 			reg |= 0xFF;
@@ -1332,8 +1335,12 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw)
 			if (ret_val)
 				return ret_val;
 
-			ret_val =
-			    e1000_write_emi_reg_locked(hw, I82579_RX_CONFIG, 0);
+			if (hw->mac.type == e1000_pch2lan)
+				emi_addr = I82579_RX_CONFIG;
+			else
+				emi_addr = I217_RX_CONFIG;
+
+			ret_val = e1000_write_emi_reg_locked(hw, emi_addr, 0);
 
 			hw->phy.ops.release(hw);
 
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.h b/drivers/net/ethernet/intel/e1000e/ich8lan.h
index bead50f..8fc6c15 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.h
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.h
@@ -242,6 +242,7 @@
 #define I217_EEE_CAPABILITY	0x8000	/* IEEE MMD Register 3.20 */
 #define I217_EEE_ADVERTISEMENT	0x8001	/* IEEE MMD Register 7.60 */
 #define I217_EEE_LP_ABILITY	0x8002	/* IEEE MMD Register 7.61 */
+#define I217_RX_CONFIG		0xB20C	/* Receive configuration */
 
 #define E1000_EEE_RX_LPI_RCVD	0x0400	/* Tx LP idle received */
 #define E1000_EEE_TX_LPI_RCVD	0x0800	/* Rx LP idle received */
-- 
1.9.0

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [net 3/4] e1000e: Fix issue with link flap on 82579
  2014-05-05 20:07 [net 0/4][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
  2014-05-05 20:07 ` [net 1/4] e1000e: Workaround for dropped packets in Gig/100 speeds on 82579 Jeff Kirsher
  2014-05-05 20:07 ` [net 2/4] e1000e: Expand workaround for 10Mb HD throughput bug Jeff Kirsher
@ 2014-05-05 20:07 ` Jeff Kirsher
  2014-05-05 20:07 ` [net 4/4] e1000e: Restrict MDIO Slow Mode workaround to relevant parts Jeff Kirsher
  2014-05-05 20:31 ` [net 0/4][pull request] Intel Wired LAN Driver Updates David Miller
  4 siblings, 0 replies; 10+ messages in thread
From: Jeff Kirsher @ 2014-05-05 20:07 UTC (permalink / raw)
  To: davem
  Cc: David Ertman, netdev, gospo, sassmann, Lukasz Adamczuk, Jeff Kirsher

From: David Ertman <davidx.m.ertman@intel.com>

Several customers have reported a link flap issue on 82579. The symptoms
are random and intermittent link losses when 82579 is connected to specific
link partners. Issue has been root caused as interoperability problem
between 82579 and at least some Broadcom PHYs in the Energy Efficient
Ethernet wake mechanism.

To fix the issue, we are disabling the Phase Locked Loop shutdown in 100M
Low Power Idle.  This solution will cause an increase of power in 100M EEE
link. It will cost additional 28mW in this specific mode.

Cc: Lukasz Adamczuk <lukasz.adamczuk@intel.com>
Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/ich8lan.c | 11 +++++++++++
 drivers/net/ethernet/intel/e1000e/ich8lan.h |  2 ++
 2 files changed, 13 insertions(+)

diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index 059f1b0..e8587b9 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -842,6 +842,17 @@ s32 e1000_set_eee_pchlan(struct e1000_hw *hw)
 		}
 	}
 
+	if (hw->phy.type == e1000_phy_82579) {
+		ret_val = e1000_read_emi_reg_locked(hw, I82579_LPI_PLL_SHUT,
+						    &data);
+		if (ret_val)
+			goto release;
+
+		data &= ~I82579_LPI_100_PLL_SHUT;
+		ret_val = e1000_write_emi_reg_locked(hw, I82579_LPI_PLL_SHUT,
+						     data);
+	}
+
 	/* R/Clr IEEE MMD 3.1 bits 11:10 - Tx/Rx LPI Received */
 	ret_val = e1000_read_emi_reg_locked(hw, pcs_status, &data);
 	if (ret_val)
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.h b/drivers/net/ethernet/intel/e1000e/ich8lan.h
index 8fc6c15..5515126 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.h
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.h
@@ -232,12 +232,14 @@
 #define I82577_MSE_THRESHOLD	0x0887	/* 82577 Mean Square Error Threshold */
 #define I82579_MSE_LINK_DOWN	0x2411	/* MSE count before dropping link */
 #define I82579_RX_CONFIG		0x3412	/* Receive configuration */
+#define I82579_LPI_PLL_SHUT		0x4412	/* LPI PLL Shut Enable */
 #define I82579_EEE_PCS_STATUS		0x182E	/* IEEE MMD Register 3.1 >> 8 */
 #define I82579_EEE_CAPABILITY		0x0410	/* IEEE MMD Register 3.20 */
 #define I82579_EEE_ADVERTISEMENT	0x040E	/* IEEE MMD Register 7.60 */
 #define I82579_EEE_LP_ABILITY		0x040F	/* IEEE MMD Register 7.61 */
 #define I82579_EEE_100_SUPPORTED	(1 << 1)	/* 100BaseTx EEE */
 #define I82579_EEE_1000_SUPPORTED	(1 << 2)	/* 1000BaseTx EEE */
+#define I82579_LPI_100_PLL_SHUT	(1 << 2)	/* 100M LPI PLL Shut Enabled */
 #define I217_EEE_PCS_STATUS	0x9401	/* IEEE MMD Register 3.1 */
 #define I217_EEE_CAPABILITY	0x8000	/* IEEE MMD Register 3.20 */
 #define I217_EEE_ADVERTISEMENT	0x8001	/* IEEE MMD Register 7.60 */
-- 
1.9.0

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [net 4/4] e1000e: Restrict MDIO Slow Mode workaround to relevant parts
  2014-05-05 20:07 [net 0/4][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (2 preceding siblings ...)
  2014-05-05 20:07 ` [net 3/4] e1000e: Fix issue with link flap on 82579 Jeff Kirsher
@ 2014-05-05 20:07 ` Jeff Kirsher
  2014-05-05 20:31 ` [net 0/4][pull request] Intel Wired LAN Driver Updates David Miller
  4 siblings, 0 replies; 10+ messages in thread
From: Jeff Kirsher @ 2014-05-05 20:07 UTC (permalink / raw)
  To: davem; +Cc: David Ertman, netdev, gospo, sassmann, Jeff Kirsher

From: David Ertman <davidx.m.ertman@intel.com>

It has been determined that the workaround of putting the PHY into MDIO
slow mode to access the PHY id is not necessary with Lynx Point and newer
parts.  The issue that necessitated the workaround has been fixed on the
newer hardware.

We will maintains, as a last ditch attempt, the conversion to MDIO Slow
Mode in the failure branch when attempting to access the PHY id so as to
cover all contingencies.

Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/ich8lan.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index e8587b9..f0bbd42 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -186,7 +186,7 @@ static bool e1000_phy_is_accessible_pchlan(struct e1000_hw *hw)
 {
 	u16 phy_reg = 0;
 	u32 phy_id = 0;
-	s32 ret_val;
+	s32 ret_val = 0;
 	u16 retry_count;
 	u32 mac_reg = 0;
 
@@ -217,11 +217,13 @@ static bool e1000_phy_is_accessible_pchlan(struct e1000_hw *hw)
 	/* In case the PHY needs to be in mdio slow mode,
 	 * set slow mode and try to get the PHY id again.
 	 */
-	hw->phy.ops.release(hw);
-	ret_val = e1000_set_mdio_slow_mode_hv(hw);
-	if (!ret_val)
-		ret_val = e1000e_get_phy_id(hw);
-	hw->phy.ops.acquire(hw);
+	if (hw->mac.type < e1000_pch_lpt) {
+		hw->phy.ops.release(hw);
+		ret_val = e1000_set_mdio_slow_mode_hv(hw);
+		if (!ret_val)
+			ret_val = e1000e_get_phy_id(hw);
+		hw->phy.ops.acquire(hw);
+	}
 
 	if (ret_val)
 		return false;
-- 
1.9.0

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [net 0/4][pull request] Intel Wired LAN Driver Updates
  2014-05-05 20:07 [net 0/4][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (3 preceding siblings ...)
  2014-05-05 20:07 ` [net 4/4] e1000e: Restrict MDIO Slow Mode workaround to relevant parts Jeff Kirsher
@ 2014-05-05 20:31 ` David Miller
  4 siblings, 0 replies; 10+ messages in thread
From: David Miller @ 2014-05-05 20:31 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Mon,  5 May 2014 13:07:36 -0700

> This series contains updates to e1000e only.
> 
> David provides four fixes for e1000e, first is a workaround for a hardware
> erratum on 82579 devices which experienced packet loss in gigabit and 100
> speeds when interconnect between the PHY and MAC is exiting K1 power saving
> state.  Second expands the scope of a workaround to include i217 and i218
> parts as well to address over aggressive transmit behavior when connecting
> at 10Mbs half-duplex.  Next is to resolve a reported link flap issue on
> 82579 parts which was root caused as an interoperability problem between
> 82579 and at least some Broadcom PHYs in the Energy Efficient Ethernet wake
> mechanism.  Lastly, restricts the workaround of putting the PHY into MDIO
> slow mode to access the PHY id to relevant parts since this issue has been
> fixed on the newer hardware.
> 
> The following are changes since commit 9d4619c492c84e4c1e6d7127f1cbf55da04599d0:
>   Altera TSE: ALTERA_TSE should depend on HAS_DMA
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master

Pulled, thanks Jeff.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [net 0/4][pull request] Intel Wired LAN Driver Updates
  2013-03-05  9:48 Jeff Kirsher
@ 2013-03-06  4:42 ` David Miller
  0 siblings, 0 replies; 10+ messages in thread
From: David Miller @ 2013-03-06  4:42 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue,  5 Mar 2013 01:48:33 -0800

> This series contains fixes to e1000e and igb.
> 
> The e1000e fix resolves an issue at 1000Mbps link speed, where one of the
> MAC's internal clocks can be stopped for up to 4us when entering K1 (a
> power mode of the MAC-PHY interconnect).  If the MAC is waiting for
> completion indications for 2 DMA write requests into Host memory
> (e.g. descriptor writeback or Rx packet writing) and the
> indications occur while the clock is stopped, both indications will be
> missed by the MAC causing the MAC to wait for the completion indications
> and be unable to generate further DMA write requests.  This results in an
> apparent hardware hang.  The patch works-around the issue by disabling
> the de-assertion of the clock request when 1000Mbps link is acquired (K1
> must be disabled while doing this).
> 
> The igb fix to drop BUILD_BUG_ON check from igb_build_rx_buffer resolves
> a build error on s390 devices.  The igb driver was throwing a build error
> due to the fact that a frame built using build_skb would be larger than 2K.
> Since this is not likely to change at any point in the future we are better
> off just dropping the check since we already had a check in
> igb_set_rx_buffer_len that will just disable the usage of build_skb anyway.
> 
> The igb fix for i210 link setup changes the setup copper link function
> to use a switch statement, so that the appropriate setup link function
> is called for the given PHY types.
> 
> Lastly, the igb fix for a lockdep issue in igb_get_i2c_client resolves
> the issue by re-factoring the initialization and usage of the i2c_client.

Pulled, thanks Jeff.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [net 0/4][pull request] Intel Wired LAN Driver Updates
@ 2013-03-05  9:48 Jeff Kirsher
  2013-03-06  4:42 ` David Miller
  0 siblings, 1 reply; 10+ messages in thread
From: Jeff Kirsher @ 2013-03-05  9:48 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series contains fixes to e1000e and igb.

The e1000e fix resolves an issue at 1000Mbps link speed, where one of the
MAC's internal clocks can be stopped for up to 4us when entering K1 (a
power mode of the MAC-PHY interconnect).  If the MAC is waiting for
completion indications for 2 DMA write requests into Host memory
(e.g. descriptor writeback or Rx packet writing) and the
indications occur while the clock is stopped, both indications will be
missed by the MAC causing the MAC to wait for the completion indications
and be unable to generate further DMA write requests.  This results in an
apparent hardware hang.  The patch works-around the issue by disabling
the de-assertion of the clock request when 1000Mbps link is acquired (K1
must be disabled while doing this).

The igb fix to drop BUILD_BUG_ON check from igb_build_rx_buffer resolves
a build error on s390 devices.  The igb driver was throwing a build error
due to the fact that a frame built using build_skb would be larger than 2K.
Since this is not likely to change at any point in the future we are better
off just dropping the check since we already had a check in
igb_set_rx_buffer_len that will just disable the usage of build_skb anyway.

The igb fix for i210 link setup changes the setup copper link function
to use a switch statement, so that the appropriate setup link function
is called for the given PHY types.

Lastly, the igb fix for a lockdep issue in igb_get_i2c_client resolves
the issue by re-factoring the initialization and usage of the i2c_client.

The following are changes since commit aab2b4bf224ef8358d262f95b568b8ad0cecf0a0:
  tcp: fix double-counted receiver RTT when leaving receiver fast path
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master

Alexander Duyck (1):
  igb: Drop BUILD_BUG_ON check from igb_build_rx_buffer

Bruce Allan (1):
  e1000e: workaround DMA unit hang on I218

Carolyn Wyborny (2):
  igb: Fix link setup for I210 devices
  igb: Fix for lockdep issue in igb_get_i2c_client

 drivers/net/ethernet/intel/e1000e/ich8lan.c  | 71 +++++++++++++++++++++++++-
 drivers/net/ethernet/intel/e1000e/ich8lan.h  |  2 +
 drivers/net/ethernet/intel/e1000e/regs.h     |  1 +
 drivers/net/ethernet/intel/igb/e1000_82575.c | 11 ++--
 drivers/net/ethernet/intel/igb/igb.h         |  2 +-
 drivers/net/ethernet/intel/igb/igb_hwmon.c   | 14 +++++
 drivers/net/ethernet/intel/igb/igb_main.c    | 76 +---------------------------
 7 files changed, 98 insertions(+), 79 deletions(-)

-- 
1.7.11.7

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [net 0/4][pull request] Intel Wired LAN Driver Updates
  2012-03-28  6:52 Jeff Kirsher
@ 2012-03-28  7:04 ` David Miller
  0 siblings, 0 replies; 10+ messages in thread
From: David Miller @ 2012-03-28  7:04 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 27 Mar 2012 23:52:24 -0700

> This series of patches contains fixes for e1000, igb, igbvf, ixgb,
> ixgbe and ixgbevf.
> 
> The following are changes since commit cc3425cdc04206f3c8b9efb2c693e89aa3cd9ec7:
>   Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master

Pulled, thanks Jeff.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [net 0/4][pull request] Intel Wired LAN Driver Updates
@ 2012-03-28  6:52 Jeff Kirsher
  2012-03-28  7:04 ` David Miller
  0 siblings, 1 reply; 10+ messages in thread
From: Jeff Kirsher @ 2012-03-28  6:52 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series of patches contains fixes for e1000, igb, igbvf, ixgb,
ixgbe and ixgbevf.

The following are changes since commit cc3425cdc04206f3c8b9efb2c693e89aa3cd9ec7:
  Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master

Don Skidmore (2):
  ixgbe: fix typo in enumeration name
  ixgbe: update version number

Jiri Pirko (1):
  e1000: fix vlan processing regression

stephen hemminger (1):
  intel: make wired ethernet driver message level consistent (rev2)

 drivers/net/ethernet/intel/e1000/e1000_main.c     |   40 +++++++++++++--------
 drivers/net/ethernet/intel/e1000e/netdev.c        |    7 +++-
 drivers/net/ethernet/intel/igb/igb_main.c         |    7 +++-
 drivers/net/ethernet/intel/igbvf/netdev.c         |    7 +++-
 drivers/net/ethernet/intel/ixgb/ixgb_main.c       |    6 ++--
 drivers/net/ethernet/intel/ixgbe/ixgbe.h          |    2 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c     |   13 ++++---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |    7 +++-
 8 files changed, 60 insertions(+), 29 deletions(-)

-- 
1.7.7.6

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-05-05 20:31 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-05 20:07 [net 0/4][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2014-05-05 20:07 ` [net 1/4] e1000e: Workaround for dropped packets in Gig/100 speeds on 82579 Jeff Kirsher
2014-05-05 20:07 ` [net 2/4] e1000e: Expand workaround for 10Mb HD throughput bug Jeff Kirsher
2014-05-05 20:07 ` [net 3/4] e1000e: Fix issue with link flap on 82579 Jeff Kirsher
2014-05-05 20:07 ` [net 4/4] e1000e: Restrict MDIO Slow Mode workaround to relevant parts Jeff Kirsher
2014-05-05 20:31 ` [net 0/4][pull request] Intel Wired LAN Driver Updates David Miller
  -- strict thread matches above, loose matches on Subject: below --
2013-03-05  9:48 Jeff Kirsher
2013-03-06  4:42 ` David Miller
2012-03-28  6:52 Jeff Kirsher
2012-03-28  7:04 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).