netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2013-07-28 11:41 Jeff Kirsher
  2013-07-28 11:41 ` [net-next 01/12] e100: dump small buffers via %*ph Jeff Kirsher
                   ` (12 more replies)
  0 siblings, 13 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series contains updates to e100 and e1000e.

The e100 patch from Andy simply updates the netif_printk() to use
%*ph to dump small buffers.

The changes to e1000e include a fix from Dean Nelson to resolve a
issue where a pci_clear_master() was accidentally dropped during a
conflict resolution. Wei Young provides 2 patches, one removes an
assignment of the default ring size because it was a duplicate. The
second changes the packet split receive structure to use
PS_PAGE_BUFFERS macro for the length so that problems won't occur
when the length is changed.

The remaining patches for e1000e are from Bruce Allan, where he
provides a number of fixes and updates for I218.  In addition, a
fix for 82583 which can disappear off the PCIe bus, to resolve this,
disable ASPM L1.  Bruce also provides a fix to a previous commit
(commit e60b22c5b7 e1000e: fix accessing to suspended device) so that
devices are only taken out of runtime power management for those
ethtool operations that must access device registers.

The following are changes since commit dcfe8048de66c3468060c8a2ec2c04ae3725d002:
  bonding: remove bond_resend_igmp_join_requests read_unlock leftover
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Andy Shevchenko (1):
  e100: dump small buffers via %*ph

Bruce Allan (8):
  e1000e: disable ASPM L1 on 82583
  e1000e: iAMT connections drop on driver unload when jumbo frames
    enabled
  e1000e: low throughput using 4K jumbos on I218
  e1000e: Tx hang on I218 when linked at 100Half and slow response at
    10Mbps
  e1000e: ethtool unnecessarily takes device out of RPM suspend
  e1000e: enable support for new device IDs
  e1000e: do not resume device from RPM suspend to read PHY status
    registers
  e1000e: fix I217/I218 PHY initialization flow

Dean Nelson (1):
  e1000e: restore call to pci_clear_master()

Wei Yang (2):
  e1000e: Remove duplicate assignment of default rx/tx ring size
  e1000e: Use marco instead of digit for defining
    e1000_rx_desc_packet_split

 drivers/net/ethernet/intel/e100.c           |  15 ++-
 drivers/net/ethernet/intel/e1000e/82571.c   |   1 +
 drivers/net/ethernet/intel/e1000e/e1000.h   |   3 -
 drivers/net/ethernet/intel/e1000e/ethtool.c | 105 +++++++++++++++------
 drivers/net/ethernet/intel/e1000e/hw.h      |  10 +-
 drivers/net/ethernet/intel/e1000e/ich8lan.c | 140 +++++++++++++++++++---------
 drivers/net/ethernet/intel/e1000e/ich8lan.h |   6 ++
 drivers/net/ethernet/intel/e1000e/netdev.c  |  38 ++++----
 8 files changed, 217 insertions(+), 101 deletions(-)

-- 
1.7.11.7

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

* [net-next 01/12] e100: dump small buffers via %*ph
  2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2013-07-28 11:41 ` Jeff Kirsher
  2013-07-28 11:41 ` [net-next 02/12] e1000e: restore call to pci_clear_master() Jeff Kirsher
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Andy Shevchenko, netdev, gospo, sassmann, Jeff Kirsher

From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.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/e100.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/drivers/net/ethernet/intel/e100.c b/drivers/net/ethernet/intel/e100.c
index 5115ae7..ada6e21 100644
--- a/drivers/net/ethernet/intel/e100.c
+++ b/drivers/net/ethernet/intel/e100.c
@@ -1175,15 +1175,12 @@ static int e100_configure(struct nic *nic, struct cb *cb, struct sk_buff *skb)
 		config->rx_discard_short_frames = 0x0;  /* 1=discard, 0=save */
 	}
 
-	netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
-		     "[00-07]=%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X\n",
-		     c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7]);
-	netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
-		     "[08-15]=%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X\n",
-		     c[8], c[9], c[10], c[11], c[12], c[13], c[14], c[15]);
-	netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
-		     "[16-23]=%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X\n",
-		     c[16], c[17], c[18], c[19], c[20], c[21], c[22], c[23]);
+	netif_printk(nic, hw, KERN_DEBUG, nic->netdev, "[00-07]=%8ph\n",
+		     c + 0);
+	netif_printk(nic, hw, KERN_DEBUG, nic->netdev, "[08-15]=%8ph\n",
+		     c + 8);
+	netif_printk(nic, hw, KERN_DEBUG, nic->netdev, "[16-23]=%8ph\n",
+		     c + 16);
 	return 0;
 }
 
-- 
1.7.11.7

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

* [net-next 02/12] e1000e: restore call to pci_clear_master()
  2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
  2013-07-28 11:41 ` [net-next 01/12] e100: dump small buffers via %*ph Jeff Kirsher
@ 2013-07-28 11:41 ` Jeff Kirsher
  2013-07-28 11:41 ` [net-next 03/12] e1000e: Remove duplicate assignment of default rx/tx ring size Jeff Kirsher
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Dean Nelson, netdev, gospo, sassmann, Jeff Kirsher

From: Dean Nelson <dnelson@redhat.com>

In attempting to resolve a minor merge conflict, commit e5f2ef7ab4690d2e8faa
(Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net) accidentally
dropped a call to pci_clear_master() that was intended to remain in place.

Commit 4e0855dff094b0d56d6b (e1000e: fix pci-device enable-counter balance)
replaced a call to pci_disable_device() by one to pci_clear_master(). And then
commit 66148babe728f3e00e13 (e1000e: fix runtime power management transitions)
deleted a number of lines starting two lines following that call.

This patch restores the call to pci_clear_master() in __e1000_shutdown().

v2: added summary lines (enclosed in parens) following commit IDs

Signed-off-by: Dean Nelson <dnelson@redhat.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Acked-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/netdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 77f81cb..5475cf4 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -5995,6 +5995,8 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool runtime)
 	 */
 	e1000e_release_hw_control(adapter);
 
+	pci_clear_master(pdev);
+
 	/* The pci-e switch on some quad port adapters will report a
 	 * correctable error when the MAC transitions from D0 to D3.  To
 	 * prevent this we need to mask off the correctable errors on the
-- 
1.7.11.7

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

* [net-next 03/12] e1000e: Remove duplicate assignment of default rx/tx ring size
  2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
  2013-07-28 11:41 ` [net-next 01/12] e100: dump small buffers via %*ph Jeff Kirsher
  2013-07-28 11:41 ` [net-next 02/12] e1000e: restore call to pci_clear_master() Jeff Kirsher
@ 2013-07-28 11:41 ` Jeff Kirsher
  2013-07-28 11:41 ` [net-next 04/12] e1000e: Use marco instead of digit for defining e1000_rx_desc_packet_split Jeff Kirsher
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Wei Yang, netdev, gospo, sassmann, Jeff Kirsher

From: Wei Yang <weiyang@linux.vnet.ibm.com>

tx_ring/rx_ring size is assigned in function e1000_alloc_queues(), which is
called by e1000_sw_init() in the early stage of e1000_probe().

This patch just remove the duplicate assignment of this default ring size
value.

Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
Reviewed-by: Gavin Shan <shangw@linux.vnet.ibm.com>
Reviewed-by: Da Yu Qiu <qiudayu@cn.ibm.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Acked-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/netdev.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 5475cf4..40e6232 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -6725,10 +6725,6 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	adapter->hw.fc.current_mode = e1000_fc_default;
 	adapter->hw.phy.autoneg_advertised = 0x2f;
 
-	/* ring size defaults */
-	adapter->rx_ring->count = E1000_DEFAULT_RXD;
-	adapter->tx_ring->count = E1000_DEFAULT_TXD;
-
 	/* Initial Wake on LAN setting - If APM wake is enabled in
 	 * the EEPROM, enable the ACPI Magic Packet filter
 	 */
-- 
1.7.11.7

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

* [net-next 04/12] e1000e: Use marco instead of digit for defining e1000_rx_desc_packet_split
  2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (2 preceding siblings ...)
  2013-07-28 11:41 ` [net-next 03/12] e1000e: Remove duplicate assignment of default rx/tx ring size Jeff Kirsher
@ 2013-07-28 11:41 ` Jeff Kirsher
  2013-07-28 11:41 ` [net-next 05/12] e1000e: disable ASPM L1 on 82583 Jeff Kirsher
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Wei Yang, netdev, gospo, sassmann, Jeff Kirsher

From: Wei Yang <weiyang@linux.vnet.ibm.com>

In structure e1000_rx_desc_packet_split, the size of wb.upper.length is
defined by a digit. This may introduce some problem when the length is
changed.

This patch use the macro PS_PAGE_BUFFERS for the definition. And move the
definition to hw.h.

Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.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/e1000.h | 3 ---
 drivers/net/ethernet/intel/e1000e/hw.h    | 6 +++++-
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h
index ffbc08f..ad0edd1 100644
--- a/drivers/net/ethernet/intel/e1000e/e1000.h
+++ b/drivers/net/ethernet/intel/e1000e/e1000.h
@@ -90,9 +90,6 @@ struct e1000_info;
 
 #define E1000_MNG_VLAN_NONE		(-1)
 
-/* Number of packet split data buffers (not including the header buffer) */
-#define PS_PAGE_BUFFERS			(MAX_PS_BUFFERS - 1)
-
 #define DEFAULT_JUMBO			9234
 
 /* Time to wait before putting the device into D3 if there's no link (in ms). */
diff --git a/drivers/net/ethernet/intel/e1000e/hw.h b/drivers/net/ethernet/intel/e1000e/hw.h
index a6f903a..cee565d 100644
--- a/drivers/net/ethernet/intel/e1000e/hw.h
+++ b/drivers/net/ethernet/intel/e1000e/hw.h
@@ -227,6 +227,9 @@ union e1000_rx_desc_extended {
 };
 
 #define MAX_PS_BUFFERS 4
+
+/* Number of packet split data buffers (not including the header buffer) */
+#define PS_PAGE_BUFFERS			(MAX_PS_BUFFERS - 1)
 /* Receive Descriptor - Packet Split */
 union e1000_rx_desc_packet_split {
 	struct {
@@ -251,7 +254,8 @@ union e1000_rx_desc_packet_split {
 		} middle;
 		struct {
 			__le16 header_status;
-			__le16 length[3];	/* length of buffers 1-3 */
+			/* length of buffers 1-3 */
+			__le16 length[PS_PAGE_BUFFERS];
 		} upper;
 		__le64 reserved;
 	} wb; /* writeback */
-- 
1.7.11.7

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

* [net-next 05/12] e1000e: disable ASPM L1 on 82583
  2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (3 preceding siblings ...)
  2013-07-28 11:41 ` [net-next 04/12] e1000e: Use marco instead of digit for defining e1000_rx_desc_packet_split Jeff Kirsher
@ 2013-07-28 11:41 ` Jeff Kirsher
  2013-07-28 11:41 ` [net-next 06/12] e1000e: iAMT connections drop on driver unload when jumbo frames enabled Jeff Kirsher
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher

From: Bruce Allan <bruce.w.allan@intel.com>

The 82583 can disappear off the PCIe bus.  This device is a modified 82574
which had the same problem which was fixed by disabling ASPM L1; disabling
it on 82583 fixes the issue on this device.

Signed-off-by: Bruce Allan <bruce.w.allan@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/82571.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c
index 4c303e2..104fcec 100644
--- a/drivers/net/ethernet/intel/e1000e/82571.c
+++ b/drivers/net/ethernet/intel/e1000e/82571.c
@@ -2057,6 +2057,7 @@ const struct e1000_info e1000_82583_info = {
 				  | FLAG_HAS_JUMBO_FRAMES
 				  | FLAG_HAS_CTRLEXT_ON_LOAD,
 	.flags2			= FLAG2_DISABLE_ASPM_L0S
+				  | FLAG2_DISABLE_ASPM_L1
 				  | FLAG2_NO_DISABLE_RX,
 	.pba			= 32,
 	.max_hw_frame_size	= DEFAULT_JUMBO,
-- 
1.7.11.7

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

* [net-next 06/12] e1000e: iAMT connections drop on driver unload when jumbo frames enabled
  2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (4 preceding siblings ...)
  2013-07-28 11:41 ` [net-next 05/12] e1000e: disable ASPM L1 on 82583 Jeff Kirsher
@ 2013-07-28 11:41 ` Jeff Kirsher
  2013-07-28 11:41 ` [net-next 07/12] e1000e: low throughput using 4K jumbos on I218 Jeff Kirsher
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher

From: Bruce Allan <bruce.w.allan@intel.com>

The jumbo frame configuration in the MAC/PHY should be reverted on 82579
and newer parts when the interface is brought down (not just when the MTU
is changed back to standard frame size) otherwise iAMT connections (e.g.
SoL, IDE-R) will be dropped and cannot be re-acquired until the MTU is
changed again.

Signed-off-by: Bruce Allan <bruce.w.allan@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/netdev.c | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 40e6232..99596a6 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -2979,17 +2979,10 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter)
 	u32 pages = 0;
 
 	/* Workaround Si errata on PCHx - configure jumbo frame flow */
-	if (hw->mac.type >= e1000_pch2lan) {
-		s32 ret_val;
-
-		if (adapter->netdev->mtu > ETH_DATA_LEN)
-			ret_val = e1000_lv_jumbo_workaround_ich8lan(hw, true);
-		else
-			ret_val = e1000_lv_jumbo_workaround_ich8lan(hw, false);
-
-		if (ret_val)
-			e_dbg("failed to enable jumbo frame workaround mode\n");
-	}
+	if ((hw->mac.type >= e1000_pch2lan) &&
+	    (adapter->netdev->mtu > ETH_DATA_LEN) &&
+	    e1000_lv_jumbo_workaround_ich8lan(hw, true))
+		e_dbg("failed to enable jumbo frame workaround mode\n");
 
 	/* Program MC offset vector base */
 	rctl = er32(RCTL);
@@ -4034,6 +4027,12 @@ void e1000e_down(struct e1000_adapter *adapter)
 	adapter->link_speed = 0;
 	adapter->link_duplex = 0;
 
+	/* Disable Si errata workaround on PCHx for jumbo frame flow */
+	if ((hw->mac.type >= e1000_pch2lan) &&
+	    (adapter->netdev->mtu > ETH_DATA_LEN) &&
+	    e1000_lv_jumbo_workaround_ich8lan(hw, false))
+		e_dbg("failed to disable jumbo frame workaround mode\n");
+
 	if (!pci_channel_offline(adapter->pdev))
 		e1000e_reset(adapter);
 
-- 
1.7.11.7

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

* [net-next 07/12] e1000e: low throughput using 4K jumbos on I218
  2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (5 preceding siblings ...)
  2013-07-28 11:41 ` [net-next 06/12] e1000e: iAMT connections drop on driver unload when jumbo frames enabled Jeff Kirsher
@ 2013-07-28 11:41 ` Jeff Kirsher
  2013-07-28 11:41 ` [net-next 08/12] e1000e: Tx hang on I218 when linked at 100Half and slow response at 10Mbps Jeff Kirsher
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher

From: Bruce Allan <bruce.w.allan@intel.com>

Alter the packet buffer allocation accordingly.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/netdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 99596a6..51b05fe 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -3819,6 +3819,8 @@ void e1000e_reset(struct e1000_adapter *adapter)
 			break;
 		}
 
+		pba = 14;
+		ew32(PBA, pba);
 		fc->high_water = ((pba << 10) * 9 / 10) & E1000_FCRTH_RTH;
 		fc->low_water = ((pba << 10) * 8 / 10) & E1000_FCRTL_RTL;
 		break;
-- 
1.7.11.7

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

* [net-next 08/12] e1000e: Tx hang on I218 when linked at 100Half and slow response at 10Mbps
  2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (6 preceding siblings ...)
  2013-07-28 11:41 ` [net-next 07/12] e1000e: low throughput using 4K jumbos on I218 Jeff Kirsher
@ 2013-07-28 11:41 ` Jeff Kirsher
  2013-07-28 11:41 ` [net-next 09/12] e1000e: ethtool unnecessarily takes device out of RPM suspend Jeff Kirsher
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher

From: Bruce Allan <bruce.w.allan@intel.com>

Tx hang is an unintended consequence of another workaround that is in the
EEPROM for an issue with the firmware at 10Mbps when K1 (a power mode of
the MAC-PHY interconnect) is enabled.  The issue is resolved by setting
appropriate Tx re-transmission timeouts in the PHY and associated K1 entry
times in the MAC to allow enough transmissions to occur without triggering
a Tx hang.  A similar change is needed when linked at 10Mbps to improve
latency.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/ich8lan.c | 49 ++++++++++++++++++++++++-----
 drivers/net/ethernet/intel/e1000e/ich8lan.h |  6 ++++
 2 files changed, 48 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index 9dde390..b56c61a 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -793,29 +793,31 @@ release:
  *  When K1 is enabled for 1Gbps, the MAC can miss 2 DMA completion indications
  *  preventing further DMA write requests.  Workaround the issue by disabling
  *  the de-assertion of the clock request when in 1Gpbs mode.
+ *  Also, set appropriate Tx re-transmission timeouts for 10 and 100Half link
+ *  speeds in order to avoid Tx hangs.
  **/
 static s32 e1000_k1_workaround_lpt_lp(struct e1000_hw *hw, bool link)
 {
 	u32 fextnvm6 = er32(FEXTNVM6);
+	u32 status = er32(STATUS);
 	s32 ret_val = 0;
+	u16 reg;
 
-	if (link && (er32(STATUS) & E1000_STATUS_SPEED_1000)) {
-		u16 kmrn_reg;
-
+	if (link && (status & E1000_STATUS_SPEED_1000)) {
 		ret_val = hw->phy.ops.acquire(hw);
 		if (ret_val)
 			return ret_val;
 
 		ret_val =
 		    e1000e_read_kmrn_reg_locked(hw, E1000_KMRNCTRLSTA_K1_CONFIG,
-						&kmrn_reg);
+						&reg);
 		if (ret_val)
 			goto release;
 
 		ret_val =
 		    e1000e_write_kmrn_reg_locked(hw,
 						 E1000_KMRNCTRLSTA_K1_CONFIG,
-						 kmrn_reg &
+						 reg &
 						 ~E1000_KMRNCTRLSTA_K1_ENABLE);
 		if (ret_val)
 			goto release;
@@ -827,12 +829,45 @@ static s32 e1000_k1_workaround_lpt_lp(struct e1000_hw *hw, bool link)
 		ret_val =
 		    e1000e_write_kmrn_reg_locked(hw,
 						 E1000_KMRNCTRLSTA_K1_CONFIG,
-						 kmrn_reg);
+						 reg);
 release:
 		hw->phy.ops.release(hw);
 	} else {
 		/* clear FEXTNVM6 bit 8 on link down or 10/100 */
-		ew32(FEXTNVM6, fextnvm6 & ~E1000_FEXTNVM6_REQ_PLL_CLK);
+		fextnvm6 &= ~E1000_FEXTNVM6_REQ_PLL_CLK;
+
+		if (!link || ((status & E1000_STATUS_SPEED_100) &&
+			      (status & E1000_STATUS_FD)))
+			goto update_fextnvm6;
+
+		ret_val = e1e_rphy(hw, I217_INBAND_CTRL, &reg);
+		if (ret_val)
+			return ret_val;
+
+		/* Clear link status transmit timeout */
+		reg &= ~I217_INBAND_CTRL_LINK_STAT_TX_TIMEOUT_MASK;
+
+		if (status & E1000_STATUS_SPEED_100) {
+			/* Set inband Tx timeout to 5x10us for 100Half */
+			reg |= 5 << I217_INBAND_CTRL_LINK_STAT_TX_TIMEOUT_SHIFT;
+
+			/* Do not extend the K1 entry latency for 100Half */
+			fextnvm6 &= ~E1000_FEXTNVM6_ENABLE_K1_ENTRY_CONDITION;
+		} else {
+			/* Set inband Tx timeout to 50x10us for 10Full/Half */
+			reg |= 50 <<
+			    I217_INBAND_CTRL_LINK_STAT_TX_TIMEOUT_SHIFT;
+
+			/* Extend the K1 entry latency for 10 Mbps */
+			fextnvm6 |= E1000_FEXTNVM6_ENABLE_K1_ENTRY_CONDITION;
+		}
+
+		ret_val = e1e_wphy(hw, I217_INBAND_CTRL, reg);
+		if (ret_val)
+			return ret_val;
+
+update_fextnvm6:
+		ew32(FEXTNVM6, fextnvm6);
 	}
 
 	return ret_val;
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.h b/drivers/net/ethernet/intel/e1000e/ich8lan.h
index 80034a2..5986569 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.h
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.h
@@ -93,6 +93,7 @@
 #define E1000_FEXTNVM4_BEACON_DURATION_16USEC	0x3
 
 #define E1000_FEXTNVM6_REQ_PLL_CLK	0x00000100
+#define E1000_FEXTNVM6_ENABLE_K1_ENTRY_CONDITION	0x00000200
 
 #define PCIE_ICH8_SNOOP_ALL	PCIE_NO_SNOOP_ALL
 
@@ -197,6 +198,11 @@
 
 #define SW_FLAG_TIMEOUT		1000	/* SW Semaphore flag timeout in ms */
 
+/* Inband Control */
+#define I217_INBAND_CTRL				PHY_REG(770, 18)
+#define I217_INBAND_CTRL_LINK_STAT_TX_TIMEOUT_MASK	0x3F00
+#define I217_INBAND_CTRL_LINK_STAT_TX_TIMEOUT_SHIFT	8
+
 /* PHY Low Power Idle Control */
 #define I82579_LPI_CTRL				PHY_REG(772, 20)
 #define I82579_LPI_CTRL_100_ENABLE		0x2000
-- 
1.7.11.7

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

* [net-next 09/12] e1000e: ethtool unnecessarily takes device out of RPM suspend
  2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (7 preceding siblings ...)
  2013-07-28 11:41 ` [net-next 08/12] e1000e: Tx hang on I218 when linked at 100Half and slow response at 10Mbps Jeff Kirsher
@ 2013-07-28 11:41 ` Jeff Kirsher
  2013-07-28 11:41 ` [net-next 10/12] e1000e: enable support for new device IDs Jeff Kirsher
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher

From: Bruce Allan <bruce.w.allan@intel.com>

A previous patch (commit e60b22c5b7 e1000e: fix accessing to suspended
device) added .begin and .complete ethtool driver callbacks so that the
device was resumed from Runtime Power Management (RPM) suspend state for
all ethtool operations.  This is overkill for operations which do not need
to access any registers in the device.  This patch makes it so that the
device is taken out of RPM suspend only for those ethtool operations that
must access device registers.

Signed-off-by: Bruce Allan <bruce.w.allan@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/ethtool.c | 105 ++++++++++++++++++++--------
 1 file changed, 77 insertions(+), 28 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c
index 59c22bf..e4ebd7d 100644
--- a/drivers/net/ethernet/intel/e1000e/ethtool.c
+++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
@@ -173,7 +173,7 @@ static int e1000_get_settings(struct net_device *netdev,
 			speed = adapter->link_speed;
 			ecmd->duplex = adapter->link_duplex - 1;
 		}
-	} else {
+	} else if (!pm_runtime_suspended(netdev->dev.parent)) {
 		u32 status = er32(STATUS);
 		if (status & E1000_STATUS_LU) {
 			if (status & E1000_STATUS_SPEED_1000)
@@ -264,6 +264,9 @@ static int e1000_set_settings(struct net_device *netdev,
 {
 	struct e1000_adapter *adapter = netdev_priv(netdev);
 	struct e1000_hw *hw = &adapter->hw;
+	int ret_val = 0;
+
+	pm_runtime_get_sync(netdev->dev.parent);
 
 	/* When SoL/IDER sessions are active, autoneg/speed/duplex
 	 * cannot be changed
@@ -271,7 +274,8 @@ static int e1000_set_settings(struct net_device *netdev,
 	if (hw->phy.ops.check_reset_block &&
 	    hw->phy.ops.check_reset_block(hw)) {
 		e_err("Cannot change link characteristics when SoL/IDER is active.\n");
-		return -EINVAL;
+		ret_val = -EINVAL;
+		goto out;
 	}
 
 	/* MDI setting is only allowed when autoneg enabled because
@@ -279,13 +283,16 @@ static int e1000_set_settings(struct net_device *netdev,
 	 * duplex is forced.
 	 */
 	if (ecmd->eth_tp_mdix_ctrl) {
-		if (hw->phy.media_type != e1000_media_type_copper)
-			return -EOPNOTSUPP;
+		if (hw->phy.media_type != e1000_media_type_copper) {
+			ret_val = -EOPNOTSUPP;
+			goto out;
+		}
 
 		if ((ecmd->eth_tp_mdix_ctrl != ETH_TP_MDI_AUTO) &&
 		    (ecmd->autoneg != AUTONEG_ENABLE)) {
 			e_err("forcing MDI/MDI-X state is not supported when link speed and/or duplex are forced\n");
-			return -EINVAL;
+			ret_val = -EINVAL;
+			goto out;
 		}
 	}
 
@@ -307,8 +314,8 @@ static int e1000_set_settings(struct net_device *netdev,
 		u32 speed = ethtool_cmd_speed(ecmd);
 		/* calling this overrides forced MDI setting */
 		if (e1000_set_spd_dplx(adapter, speed, ecmd->duplex)) {
-			clear_bit(__E1000_RESETTING, &adapter->state);
-			return -EINVAL;
+			ret_val = -EINVAL;
+			goto out;
 		}
 	}
 
@@ -331,8 +338,10 @@ static int e1000_set_settings(struct net_device *netdev,
 		e1000e_reset(adapter);
 	}
 
+out:
+	pm_runtime_put_sync(netdev->dev.parent);
 	clear_bit(__E1000_RESETTING, &adapter->state);
-	return 0;
+	return ret_val;
 }
 
 static void e1000_get_pauseparam(struct net_device *netdev,
@@ -366,6 +375,8 @@ static int e1000_set_pauseparam(struct net_device *netdev,
 	while (test_and_set_bit(__E1000_RESETTING, &adapter->state))
 		usleep_range(1000, 2000);
 
+	pm_runtime_get_sync(netdev->dev.parent);
+
 	if (adapter->fc_autoneg == AUTONEG_ENABLE) {
 		hw->fc.requested_mode = e1000_fc_default;
 		if (netif_running(adapter->netdev)) {
@@ -398,6 +409,7 @@ static int e1000_set_pauseparam(struct net_device *netdev,
 	}
 
 out:
+	pm_runtime_put_sync(netdev->dev.parent);
 	clear_bit(__E1000_RESETTING, &adapter->state);
 	return retval;
 }
@@ -428,6 +440,8 @@ static void e1000_get_regs(struct net_device *netdev,
 	u32 *regs_buff = p;
 	u16 phy_data;
 
+	pm_runtime_get_sync(netdev->dev.parent);
+
 	memset(p, 0, E1000_REGS_LEN * sizeof(u32));
 
 	regs->version = (1 << 24) | (adapter->pdev->revision << 16) |
@@ -472,6 +486,8 @@ static void e1000_get_regs(struct net_device *netdev,
 	e1e_rphy(hw, MII_STAT1000, &phy_data);
 	regs_buff[24] = (u32)phy_data;	/* phy local receiver status */
 	regs_buff[25] = regs_buff[24];	/* phy remote receiver status */
+
+	pm_runtime_put_sync(netdev->dev.parent);
 }
 
 static int e1000_get_eeprom_len(struct net_device *netdev)
@@ -504,6 +520,8 @@ static int e1000_get_eeprom(struct net_device *netdev,
 	if (!eeprom_buff)
 		return -ENOMEM;
 
+	pm_runtime_get_sync(netdev->dev.parent);
+
 	if (hw->nvm.type == e1000_nvm_eeprom_spi) {
 		ret_val = e1000_read_nvm(hw, first_word,
 					 last_word - first_word + 1,
@@ -517,6 +535,8 @@ static int e1000_get_eeprom(struct net_device *netdev,
 		}
 	}
 
+	pm_runtime_put_sync(netdev->dev.parent);
+
 	if (ret_val) {
 		/* a read error occurred, throw away the result */
 		memset(eeprom_buff, 0xff, sizeof(u16) *
@@ -566,6 +586,8 @@ static int e1000_set_eeprom(struct net_device *netdev,
 
 	ptr = (void *)eeprom_buff;
 
+	pm_runtime_get_sync(netdev->dev.parent);
+
 	if (eeprom->offset & 1) {
 		/* need read/modify/write of first changed EEPROM word */
 		/* only the second byte of the word is being modified */
@@ -606,6 +628,7 @@ static int e1000_set_eeprom(struct net_device *netdev,
 		ret_val = e1000e_update_nvm_checksum(hw);
 
 out:
+	pm_runtime_put_sync(netdev->dev.parent);
 	kfree(eeprom_buff);
 	return ret_val;
 }
@@ -701,6 +724,8 @@ static int e1000_set_ringparam(struct net_device *netdev,
 		}
 	}
 
+	pm_runtime_get_sync(netdev->dev.parent);
+
 	e1000e_down(adapter);
 
 	/* We can't just free everything and then setup again, because the
@@ -739,6 +764,7 @@ err_setup_rx:
 		e1000e_free_tx_resources(temp_tx);
 err_setup:
 	e1000e_up(adapter);
+	pm_runtime_put_sync(netdev->dev.parent);
 free_temp:
 	vfree(temp_tx);
 	vfree(temp_rx);
@@ -1732,6 +1758,8 @@ static void e1000_diag_test(struct net_device *netdev,
 	u8 autoneg;
 	bool if_running = netif_running(netdev);
 
+	pm_runtime_get_sync(netdev->dev.parent);
+
 	set_bit(__E1000_TESTING, &adapter->state);
 
 	if (!if_running) {
@@ -1817,6 +1845,8 @@ static void e1000_diag_test(struct net_device *netdev,
 	}
 
 	msleep_interruptible(4 * 1000);
+
+	pm_runtime_put_sync(netdev->dev.parent);
 }
 
 static void e1000_get_wol(struct net_device *netdev,
@@ -1891,6 +1921,8 @@ static int e1000_set_phys_id(struct net_device *netdev,
 
 	switch (state) {
 	case ETHTOOL_ID_ACTIVE:
+		pm_runtime_get_sync(netdev->dev.parent);
+
 		if (!hw->mac.ops.blink_led)
 			return 2;	/* cycle on/off twice per second */
 
@@ -1902,6 +1934,7 @@ static int e1000_set_phys_id(struct net_device *netdev,
 			e1e_wphy(hw, IFE_PHY_SPECIAL_CONTROL_LED, 0);
 		hw->mac.ops.led_off(hw);
 		hw->mac.ops.cleanup_led(hw);
+		pm_runtime_put_sync(netdev->dev.parent);
 		break;
 
 	case ETHTOOL_ID_ON:
@@ -1912,6 +1945,7 @@ static int e1000_set_phys_id(struct net_device *netdev,
 		hw->mac.ops.led_off(hw);
 		break;
 	}
+
 	return 0;
 }
 
@@ -1950,11 +1984,15 @@ static int e1000_set_coalesce(struct net_device *netdev,
 		adapter->itr_setting = adapter->itr & ~3;
 	}
 
+	pm_runtime_get_sync(netdev->dev.parent);
+
 	if (adapter->itr_setting != 0)
 		e1000e_write_itr(adapter, adapter->itr);
 	else
 		e1000e_write_itr(adapter, 0);
 
+	pm_runtime_put_sync(netdev->dev.parent);
+
 	return 0;
 }
 
@@ -1968,7 +2006,9 @@ static int e1000_nway_reset(struct net_device *netdev)
 	if (!adapter->hw.mac.autoneg)
 		return -EINVAL;
 
+	pm_runtime_get_sync(netdev->dev.parent);
 	e1000e_reinit_locked(adapter);
+	pm_runtime_put_sync(netdev->dev.parent);
 
 	return 0;
 }
@@ -1982,7 +2022,12 @@ static void e1000_get_ethtool_stats(struct net_device *netdev,
 	int i;
 	char *p = NULL;
 
+	pm_runtime_get_sync(netdev->dev.parent);
+
 	e1000e_get_stats64(netdev, &net_stats);
+
+	pm_runtime_put_sync(netdev->dev.parent);
+
 	for (i = 0; i < E1000_GLOBAL_STATS_LEN; i++) {
 		switch (e1000_gstrings_stats[i].type) {
 		case NETDEV_STATS:
@@ -2033,7 +2078,11 @@ static int e1000_get_rxnfc(struct net_device *netdev,
 	case ETHTOOL_GRXFH: {
 		struct e1000_adapter *adapter = netdev_priv(netdev);
 		struct e1000_hw *hw = &adapter->hw;
-		u32 mrqc = er32(MRQC);
+		u32 mrqc;
+
+		pm_runtime_get_sync(netdev->dev.parent);
+		mrqc = er32(MRQC);
+		pm_runtime_put_sync(netdev->dev.parent);
 
 		if (!(mrqc & E1000_MRQC_RSS_FIELD_MASK))
 			return 0;
@@ -2096,9 +2145,13 @@ static int e1000e_get_eee(struct net_device *netdev, struct ethtool_eee *edata)
 		return -EOPNOTSUPP;
 	}
 
+	pm_runtime_get_sync(netdev->dev.parent);
+
 	ret_val = hw->phy.ops.acquire(hw);
-	if (ret_val)
+	if (ret_val) {
+		pm_runtime_put_sync(netdev->dev.parent);
 		return -EBUSY;
+	}
 
 	/* EEE Capability */
 	ret_val = e1000_read_emi_reg_locked(hw, cap_addr, &phy_data);
@@ -2117,14 +2170,11 @@ static int e1000e_get_eee(struct net_device *netdev, struct ethtool_eee *edata)
 
 	/* EEE PCS Status */
 	ret_val = e1000_read_emi_reg_locked(hw, pcs_stat_addr, &phy_data);
+	if (ret_val)
+		goto release;
 	if (hw->phy.type == e1000_phy_82579)
 		phy_data <<= 8;
 
-release:
-	hw->phy.ops.release(hw);
-	if (ret_val)
-		return -ENODATA;
-
 	/* Result of the EEE auto negotiation - there is no register that
 	 * has the status of the EEE negotiation so do a best-guess based
 	 * on whether Tx or Rx LPI indications have been received.
@@ -2136,7 +2186,14 @@ release:
 	edata->tx_lpi_enabled = true;
 	edata->tx_lpi_timer = er32(LPIC) >> E1000_LPIC_LPIET_SHIFT;
 
-	return 0;
+release:
+	hw->phy.ops.release(hw);
+	if (ret_val)
+		ret_val = -ENODATA;
+
+	pm_runtime_put_sync(netdev->dev.parent);
+
+	return ret_val;
 }
 
 static int e1000e_set_eee(struct net_device *netdev, struct ethtool_eee *edata)
@@ -2169,12 +2226,16 @@ static int e1000e_set_eee(struct net_device *netdev, struct ethtool_eee *edata)
 
 	hw->dev_spec.ich8lan.eee_disable = !edata->eee_enabled;
 
+	pm_runtime_get_sync(netdev->dev.parent);
+
 	/* reset the link */
 	if (netif_running(netdev))
 		e1000e_reinit_locked(adapter);
 	else
 		e1000e_reset(adapter);
 
+	pm_runtime_put_sync(netdev->dev.parent);
+
 	return 0;
 }
 
@@ -2212,19 +2273,7 @@ static int e1000e_get_ts_info(struct net_device *netdev,
 	return 0;
 }
 
-static int e1000e_ethtool_begin(struct net_device *netdev)
-{
-	return pm_runtime_get_sync(netdev->dev.parent);
-}
-
-static void e1000e_ethtool_complete(struct net_device *netdev)
-{
-	pm_runtime_put_sync(netdev->dev.parent);
-}
-
 static const struct ethtool_ops e1000_ethtool_ops = {
-	.begin			= e1000e_ethtool_begin,
-	.complete		= e1000e_ethtool_complete,
 	.get_settings		= e1000_get_settings,
 	.set_settings		= e1000_set_settings,
 	.get_drvinfo		= e1000_get_drvinfo,
-- 
1.7.11.7

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

* [net-next 10/12] e1000e: enable support for new device IDs
  2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (8 preceding siblings ...)
  2013-07-28 11:41 ` [net-next 09/12] e1000e: ethtool unnecessarily takes device out of RPM suspend Jeff Kirsher
@ 2013-07-28 11:41 ` Jeff Kirsher
  2013-07-28 11:41 ` [net-next 11/12] e1000e: do not resume device from RPM suspend to read PHY status registers Jeff Kirsher
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher

From: Bruce Allan <bruce.w.allan@intel.com>

The device IDs 0x15a0 and 0x15a1 are new SKUs that contain the same MAC as
I217 and same PHY as I218.

The device IDs 0x15a2 and 0x15a3 are the same as existing I218 SKUs.

Signed-off-by: Bruce Allan <bruce.w.allan@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/hw.h      | 4 ++++
 drivers/net/ethernet/intel/e1000e/ich8lan.c | 8 ++++++--
 drivers/net/ethernet/intel/e1000e/netdev.c  | 4 ++++
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/hw.h b/drivers/net/ethernet/intel/e1000e/hw.h
index cee565d..b799fd9 100644
--- a/drivers/net/ethernet/intel/e1000e/hw.h
+++ b/drivers/net/ethernet/intel/e1000e/hw.h
@@ -90,6 +90,10 @@ struct e1000_hw;
 #define E1000_DEV_ID_PCH_LPT_I217_V		0x153B
 #define E1000_DEV_ID_PCH_LPTLP_I218_LM		0x155A
 #define E1000_DEV_ID_PCH_LPTLP_I218_V		0x1559
+#define E1000_DEV_ID_PCH_I218_LM2		0x15A0
+#define E1000_DEV_ID_PCH_I218_V2		0x15A1
+#define E1000_DEV_ID_PCH_I218_LM3		0x15A2	/* Wildcat Point PCH */
+#define E1000_DEV_ID_PCH_I218_V3		0x15A3	/* Wildcat Point PCH */
 
 #define E1000_REVISION_4	4
 
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index b56c61a..78d03d3 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -1028,7 +1028,9 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw)
 
 	/* Work-around I218 hang issue */
 	if ((hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_LM) ||
-	    (hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_V)) {
+	    (hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_V) ||
+	    (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_LM3) ||
+	    (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_V3)) {
 		ret_val = e1000_k1_workaround_lpt_lp(hw, link);
 		if (ret_val)
 			return ret_val;
@@ -4203,7 +4205,9 @@ void e1000_suspend_workarounds_ich8lan(struct e1000_hw *hw)
 		u16 phy_reg, device_id = hw->adapter->pdev->device;
 
 		if ((device_id == E1000_DEV_ID_PCH_LPTLP_I218_LM) ||
-		    (device_id == E1000_DEV_ID_PCH_LPTLP_I218_V)) {
+		    (device_id == E1000_DEV_ID_PCH_LPTLP_I218_V) ||
+		    (device_id == E1000_DEV_ID_PCH_I218_LM3) ||
+		    (device_id == E1000_DEV_ID_PCH_I218_V3)) {
 			u32 fextnvm6 = er32(FEXTNVM6);
 
 			ew32(FEXTNVM6, fextnvm6 & ~E1000_FEXTNVM6_REQ_PLL_CLK);
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 51b05fe..650e569 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -6975,6 +6975,10 @@ static DEFINE_PCI_DEVICE_TABLE(e1000_pci_tbl) = {
 	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPT_I217_V), board_pch_lpt },
 	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_LM), board_pch_lpt },
 	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_V), board_pch_lpt },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_LM2), board_pch_lpt },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_V2), board_pch_lpt },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_LM3), board_pch_lpt },
+	{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_V3), board_pch_lpt },
 
 	{ 0, 0, 0, 0, 0, 0, 0 }	/* terminate list */
 };
-- 
1.7.11.7

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

* [net-next 11/12] e1000e: do not resume device from RPM suspend to read PHY status registers
  2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (9 preceding siblings ...)
  2013-07-28 11:41 ` [net-next 10/12] e1000e: enable support for new device IDs Jeff Kirsher
@ 2013-07-28 11:41 ` Jeff Kirsher
  2013-07-28 11:41 ` [net-next 12/12] e1000e: fix I217/I218 PHY initialization flow Jeff Kirsher
  2013-07-28 20:21 ` [net-next 00/12][pull request] Intel Wired LAN Driver Updates David Miller
  12 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher

From: Bruce Allan <bruce.w.allan@intel.com>

When the device is runtime suspended (e.g. when there is no link), do not
wake it from D3 to read the PHY status; just set the values to typical
power-on defaults as is done when runtime PM is not enabled and there is no
link.

Signed-off-by: Bruce Allan <bruce.w.allan@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/netdev.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 650e569..e6d2c0f 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -4684,11 +4684,11 @@ static void e1000_phy_read_status(struct e1000_adapter *adapter)
 	struct e1000_hw *hw = &adapter->hw;
 	struct e1000_phy_regs *phy = &adapter->phy_regs;
 
-	if ((er32(STATUS) & E1000_STATUS_LU) &&
+	if (!pm_runtime_suspended((&adapter->pdev->dev)->parent) &&
+	    (er32(STATUS) & E1000_STATUS_LU) &&
 	    (adapter->hw.phy.media_type == e1000_media_type_copper)) {
 		int ret_val;
 
-		pm_runtime_get_sync(&adapter->pdev->dev);
 		ret_val = e1e_rphy(hw, MII_BMCR, &phy->bmcr);
 		ret_val |= e1e_rphy(hw, MII_BMSR, &phy->bmsr);
 		ret_val |= e1e_rphy(hw, MII_ADVERTISE, &phy->advertise);
@@ -4699,7 +4699,6 @@ static void e1000_phy_read_status(struct e1000_adapter *adapter)
 		ret_val |= e1e_rphy(hw, MII_ESTATUS, &phy->estatus);
 		if (ret_val)
 			e_warn("Error reading PHY register\n");
-		pm_runtime_put_sync(&adapter->pdev->dev);
 	} else {
 		/* Do not read PHY registers if link is not up
 		 * Set values to typical power-on defaults
-- 
1.7.11.7

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

* [net-next 12/12] e1000e: fix I217/I218 PHY initialization flow
  2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (10 preceding siblings ...)
  2013-07-28 11:41 ` [net-next 11/12] e1000e: do not resume device from RPM suspend to read PHY status registers Jeff Kirsher
@ 2013-07-28 11:41 ` Jeff Kirsher
  2013-07-28 20:21 ` [net-next 00/12][pull request] Intel Wired LAN Driver Updates David Miller
  12 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 11:41 UTC (permalink / raw)
  To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher

From: Bruce Allan <bruce.w.allan@intel.com>

The initialization of the PHY on I217/I218, while similar to 82579, must
also check to see if the MAC and PHY are in the same mode (PCIe vs. SMBus)
otherwise the PHY will be inaccessible by the MAC.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/e1000e/ich8lan.c | 83 +++++++++++++++++------------
 1 file changed, 50 insertions(+), 33 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index 78d03d3..af08188 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -185,6 +185,7 @@ static bool e1000_phy_is_accessible_pchlan(struct e1000_hw *hw)
 	u32 phy_id = 0;
 	s32 ret_val;
 	u16 retry_count;
+	u32 mac_reg = 0;
 
 	for (retry_count = 0; retry_count < 2; retry_count++) {
 		ret_val = e1e_rphy_locked(hw, MII_PHYSID1, &phy_reg);
@@ -203,11 +204,11 @@ static bool e1000_phy_is_accessible_pchlan(struct e1000_hw *hw)
 
 	if (hw->phy.id) {
 		if (hw->phy.id == phy_id)
-			return true;
+			goto out;
 	} else if (phy_id) {
 		hw->phy.id = phy_id;
 		hw->phy.revision = (u32)(phy_reg & ~PHY_REVISION_MASK);
-		return true;
+		goto out;
 	}
 
 	/* In case the PHY needs to be in mdio slow mode,
@@ -219,7 +220,22 @@ static bool e1000_phy_is_accessible_pchlan(struct e1000_hw *hw)
 		ret_val = e1000e_get_phy_id(hw);
 	hw->phy.ops.acquire(hw);
 
-	return !ret_val;
+	if (ret_val)
+		return false;
+out:
+	if (hw->mac.type == e1000_pch_lpt) {
+		/* Unforce SMBus mode in PHY */
+		e1e_rphy_locked(hw, CV_SMB_CTRL, &phy_reg);
+		phy_reg &= ~CV_SMB_CTRL_FORCE_SMBUS;
+		e1e_wphy_locked(hw, CV_SMB_CTRL, phy_reg);
+
+		/* Unforce SMBus mode in MAC */
+		mac_reg = er32(CTRL_EXT);
+		mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS;
+		ew32(CTRL_EXT, mac_reg);
+	}
+
+	return true;
 }
 
 /**
@@ -233,7 +249,6 @@ static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw)
 {
 	u32 mac_reg, fwsm = er32(FWSM);
 	s32 ret_val;
-	u16 phy_reg;
 
 	/* Gate automatic PHY configuration by hardware on managed and
 	 * non-managed 82579 and newer adapters.
@@ -262,22 +277,16 @@ static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw)
 		mac_reg |= E1000_CTRL_EXT_FORCE_SMBUS;
 		ew32(CTRL_EXT, mac_reg);
 
+		/* Wait 50 milliseconds for MAC to finish any retries
+		 * that it might be trying to perform from previous
+		 * attempts to acknowledge any phy read requests.
+		 */
+		msleep(50);
+
 		/* fall-through */
 	case e1000_pch2lan:
-		if (e1000_phy_is_accessible_pchlan(hw)) {
-			if (hw->mac.type == e1000_pch_lpt) {
-				/* Unforce SMBus mode in PHY */
-				e1e_rphy_locked(hw, CV_SMB_CTRL, &phy_reg);
-				phy_reg &= ~CV_SMB_CTRL_FORCE_SMBUS;
-				e1e_wphy_locked(hw, CV_SMB_CTRL, phy_reg);
-
-				/* Unforce SMBus mode in MAC */
-				mac_reg = er32(CTRL_EXT);
-				mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS;
-				ew32(CTRL_EXT, mac_reg);
-			}
+		if (e1000_phy_is_accessible_pchlan(hw))
 			break;
-		}
 
 		/* fall-through */
 	case e1000_pchlan:
@@ -287,6 +296,7 @@ static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw)
 
 		if (hw->phy.ops.check_reset_block(hw)) {
 			e_dbg("Required LANPHYPC toggle blocked by ME\n");
+			ret_val = -E1000_ERR_PHY;
 			break;
 		}
 
@@ -298,15 +308,6 @@ static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw)
 		mac_reg |= E1000_FEXTNVM3_PHY_CFG_COUNTER_50MSEC;
 		ew32(FEXTNVM3, mac_reg);
 
-		if (hw->mac.type == e1000_pch_lpt) {
-			/* Toggling LANPHYPC brings the PHY out of SMBus mode
-			 * So ensure that the MAC is also out of SMBus mode
-			 */
-			mac_reg = er32(CTRL_EXT);
-			mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS;
-			ew32(CTRL_EXT, mac_reg);
-		}
-
 		/* Toggle LANPHYPC Value bit */
 		mac_reg = er32(CTRL);
 		mac_reg |= E1000_CTRL_LANPHYPC_OVERRIDE;
@@ -325,6 +326,21 @@ static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw)
 				usleep_range(5000, 10000);
 			} while (!(er32(CTRL_EXT) &
 				   E1000_CTRL_EXT_LPCD) && count--);
+			usleep_range(30000, 60000);
+			if (e1000_phy_is_accessible_pchlan(hw))
+				break;
+
+			/* Toggling LANPHYPC brings the PHY out of SMBus mode
+			 * so ensure that the MAC is also out of SMBus mode
+			 */
+			mac_reg = er32(CTRL_EXT);
+			mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS;
+			ew32(CTRL_EXT, mac_reg);
+
+			if (e1000_phy_is_accessible_pchlan(hw))
+				break;
+
+			ret_val = -E1000_ERR_PHY;
 		}
 		break;
 	default:
@@ -332,13 +348,14 @@ static s32 e1000_init_phy_workarounds_pchlan(struct e1000_hw *hw)
 	}
 
 	hw->phy.ops.release(hw);
-
-	/* Reset the PHY before any access to it.  Doing so, ensures
-	 * that the PHY is in a known good state before we read/write
-	 * PHY registers.  The generic reset is sufficient here,
-	 * because we haven't determined the PHY type yet.
-	 */
-	ret_val = e1000e_phy_hw_reset_generic(hw);
+	if (!ret_val) {
+		/* Reset the PHY before any access to it.  Doing so, ensures
+		 * that the PHY is in a known good state before we read/write
+		 * PHY registers.  The generic reset is sufficient here,
+		 * because we haven't determined the PHY type yet.
+		 */
+		ret_val = e1000e_phy_hw_reset_generic(hw);
+	}
 
 out:
 	/* Ungate automatic PHY configuration on non-managed 82579 */
-- 
1.7.11.7

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
                   ` (11 preceding siblings ...)
  2013-07-28 11:41 ` [net-next 12/12] e1000e: fix I217/I218 PHY initialization flow Jeff Kirsher
@ 2013-07-28 20:21 ` David Miller
  2013-07-28 23:11   ` Jeff Kirsher
  12 siblings, 1 reply; 21+ messages in thread
From: David Miller @ 2013-07-28 20:21 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Sun, 28 Jul 2013 04:41:04 -0700

> This series contains updates to e100 and e1000e.
> 
> The e100 patch from Andy simply updates the netif_printk() to use
> %*ph to dump small buffers.
> 
> The changes to e1000e include a fix from Dean Nelson to resolve a
> issue where a pci_clear_master() was accidentally dropped during a
> conflict resolution. Wei Young provides 2 patches, one removes an
> assignment of the default ring size because it was a duplicate. The
> second changes the packet split receive structure to use
> PS_PAGE_BUFFERS macro for the length so that problems won't occur
> when the length is changed.
> 
> The remaining patches for e1000e are from Bruce Allan, where he
> provides a number of fixes and updates for I218.  In addition, a
> fix for 82583 which can disappear off the PCIe bus, to resolve this,
> disable ASPM L1.  Bruce also provides a fix to a previous commit
> (commit e60b22c5b7 e1000e: fix accessing to suspended device) so that
> devices are only taken out of runtime power management for those
> ethtool operations that must access device registers.
> 
> The following are changes since commit dcfe8048de66c3468060c8a2ec2c04ae3725d002:
>   bonding: remove bond_resend_igmp_join_requests read_unlock leftover
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Pulled, thanks a lot Jeff.

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-28 20:21 ` [net-next 00/12][pull request] Intel Wired LAN Driver Updates David Miller
@ 2013-07-28 23:11   ` Jeff Kirsher
  2013-07-29  0:20     ` David Miller
  0 siblings, 1 reply; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-28 23:11 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, gospo, sassmann

[-- Attachment #1: Type: text/plain, Size: 1764 bytes --]

On Sun, 2013-07-28 at 13:21 -0700, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Sun, 28 Jul 2013 04:41:04 -0700
> 
> > This series contains updates to e100 and e1000e.
> > 
> > The e100 patch from Andy simply updates the netif_printk() to use
> > %*ph to dump small buffers.
> > 
> > The changes to e1000e include a fix from Dean Nelson to resolve a
> > issue where a pci_clear_master() was accidentally dropped during a
> > conflict resolution. Wei Young provides 2 patches, one removes an
> > assignment of the default ring size because it was a duplicate. The
> > second changes the packet split receive structure to use
> > PS_PAGE_BUFFERS macro for the length so that problems won't occur
> > when the length is changed.
> > 
> > The remaining patches for e1000e are from Bruce Allan, where he
> > provides a number of fixes and updates for I218.  In addition, a
> > fix for 82583 which can disappear off the PCIe bus, to resolve this,
> > disable ASPM L1.  Bruce also provides a fix to a previous commit
> > (commit e60b22c5b7 e1000e: fix accessing to suspended device) so that
> > devices are only taken out of runtime power management for those
> > ethtool operations that must access device registers.
> > 
> > The following are changes since commit dcfe8048de66c3468060c8a2ec2c04ae3725d002:
> >   bonding: remove bond_resend_igmp_join_requests read_unlock leftover
> > and are available in the git repository at:
> >   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
> 
> Pulled, thanks a lot Jeff.

It looks like you pulled my net tree instead of my net-next tree.
Fortunately, I did not have anything applied to my net tree that had not
already been sent out.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-28 23:11   ` Jeff Kirsher
@ 2013-07-29  0:20     ` David Miller
  2013-07-29  2:08       ` Jeff Kirsher
  0 siblings, 1 reply; 21+ messages in thread
From: David Miller @ 2013-07-29  0:20 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Sun, 28 Jul 2013 16:11:38 -0700

> On Sun, 2013-07-28 at 13:21 -0700, David Miller wrote:
>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>> Date: Sun, 28 Jul 2013 04:41:04 -0700
>> 
>> > This series contains updates to e100 and e1000e.
>> > 
>> > The e100 patch from Andy simply updates the netif_printk() to use
>> > %*ph to dump small buffers.
>> > 
>> > The changes to e1000e include a fix from Dean Nelson to resolve a
>> > issue where a pci_clear_master() was accidentally dropped during a
>> > conflict resolution. Wei Young provides 2 patches, one removes an
>> > assignment of the default ring size because it was a duplicate. The
>> > second changes the packet split receive structure to use
>> > PS_PAGE_BUFFERS macro for the length so that problems won't occur
>> > when the length is changed.
>> > 
>> > The remaining patches for e1000e are from Bruce Allan, where he
>> > provides a number of fixes and updates for I218.  In addition, a
>> > fix for 82583 which can disappear off the PCIe bus, to resolve this,
>> > disable ASPM L1.  Bruce also provides a fix to a previous commit
>> > (commit e60b22c5b7 e1000e: fix accessing to suspended device) so that
>> > devices are only taken out of runtime power management for those
>> > ethtool operations that must access device registers.
>> > 
>> > The following are changes since commit dcfe8048de66c3468060c8a2ec2c04ae3725d002:
>> >   bonding: remove bond_resend_igmp_join_requests read_unlock leftover
>> > and are available in the git repository at:
>> >   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
>> 
>> Pulled, thanks a lot Jeff.
> 
> It looks like you pulled my net tree instead of my net-next tree.
> Fortunately, I did not have anything applied to my net tree that had not
> already been sent out.

No, really, I did this:

git pull git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-29  0:20     ` David Miller
@ 2013-07-29  2:08       ` Jeff Kirsher
  2013-07-29  7:34         ` David Miller
  0 siblings, 1 reply; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-29  2:08 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, gospo, sassmann

[-- Attachment #1: Type: text/plain, Size: 2425 bytes --]

On Sun, 2013-07-28 at 17:20 -0700, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Sun, 28 Jul 2013 16:11:38 -0700
> 
> > On Sun, 2013-07-28 at 13:21 -0700, David Miller wrote:
> >> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> >> Date: Sun, 28 Jul 2013 04:41:04 -0700
> >> 
> >> > This series contains updates to e100 and e1000e.
> >> > 
> >> > The e100 patch from Andy simply updates the netif_printk() to use
> >> > %*ph to dump small buffers.
> >> > 
> >> > The changes to e1000e include a fix from Dean Nelson to resolve a
> >> > issue where a pci_clear_master() was accidentally dropped during a
> >> > conflict resolution. Wei Young provides 2 patches, one removes an
> >> > assignment of the default ring size because it was a duplicate. The
> >> > second changes the packet split receive structure to use
> >> > PS_PAGE_BUFFERS macro for the length so that problems won't occur
> >> > when the length is changed.
> >> > 
> >> > The remaining patches for e1000e are from Bruce Allan, where he
> >> > provides a number of fixes and updates for I218.  In addition, a
> >> > fix for 82583 which can disappear off the PCIe bus, to resolve this,
> >> > disable ASPM L1.  Bruce also provides a fix to a previous commit
> >> > (commit e60b22c5b7 e1000e: fix accessing to suspended device) so that
> >> > devices are only taken out of runtime power management for those
> >> > ethtool operations that must access device registers.
> >> > 
> >> > The following are changes since commit dcfe8048de66c3468060c8a2ec2c04ae3725d002:
> >> >   bonding: remove bond_resend_igmp_join_requests read_unlock leftover
> >> > and are available in the git repository at:
> >> >   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
> >> 
> >> Pulled, thanks a lot Jeff.
> > 
> > It looks like you pulled my net tree instead of my net-next tree.
> > Fortunately, I did not have anything applied to my net tree that had not
> > already been sent out.
> 
> No, really, I did this:
> 
> git pull git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master

Disregard, it was me misreading my git log in my net tree after updating
it against your latest tree.

When will your kernel.org net-next be updated?  I ask because I have a
series for ixgbe I am putting together and wanted to make sure it is
against the latest net-next.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-29  2:08       ` Jeff Kirsher
@ 2013-07-29  7:34         ` David Miller
  2013-07-29  8:34           ` Jeff Kirsher
  0 siblings, 1 reply; 21+ messages in thread
From: David Miller @ 2013-07-29  7:34 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Sun, 28 Jul 2013 19:08:55 -0700

> When will your kernel.org net-next be updated?  I ask because I have a
> series for ixgbe I am putting together and wanted to make sure it is
> against the latest net-next.

Are you asking when I will next merge 'net' into 'net-next'?  If so,
I'll likely do it some time tomorrow.

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-29  7:34         ` David Miller
@ 2013-07-29  8:34           ` Jeff Kirsher
  2013-07-29  8:46             ` David Miller
  0 siblings, 1 reply; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-29  8:34 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, gospo, sassmann

[-- Attachment #1: Type: text/plain, Size: 1010 bytes --]

On Mon, 2013-07-29 at 00:34 -0700, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Sun, 28 Jul 2013 19:08:55 -0700
> 
> > When will your kernel.org net-next be updated?  I ask because I have a
> > series for ixgbe I am putting together and wanted to make sure it is
> > against the latest net-next.
> 
> Are you asking when I will next merge 'net' into 'net-next'?  If so,
> I'll likely do it some time tomorrow.

I am not worried about that.  I just cloned your net-next tree and did
not see your pull of my net-next tree which had the e100 and e1000e
patches.  I am working on creating another series against net-next and
the tip on kernel.org is:

commit 9d4a0314642918cbda9ed4012df51e8df608fce6
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Fri Jul 26 17:05:16 2013 +0200

    ipv4, ipv6: send igmpv3/mld packets with TC_PRIO_CONTROL

which is several days old.  So I was not sure if I just make my series
against my net-next tip.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-29  8:34           ` Jeff Kirsher
@ 2013-07-29  8:46             ` David Miller
  2013-07-29  9:17               ` Jeff Kirsher
  0 siblings, 1 reply; 21+ messages in thread
From: David Miller @ 2013-07-29  8:46 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Mon, 29 Jul 2013 01:34:45 -0700

> On Mon, 2013-07-29 at 00:34 -0700, David Miller wrote:
>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>> Date: Sun, 28 Jul 2013 19:08:55 -0700
>> 
>> > When will your kernel.org net-next be updated?  I ask because I have a
>> > series for ixgbe I am putting together and wanted to make sure it is
>> > against the latest net-next.
>> 
>> Are you asking when I will next merge 'net' into 'net-next'?  If so,
>> I'll likely do it some time tomorrow.
> 
> I am not worried about that.  I just cloned your net-next tree and did
> not see your pull of my net-next tree which had the e100 and e1000e
> patches.  I am working on creating another series against net-next and
> the tip on kernel.org is:
> 
> commit 9d4a0314642918cbda9ed4012df51e8df608fce6
> Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
> Date:   Fri Jul 26 17:05:16 2013 +0200
> 
>     ipv4, ipv6: send igmpv3/mld packets with TC_PRIO_CONTROL
> 
> which is several days old.  So I was not sure if I just make my series
> against my net-next tip.

Weird, it should have all of your changes.

Tip is currently:

http://git.kernel.org/cgit/linux/kernel/git/davem/net-next.git/commit/?id=fe6f700d6cbb7e8a61711e325f53d9c9e0a42a4c

net/mlx4_core: Respond to operation request by firmware

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

* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
  2013-07-29  8:46             ` David Miller
@ 2013-07-29  9:17               ` Jeff Kirsher
  0 siblings, 0 replies; 21+ messages in thread
From: Jeff Kirsher @ 2013-07-29  9:17 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, gospo, sassmann

[-- Attachment #1: Type: text/plain, Size: 1541 bytes --]

On Mon, 2013-07-29 at 01:46 -0700, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Mon, 29 Jul 2013 01:34:45 -0700
> 
> > On Mon, 2013-07-29 at 00:34 -0700, David Miller wrote:
> >> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> >> Date: Sun, 28 Jul 2013 19:08:55 -0700
> >> 
> >> > When will your kernel.org net-next be updated?  I ask because I have a
> >> > series for ixgbe I am putting together and wanted to make sure it is
> >> > against the latest net-next.
> >> 
> >> Are you asking when I will next merge 'net' into 'net-next'?  If so,
> >> I'll likely do it some time tomorrow.
> > 
> > I am not worried about that.  I just cloned your net-next tree and did
> > not see your pull of my net-next tree which had the e100 and e1000e
> > patches.  I am working on creating another series against net-next and
> > the tip on kernel.org is:
> > 
> > commit 9d4a0314642918cbda9ed4012df51e8df608fce6
> > Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
> > Date:   Fri Jul 26 17:05:16 2013 +0200
> > 
> >     ipv4, ipv6: send igmpv3/mld packets with TC_PRIO_CONTROL
> > 
> > which is several days old.  So I was not sure if I just make my series
> > against my net-next tip.
> 
> Weird, it should have all of your changes.
> 
> Tip is currently:
> 
> http://git.kernel.org/cgit/linux/kernel/git/davem/net-next.git/commit/?id=fe6f700d6cbb7e8a61711e325f53d9c9e0a42a4c
> 
> net/mlx4_core: Respond to operation request by firmware

All looks fine now, thanks!

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

end of thread, other threads:[~2013-07-29  9:17 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-28 11:41 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-07-28 11:41 ` [net-next 01/12] e100: dump small buffers via %*ph Jeff Kirsher
2013-07-28 11:41 ` [net-next 02/12] e1000e: restore call to pci_clear_master() Jeff Kirsher
2013-07-28 11:41 ` [net-next 03/12] e1000e: Remove duplicate assignment of default rx/tx ring size Jeff Kirsher
2013-07-28 11:41 ` [net-next 04/12] e1000e: Use marco instead of digit for defining e1000_rx_desc_packet_split Jeff Kirsher
2013-07-28 11:41 ` [net-next 05/12] e1000e: disable ASPM L1 on 82583 Jeff Kirsher
2013-07-28 11:41 ` [net-next 06/12] e1000e: iAMT connections drop on driver unload when jumbo frames enabled Jeff Kirsher
2013-07-28 11:41 ` [net-next 07/12] e1000e: low throughput using 4K jumbos on I218 Jeff Kirsher
2013-07-28 11:41 ` [net-next 08/12] e1000e: Tx hang on I218 when linked at 100Half and slow response at 10Mbps Jeff Kirsher
2013-07-28 11:41 ` [net-next 09/12] e1000e: ethtool unnecessarily takes device out of RPM suspend Jeff Kirsher
2013-07-28 11:41 ` [net-next 10/12] e1000e: enable support for new device IDs Jeff Kirsher
2013-07-28 11:41 ` [net-next 11/12] e1000e: do not resume device from RPM suspend to read PHY status registers Jeff Kirsher
2013-07-28 11:41 ` [net-next 12/12] e1000e: fix I217/I218 PHY initialization flow Jeff Kirsher
2013-07-28 20:21 ` [net-next 00/12][pull request] Intel Wired LAN Driver Updates David Miller
2013-07-28 23:11   ` Jeff Kirsher
2013-07-29  0:20     ` David Miller
2013-07-29  2:08       ` Jeff Kirsher
2013-07-29  7:34         ` David Miller
2013-07-29  8:34           ` Jeff Kirsher
2013-07-29  8:46             ` David Miller
2013-07-29  9:17               ` Jeff Kirsher

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).