* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2012-01-26 7:21 Jeff Kirsher
2012-01-26 18:49 ` David Miller
0 siblings, 1 reply; 36+ messages in thread
From: Jeff Kirsher @ 2012-01-26 7:21 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
The following series contains updates to e1000e only. Most of these
changes contain fixup/cleanups/conversions.
The following are changes since commit e55684fadbc5c9c69cad1b3bae228c8374b99b85:
infiniband: nes: Convert nes_addr_resolve_neigh() over to dst_neigh_lookup().
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
e1000e: cleanup Rx checksum offload code
e1000e: add Receive Packet Steering (RPS) support
e1000e: re-enable alternate MAC address for all devices which support
it
e1000e: convert head, tail and itr_register offsets to __iomem
pointers
e1000e: pass pointer to ring struct instead of adapter struct
e1000e: re-factor ethtool get/set ring parameter
e1000e: default IntMode based on kernel config & available hardware
support
e1000e: always set transmit descriptor control registers the same
e1000e: 82579: workaround for link drop issue
e1000e: use default settings for Tx Inter Packet Gap timer
e1000e: use hardware default values for Transmit Control register
e1000e: 82574/82583 Tx hang workaround
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 3 +-
drivers/net/ethernet/intel/e1000e/82571.c | 4 +
drivers/net/ethernet/intel/e1000e/defines.h | 8 +
drivers/net/ethernet/intel/e1000e/e1000.h | 29 +-
drivers/net/ethernet/intel/e1000e/ethtool.c | 186 +++++++----
drivers/net/ethernet/intel/e1000e/hw.h | 9 +-
drivers/net/ethernet/intel/e1000e/ich8lan.c | 22 ++
drivers/net/ethernet/intel/e1000e/lib.c | 7 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 423 +++++++++++++----------
drivers/net/ethernet/intel/e1000e/param.c | 48 +++-
10 files changed, 471 insertions(+), 268 deletions(-)
--
1.7.7.6
^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
2012-01-26 7:21 Jeff Kirsher
@ 2012-01-26 18:49 ` David Miller
2012-01-26 21:27 ` David Miller
0 siblings, 1 reply; 36+ messages in thread
From: David Miller @ 2012-01-26 18:49 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Wed, 25 Jan 2012 23:21:43 -0800
> The following are changes since commit e55684fadbc5c9c69cad1b3bae228c8374b99b85:
> infiniband: nes: Convert nes_addr_resolve_neigh() over to dst_neigh_lookup().
> and are available in the git repository at:
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
>
> e1000e: cleanup Rx checksum offload code
> e1000e: add Receive Packet Steering (RPS) support
> e1000e: re-enable alternate MAC address for all devices which support
> it
> e1000e: convert head, tail and itr_register offsets to __iomem
> pointers
> e1000e: pass pointer to ring struct instead of adapter struct
> e1000e: re-factor ethtool get/set ring parameter
> e1000e: default IntMode based on kernel config & available hardware
> support
> e1000e: always set transmit descriptor control registers the same
> e1000e: 82579: workaround for link drop issue
> e1000e: use default settings for Tx Inter Packet Gap timer
> e1000e: use hardware default values for Transmit Control register
> e1000e: 82574/82583 Tx hang workaround
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
2012-01-26 18:49 ` David Miller
@ 2012-01-26 21:27 ` David Miller
0 siblings, 0 replies; 36+ messages in thread
From: David Miller @ 2012-01-26 21:27 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: David Miller <davem@davemloft.net>
Date: Thu, 26 Jan 2012 13:49:13 -0500 (EST)
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Wed, 25 Jan 2012 23:21:43 -0800
>
>> The following are changes since commit e55684fadbc5c9c69cad1b3bae228c8374b99b85:
>> infiniband: nes: Convert nes_addr_resolve_neigh() over to dst_neigh_lookup().
>> and are available in the git repository at:
>> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
...
> Pulled, thanks Jeff.
I had to apply the following patch to fix the build on non-x86
architectures.
--------------------
e1000e: Need to include vmalloc.h
Otherwise (on sparc64):
drivers/net/ethernet/intel/e1000e/ethtool.c:657:3: error: implicit declaration of function 'vmalloc' [-Werror=implicit-function-declaration]
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/ethernet/intel/e1000e/ethtool.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c
index ffb6c14..1ea317f 100644
--- a/drivers/net/ethernet/intel/e1000e/ethtool.c
+++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
@@ -34,6 +34,7 @@
#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/delay.h>
+#include <linux/vmalloc.h>
#include "e1000.h"
--
1.7.7.6
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2012-03-17 8:50 Jeff Kirsher
2012-03-17 9:06 ` David Miller
0 siblings, 1 reply; 36+ messages in thread
From: Jeff Kirsher @ 2012-03-17 8:50 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series of patches contains additions/cleanups to igb and ixgbe.
There 2 patches for igb & ixgbe which add FX-ALL feature flag and
sending of custom Ethernet FCS from Ben Greear.
The remaining patches in the series is part three of three to update
ixgbe. Although it looks like there will be at least one follow on
patch series complete the update/cleanup of ixgbe.
The following are changes since commit 126a3fd251b244eabd9ab9dcb32b8b6f999c1b91:
eni: fix driver remove function and driver probe error path.
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Alexander Duyck (8):
ixgbe: Replace standard receive path with a page based receive
ixgbe: cleanup logic in ixgbe_change_mtu
ixgbe: Make certain that all frames fit minimum size requirements
ixgbe: Modify setup of descriptor flags to avoid conditional jumps
ixgbe: Use packets to track Tx completions instead of a separate
value
ixgbe: Place skb on first buffer_info structure to avoid using stack
space
ixgbe: Write gso_segs and bytcount to the ring sooner
ixgbe: always write DMA for single_mapped value with skb
Ben Greear (4):
igb: Support sending custom Ethernet FCS.
igb: Support RX-ALL feature flag.
ixgbe: Support sending custom Ethernet FCS.
ixgbe: Support RX-ALL feature flag.
drivers/net/ethernet/intel/igb/e1000_defines.h | 2 +
drivers/net/ethernet/intel/igb/igb_main.c | 37 +-
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 60 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 23 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 17 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 1261 ++++++++++++----------
6 files changed, 772 insertions(+), 628 deletions(-)
--
1.7.7.6
^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
2012-03-17 8:50 Jeff Kirsher
@ 2012-03-17 9:06 ` David Miller
0 siblings, 0 replies; 36+ messages in thread
From: David Miller @ 2012-03-17 9:06 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Sat, 17 Mar 2012 01:50:48 -0700
> This series of patches contains additions/cleanups to igb and ixgbe.
> There 2 patches for igb & ixgbe which add FX-ALL feature flag and
> sending of custom Ethernet FCS from Ben Greear.
>
> The remaining patches in the series is part three of three to update
> ixgbe. Although it looks like there will be at least one follow on
> patch series complete the update/cleanup of ixgbe.
>
> The following are changes since commit 126a3fd251b244eabd9ab9dcb32b8b6f999c1b91:
> eni: fix driver remove function and driver probe error path.
> and are available in the git repository at:
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 36+ messages in thread
* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2012-05-10 6:46 Jeff Kirsher
2012-05-11 3:18 ` David Miller
0 siblings, 1 reply; 36+ messages in thread
From: Jeff Kirsher @ 2012-05-10 6:46 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series of patches contains updates for igb and ixgbe.
Special note ixgbe patches contain the addition of PTP support from
Jacob Keller.
The following are changes since commit 8feedbb4a710784d2858acba5c90e903e93e36eb:
dsa: Convert compare_ether_addr to ether_addr_equal
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Alexander Duyck (3):
ixgbe: Exit on error case in VF message processing
ixgbe: Clean up priority based flow control
ixgbe: Set Drop_EN bit when multiple Rx queues are present w/o flow
control
Don Skidmore (2):
ixgbe: cleanup the hwmon function calls
ixgbe: update version number
Greg Rose (1):
ixgbe: Fix bogus error message
Jacob E Keller (1):
ixgbe: Enable timesync clock-out feature for PPS support on X540
Jacob Keller (4):
ixgbe: Hardware Timestamping + PTP Hardware Clock (PHC)
ixgbe: correct disable_rx_buff timeout
ixgbe: add support for get_ts_info
ixgbe: support software timestamping
Koki Sanagi (1):
igb: output register's information related to RX/TX queue[4-15]
drivers/net/ethernet/intel/Kconfig | 11 +
drivers/net/ethernet/intel/igb/igb_ethtool.c | 38 +-
drivers/net/ethernet/intel/ixgbe/Makefile | 2 +
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 37 +
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.c | 69 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c | 93 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 98 +--
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 71 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 198 ++++-
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 900 ++++++++++++++++++++
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 13 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c | 36 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 47 +-
14 files changed, 1370 insertions(+), 245 deletions(-)
create mode 100644 drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
--
1.7.7.6
^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
2012-05-10 6:46 Jeff Kirsher
@ 2012-05-11 3:18 ` David Miller
0 siblings, 0 replies; 36+ messages in thread
From: David Miller @ 2012-05-11 3:18 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Wed, 9 May 2012 23:46:41 -0700
> This series of patches contains updates for igb and ixgbe.
> Special note ixgbe patches contain the addition of PTP support from
> Jacob Keller.
>
> The following are changes since commit 8feedbb4a710784d2858acba5c90e903e93e36eb:
> dsa: Convert compare_ether_addr to ether_addr_equal
> and are available in the git repository at:
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 36+ messages in thread
* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2012-10-23 4:26 Jeff Kirsher
2012-10-23 6:51 ` David Miller
0 siblings, 1 reply; 36+ messages in thread
From: Jeff Kirsher @ 2012-10-23 4:26 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to ixgbe only. Only change to this series
is I dropped the "ixgbe: Add support for pipeline reset" due to
change requested by Martin Josefsson.
The following are changes since commit d94ce9b283736a876b2e6dec665c68e5e8b5d55e:
ipv4: 16 slots in initial fib_info hash table
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Alexander Duyck (7):
ixgbe: Add support for IPv6 and UDP to ixgbe_get_headlen
ixgbe: Add support for tracking the default user priority to SR-IOV
ixgbe: Add support for GET_QUEUES message to get DCB configuration
ixgbe: Enable support for VF API version 1.1 in the PF.
ixgbevf: Add VF DCB + SR-IOV support
ixgbe: Drop unnecessary addition from ixgbe_set_rx_buffer_len
ixgbe: Fix possible memory leak in ixgbe_set_ringparam
Don Skidmore (1):
ixgbe: Add function ixgbe_reset_pipeline_82599
Emil Tantilov (1):
ixgbe: add WOL support for new subdevice id
Jacob Keller (1):
ixgbe: (PTP) refactor init, cyclecounter and reset
Tushar Dave (1):
ixgbe: Correcting small packet padding
Wei Yongjun (1):
ixgbe: using is_zero_ether_addr() to simplify the code
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 6 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 44 ++++++
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 3 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_common.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 102 +++++++-------
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 66 +++++++--
drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h | 10 ++
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 109 +++++++--------
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 124 +++++++++++++----
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 +
drivers/net/ethernet/intel/ixgbevf/defines.h | 7 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 4 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 159 +++++++++++++++++++++-
drivers/net/ethernet/intel/ixgbevf/mbx.h | 10 ++
drivers/net/ethernet/intel/ixgbevf/vf.c | 58 ++++++++
drivers/net/ethernet/intel/ixgbevf/vf.h | 2 +
16 files changed, 539 insertions(+), 167 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
2012-10-23 4:26 Jeff Kirsher
@ 2012-10-23 6:51 ` David Miller
0 siblings, 0 replies; 36+ messages in thread
From: David Miller @ 2012-10-23 6:51 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Mon, 22 Oct 2012 21:26:13 -0700
> This series contains updates to ixgbe only. Only change to this series
> is I dropped the "ixgbe: Add support for pipeline reset" due to
> change requested by Martin Josefsson.
>
> The following are changes since commit d94ce9b283736a876b2e6dec665c68e5e8b5d55e:
> ipv4: 16 slots in initial fib_info hash table
> and are available in the git repository at:
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 36+ messages in thread
* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2013-03-28 9:00 Jeff Kirsher
2013-03-28 18:39 ` David Miller
0 siblings, 1 reply; 36+ messages in thread
From: Jeff Kirsher @ 2013-03-28 9:00 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to e1000e, ixgbe and ixgbevf.
Majority of the changes are against e1000e (from Bruce Allan).
Bruce adds additional error handling on PHY register access, as
well as improve slow performance on 82579 when connected to a
10Mbit hub. In addition, fixes LED blink logic for cathode
LED design. Most notable is added EEE support which is enabled
by default and the added support for LTR on I217/I218.
The ixgbe and ixgbevf from Greg Rose changes the VM so that if a user
does not assign a MAC address, the MAC address is set to all zeros
instead of a random MAC address. This ensures that we always know when
we have a random address and udev won't get upset about it.
The following are changes since commit 8b49a4c75965ed157e21450d23dcadd6b27c1aa3:
bnx2x: fix compilation without CONFIG_BNX2X_SRIOV
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Bruce Allan (10):
e1000e: additional error handling on PHY register accesses
e1000e: slow performance between two 82579 connected via 10Mbit hub
e1000e: fix LED blink logic for designs with LEDs driven by cathode
e1000e: long access timeouts when I217/I218 MAC and PHY are out of
sync
e1000e: EEE capability advertisement not set/disabled as required
e1000e: enable EEE by default
e1000e: add support for LTR on I217/I218
e1000e: cleanup unused defines
e1000e: increase driver version number
e1000e: fix scheduling while atomic bugs
Greg Rose (2):
ixgbe: Don't give VFs random MAC addresses
ixgbevf: Adjust to handle unassigned MAC address from PF
drivers/net/ethernet/intel/e1000e/defines.h | 2 +
drivers/net/ethernet/intel/e1000e/e1000.h | 3 +
drivers/net/ethernet/intel/e1000e/ethtool.c | 63 ++-----
drivers/net/ethernet/intel/e1000e/ich8lan.c | 213 ++++++++++++++++++----
drivers/net/ethernet/intel/e1000e/ich8lan.h | 11 +-
drivers/net/ethernet/intel/e1000e/mac.c | 27 ++-
drivers/net/ethernet/intel/e1000e/netdev.c | 38 +++-
drivers/net/ethernet/intel/e1000e/phy.c | 20 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 23 ++-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 21 ++-
drivers/net/ethernet/intel/ixgbevf/vf.c | 7 +-
11 files changed, 315 insertions(+), 113 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
2013-03-28 9:00 Jeff Kirsher
@ 2013-03-28 18:39 ` David Miller
0 siblings, 0 replies; 36+ messages in thread
From: David Miller @ 2013-03-28 18:39 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Thu, 28 Mar 2013 02:00:03 -0700
> This series contains updates to e1000e, ixgbe and ixgbevf.
>
> Majority of the changes are against e1000e (from Bruce Allan).
> Bruce adds additional error handling on PHY register access, as
> well as improve slow performance on 82579 when connected to a
> 10Mbit hub. In addition, fixes LED blink logic for cathode
> LED design. Most notable is added EEE support which is enabled
> by default and the added support for LTR on I217/I218.
>
> The ixgbe and ixgbevf from Greg Rose changes the VM so that if a user
> does not assign a MAC address, the MAC address is set to all zeros
> instead of a random MAC address. This ensures that we always know when
> we have a random address and udev won't get upset about it.
>
> The following are changes since commit 8b49a4c75965ed157e21450d23dcadd6b27c1aa3:
> bnx2x: fix compilation without CONFIG_BNX2X_SRIOV
> and are available in the git repository at:
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 36+ messages in thread
* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2013-05-21 22:03 Jeff Kirsher
2013-05-21 22:03 ` [net-next 01/12] e1000e: cleanup whitespace Jeff Kirsher
` (12 more replies)
0 siblings, 13 replies; 36+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to e1000e, igb and ixgbe.
Bruce Allan provide 2 minor cleanups for e1000e to resolve whitespace
issues and build warnings about unused parameters.
Carolyn provides a couple of fixes for igb, one being a fix for a
possible panic when the interface is down and receive traffic
arrives. The second fix resolves an issue on newer parts which have
multiple checksum fields and set_ethtool was only checking to update
the first checksum of the NVM image.
Akeem provides majority of the changes in this patch set. Akeem
provides a fix for e1000e on an issue reported from the community to
resolve the issue of unlocking swflag_mutex for 82574 and 82583
devices even if the hardware semaphore was successfully acquired.
The other patches from Akeem are against igb, where he adds support
SFP module discovery, LED blink mechanism for devices using cathodes,
LED support for i210/i211 parts and cleanup of a i2c function which
was not being used.
Matthew provides an update for igb to support a more accurate check
for a PTP RX hang.
Amir provides a patch for ixgbe to set the software prio_tc values at
initialization to the hardware setting to remove the need to reset the
device at the first time we call ixgbe_dcbnl_ieee_setets.
The following are changes since commit 1e18583adccfc122b5d6415cfe4bf1826c370f4e:
ThunderLAN: remove is_eisa flag
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Akeem G. Abodunrin (6):
e1000e: Release mutex lock only if it has been initially acquired
igb: Changed LEDs blink mechanism to include designs using cathode
igb: Support for SFP modules discovery
igb: SerDes flow control setting
igb: Implementation of i210/i211 LED support
igb: Removed unused i2c function
Amir Hanania (1):
IXGBE: Set the SW prio_tc values at initialization to the HW setting.
Bruce Allan (2):
e1000e: cleanup whitespace
e1000e: prevent warning from -Wunused-parameter
Carolyn Wyborny (2):
igb: Fix set_ethtool function to call update nvm for entire image
igb: Fix possible panic caused by Rx traffic arrival while interface
is down
Matthew Vick (1):
igb: Add update to last_rx_timestamp in Rx rings
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 24 ++--
drivers/net/ethernet/intel/e1000e/82571.c | 30 ++---
drivers/net/ethernet/intel/e1000e/ethtool.c | 34 +++---
drivers/net/ethernet/intel/e1000e/hw.h | 34 +++---
drivers/net/ethernet/intel/e1000e/ich8lan.c | 62 +++++------
drivers/net/ethernet/intel/e1000e/netdev.c | 55 +++++----
drivers/net/ethernet/intel/e1000e/nvm.c | 1 -
drivers/net/ethernet/intel/e1000e/phy.c | 22 ++--
drivers/net/ethernet/intel/igb/e1000_82575.c | 120 +++++++++++++++++++-
drivers/net/ethernet/intel/igb/e1000_defines.h | 36 +++---
drivers/net/ethernet/intel/igb/e1000_hw.h | 2 +
drivers/net/ethernet/intel/igb/e1000_i210.h | 6 +-
drivers/net/ethernet/intel/igb/e1000_mac.c | 45 ++++++--
drivers/net/ethernet/intel/igb/e1000_phy.c | 124 +++++++++++++++++++++
drivers/net/ethernet/intel/igb/e1000_phy.h | 20 ++++
drivers/net/ethernet/intel/igb/igb.h | 14 +--
drivers/net/ethernet/intel/igb/igb_ethtool.c | 74 ++++++------
drivers/net/ethernet/intel/igb/igb_main.c | 9 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c | 23 ++++
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.h | 2 +
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 3 +
22 files changed, 526 insertions(+), 215 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 36+ messages in thread
* [net-next 01/12] e1000e: cleanup whitespace
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2013-05-21 22:03 ` Jeff Kirsher
2013-05-21 22:03 ` [net-next 02/12] e1000e: prevent warning from -Wunused-parameter Jeff Kirsher
` (11 subsequent siblings)
12 siblings, 0 replies; 36+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
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/80003es2lan.c | 24 +++++-----
drivers/net/ethernet/intel/e1000e/82571.c | 24 +++++-----
drivers/net/ethernet/intel/e1000e/ethtool.c | 34 +++++++-------
drivers/net/ethernet/intel/e1000e/hw.h | 34 +++++++-------
drivers/net/ethernet/intel/e1000e/ich8lan.c | 62 ++++++++++++-------------
drivers/net/ethernet/intel/e1000e/netdev.c | 51 ++++++++++----------
drivers/net/ethernet/intel/e1000e/nvm.c | 1 -
drivers/net/ethernet/intel/e1000e/phy.c | 22 ++++-----
8 files changed, 125 insertions(+), 127 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/80003es2lan.c b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
index b71c850..895450e 100644
--- a/drivers/net/ethernet/intel/e1000e/80003es2lan.c
+++ b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
@@ -66,17 +66,17 @@ static s32 e1000_init_phy_params_80003es2lan(struct e1000_hw *hw)
s32 ret_val;
if (hw->phy.media_type != e1000_media_type_copper) {
- phy->type = e1000_phy_none;
+ phy->type = e1000_phy_none;
return 0;
} else {
phy->ops.power_up = e1000_power_up_phy_copper;
phy->ops.power_down = e1000_power_down_phy_copper_80003es2lan;
}
- phy->addr = 1;
- phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT;
- phy->reset_delay_us = 100;
- phy->type = e1000_phy_gg82563;
+ phy->addr = 1;
+ phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT;
+ phy->reset_delay_us = 100;
+ phy->type = e1000_phy_gg82563;
/* This can only be done after all function pointers are setup. */
ret_val = e1000e_get_phy_id(hw);
@@ -98,19 +98,19 @@ static s32 e1000_init_nvm_params_80003es2lan(struct e1000_hw *hw)
u32 eecd = er32(EECD);
u16 size;
- nvm->opcode_bits = 8;
- nvm->delay_usec = 1;
+ nvm->opcode_bits = 8;
+ nvm->delay_usec = 1;
switch (nvm->override) {
case e1000_nvm_override_spi_large:
- nvm->page_size = 32;
+ nvm->page_size = 32;
nvm->address_bits = 16;
break;
case e1000_nvm_override_spi_small:
- nvm->page_size = 8;
+ nvm->page_size = 8;
nvm->address_bits = 8;
break;
default:
- nvm->page_size = eecd & E1000_EECD_ADDR_BITS ? 32 : 8;
+ nvm->page_size = eecd & E1000_EECD_ADDR_BITS ? 32 : 8;
nvm->address_bits = eecd & E1000_EECD_ADDR_BITS ? 16 : 8;
break;
}
@@ -128,7 +128,7 @@ static s32 e1000_init_nvm_params_80003es2lan(struct e1000_hw *hw)
/* EEPROM access above 16k is unsupported */
if (size > 14)
size = 14;
- nvm->word_size = 1 << size;
+ nvm->word_size = 1 << size;
return 0;
}
@@ -859,7 +859,7 @@ static void e1000_initialize_hw_bits_80003es2lan(struct e1000_hw *hw)
/* Transmit Arbitration Control 0 */
reg = er32(TARC(0));
- reg &= ~(0xF << 27); /* 30:27 */
+ reg &= ~(0xF << 27); /* 30:27 */
if (hw->phy.media_type != e1000_media_type_copper)
reg &= ~(1 << 20);
ew32(TARC(0), reg);
diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c
index 7380442..bef2f10 100644
--- a/drivers/net/ethernet/intel/e1000e/82571.c
+++ b/drivers/net/ethernet/intel/e1000e/82571.c
@@ -77,24 +77,24 @@ static s32 e1000_init_phy_params_82571(struct e1000_hw *hw)
return 0;
}
- phy->addr = 1;
- phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT;
- phy->reset_delay_us = 100;
+ phy->addr = 1;
+ phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT;
+ phy->reset_delay_us = 100;
- phy->ops.power_up = e1000_power_up_phy_copper;
- phy->ops.power_down = e1000_power_down_phy_copper_82571;
+ phy->ops.power_up = e1000_power_up_phy_copper;
+ phy->ops.power_down = e1000_power_down_phy_copper_82571;
switch (hw->mac.type) {
case e1000_82571:
case e1000_82572:
- phy->type = e1000_phy_igp_2;
+ phy->type = e1000_phy_igp_2;
break;
case e1000_82573:
- phy->type = e1000_phy_m88;
+ phy->type = e1000_phy_m88;
break;
case e1000_82574:
case e1000_82583:
- phy->type = e1000_phy_bm;
+ phy->type = e1000_phy_bm;
phy->ops.acquire = e1000_get_hw_semaphore_82574;
phy->ops.release = e1000_put_hw_semaphore_82574;
phy->ops.set_d0_lplu_state = e1000_set_d0_lplu_state_82574;
@@ -193,7 +193,7 @@ static s32 e1000_init_nvm_params_82571(struct e1000_hw *hw)
/* EEPROM access above 16k is unsupported */
if (size > 14)
size = 14;
- nvm->word_size = 1 << size;
+ nvm->word_size = 1 << size;
break;
}
@@ -339,7 +339,7 @@ static s32 e1000_init_mac_params_82571(struct e1000_hw *hw)
static s32 e1000_get_variants_82571(struct e1000_adapter *adapter)
{
struct e1000_hw *hw = &adapter->hw;
- static int global_quad_port_a; /* global port a indication */
+ static int global_quad_port_a; /* global port a indication */
struct pci_dev *pdev = adapter->pdev;
int is_port_b = er32(STATUS) & E1000_STATUS_FUNC_1;
s32 rc;
@@ -1178,7 +1178,7 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw)
/* Transmit Arbitration Control 0 */
reg = er32(TARC(0));
- reg &= ~(0xF << 27); /* 30:27 */
+ reg &= ~(0xF << 27); /* 30:27 */
switch (hw->mac.type) {
case e1000_82571:
case e1000_82572:
@@ -1390,7 +1390,7 @@ bool e1000_check_phy_82574(struct e1000_hw *hw)
ret_val = e1e_rphy(hw, E1000_RECEIVE_ERROR_COUNTER, &receive_errors);
if (ret_val)
return false;
- if (receive_errors == E1000_RECEIVE_ERROR_MAX) {
+ if (receive_errors == E1000_RECEIVE_ERROR_MAX) {
ret_val = e1e_rphy(hw, E1000_BASE1000T_STATUS, &status_1kbt);
if (ret_val)
return false;
diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c
index 7c8ca65..59c22bf 100644
--- a/drivers/net/ethernet/intel/e1000e/ethtool.c
+++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
@@ -244,7 +244,7 @@ static int e1000_set_spd_dplx(struct e1000_adapter *adapter, u32 spd, u8 dplx)
mac->autoneg = 1;
adapter->hw.phy.autoneg_advertised = ADVERTISE_1000_FULL;
break;
- case SPEED_1000 + DUPLEX_HALF: /* not supported */
+ case SPEED_1000 + DUPLEX_HALF: /* not supported */
default:
goto err_inval;
}
@@ -416,7 +416,7 @@ static void e1000_set_msglevel(struct net_device *netdev, u32 data)
static int e1000_get_regs_len(struct net_device __always_unused *netdev)
{
-#define E1000_REGS_LEN 32 /* overestimate */
+#define E1000_REGS_LEN 32 /* overestimate */
return E1000_REGS_LEN * sizeof(u32);
}
@@ -433,22 +433,22 @@ static void e1000_get_regs(struct net_device *netdev,
regs->version = (1 << 24) | (adapter->pdev->revision << 16) |
adapter->pdev->device;
- regs_buff[0] = er32(CTRL);
- regs_buff[1] = er32(STATUS);
+ regs_buff[0] = er32(CTRL);
+ regs_buff[1] = er32(STATUS);
- regs_buff[2] = er32(RCTL);
- regs_buff[3] = er32(RDLEN(0));
- regs_buff[4] = er32(RDH(0));
- regs_buff[5] = er32(RDT(0));
- regs_buff[6] = er32(RDTR);
+ regs_buff[2] = er32(RCTL);
+ regs_buff[3] = er32(RDLEN(0));
+ regs_buff[4] = er32(RDH(0));
+ regs_buff[5] = er32(RDT(0));
+ regs_buff[6] = er32(RDTR);
- regs_buff[7] = er32(TCTL);
- regs_buff[8] = er32(TDLEN(0));
- regs_buff[9] = er32(TDH(0));
+ regs_buff[7] = er32(TCTL);
+ regs_buff[8] = er32(TDLEN(0));
+ regs_buff[9] = er32(TDH(0));
regs_buff[10] = er32(TDT(0));
regs_buff[11] = er32(TIDV);
- regs_buff[12] = adapter->hw.phy.type; /* PHY type (IGP=1, M88=0) */
+ regs_buff[12] = adapter->hw.phy.type; /* PHY type (IGP=1, M88=0) */
/* ethtool doesn't use anything past this point, so all this
* code is likely legacy junk for apps that may or may not exist
@@ -1379,7 +1379,7 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter)
if (hw->phy.media_type == e1000_media_type_copper &&
hw->phy.type == e1000_phy_m88) {
- ctrl_reg |= E1000_CTRL_ILOS; /* Invert Loss of Signal */
+ ctrl_reg |= E1000_CTRL_ILOS; /* Invert Loss of Signal */
} else {
/* Set the ILOS bit on the fiber Nic if half duplex link is
* detected.
@@ -1613,7 +1613,7 @@ static int e1000_run_loopback_test(struct e1000_adapter *adapter)
ew32(TDT(0), k);
e1e_flush();
msleep(200);
- time = jiffies; /* set the start time for the receive */
+ time = jiffies; /* set the start time for the receive */
good_cnt = 0;
/* receive the sent packets */
do {
@@ -1636,11 +1636,11 @@ static int e1000_run_loopback_test(struct e1000_adapter *adapter)
*/
} while ((good_cnt < 64) && !time_after(jiffies, time + 20));
if (good_cnt != 64) {
- ret_val = 13; /* ret_val is the same as mis-compare */
+ ret_val = 13; /* ret_val is the same as mis-compare */
break;
}
if (jiffies >= (time + 20)) {
- ret_val = 14; /* error code for time out error */
+ ret_val = 14; /* error code for time out error */
break;
}
}
diff --git a/drivers/net/ethernet/intel/e1000e/hw.h b/drivers/net/ethernet/intel/e1000e/hw.h
index 84850f7..a6f903a 100644
--- a/drivers/net/ethernet/intel/e1000e/hw.h
+++ b/drivers/net/ethernet/intel/e1000e/hw.h
@@ -402,13 +402,13 @@ struct e1000_phy_stats {
struct e1000_host_mng_dhcp_cookie {
u32 signature;
- u8 status;
- u8 reserved0;
+ u8 status;
+ u8 reserved0;
u16 vlan_id;
u32 reserved1;
u16 reserved2;
- u8 reserved3;
- u8 checksum;
+ u8 reserved3;
+ u8 checksum;
};
/* Host Interface "Rev 1" */
@@ -427,8 +427,8 @@ struct e1000_host_command_info {
/* Host Interface "Rev 2" */
struct e1000_host_mng_command_header {
- u8 command_id;
- u8 checksum;
+ u8 command_id;
+ u8 checksum;
u16 reserved1;
u16 reserved2;
u16 command_length;
@@ -549,7 +549,7 @@ struct e1000_mac_info {
u32 mta_shadow[MAX_MTA_REG];
u16 rar_entry_count;
- u8 forced_speed_duplex;
+ u8 forced_speed_duplex;
bool adaptive_ifs;
bool has_fwsm;
@@ -577,7 +577,7 @@ struct e1000_phy_info {
u32 addr;
u32 id;
- u32 reset_delay_us; /* in usec */
+ u32 reset_delay_us; /* in usec */
u32 revision;
enum e1000_media_type media_type;
@@ -636,11 +636,11 @@ struct e1000_dev_spec_82571 {
};
struct e1000_dev_spec_80003es2lan {
- bool mdic_wa_enable;
+ bool mdic_wa_enable;
};
struct e1000_shadow_ram {
- u16 value;
+ u16 value;
bool modified;
};
@@ -660,17 +660,17 @@ struct e1000_hw {
void __iomem *hw_addr;
void __iomem *flash_address;
- struct e1000_mac_info mac;
- struct e1000_fc_info fc;
- struct e1000_phy_info phy;
- struct e1000_nvm_info nvm;
- struct e1000_bus_info bus;
+ struct e1000_mac_info mac;
+ struct e1000_fc_info fc;
+ struct e1000_phy_info phy;
+ struct e1000_nvm_info nvm;
+ struct e1000_bus_info bus;
struct e1000_host_mng_dhcp_cookie mng_cookie;
union {
- struct e1000_dev_spec_82571 e82571;
+ struct e1000_dev_spec_82571 e82571;
struct e1000_dev_spec_80003es2lan e80003es2lan;
- struct e1000_dev_spec_ich8lan ich8lan;
+ struct e1000_dev_spec_ich8lan ich8lan;
} dev_spec;
};
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index ad9d8f2..9dde390 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -101,12 +101,12 @@ union ich8_hws_flash_regacc {
/* ICH Flash Protected Region */
union ich8_flash_protected_range {
struct ich8_pr {
- u32 base:13; /* 0:12 Protected Range Base */
- u32 reserved1:2; /* 13:14 Reserved */
- u32 rpe:1; /* 15 Read Protection Enable */
- u32 limit:13; /* 16:28 Protected Range Limit */
- u32 reserved2:2; /* 29:30 Reserved */
- u32 wpe:1; /* 31 Write Protection Enable */
+ u32 base:13; /* 0:12 Protected Range Base */
+ u32 reserved1:2; /* 13:14 Reserved */
+ u32 rpe:1; /* 15 Read Protection Enable */
+ u32 limit:13; /* 16:28 Protected Range Limit */
+ u32 reserved2:2; /* 29:30 Reserved */
+ u32 wpe:1; /* 31 Write Protection Enable */
} range;
u32 regval;
};
@@ -362,21 +362,21 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw)
struct e1000_phy_info *phy = &hw->phy;
s32 ret_val;
- phy->addr = 1;
- phy->reset_delay_us = 100;
-
- phy->ops.set_page = e1000_set_page_igp;
- phy->ops.read_reg = e1000_read_phy_reg_hv;
- phy->ops.read_reg_locked = e1000_read_phy_reg_hv_locked;
- phy->ops.read_reg_page = e1000_read_phy_reg_page_hv;
- phy->ops.set_d0_lplu_state = e1000_set_lplu_state_pchlan;
- phy->ops.set_d3_lplu_state = e1000_set_lplu_state_pchlan;
- phy->ops.write_reg = e1000_write_phy_reg_hv;
- phy->ops.write_reg_locked = e1000_write_phy_reg_hv_locked;
- phy->ops.write_reg_page = e1000_write_phy_reg_page_hv;
- phy->ops.power_up = e1000_power_up_phy_copper;
- phy->ops.power_down = e1000_power_down_phy_copper_ich8lan;
- phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT;
+ phy->addr = 1;
+ phy->reset_delay_us = 100;
+
+ phy->ops.set_page = e1000_set_page_igp;
+ phy->ops.read_reg = e1000_read_phy_reg_hv;
+ phy->ops.read_reg_locked = e1000_read_phy_reg_hv_locked;
+ phy->ops.read_reg_page = e1000_read_phy_reg_page_hv;
+ phy->ops.set_d0_lplu_state = e1000_set_lplu_state_pchlan;
+ phy->ops.set_d3_lplu_state = e1000_set_lplu_state_pchlan;
+ phy->ops.write_reg = e1000_write_phy_reg_hv;
+ phy->ops.write_reg_locked = e1000_write_phy_reg_hv_locked;
+ phy->ops.write_reg_page = e1000_write_phy_reg_page_hv;
+ phy->ops.power_up = e1000_power_up_phy_copper;
+ phy->ops.power_down = e1000_power_down_phy_copper_ich8lan;
+ phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT;
phy->id = e1000_phy_unknown;
@@ -445,11 +445,11 @@ static s32 e1000_init_phy_params_ich8lan(struct e1000_hw *hw)
s32 ret_val;
u16 i = 0;
- phy->addr = 1;
- phy->reset_delay_us = 100;
+ phy->addr = 1;
+ phy->reset_delay_us = 100;
- phy->ops.power_up = e1000_power_up_phy_copper;
- phy->ops.power_down = e1000_power_down_phy_copper_ich8lan;
+ phy->ops.power_up = e1000_power_up_phy_copper;
+ phy->ops.power_down = e1000_power_down_phy_copper_ich8lan;
/* We may need to do this twice - once for IGP and if that fails,
* we'll set BM func pointers and try again
@@ -457,7 +457,7 @@ static s32 e1000_init_phy_params_ich8lan(struct e1000_hw *hw)
ret_val = e1000e_determine_phy_address(hw);
if (ret_val) {
phy->ops.write_reg = e1000e_write_phy_reg_bm;
- phy->ops.read_reg = e1000e_read_phy_reg_bm;
+ phy->ops.read_reg = e1000e_read_phy_reg_bm;
ret_val = e1000e_determine_phy_address(hw);
if (ret_val) {
e_dbg("Cannot determine PHY addr. Erroring out\n");
@@ -560,7 +560,7 @@ static s32 e1000_init_nvm_params_ich8lan(struct e1000_hw *hw)
/* Clear shadow ram */
for (i = 0; i < nvm->word_size; i++) {
dev_spec->shadow_ram[i].modified = false;
- dev_spec->shadow_ram[i].value = 0xFFFF;
+ dev_spec->shadow_ram[i].value = 0xFFFF;
}
return 0;
@@ -1012,7 +1012,7 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw)
hw->dev_spec.ich8lan.eee_lp_ability = 0;
if (!link)
- return 0; /* No link detected */
+ return 0; /* No link detected */
mac->get_link_status = false;
@@ -2816,7 +2816,7 @@ static s32 e1000_read_flash_data_ich8lan(struct e1000_hw *hw, u32 offset,
s32 ret_val = -E1000_ERR_NVM;
u8 count = 0;
- if (size < 1 || size > 2 || offset > ICH_FLASH_LINEAR_ADDR_MASK)
+ if (size < 1 || size > 2 || offset > ICH_FLASH_LINEAR_ADDR_MASK)
return -E1000_ERR_NVM;
flash_linear_addr = ((ICH_FLASH_LINEAR_ADDR_MASK & offset) +
@@ -2939,7 +2939,7 @@ static s32 e1000_update_nvm_checksum_ich8lan(struct e1000_hw *hw)
* write to bank 0 etc. We also need to erase the segment that
* is going to be written
*/
- ret_val = e1000_valid_nvm_bank_detect_ich8lan(hw, &bank);
+ ret_val = e1000_valid_nvm_bank_detect_ich8lan(hw, &bank);
if (ret_val) {
e_dbg("Could not detect valid bank, assuming bank 0\n");
bank = 0;
@@ -4073,7 +4073,7 @@ void e1000e_igp3_phy_powerdown_workaround_ich8lan(struct e1000_hw *hw)
{
u32 reg;
u16 data;
- u8 retry = 0;
+ u8 retry = 0;
if (hw->phy.type != e1000_phy_igp_3)
return;
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index a27e3bc..ad5f434 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -1196,7 +1196,7 @@ static bool e1000_clean_tx_irq(struct e1000_ring *tx_ring)
while ((eop_desc->upper.data & cpu_to_le32(E1000_TXD_STAT_DD)) &&
(count < tx_ring->count)) {
bool cleaned = false;
- rmb(); /* read buffer_info after eop_desc */
+ rmb(); /* read buffer_info after eop_desc */
for (; !cleaned; count++) {
tx_desc = E1000_TX_DESC(*tx_ring, i);
buffer_info = &tx_ring->buffer_info[i];
@@ -1385,7 +1385,7 @@ static bool e1000_clean_rx_irq_ps(struct e1000_ring *rx_ring, int *work_done,
skb_put(skb, l1);
goto copydone;
- } /* if */
+ } /* if */
}
for (j = 0; j < PS_PAGE_BUFFERS; j++) {
@@ -1800,7 +1800,7 @@ static irqreturn_t e1000_intr(int __always_unused irq, void *data)
u32 rctl, icr = er32(ICR);
if (!icr || test_bit(__E1000_DOWN, &adapter->state))
- return IRQ_NONE; /* Not our interrupt */
+ return IRQ_NONE; /* Not our interrupt */
/* IMS will not auto-mask if INT_ASSERTED is not set, and if it is
* not set, then the adapter didn't send an interrupt
@@ -2487,7 +2487,7 @@ static unsigned int e1000_update_itr(u16 itr_setting, int packets, int bytes)
else if ((packets < 5) && (bytes > 512))
retval = low_latency;
break;
- case low_latency: /* 50 usec aka 20000 ints/s */
+ case low_latency: /* 50 usec aka 20000 ints/s */
if (bytes > 10000) {
/* this if handles the TSO accounting */
if (bytes / packets > 8000)
@@ -2502,7 +2502,7 @@ static unsigned int e1000_update_itr(u16 itr_setting, int packets, int bytes)
retval = lowest_latency;
}
break;
- case bulk_latency: /* 250 usec aka 4000 ints/s */
+ case bulk_latency: /* 250 usec aka 4000 ints/s */
if (bytes > 25000) {
if (packets > 35)
retval = low_latency;
@@ -2554,7 +2554,7 @@ static void e1000_set_itr(struct e1000_adapter *adapter)
new_itr = 70000;
break;
case low_latency:
- new_itr = 20000; /* aka hwitr = ~200 */
+ new_itr = 20000; /* aka hwitr = ~200 */
break;
case bulk_latency:
new_itr = 4000;
@@ -3104,13 +3104,13 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter)
/* UPE and MPE will be handled by normal PROMISC logic
* in e1000e_set_rx_mode
*/
- rctl |= (E1000_RCTL_SBP | /* Receive bad packets */
- E1000_RCTL_BAM | /* RX All Bcast Pkts */
- E1000_RCTL_PMCF); /* RX All MAC Ctrl Pkts */
+ rctl |= (E1000_RCTL_SBP | /* Receive bad packets */
+ E1000_RCTL_BAM | /* RX All Bcast Pkts */
+ E1000_RCTL_PMCF); /* RX All MAC Ctrl Pkts */
- rctl &= ~(E1000_RCTL_VFE | /* Disable VLAN filter */
- E1000_RCTL_DPF | /* Allow filtered pause */
- E1000_RCTL_CFIEN); /* Dis VLAN CFIEN Filter */
+ rctl &= ~(E1000_RCTL_VFE | /* Disable VLAN filter */
+ E1000_RCTL_DPF | /* Allow filtered pause */
+ E1000_RCTL_CFIEN); /* Dis VLAN CFIEN Filter */
/* Do not mess with E1000_CTRL_VME, it affects transmit as well,
* and that breaks VLANs.
*/
@@ -3799,7 +3799,7 @@ void e1000e_reset(struct e1000_adapter *adapter)
hwm = min(((pba << 10) * 9 / 10),
((pba << 10) - adapter->max_frame_size));
- fc->high_water = hwm & E1000_FCRTH_RTH; /* 8-byte granularity */
+ fc->high_water = hwm & E1000_FCRTH_RTH; /* 8-byte granularity */
fc->low_water = fc->high_water - 8;
break;
case e1000_pchlan:
@@ -3808,10 +3808,10 @@ void e1000e_reset(struct e1000_adapter *adapter)
*/
if (adapter->netdev->mtu > ETH_DATA_LEN) {
fc->high_water = 0x3500;
- fc->low_water = 0x1500;
+ fc->low_water = 0x1500;
} else {
fc->high_water = 0x5000;
- fc->low_water = 0x3000;
+ fc->low_water = 0x3000;
}
fc->refresh_time = 0x1000;
break;
@@ -4581,7 +4581,7 @@ static void e1000e_update_stats(struct e1000_adapter *adapter)
adapter->stats.crcerrs += er32(CRCERRS);
adapter->stats.gprc += er32(GPRC);
adapter->stats.gorc += er32(GORCL);
- er32(GORCH); /* Clear gorc */
+ er32(GORCH); /* Clear gorc */
adapter->stats.bprc += er32(BPRC);
adapter->stats.mprc += er32(MPRC);
adapter->stats.roc += er32(ROC);
@@ -4614,7 +4614,7 @@ static void e1000e_update_stats(struct e1000_adapter *adapter)
adapter->stats.xofftxc += er32(XOFFTXC);
adapter->stats.gptc += er32(GPTC);
adapter->stats.gotc += er32(GOTCL);
- er32(GOTCH); /* Clear gotc */
+ er32(GOTCH); /* Clear gotc */
adapter->stats.rnbc += er32(RNBC);
adapter->stats.ruc += er32(RUC);
@@ -5106,13 +5106,13 @@ static int e1000_tso(struct e1000_ring *tx_ring, struct sk_buff *skb)
context_desc = E1000_CONTEXT_DESC(*tx_ring, i);
buffer_info = &tx_ring->buffer_info[i];
- context_desc->lower_setup.ip_fields.ipcss = ipcss;
- context_desc->lower_setup.ip_fields.ipcso = ipcso;
- context_desc->lower_setup.ip_fields.ipcse = cpu_to_le16(ipcse);
+ context_desc->lower_setup.ip_fields.ipcss = ipcss;
+ context_desc->lower_setup.ip_fields.ipcso = ipcso;
+ context_desc->lower_setup.ip_fields.ipcse = cpu_to_le16(ipcse);
context_desc->upper_setup.tcp_fields.tucss = tucss;
context_desc->upper_setup.tcp_fields.tucso = tucso;
context_desc->upper_setup.tcp_fields.tucse = 0;
- context_desc->tcp_seg_setup.fields.mss = cpu_to_le16(mss);
+ context_desc->tcp_seg_setup.fields.mss = cpu_to_le16(mss);
context_desc->tcp_seg_setup.fields.hdr_len = hdr_len;
context_desc->cmd_and_length = cpu_to_le32(cmd_length);
@@ -5363,7 +5363,7 @@ static void e1000_tx_queue(struct e1000_ring *tx_ring, int tx_flags, int count)
static int e1000_transfer_dhcp_info(struct e1000_adapter *adapter,
struct sk_buff *skb)
{
- struct e1000_hw *hw = &adapter->hw;
+ struct e1000_hw *hw = &adapter->hw;
u16 length, offset;
if (vlan_tx_tag_present(skb) &&
@@ -6259,7 +6259,7 @@ static void e1000_netpoll(struct net_device *netdev)
e1000_intr_msi(adapter->pdev->irq, netdev);
enable_irq(adapter->pdev->irq);
break;
- default: /* E1000E_INT_MODE_LEGACY */
+ default: /* E1000E_INT_MODE_LEGACY */
disable_irq(adapter->pdev->irq);
e1000_intr(adapter->pdev->irq, netdev);
enable_irq(adapter->pdev->irq);
@@ -6589,9 +6589,9 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
adapter->eee_advert = MDIO_EEE_100TX | MDIO_EEE_1000T;
/* construct the net_device struct */
- netdev->netdev_ops = &e1000e_netdev_ops;
+ netdev->netdev_ops = &e1000e_netdev_ops;
e1000e_set_ethtool_ops(netdev);
- netdev->watchdog_timeo = 5 * HZ;
+ netdev->watchdog_timeo = 5 * HZ;
netif_napi_add(netdev, &adapter->napi, e1000e_poll, 64);
strlcpy(netdev->name, pci_name(pdev), sizeof(netdev->name));
@@ -7034,7 +7034,6 @@ static void __exit e1000_exit_module(void)
}
module_exit(e1000_exit_module);
-
MODULE_AUTHOR("Intel Corporation, <linux.nics@intel.com>");
MODULE_DESCRIPTION("Intel(R) PRO/1000 Network Driver");
MODULE_LICENSE("GPL");
diff --git a/drivers/net/ethernet/intel/e1000e/nvm.c b/drivers/net/ethernet/intel/e1000e/nvm.c
index 44ddc0a..d70a039 100644
--- a/drivers/net/ethernet/intel/e1000e/nvm.c
+++ b/drivers/net/ethernet/intel/e1000e/nvm.c
@@ -117,7 +117,6 @@ static u16 e1000_shift_in_eec_bits(struct e1000_hw *hw, u16 count)
u16 data;
eecd = er32(EECD);
-
eecd &= ~(E1000_EECD_DO | E1000_EECD_DI);
data = 0;
diff --git a/drivers/net/ethernet/intel/e1000e/phy.c b/drivers/net/ethernet/intel/e1000e/phy.c
index 59c76a6..da2be59 100644
--- a/drivers/net/ethernet/intel/e1000e/phy.c
+++ b/drivers/net/ethernet/intel/e1000e/phy.c
@@ -1583,13 +1583,13 @@ s32 e1000e_check_downshift(struct e1000_hw *hw)
case e1000_phy_gg82563:
case e1000_phy_bm:
case e1000_phy_82578:
- offset = M88E1000_PHY_SPEC_STATUS;
- mask = M88E1000_PSSR_DOWNSHIFT;
+ offset = M88E1000_PHY_SPEC_STATUS;
+ mask = M88E1000_PSSR_DOWNSHIFT;
break;
case e1000_phy_igp_2:
case e1000_phy_igp_3:
- offset = IGP01E1000_PHY_LINK_HEALTH;
- mask = IGP01E1000_PLHR_SS_DOWNGRADE;
+ offset = IGP01E1000_PHY_LINK_HEALTH;
+ mask = IGP01E1000_PLHR_SS_DOWNGRADE;
break;
default:
/* speed downshift not supported */
@@ -1653,14 +1653,14 @@ s32 e1000_check_polarity_igp(struct e1000_hw *hw)
if ((data & IGP01E1000_PSSR_SPEED_MASK) ==
IGP01E1000_PSSR_SPEED_1000MBPS) {
- offset = IGP01E1000_PHY_PCS_INIT_REG;
- mask = IGP01E1000_PHY_POLARITY_MASK;
+ offset = IGP01E1000_PHY_PCS_INIT_REG;
+ mask = IGP01E1000_PHY_POLARITY_MASK;
} else {
/* This really only applies to 10Mbps since
* there is no polarity for 100Mbps (always 0).
*/
- offset = IGP01E1000_PHY_PORT_STATUS;
- mask = IGP01E1000_PSSR_POLARITY_REVERSED;
+ offset = IGP01E1000_PHY_PORT_STATUS;
+ mask = IGP01E1000_PSSR_POLARITY_REVERSED;
}
ret_val = e1e_rphy(hw, offset, &data);
@@ -1900,7 +1900,7 @@ s32 e1000e_get_cable_length_igp_2(struct e1000_hw *hw)
s32 e1000e_get_phy_info_m88(struct e1000_hw *hw)
{
struct e1000_phy_info *phy = &hw->phy;
- s32 ret_val;
+ s32 ret_val;
u16 phy_data;
bool link;
@@ -2253,7 +2253,7 @@ enum e1000_phy_type e1000e_get_phy_type_from_id(u32 phy_id)
case M88E1011_I_PHY_ID:
phy_type = e1000_phy_m88;
break;
- case IGP01E1000_I_PHY_ID: /* IGP 1 & 2 share this */
+ case IGP01E1000_I_PHY_ID: /* IGP 1 & 2 share this */
phy_type = e1000_phy_igp_2;
break;
case GG82563_E_PHY_ID:
@@ -2317,7 +2317,7 @@ s32 e1000e_determine_phy_address(struct e1000_hw *hw)
/* If phy_type is valid, break - we found our
* PHY address
*/
- if (phy_type != e1000_phy_unknown)
+ if (phy_type != e1000_phy_unknown)
return 0;
usleep_range(1000, 2000);
--
1.7.11.7
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [net-next 02/12] e1000e: prevent warning from -Wunused-parameter
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-05-21 22:03 ` [net-next 01/12] e1000e: cleanup whitespace Jeff Kirsher
@ 2013-05-21 22:03 ` Jeff Kirsher
2013-05-21 22:03 ` [net-next 03/12] e1000e: Release mutex lock only if it has been initially acquired Jeff Kirsher
` (10 subsequent siblings)
12 siblings, 0 replies; 36+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
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 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index ad5f434..77f81cb 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -2673,7 +2673,7 @@ static int e1000e_poll(struct napi_struct *napi, int weight)
}
static int e1000_vlan_rx_add_vid(struct net_device *netdev,
- __be16 proto, u16 vid)
+ __always_unused __be16 proto, u16 vid)
{
struct e1000_adapter *adapter = netdev_priv(netdev);
struct e1000_hw *hw = &adapter->hw;
@@ -2699,7 +2699,7 @@ static int e1000_vlan_rx_add_vid(struct net_device *netdev,
}
static int e1000_vlan_rx_kill_vid(struct net_device *netdev,
- __be16 proto, u16 vid)
+ __always_unused __be16 proto, u16 vid)
{
struct e1000_adapter *adapter = netdev_priv(netdev);
struct e1000_hw *hw = &adapter->hw;
--
1.7.11.7
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [net-next 03/12] e1000e: Release mutex lock only if it has been initially acquired
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-05-21 22:03 ` [net-next 01/12] e1000e: cleanup whitespace Jeff Kirsher
2013-05-21 22:03 ` [net-next 02/12] e1000e: prevent warning from -Wunused-parameter Jeff Kirsher
@ 2013-05-21 22:03 ` Jeff Kirsher
2013-05-21 22:03 ` [net-next 04/12] igb: Changed LEDs blink mechanism to include designs using cathode Jeff Kirsher
` (9 subsequent siblings)
12 siblings, 0 replies; 36+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
To: davem; +Cc: Akeem G. Abodunrin, netdev, gospo, sassmann, Jeff Kirsher
From: "Akeem G. Abodunrin" <akeem.g.abodunrin@intel.com>
This patch fixes the issue of unlocking swflag_mutex for 82574 and 82583
devices regardless of if the hw semaphore has been successfully acquired via
e1000_get_hw_semaphore_82574(). With this patch, unlocking mutex now depends
on if the hw semaphore was successfully acquired before. And 82574/82583
devices are reset regardless of whether e1000_get_hw_semaphore_82574()
returns success or failure.
Reported-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@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 | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c
index bef2f10..4c303e2 100644
--- a/drivers/net/ethernet/intel/e1000e/82571.c
+++ b/drivers/net/ethernet/intel/e1000e/82571.c
@@ -1003,8 +1003,6 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw)
default:
break;
}
- if (ret_val)
- e_dbg("Cannot acquire MDIO ownership\n");
ctrl = er32(CTRL);
@@ -1015,7 +1013,9 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw)
switch (hw->mac.type) {
case e1000_82574:
case e1000_82583:
- e1000_put_hw_semaphore_82574(hw);
+ /* Release mutex only if the hw semaphore is acquired */
+ if (!ret_val)
+ e1000_put_hw_semaphore_82574(hw);
break;
default:
break;
--
1.7.11.7
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [net-next 04/12] igb: Changed LEDs blink mechanism to include designs using cathode
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (2 preceding siblings ...)
2013-05-21 22:03 ` [net-next 03/12] e1000e: Release mutex lock only if it has been initially acquired Jeff Kirsher
@ 2013-05-21 22:03 ` Jeff Kirsher
2013-05-21 22:03 ` [net-next 05/12] igb: Add update to last_rx_timestamp in Rx rings Jeff Kirsher
` (8 subsequent siblings)
12 siblings, 0 replies; 36+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
To: davem; +Cc: Akeem G. Abodunrin, netdev, gospo, sassmann, Jeff Kirsher
From: "Akeem G. Abodunrin" <akeem.g.abodunrin@intel.com>
This patch addresses the changes needed to make LEDs work properly with
negative logic. This implementation uses LED Invert bit to reverse the
logic issue that occurred when LEDs are driven by cathode. Keep LEDs
blinking for SerDes devices. Also made changes to magic number and the
for loop to reduce number of shifts.
Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@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/igb/e1000_defines.h | 6 +++--
drivers/net/ethernet/intel/igb/e1000_mac.c | 37 +++++++++++++++++++-------
2 files changed, 32 insertions(+), 11 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/e1000_defines.h b/drivers/net/ethernet/intel/igb/e1000_defines.h
index 31a0f82..aa17649 100644
--- a/drivers/net/ethernet/intel/igb/e1000_defines.h
+++ b/drivers/net/ethernet/intel/igb/e1000_defines.h
@@ -270,8 +270,10 @@
#define AUTONEG_ADVERTISE_SPEED_DEFAULT E1000_ALL_SPEED_DUPLEX
/* LED Control */
-#define E1000_LEDCTL_LED0_MODE_SHIFT 0
-#define E1000_LEDCTL_LED0_BLINK 0x00000080
+#define E1000_LEDCTL_LED0_MODE_SHIFT 0
+#define E1000_LEDCTL_LED0_BLINK 0x00000080
+#define E1000_LEDCTL_LED0_MODE_MASK 0x0000000F
+#define E1000_LEDCTL_LED0_IVRT 0x00000040
#define E1000_LEDCTL_MODE_LED_ON 0xE
#define E1000_LEDCTL_MODE_LED_OFF 0xF
diff --git a/drivers/net/ethernet/intel/igb/e1000_mac.c b/drivers/net/ethernet/intel/igb/e1000_mac.c
index 2559d70..660b7ad 100644
--- a/drivers/net/ethernet/intel/igb/e1000_mac.c
+++ b/drivers/net/ethernet/intel/igb/e1000_mac.c
@@ -1406,15 +1406,34 @@ s32 igb_blink_led(struct e1000_hw *hw)
u32 ledctl_blink = 0;
u32 i;
- /* set the blink bit for each LED that's "on" (0x0E)
- * in ledctl_mode2
- */
- ledctl_blink = hw->mac.ledctl_mode2;
- for (i = 0; i < 4; i++)
- if (((hw->mac.ledctl_mode2 >> (i * 8)) & 0xFF) ==
- E1000_LEDCTL_MODE_LED_ON)
- ledctl_blink |= (E1000_LEDCTL_LED0_BLINK <<
- (i * 8));
+ if (hw->phy.media_type == e1000_media_type_fiber) {
+ /* always blink LED0 for PCI-E fiber */
+ ledctl_blink = E1000_LEDCTL_LED0_BLINK |
+ (E1000_LEDCTL_MODE_LED_ON << E1000_LEDCTL_LED0_MODE_SHIFT);
+ } else {
+ /* Set the blink bit for each LED that's "on" (0x0E)
+ * (or "off" if inverted) in ledctl_mode2. The blink
+ * logic in hardware only works when mode is set to "on"
+ * so it must be changed accordingly when the mode is
+ * "off" and inverted.
+ */
+ ledctl_blink = hw->mac.ledctl_mode2;
+ for (i = 0; i < 32; i += 8) {
+ u32 mode = (hw->mac.ledctl_mode2 >> i) &
+ E1000_LEDCTL_LED0_MODE_MASK;
+ u32 led_default = hw->mac.ledctl_default >> i;
+
+ if ((!(led_default & E1000_LEDCTL_LED0_IVRT) &&
+ (mode == E1000_LEDCTL_MODE_LED_ON)) ||
+ ((led_default & E1000_LEDCTL_LED0_IVRT) &&
+ (mode == E1000_LEDCTL_MODE_LED_OFF))) {
+ ledctl_blink &=
+ ~(E1000_LEDCTL_LED0_MODE_MASK << i);
+ ledctl_blink |= (E1000_LEDCTL_LED0_BLINK |
+ E1000_LEDCTL_MODE_LED_ON) << i;
+ }
+ }
+ }
wr32(E1000_LEDCTL, ledctl_blink);
--
1.7.11.7
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [net-next 05/12] igb: Add update to last_rx_timestamp in Rx rings
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (3 preceding siblings ...)
2013-05-21 22:03 ` [net-next 04/12] igb: Changed LEDs blink mechanism to include designs using cathode Jeff Kirsher
@ 2013-05-21 22:03 ` Jeff Kirsher
2013-05-21 22:03 ` [net-next 06/12] igb: Support for SFP modules discovery Jeff Kirsher
` (7 subsequent siblings)
12 siblings, 0 replies; 36+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
To: davem; +Cc: Matthew Vick, netdev, gospo, sassmann, Jeff Kirsher
From: Matthew Vick <matthew.vick@intel.com>
In order to support a more accurate check for a PTP Rx hang where the
device can no longer timestamp received packets, we need to update, per
ring, when the last Rx timestamp was. Because of how the PTP Rx hang logic
works, the current logic is valid, but properly updating the ring variable
increases the accuracy of the check.
Signed-off-by: Matthew Vick <matthew.vick@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/igb/igb.h | 9 +++++++--
drivers/net/ethernet/intel/igb/igb_main.c | 2 +-
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h
index 9d6c075..a905707 100644
--- a/drivers/net/ethernet/intel/igb/igb.h
+++ b/drivers/net/ethernet/intel/igb/igb.h
@@ -514,13 +514,18 @@ extern void igb_ptp_rx_rgtstamp(struct igb_q_vector *q_vector,
extern void igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector,
unsigned char *va,
struct sk_buff *skb);
-static inline void igb_ptp_rx_hwtstamp(struct igb_q_vector *q_vector,
+static inline void igb_ptp_rx_hwtstamp(struct igb_ring *rx_ring,
union e1000_adv_rx_desc *rx_desc,
struct sk_buff *skb)
{
if (igb_test_staterr(rx_desc, E1000_RXDADV_STAT_TS) &&
!igb_test_staterr(rx_desc, E1000_RXDADV_STAT_TSIP))
- igb_ptp_rx_rgtstamp(q_vector, skb);
+ igb_ptp_rx_rgtstamp(rx_ring->q_vector, skb);
+
+ /* Update the last_rx_timestamp timer in order to enable watchdog check
+ * for error case of latched timestamp on a dropped packet.
+ */
+ rx_ring->last_rx_timestamp = jiffies;
}
extern int igb_ptp_hwtstamp_ioctl(struct net_device *netdev,
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 64cbe0d..2c8f7e0 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -6622,7 +6622,7 @@ static void igb_process_skb_fields(struct igb_ring *rx_ring,
igb_rx_checksum(rx_ring, rx_desc, skb);
- igb_ptp_rx_hwtstamp(rx_ring->q_vector, rx_desc, skb);
+ igb_ptp_rx_hwtstamp(rx_ring, rx_desc, skb);
if ((dev->features & NETIF_F_HW_VLAN_CTAG_RX) &&
igb_test_staterr(rx_desc, E1000_RXD_STAT_VP)) {
--
1.7.11.7
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [net-next 06/12] igb: Support for SFP modules discovery
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (4 preceding siblings ...)
2013-05-21 22:03 ` [net-next 05/12] igb: Add update to last_rx_timestamp in Rx rings Jeff Kirsher
@ 2013-05-21 22:03 ` Jeff Kirsher
2013-05-21 22:03 ` [net-next 07/12] igb: SerDes flow control setting Jeff Kirsher
` (6 subsequent siblings)
12 siblings, 0 replies; 36+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
To: davem
Cc: Akeem G. Abodunrin, netdev, gospo, sassmann, Carolyn Wyborny,
Jeff Kirsher
From: "Akeem G. Abodunrin" <akeem.g.abodunrin@intel.com>
This patch adds support for SFP modules media type discovery for
SGMII, which will enable driver to detect supported external PHYs,
including 100baseFXSFP module.
Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>
Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/igb/e1000_82575.c | 120 +++++++++++++++++++++++-
drivers/net/ethernet/intel/igb/e1000_defines.h | 30 +++---
drivers/net/ethernet/intel/igb/e1000_hw.h | 2 +
drivers/net/ethernet/intel/igb/e1000_phy.c | 124 +++++++++++++++++++++++++
drivers/net/ethernet/intel/igb/e1000_phy.h | 20 ++++
drivers/net/ethernet/intel/igb/igb_ethtool.c | 34 +++----
6 files changed, 291 insertions(+), 39 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/e1000_82575.c b/drivers/net/ethernet/intel/igb/e1000_82575.c
index ff6a17c..f21a91a 100644
--- a/drivers/net/ethernet/intel/igb/e1000_82575.c
+++ b/drivers/net/ethernet/intel/igb/e1000_82575.c
@@ -401,12 +401,82 @@ static s32 igb_init_mac_params_82575(struct e1000_hw *hw)
return 0;
}
+/**
+ * igb_set_sfp_media_type_82575 - derives SFP module media type.
+ * @hw: pointer to the HW structure
+ *
+ * The media type is chosen based on SFP module.
+ * compatibility flags retrieved from SFP ID EEPROM.
+ **/
+static s32 igb_set_sfp_media_type_82575(struct e1000_hw *hw)
+{
+ s32 ret_val = E1000_ERR_CONFIG;
+ u32 ctrl_ext = 0;
+ struct e1000_dev_spec_82575 *dev_spec = &hw->dev_spec._82575;
+ struct e1000_sfp_flags *eth_flags = &dev_spec->eth_flags;
+ u8 tranceiver_type = 0;
+ s32 timeout = 3;
+
+ /* Turn I2C interface ON and power on sfp cage */
+ ctrl_ext = rd32(E1000_CTRL_EXT);
+ ctrl_ext &= ~E1000_CTRL_EXT_SDP3_DATA;
+ wr32(E1000_CTRL_EXT, ctrl_ext | E1000_CTRL_I2C_ENA);
+
+ wrfl();
+
+ /* Read SFP module data */
+ while (timeout) {
+ ret_val = igb_read_sfp_data_byte(hw,
+ E1000_I2CCMD_SFP_DATA_ADDR(E1000_SFF_IDENTIFIER_OFFSET),
+ &tranceiver_type);
+ if (ret_val == 0)
+ break;
+ msleep(100);
+ timeout--;
+ }
+ if (ret_val != 0)
+ goto out;
+
+ ret_val = igb_read_sfp_data_byte(hw,
+ E1000_I2CCMD_SFP_DATA_ADDR(E1000_SFF_ETH_FLAGS_OFFSET),
+ (u8 *)eth_flags);
+ if (ret_val != 0)
+ goto out;
+
+ /* Check if there is some SFP module plugged and powered */
+ if ((tranceiver_type == E1000_SFF_IDENTIFIER_SFP) ||
+ (tranceiver_type == E1000_SFF_IDENTIFIER_SFF)) {
+ dev_spec->module_plugged = true;
+ if (eth_flags->e1000_base_lx || eth_flags->e1000_base_sx) {
+ hw->phy.media_type = e1000_media_type_internal_serdes;
+ } else if (eth_flags->e100_base_fx) {
+ dev_spec->sgmii_active = true;
+ hw->phy.media_type = e1000_media_type_internal_serdes;
+ } else if (eth_flags->e1000_base_t) {
+ dev_spec->sgmii_active = true;
+ hw->phy.media_type = e1000_media_type_copper;
+ } else {
+ hw->phy.media_type = e1000_media_type_unknown;
+ hw_dbg("PHY module has not been recognized\n");
+ goto out;
+ }
+ } else {
+ hw->phy.media_type = e1000_media_type_unknown;
+ }
+ ret_val = 0;
+out:
+ /* Restore I2C interface setting */
+ wr32(E1000_CTRL_EXT, ctrl_ext);
+ return ret_val;
+}
+
static s32 igb_get_invariants_82575(struct e1000_hw *hw)
{
struct e1000_mac_info *mac = &hw->mac;
struct e1000_dev_spec_82575 * dev_spec = &hw->dev_spec._82575;
s32 ret_val;
u32 ctrl_ext = 0;
+ u32 link_mode = 0;
switch (hw->device_id) {
case E1000_DEV_ID_82575EB_COPPER:
@@ -470,16 +540,56 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
*/
hw->phy.media_type = e1000_media_type_copper;
dev_spec->sgmii_active = false;
+ dev_spec->module_plugged = false;
ctrl_ext = rd32(E1000_CTRL_EXT);
- switch (ctrl_ext & E1000_CTRL_EXT_LINK_MODE_MASK) {
- case E1000_CTRL_EXT_LINK_MODE_SGMII:
- dev_spec->sgmii_active = true;
- break;
+
+ link_mode = ctrl_ext & E1000_CTRL_EXT_LINK_MODE_MASK;
+ switch (link_mode) {
case E1000_CTRL_EXT_LINK_MODE_1000BASE_KX:
- case E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES:
hw->phy.media_type = e1000_media_type_internal_serdes;
break;
+ case E1000_CTRL_EXT_LINK_MODE_SGMII:
+ /* Get phy control interface type set (MDIO vs. I2C)*/
+ if (igb_sgmii_uses_mdio_82575(hw)) {
+ hw->phy.media_type = e1000_media_type_copper;
+ dev_spec->sgmii_active = true;
+ break;
+ }
+ /* fall through for I2C based SGMII */
+ case E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES:
+ /* read media type from SFP EEPROM */
+ ret_val = igb_set_sfp_media_type_82575(hw);
+ if ((ret_val != 0) ||
+ (hw->phy.media_type == e1000_media_type_unknown)) {
+ /* If media type was not identified then return media
+ * type defined by the CTRL_EXT settings.
+ */
+ hw->phy.media_type = e1000_media_type_internal_serdes;
+
+ if (link_mode == E1000_CTRL_EXT_LINK_MODE_SGMII) {
+ hw->phy.media_type = e1000_media_type_copper;
+ dev_spec->sgmii_active = true;
+ }
+
+ break;
+ }
+
+ /* do not change link mode for 100BaseFX */
+ if (dev_spec->eth_flags.e100_base_fx)
+ break;
+
+ /* change current link mode setting */
+ ctrl_ext &= ~E1000_CTRL_EXT_LINK_MODE_MASK;
+
+ if (hw->phy.media_type == e1000_media_type_copper)
+ ctrl_ext |= E1000_CTRL_EXT_LINK_MODE_SGMII;
+ else
+ ctrl_ext |= E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES;
+
+ wr32(E1000_CTRL_EXT, ctrl_ext);
+
+ break;
default:
break;
}
diff --git a/drivers/net/ethernet/intel/igb/e1000_defines.h b/drivers/net/ethernet/intel/igb/e1000_defines.h
index aa17649..aa201ab 100644
--- a/drivers/net/ethernet/intel/igb/e1000_defines.h
+++ b/drivers/net/ethernet/intel/igb/e1000_defines.h
@@ -61,20 +61,22 @@
/* Clear Interrupt timers after IMS clear */
/* packet buffer parity error detection enabled */
/* descriptor FIFO parity error detection enable */
-#define E1000_CTRL_EXT_PBA_CLR 0x80000000 /* PBA Clear */
-#define E1000_I2CCMD_REG_ADDR_SHIFT 16
-#define E1000_I2CCMD_PHY_ADDR_SHIFT 24
-#define E1000_I2CCMD_OPCODE_READ 0x08000000
-#define E1000_I2CCMD_OPCODE_WRITE 0x00000000
-#define E1000_I2CCMD_READY 0x20000000
-#define E1000_I2CCMD_ERROR 0x80000000
-#define E1000_MAX_SGMII_PHY_REG_ADDR 255
-#define E1000_I2CCMD_PHY_TIMEOUT 200
-#define E1000_IVAR_VALID 0x80
-#define E1000_GPIE_NSICR 0x00000001
-#define E1000_GPIE_MSIX_MODE 0x00000010
-#define E1000_GPIE_EIAME 0x40000000
-#define E1000_GPIE_PBA 0x80000000
+#define E1000_CTRL_EXT_PBA_CLR 0x80000000 /* PBA Clear */
+#define E1000_I2CCMD_REG_ADDR_SHIFT 16
+#define E1000_I2CCMD_PHY_ADDR_SHIFT 24
+#define E1000_I2CCMD_OPCODE_READ 0x08000000
+#define E1000_I2CCMD_OPCODE_WRITE 0x00000000
+#define E1000_I2CCMD_READY 0x20000000
+#define E1000_I2CCMD_ERROR 0x80000000
+#define E1000_I2CCMD_SFP_DATA_ADDR(a) (0x0000 + (a))
+#define E1000_I2CCMD_SFP_DIAG_ADDR(a) (0x0100 + (a))
+#define E1000_MAX_SGMII_PHY_REG_ADDR 255
+#define E1000_I2CCMD_PHY_TIMEOUT 200
+#define E1000_IVAR_VALID 0x80
+#define E1000_GPIE_NSICR 0x00000001
+#define E1000_GPIE_MSIX_MODE 0x00000010
+#define E1000_GPIE_EIAME 0x40000000
+#define E1000_GPIE_PBA 0x80000000
/* Receive Descriptor bit definitions */
#define E1000_RXD_STAT_DD 0x01 /* Descriptor Done */
diff --git a/drivers/net/ethernet/intel/igb/e1000_hw.h b/drivers/net/ethernet/intel/igb/e1000_hw.h
index 488abb2..94d7866 100644
--- a/drivers/net/ethernet/intel/igb/e1000_hw.h
+++ b/drivers/net/ethernet/intel/igb/e1000_hw.h
@@ -528,6 +528,8 @@ struct e1000_dev_spec_82575 {
bool global_device_reset;
bool eee_disable;
bool clear_semaphore_once;
+ struct e1000_sfp_flags eth_flags;
+ bool module_plugged;
};
struct e1000_hw {
diff --git a/drivers/net/ethernet/intel/igb/e1000_phy.c b/drivers/net/ethernet/intel/igb/e1000_phy.c
index 115b0da..1d6a401 100644
--- a/drivers/net/ethernet/intel/igb/e1000_phy.c
+++ b/drivers/net/ethernet/intel/igb/e1000_phy.c
@@ -341,6 +341,130 @@ s32 igb_write_phy_reg_i2c(struct e1000_hw *hw, u32 offset, u16 data)
}
/**
+ * igb_read_sfp_data_byte - Reads SFP module data.
+ * @hw: pointer to the HW structure
+ * @offset: byte location offset to be read
+ * @data: read data buffer pointer
+ *
+ * Reads one byte from SFP module data stored
+ * in SFP resided EEPROM memory or SFP diagnostic area.
+ * Function should be called with
+ * E1000_I2CCMD_SFP_DATA_ADDR(<byte offset>) for SFP module database access
+ * E1000_I2CCMD_SFP_DIAG_ADDR(<byte offset>) for SFP diagnostics parameters
+ * access
+ **/
+s32 igb_read_sfp_data_byte(struct e1000_hw *hw, u16 offset, u8 *data)
+{
+ u32 i = 0;
+ u32 i2ccmd = 0;
+ u32 data_local = 0;
+
+ if (offset > E1000_I2CCMD_SFP_DIAG_ADDR(255)) {
+ hw_dbg("I2CCMD command address exceeds upper limit\n");
+ return -E1000_ERR_PHY;
+ }
+
+ /* Set up Op-code, EEPROM Address,in the I2CCMD
+ * register. The MAC will take care of interfacing with the
+ * EEPROM to retrieve the desired data.
+ */
+ i2ccmd = ((offset << E1000_I2CCMD_REG_ADDR_SHIFT) |
+ E1000_I2CCMD_OPCODE_READ);
+
+ wr32(E1000_I2CCMD, i2ccmd);
+
+ /* Poll the ready bit to see if the I2C read completed */
+ for (i = 0; i < E1000_I2CCMD_PHY_TIMEOUT; i++) {
+ udelay(50);
+ data_local = rd32(E1000_I2CCMD);
+ if (data_local & E1000_I2CCMD_READY)
+ break;
+ }
+ if (!(data_local & E1000_I2CCMD_READY)) {
+ hw_dbg("I2CCMD Read did not complete\n");
+ return -E1000_ERR_PHY;
+ }
+ if (data_local & E1000_I2CCMD_ERROR) {
+ hw_dbg("I2CCMD Error bit set\n");
+ return -E1000_ERR_PHY;
+ }
+ *data = (u8) data_local & 0xFF;
+
+ return 0;
+}
+
+/**
+ * e1000_write_sfp_data_byte - Writes SFP module data.
+ * @hw: pointer to the HW structure
+ * @offset: byte location offset to write to
+ * @data: data to write
+ *
+ * Writes one byte to SFP module data stored
+ * in SFP resided EEPROM memory or SFP diagnostic area.
+ * Function should be called with
+ * E1000_I2CCMD_SFP_DATA_ADDR(<byte offset>) for SFP module database access
+ * E1000_I2CCMD_SFP_DIAG_ADDR(<byte offset>) for SFP diagnostics parameters
+ * access
+ **/
+s32 e1000_write_sfp_data_byte(struct e1000_hw *hw, u16 offset, u8 data)
+{
+ u32 i = 0;
+ u32 i2ccmd = 0;
+ u32 data_local = 0;
+
+ if (offset > E1000_I2CCMD_SFP_DIAG_ADDR(255)) {
+ hw_dbg("I2CCMD command address exceeds upper limit\n");
+ return -E1000_ERR_PHY;
+ }
+ /* The programming interface is 16 bits wide
+ * so we need to read the whole word first
+ * then update appropriate byte lane and write
+ * the updated word back.
+ */
+ /* Set up Op-code, EEPROM Address,in the I2CCMD
+ * register. The MAC will take care of interfacing
+ * with an EEPROM to write the data given.
+ */
+ i2ccmd = ((offset << E1000_I2CCMD_REG_ADDR_SHIFT) |
+ E1000_I2CCMD_OPCODE_READ);
+ /* Set a command to read single word */
+ wr32(E1000_I2CCMD, i2ccmd);
+ for (i = 0; i < E1000_I2CCMD_PHY_TIMEOUT; i++) {
+ udelay(50);
+ /* Poll the ready bit to see if lastly
+ * launched I2C operation completed
+ */
+ i2ccmd = rd32(E1000_I2CCMD);
+ if (i2ccmd & E1000_I2CCMD_READY) {
+ /* Check if this is READ or WRITE phase */
+ if ((i2ccmd & E1000_I2CCMD_OPCODE_READ) ==
+ E1000_I2CCMD_OPCODE_READ) {
+ /* Write the selected byte
+ * lane and update whole word
+ */
+ data_local = i2ccmd & 0xFF00;
+ data_local |= data;
+ i2ccmd = ((offset <<
+ E1000_I2CCMD_REG_ADDR_SHIFT) |
+ E1000_I2CCMD_OPCODE_WRITE | data_local);
+ wr32(E1000_I2CCMD, i2ccmd);
+ } else {
+ break;
+ }
+ }
+ }
+ if (!(i2ccmd & E1000_I2CCMD_READY)) {
+ hw_dbg("I2CCMD Write did not complete\n");
+ return -E1000_ERR_PHY;
+ }
+ if (i2ccmd & E1000_I2CCMD_ERROR) {
+ hw_dbg("I2CCMD Error bit set\n");
+ return -E1000_ERR_PHY;
+ }
+ return 0;
+}
+
+/**
* igb_read_phy_reg_igp - Read igp PHY register
* @hw: pointer to the HW structure
* @offset: register offset to be read
diff --git a/drivers/net/ethernet/intel/igb/e1000_phy.h b/drivers/net/ethernet/intel/igb/e1000_phy.h
index 784fd1c..6a0873f 100644
--- a/drivers/net/ethernet/intel/igb/e1000_phy.h
+++ b/drivers/net/ethernet/intel/igb/e1000_phy.h
@@ -69,6 +69,8 @@ s32 igb_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data);
s32 igb_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data);
s32 igb_read_phy_reg_i2c(struct e1000_hw *hw, u32 offset, u16 *data);
s32 igb_write_phy_reg_i2c(struct e1000_hw *hw, u32 offset, u16 data);
+s32 igb_read_sfp_data_byte(struct e1000_hw *hw, u16 offset, u8 *data);
+s32 e1000_write_sfp_data_byte(struct e1000_hw *hw, u16 offset, u8 data);
s32 igb_copper_link_setup_82580(struct e1000_hw *hw);
s32 igb_get_phy_info_82580(struct e1000_hw *hw);
s32 igb_phy_force_speed_duplex_82580(struct e1000_hw *hw);
@@ -157,4 +159,22 @@ s32 igb_check_polarity_m88(struct e1000_hw *hw);
#define GS40G_CS_POWER_DOWN 0x0002
#define GS40G_LINE_LB 0x4000
+/* SFP modules ID memory locations */
+#define E1000_SFF_IDENTIFIER_OFFSET 0x00
+#define E1000_SFF_IDENTIFIER_SFF 0x02
+#define E1000_SFF_IDENTIFIER_SFP 0x03
+
+#define E1000_SFF_ETH_FLAGS_OFFSET 0x06
+/* Flags for SFP modules compatible with ETH up to 1Gb */
+struct e1000_sfp_flags {
+ u8 e1000_base_sx:1;
+ u8 e1000_base_lx:1;
+ u8 e1000_base_cx:1;
+ u8 e1000_base_t:1;
+ u8 e100_base_lx:1;
+ u8 e100_base_fx:1;
+ u8 e10_base_bx10:1;
+ u8 e10_base_px:1;
+};
+
#endif
diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
index 7876240..4e54f84 100644
--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
@@ -142,6 +142,8 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
{
struct igb_adapter *adapter = netdev_priv(netdev);
struct e1000_hw *hw = &adapter->hw;
+ struct e1000_dev_spec_82575 *dev_spec = &hw->dev_spec._82575;
+ struct e1000_sfp_flags *eth_flags = &dev_spec->eth_flags;
u32 status;
if (hw->phy.media_type == e1000_media_type_copper) {
@@ -181,30 +183,22 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
ecmd->phy_address = hw->phy.addr;
ecmd->transceiver = XCVR_INTERNAL;
} else {
- ecmd->supported = (SUPPORTED_1000baseT_Full |
- SUPPORTED_100baseT_Full |
- SUPPORTED_FIBRE |
+ ecmd->supported = (SUPPORTED_FIBRE |
SUPPORTED_Autoneg |
SUPPORTED_Pause);
- if (hw->mac.type == e1000_i354)
- ecmd->supported |= SUPPORTED_2500baseX_Full;
-
ecmd->advertising = ADVERTISED_FIBRE;
-
- switch (adapter->link_speed) {
- case SPEED_2500:
- ecmd->advertising = ADVERTISED_2500baseX_Full;
- break;
- case SPEED_1000:
- ecmd->advertising = ADVERTISED_1000baseT_Full;
- break;
- case SPEED_100:
- ecmd->advertising = ADVERTISED_100baseT_Full;
- break;
- default:
- break;
+ if (hw->mac.type == e1000_i354) {
+ ecmd->supported |= SUPPORTED_2500baseX_Full;
+ ecmd->advertising |= ADVERTISED_2500baseX_Full;
+ }
+ if ((eth_flags->e1000_base_lx) || (eth_flags->e1000_base_sx)) {
+ ecmd->supported |= SUPPORTED_1000baseT_Full;
+ ecmd->advertising |= ADVERTISED_1000baseT_Full;
+ }
+ if (eth_flags->e100_base_fx) {
+ ecmd->supported |= SUPPORTED_100baseT_Full;
+ ecmd->advertising |= ADVERTISED_100baseT_Full;
}
-
if (hw->mac.autoneg == 1)
ecmd->advertising |= ADVERTISED_Autoneg;
--
1.7.11.7
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [net-next 07/12] igb: SerDes flow control setting
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (5 preceding siblings ...)
2013-05-21 22:03 ` [net-next 06/12] igb: Support for SFP modules discovery Jeff Kirsher
@ 2013-05-21 22:03 ` Jeff Kirsher
2013-05-21 22:03 ` [net-next 08/12] igb: Fix set_ethtool function to call update nvm for entire image Jeff Kirsher
` (5 subsequent siblings)
12 siblings, 0 replies; 36+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
To: davem; +Cc: Akeem G. Abodunrin, netdev, gospo, sassmann, Jeff Kirsher
From: "Akeem G. Abodunrin" <akeem.g.abodunrin@intel.com>
This path allows users to get appropriate flow control setting on SerDes
devices, based on original implementation for Copper devices.
Also, since 100baseFX does not support setting flow control, so exclude
it from the setting mechanism.
Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@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/igb/igb_ethtool.c | 34 ++++++++++++++++------------
1 file changed, 19 insertions(+), 15 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
index 4e54f84..7b25ee2 100644
--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
@@ -164,21 +164,6 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
ecmd->advertising |= hw->phy.autoneg_advertised;
}
- if (hw->mac.autoneg != 1)
- ecmd->advertising &= ~(ADVERTISED_Pause |
- ADVERTISED_Asym_Pause);
-
- if (hw->fc.requested_mode == e1000_fc_full)
- ecmd->advertising |= ADVERTISED_Pause;
- else if (hw->fc.requested_mode == e1000_fc_rx_pause)
- ecmd->advertising |= (ADVERTISED_Pause |
- ADVERTISED_Asym_Pause);
- else if (hw->fc.requested_mode == e1000_fc_tx_pause)
- ecmd->advertising |= ADVERTISED_Asym_Pause;
- else
- ecmd->advertising &= ~(ADVERTISED_Pause |
- ADVERTISED_Asym_Pause);
-
ecmd->port = PORT_TP;
ecmd->phy_address = hw->phy.addr;
ecmd->transceiver = XCVR_INTERNAL;
@@ -206,6 +191,21 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
ecmd->transceiver = XCVR_EXTERNAL;
}
+ if (hw->mac.autoneg != 1)
+ ecmd->advertising &= ~(ADVERTISED_Pause |
+ ADVERTISED_Asym_Pause);
+
+ if (hw->fc.requested_mode == e1000_fc_full)
+ ecmd->advertising |= ADVERTISED_Pause;
+ else if (hw->fc.requested_mode == e1000_fc_rx_pause)
+ ecmd->advertising |= (ADVERTISED_Pause |
+ ADVERTISED_Asym_Pause);
+ else if (hw->fc.requested_mode == e1000_fc_tx_pause)
+ ecmd->advertising |= ADVERTISED_Asym_Pause;
+ else
+ ecmd->advertising &= ~(ADVERTISED_Pause |
+ ADVERTISED_Asym_Pause);
+
status = rd32(E1000_STATUS);
if (status & E1000_STATUS_LU) {
@@ -386,6 +386,10 @@ static int igb_set_pauseparam(struct net_device *netdev,
struct e1000_hw *hw = &adapter->hw;
int retval = 0;
+ /* 100basefx does not support setting link flow control */
+ if (hw->dev_spec._82575.eth_flags.e100_base_fx)
+ return -EINVAL;
+
adapter->fc_autoneg = pause->autoneg;
while (test_and_set_bit(__IGB_RESETTING, &adapter->state))
--
1.7.11.7
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [net-next 08/12] igb: Fix set_ethtool function to call update nvm for entire image
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (6 preceding siblings ...)
2013-05-21 22:03 ` [net-next 07/12] igb: SerDes flow control setting Jeff Kirsher
@ 2013-05-21 22:03 ` Jeff Kirsher
2013-05-21 22:03 ` [net-next 09/12] igb: Fix possible panic caused by Rx traffic arrival while interface is down Jeff Kirsher
` (4 subsequent siblings)
12 siblings, 0 replies; 36+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
To: davem; +Cc: Carolyn Wyborny, netdev, gospo, sassmann, Jeff Kirsher
From: Carolyn Wyborny <carolyn.wyborny@intel.com>
This patch fixes a problem where we were only checking to update checksum
on first part of nvm image. Newer parts have multiple checksum fields and
checksum function will accommodate that as long as we call it in the first
place for any changes made.
Signed-off-by: Carolyn Wyborny <carolyn.wyborny@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/igb/igb_ethtool.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
index 7b25ee2..85fe7b5 100644
--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
@@ -811,10 +811,8 @@ static int igb_set_eeprom(struct net_device *netdev,
ret_val = hw->nvm.ops.write(hw, first_word,
last_word - first_word + 1, eeprom_buff);
- /* Update the checksum over the first part of the EEPROM if needed
- * and flush shadow RAM for 82573 controllers
- */
- if ((ret_val == 0) && ((first_word <= NVM_CHECKSUM_REG)))
+ /* Update the checksum if nvm write succeeded */
+ if (ret_val == 0)
hw->nvm.ops.update(hw);
igb_set_fw_version(adapter);
--
1.7.11.7
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [net-next 09/12] igb: Fix possible panic caused by Rx traffic arrival while interface is down
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (7 preceding siblings ...)
2013-05-21 22:03 ` [net-next 08/12] igb: Fix set_ethtool function to call update nvm for entire image Jeff Kirsher
@ 2013-05-21 22:03 ` Jeff Kirsher
2013-05-21 22:03 ` [net-next 10/12] igb: Implementation of i210/i211 LED support Jeff Kirsher
` (3 subsequent siblings)
12 siblings, 0 replies; 36+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
To: davem; +Cc: Carolyn Wyborny, netdev, gospo, sassmann, Jeff Kirsher
From: Carolyn Wyborny <carolyn.wyborny@intel.com>
This patch reorders disabling napi and irqs during igb_down.
This is done to avoid possible panic's found in other Intel drivers
when Rx traffic arrives while interface is going down.
Signed-off-by: Carolyn Wyborny <carolyn.wyborny@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/igb/igb_main.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 2c8f7e0..6a0c1b6 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -1667,10 +1667,13 @@ void igb_down(struct igb_adapter *adapter)
wrfl();
msleep(10);
- for (i = 0; i < adapter->num_q_vectors; i++)
+ igb_irq_disable(adapter);
+
+ for (i = 0; i < adapter->num_q_vectors; i++) {
+ napi_synchronize(&(adapter->q_vector[i]->napi));
napi_disable(&(adapter->q_vector[i]->napi));
+ }
- igb_irq_disable(adapter);
del_timer_sync(&adapter->watchdog_timer);
del_timer_sync(&adapter->phy_info_timer);
--
1.7.11.7
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [net-next 10/12] igb: Implementation of i210/i211 LED support
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (8 preceding siblings ...)
2013-05-21 22:03 ` [net-next 09/12] igb: Fix possible panic caused by Rx traffic arrival while interface is down Jeff Kirsher
@ 2013-05-21 22:03 ` Jeff Kirsher
2013-05-21 22:03 ` [net-next 11/12] igb: Removed unused i2c function Jeff Kirsher
` (2 subsequent siblings)
12 siblings, 0 replies; 36+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
To: davem; +Cc: Akeem G. Abodunrin, netdev, gospo, sassmann, Jeff Kirsher
From: "Akeem G. Abodunrin" <akeem.g.abodunrin@intel.com>
This patch fixes LED issues with i210 and i211 devices, due to changes in the
device registers.
Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@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/igb/e1000_i210.h | 6 +++---
drivers/net/ethernet/intel/igb/e1000_mac.c | 8 +++++++-
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/e1000_i210.h b/drivers/net/ethernet/intel/igb/e1000_i210.h
index bfc08e0..5caa332 100644
--- a/drivers/net/ethernet/intel/igb/e1000_i210.h
+++ b/drivers/net/ethernet/intel/igb/e1000_i210.h
@@ -82,11 +82,11 @@ enum E1000_INVM_STRUCTURE_TYPE {
#define E1000_INVM_MAJOR_SHIFT 4
#define ID_LED_DEFAULT_I210 ((ID_LED_OFF1_ON2 << 8) | \
- (ID_LED_OFF1_OFF2 << 4) | \
- (ID_LED_DEF1_DEF2))
+ (ID_LED_DEF1_DEF2 << 4) | \
+ (ID_LED_OFF1_OFF2))
#define ID_LED_DEFAULT_I210_SERDES ((ID_LED_DEF1_DEF2 << 8) | \
(ID_LED_DEF1_DEF2 << 4) | \
- (ID_LED_DEF1_DEF2))
+ (ID_LED_OFF1_ON2))
/* NVM offset defaults for i211 device */
#define NVM_INIT_CTRL_2_DEFAULT_I211 0X7243
diff --git a/drivers/net/ethernet/intel/igb/e1000_mac.c b/drivers/net/ethernet/intel/igb/e1000_mac.c
index 660b7ad..bab556a 100644
--- a/drivers/net/ethernet/intel/igb/e1000_mac.c
+++ b/drivers/net/ethernet/intel/igb/e1000_mac.c
@@ -1332,7 +1332,13 @@ s32 igb_id_led_init(struct e1000_hw *hw)
u16 data, i, temp;
const u16 led_mask = 0x0F;
- ret_val = igb_valid_led_default(hw, &data);
+ /* i210 and i211 devices have different LED mechanism */
+ if ((hw->mac.type == e1000_i210) ||
+ (hw->mac.type == e1000_i211))
+ ret_val = igb_valid_led_default_i210(hw, &data);
+ else
+ ret_val = igb_valid_led_default(hw, &data);
+
if (ret_val)
goto out;
--
1.7.11.7
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [net-next 11/12] igb: Removed unused i2c function
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (9 preceding siblings ...)
2013-05-21 22:03 ` [net-next 10/12] igb: Implementation of i210/i211 LED support Jeff Kirsher
@ 2013-05-21 22:03 ` Jeff Kirsher
2013-05-21 22:03 ` [net-next 12/12] IXGBE: Set the SW prio_tc values at initialization to the HW setting Jeff Kirsher
2013-05-22 20:57 ` [net-next 00/12][pull request] Intel Wired LAN Driver Updates David Miller
12 siblings, 0 replies; 36+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
To: davem; +Cc: Akeem G. Abodunrin, netdev, gospo, sassmann, Jeff Kirsher
From: "Akeem G. Abodunrin" <akeem.g.abodunrin@intel.com>
This patch removes unused i2c function definition.
Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@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/igb/igb.h | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h
index a905707..15ea8dc 100644
--- a/drivers/net/ethernet/intel/igb/igb.h
+++ b/drivers/net/ethernet/intel/igb/igb.h
@@ -322,11 +322,6 @@ static inline int igb_desc_unused(struct igb_ring *ring)
return ring->count + ring->next_to_clean - ring->next_to_use - 1;
}
-struct igb_i2c_client_list {
- struct i2c_client *client;
- struct igb_i2c_client_list *next;
-};
-
#ifdef CONFIG_IGB_HWMON
#define IGB_HWMON_TYPE_LOC 0
--
1.7.11.7
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [net-next 12/12] IXGBE: Set the SW prio_tc values at initialization to the HW setting.
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (10 preceding siblings ...)
2013-05-21 22:03 ` [net-next 11/12] igb: Removed unused i2c function Jeff Kirsher
@ 2013-05-21 22:03 ` Jeff Kirsher
2013-05-22 20:57 ` [net-next 00/12][pull request] Intel Wired LAN Driver Updates David Miller
12 siblings, 0 replies; 36+ messages in thread
From: Jeff Kirsher @ 2013-05-21 22:03 UTC (permalink / raw)
To: davem; +Cc: Amir Hanania, netdev, gospo, sassmann, Jeff Kirsher
From: Amir Hanania <amir.hanania@intel.com>
Set the SW prio_tc values at initialization to the HW setting.
Setting the SW prio_tc default values to be the HW setting by reading the
rtrup2tc register. For any TC change we need to reset the device.
This will remove the need to reset the device at the first
time we call ixgbe_dcbnl_ieee_setets.
Signed-off-by: Amir Hanania <amir.hanania@intel.com>
Tested-by: Jack Morgan<jack.morgan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c | 23 ++++++++++++++++++++++
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.h | 2 ++
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 3 +++
4 files changed, 29 insertions(+)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
index 1f2c805..e055e00 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c
@@ -380,3 +380,26 @@ s32 ixgbe_dcb_hw_ets_config(struct ixgbe_hw *hw,
}
return 0;
}
+
+static void ixgbe_dcb_read_rtrup2tc_82599(struct ixgbe_hw *hw, u8 *map)
+{
+ u32 reg, i;
+
+ reg = IXGBE_READ_REG(hw, IXGBE_RTRUP2TC);
+ for (i = 0; i < MAX_USER_PRIORITY; i++)
+ map[i] = IXGBE_RTRUP2TC_UP_MASK &
+ (reg >> (i * IXGBE_RTRUP2TC_UP_SHIFT));
+ return;
+}
+
+void ixgbe_dcb_read_rtrup2tc(struct ixgbe_hw *hw, u8 *map)
+{
+ switch (hw->mac.type) {
+ case ixgbe_mac_82599EB:
+ case ixgbe_mac_X540:
+ ixgbe_dcb_read_rtrup2tc_82599(hw, map);
+ break;
+ default:
+ break;
+ }
+}
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.h
index 1634de8..fc0a2dd 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.h
@@ -159,6 +159,8 @@ s32 ixgbe_dcb_hw_ets_config(struct ixgbe_hw *hw, u16 *refill, u16 *max,
s32 ixgbe_dcb_hw_pfc_config(struct ixgbe_hw *hw, u8 pfc_en, u8 *tc_prio);
s32 ixgbe_dcb_hw_config(struct ixgbe_hw *, struct ixgbe_dcb_config *);
+void ixgbe_dcb_read_rtrup2tc(struct ixgbe_hw *hw, u8 *map);
+
/* DCB definitions for credit calculation */
#define DCB_CREDIT_QUANTUM 64 /* DCB Quantum */
#define MAX_CREDIT_REFILL 511 /* 0x1FF * 64B = 32704B */
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.h
index a4ef076..d71d9ce 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.h
@@ -45,6 +45,7 @@
/* Receive UP2TC mapping */
#define IXGBE_RTRUP2TC_UP_SHIFT 3
+#define IXGBE_RTRUP2TC_UP_MASK 7
/* Transmit UP2TC mapping */
#define IXGBE_RTTUP2TC_UP_SHIFT 3
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
index f3d68f9..edd89a1 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
@@ -554,6 +554,9 @@ static int ixgbe_dcbnl_ieee_setets(struct net_device *dev,
for (i = 0; i < IEEE_8021QAZ_MAX_TCS; i++)
adapter->ixgbe_ieee_ets->prio_tc[i] =
IEEE_8021QAZ_MAX_TCS;
+ /* if possible update UP2TC mappings from HW */
+ ixgbe_dcb_read_rtrup2tc(&adapter->hw,
+ adapter->ixgbe_ieee_ets->prio_tc);
}
for (i = 0; i < IEEE_8021QAZ_MAX_TCS; i++) {
--
1.7.11.7
^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (11 preceding siblings ...)
2013-05-21 22:03 ` [net-next 12/12] IXGBE: Set the SW prio_tc values at initialization to the HW setting Jeff Kirsher
@ 2013-05-22 20:57 ` David Miller
12 siblings, 0 replies; 36+ messages in thread
From: David Miller @ 2013-05-22 20:57 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 21 May 2013 15:03:08 -0700
> This series contains updates to e1000e, igb and ixgbe.
>
> Bruce Allan provide 2 minor cleanups for e1000e to resolve whitespace
> issues and build warnings about unused parameters.
>
> Carolyn provides a couple of fixes for igb, one being a fix for a
> possible panic when the interface is down and receive traffic
> arrives. The second fix resolves an issue on newer parts which have
> multiple checksum fields and set_ethtool was only checking to update
> the first checksum of the NVM image.
>
> Akeem provides majority of the changes in this patch set. Akeem
> provides a fix for e1000e on an issue reported from the community to
> resolve the issue of unlocking swflag_mutex for 82574 and 82583
> devices even if the hardware semaphore was successfully acquired.
> The other patches from Akeem are against igb, where he adds support
> SFP module discovery, LED blink mechanism for devices using cathodes,
> LED support for i210/i211 parts and cleanup of a i2c function which
> was not being used.
>
> Matthew provides an update for igb to support a more accurate check
> for a PTP RX hang.
>
> Amir provides a patch for ixgbe to set the software prio_tc values at
> initialization to the hardware setting to remove the need to reset the
> device at the first time we call ixgbe_dcbnl_ieee_setets.
>
> The following are changes since commit 1e18583adccfc122b5d6415cfe4bf1826c370f4e:
> ThunderLAN: remove is_eisa flag
> and are available in the git repository at:
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Pulled, excellent merge commit message, thanks!
^ permalink raw reply [flat|nested] 36+ messages in thread
* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2013-07-28 11:41 Jeff Kirsher
2013-07-28 20:21 ` David Miller
0 siblings, 1 reply; 36+ 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] 36+ messages in thread
* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
2013-07-28 11:41 Jeff Kirsher
@ 2013-07-28 20:21 ` David Miller
2013-07-28 23:11 ` Jeff Kirsher
0 siblings, 1 reply; 36+ 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] 36+ messages in thread
* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
2013-07-28 20:21 ` David Miller
@ 2013-07-28 23:11 ` Jeff Kirsher
2013-07-29 0:20 ` David Miller
0 siblings, 1 reply; 36+ 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] 36+ 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; 36+ 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] 36+ 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; 36+ 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] 36+ 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; 36+ 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] 36+ 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; 36+ 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] 36+ 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; 36+ 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] 36+ 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; 36+ 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] 36+ messages in thread
* [net-next 00/12][pull request] Intel Wired LAN Driver Updates
@ 2013-12-10 10:22 Jeff Kirsher
2013-12-11 2:30 ` David Miller
0 siblings, 1 reply; 36+ messages in thread
From: Jeff Kirsher @ 2013-12-10 10:22 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e, igb, ixgbe and ixgbevf.
Shannon provides a couple of i40e patches, first restricts the ethtool
diag test messages by using netif_info() macro to when the hardware
bit is enabled in the message level netdev message mask. Second
provides a fix for when there is an out-of-range descriptor request.
Kamil provides a fix for i40e by updating the loopback enum types and
add information about the current loopback mode to data returned from
get_link_info().
Jesse provides a fix for i40e define name that was being mis-used.
I40E_ITR_NONE was being used as an ITRN register index by accident
because it was easily associated with the i40e Rx ITR and friends
defines, when it should be associated with the DYN_CTL register sets.
Jacob provides an update for ixgbevf Kconfig description since the VF
driver supports more than just the 82599 device.
Don and Alex provide a cleanup patch for ixgbe to make it where head,
tail, next to clean and next to use are all reset in a single function
for both Tx and Rx path. Before, the code for this was spread out over
several areas which made it difficult to track what the values were for
each of the values.
Carolyn provides two igb patches to add a media switching feature for
i354 PHY's and new Media Auto Sense for 82580 devices only.
Aaron Sierra provides a fix for igb to resolve an issue with the 64-bit
PCI addresses being truncated because the return values of
pci_resource_start() and pci_resouce_end() were being cast to unsigned
long.
Guenter Roeck provides two igb patches, first simplifies the code by
attaching the hwmon sysfs attributes to hwmon device instead of the
PCI device. Second fixes the temperature sensor attribute index by
setting it to 1 instead of 0 (per hwmon ABI).
The following are changes since commit 5824d2d16d39a9c57aa3bacf955fbd0c2134061f:
bgmac: connect to PHY and make use of PHY device
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Aaron Sierra (1):
igb: Support ports mapped in 64-bit PCI space
Carolyn Wyborny (2):
igb: Add media switching feature for i354 PHY's
igb: Add new feature Media Auto Sense for 82580 devices only
Catherine Sullivan (1):
i40e: Bump version number
Don Skidmore (1):
ixgbe: Focus config of head, tail ntc, and ntu all into a single
function
Guenter Roeck (2):
igb: Convert to use devm_hwmon_device_register_with_groups
igb: Start temperature sensor attribute index with 1
Jacob Keller (1):
ixgbevf: update Kconfig description
Jesse Brandeburg (1):
i40e: remove and fix confusing define name
Kamil Krawczyk (1):
i40e: loopback info and set loopback fix
Shannon Nelson (2):
i40e: restrict diag test messages
i40e: complain about out-of-range descriptor request
drivers/net/ethernet/intel/Kconfig | 8 +-
drivers/net/ethernet/intel/i40e/i40e_common.c | 1 +
drivers/net/ethernet/intel/i40e/i40e_diag.h | 8 +-
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 41 +++--
drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.h | 21 ++-
drivers/net/ethernet/intel/i40e/i40e_type.h | 1 +
drivers/net/ethernet/intel/igb/e1000_82575.c | 89 +++++++++
drivers/net/ethernet/intel/igb/e1000_defines.h | 16 ++
drivers/net/ethernet/intel/igb/e1000_hw.h | 3 +
drivers/net/ethernet/intel/igb/igb.h | 19 +-
drivers/net/ethernet/intel/igb/igb_ethtool.c | 4 +
drivers/net/ethernet/intel/igb/igb_hwmon.c | 108 ++++++-----
drivers/net/ethernet/intel/igb/igb_main.c | 209 +++++++++++++++++++++-
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 4 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 55 ++----
16 files changed, 453 insertions(+), 136 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [net-next 00/12][pull request] Intel Wired LAN Driver Updates
2013-12-10 10:22 Jeff Kirsher
@ 2013-12-11 2:30 ` David Miller
0 siblings, 0 replies; 36+ messages in thread
From: David Miller @ 2013-12-11 2:30 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 10 Dec 2013 02:22:29 -0800
> This series contains updates to i40e, igb, ixgbe and ixgbevf.
Looks fine, pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 36+ messages in thread
end of thread, other threads:[~2013-12-11 2:30 UTC | newest]
Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-21 22:03 [net-next 00/12][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-05-21 22:03 ` [net-next 01/12] e1000e: cleanup whitespace Jeff Kirsher
2013-05-21 22:03 ` [net-next 02/12] e1000e: prevent warning from -Wunused-parameter Jeff Kirsher
2013-05-21 22:03 ` [net-next 03/12] e1000e: Release mutex lock only if it has been initially acquired Jeff Kirsher
2013-05-21 22:03 ` [net-next 04/12] igb: Changed LEDs blink mechanism to include designs using cathode Jeff Kirsher
2013-05-21 22:03 ` [net-next 05/12] igb: Add update to last_rx_timestamp in Rx rings Jeff Kirsher
2013-05-21 22:03 ` [net-next 06/12] igb: Support for SFP modules discovery Jeff Kirsher
2013-05-21 22:03 ` [net-next 07/12] igb: SerDes flow control setting Jeff Kirsher
2013-05-21 22:03 ` [net-next 08/12] igb: Fix set_ethtool function to call update nvm for entire image Jeff Kirsher
2013-05-21 22:03 ` [net-next 09/12] igb: Fix possible panic caused by Rx traffic arrival while interface is down Jeff Kirsher
2013-05-21 22:03 ` [net-next 10/12] igb: Implementation of i210/i211 LED support Jeff Kirsher
2013-05-21 22:03 ` [net-next 11/12] igb: Removed unused i2c function Jeff Kirsher
2013-05-21 22:03 ` [net-next 12/12] IXGBE: Set the SW prio_tc values at initialization to the HW setting Jeff Kirsher
2013-05-22 20:57 ` [net-next 00/12][pull request] Intel Wired LAN Driver Updates David Miller
-- strict thread matches above, loose matches on Subject: below --
2013-12-10 10:22 Jeff Kirsher
2013-12-11 2:30 ` David Miller
2013-07-28 11:41 Jeff Kirsher
2013-07-28 20:21 ` 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
2013-03-28 9:00 Jeff Kirsher
2013-03-28 18:39 ` David Miller
2012-10-23 4:26 Jeff Kirsher
2012-10-23 6:51 ` David Miller
2012-05-10 6:46 Jeff Kirsher
2012-05-11 3:18 ` David Miller
2012-03-17 8:50 Jeff Kirsher
2012-03-17 9:06 ` David Miller
2012-01-26 7:21 Jeff Kirsher
2012-01-26 18:49 ` David Miller
2012-01-26 21:27 ` 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).