aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/intel/igb/igb_ethtool.c
AgeCommit message (Collapse)AuthorFilesLines
2013-09-04igb: Implementation to report advertised/supported link on i354 devicesAkeem G Abodunrin1-11/+15
This patch changes the way we report supported/advertised link for i354 devices, especially for 2.5 GB. Instead of reporting 2.5 GB for all i354 devices erroneously, check first, if it is 2.5 GB capable. Signed-off-by: Akeem G Abodunrin <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-08-22igb: Expose RSS indirection table for ethtoolLaura Mihaela Vasilescu1-0/+87
This patch adds the ethtool callbacks necessary to change the RETA indirection table from userspace. In order to achieve this, we add the indirection table field (rss_indir_tbl) in the board specific data structure (struct igb_adapter) to preserve the values across hardware resets. The indirection table must be initialized with default values in the following cases: * at module init time * when the number of RX queues changes. For this reason we add a new field (rss_indir_tbl_init) in igb_adapter that keeps track of the number of RX queues. Whenever the number of RX queues changes, the rss_indir_tbl is modified and initialized with default values. The rss_indir_tbl_init is updated accordingly. CC: Ben Hutchings <[email protected]> Signed-off-by: Laura Mihaela Vasilescu <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-08-22igb: Add device support for flashless SKU of i210 deviceCarolyn Wyborny1-2/+13
This patch adds the specific device id support for versions of i210 that do not have flash installed. Signed-off-by: Carolyn Wyborny <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-08-22igb: Reset the link when EEE setting changedAkeem G Abodunrin1-1/+3
This patch resets the link, if link is up - whenever users enable or disable EEE Signed-off-by: Akeem G Abodunrin <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-05-21igb: Fix set_ethtool function to call update nvm for entire imageCarolyn Wyborny1-4/+2
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 <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-05-21igb: SerDes flow control settingAkeem G. Abodunrin1-15/+19
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 <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-05-21igb: Support for SFP modules discoveryAkeem G. Abodunrin1-20/+14
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 <[email protected]> Signed-off-by: Carolyn Wyborny <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-04-24igb: SERDES loopback sigdetect bit on i210 devicesAkeem G. Abodunrin1-7/+2
This patch implements SERDES loopback configuration for i210 devices by unsetting sigdetect bit, so as to fix Ethtool loopback test failure. Old sigdetect code is also simplified to take care of all devices newer than 82580 Signed-off-by: Akeem G Abodunrin <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-04-18igb: Add support for i354 devicesCarolyn Wyborny1-17/+50
This patch adds base support for new i354 devices. Loopback test is unsupported for this release. Signed-off-by: Carolyn Wyborny <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-04-18igb: Enable EEE LP advertisementMatthew Vick1-1/+29
On EEE-capable devices, query the PHY to determine what the link partner is advertising. Signed-off-by: Matthew Vick <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-04-18igb: Fix code comments and whitespaceJeff Kirsher1-66/+71
Aligns the multi-line code comments with the desired style for the networking tree. Also cleaned up whitespace issues found during the cleanup of code comments (i.e. remove unnecessary blank lines, use tabs where possible, properly wrap lines and keep strings on a single line) Signed-off-by: Jeff Kirsher <[email protected]> Tested-by: Aaron Brown <[email protected]>
2013-04-18igb: Support to read and export SFF-8472/8079 dataAkeem G. Abodunrin1-0/+81
This patch adds support to read and export SFF-8472/8079 (SFP data) over i2c, through Ethtool. v2: Changed implementation to accommodate any offset within SFF module length boundary. Reported-by: Aurélien Guillaume <[email protected]> CC: Aurélien Guillaume <[email protected]> CC: Ben Hutchings <[email protected]> Signed-off-by: Akeem G Abodunrin <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-04-18igb: Support for 100base-fx SFPAkeem G. Abodunrin1-13/+35
This patch adds support for 100base-fx SFP and report proper link speed/duplex via Ethtool. v2: fix smatch warnings CC: Dan Carpenter <[email protected]> Signed-off-by: Akeem G Abodunrin <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-02-15igb: increase timeout for ethtool offline self-testStefan Assmann1-1/+1
On several machines with i350 adapters the ethtool offline self-test sometimes fails. This happens because link auto negotiation may take longer than the timeout of 4 seconds. Increasing the timeout by 1 seconds resolves the issue. Output from a failing i350 offline self-test: while [ 1 ]; do ethtool -t eth2 offline; done The test result is PASS The test extra info: Register test (offline) 0 Eeprom test (offline) 0 Interrupt test (offline) 0 Loopback test (offline) 0 Link test (on/offline) 0 The test result is FAIL The test extra info: Register test (offline) 0 Eeprom test (offline) 0 Interrupt test (offline) 0 Loopback test (offline) 0 Link test (on/offline) 1 The test result is PASS The test extra info: Register test (offline) 0 Eeprom test (offline) 0 Interrupt test (offline) 0 Loopback test (offline) 0 Link test (on/offline) 0 Signed-off-by: Stefan Assmann <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-01-19igb: Copyright string update to year 2013Akeem G. Abodunrin1-1/+1
This patch updates Copyright year to 2013 v2: Changed Copyright year on Makefile Signed-off-by: Akeem G. Abodunrin <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-01-18igb: Add mechanism for detecting latched hardware Rx timestampMatthew Vick1-0/+1
Add a check against possible Rx timestamp freezing in the hardware via watchdog mechanism. This situation can occur when an Rx timestamp has been latched, but the packet has been dropped because the Rx ring is full. Whenever a packet comes in that should be timestamped, the Rx timestamp gets latched into the hardware registers and we will store the jiffy value in the rx_ring. The watchdog will keep track of his own jiffy timer whenever there is no valid timestamp in the registers. If the watchdog detects a valid timestamp in the registers, meaning that no Rx packet has consumed it yet, it will check which time is most recent: the last time in the watchdog or any time in the rx_rings. If the most recent "event" was more than 5 seconds ago, it will flush the Rx timestamp and print a warning message to the syslog. Cc: Richard Cochran <[email protected]> Signed-off-by: Matthew Vick <[email protected]> Acked-by: Richard Cochran <[email protected]> Acked-by: Jacob Keller <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-01-18igb: Add timeout for PTP Tx work itemMatthew Vick1-0/+1
When transmitting a packet that must return a Tx timestamp, a work item gets scheduled to poll for the Tx timestamp being completed in hardware. Add a timeout on this work item of 15 seconds from when the driver gets the skb, after which it will stop polling. Report via stats and system log if this occurs. Cc: Richard Cochran <[email protected]> Signed-off-by: Matthew Vick <[email protected]> Acked-by: Jacob Keller <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-01-18igb: Add support for SW timestampingMatthew Vick1-0/+9
Enable SW timestamping for situations where the user may prefer it over HW timestamping or there may not be HW timestamping. Cc: Richard Cochran <[email protected]> Signed-off-by: Matthew Vick <[email protected]> Acked-by: Jacob Keller <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-12-01igb: Unset sigdetect for SERDES loopback on 82580 and i350Carolyn Wyborny1-0/+14
This patch unsets the sigdetect bit for SERDES loopback tests on 82580 and i350 parts. The loopback test can fail on these parts without this setting. Signed-off-by: Carolyn Wyborny <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-11-22igb: No longer rely on APME to determine WoL settingsMatthew Vick1-54/+2
Historically, we've been using the APME bit to determine whether a device supports wake on a given port or not. However, this bit specifies the default wake setting, rather than the wake support. Change the behavior so that we use a flag to keep the capabilities separate from the enablement while meeting customer requirements. Signed-off-by: Matthew Vick <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-11-13igb: Ethtool support to enable and disable EEEAkeem G. Abodunrin1-0/+100
This patch allows users to enable and disable EEE using Ethtool. It also allows users to get EEE settings, as supported by the device. Signed-off-by: Akeem G Abodunrin <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-11-13igb: Support for modifying UDP RSS flow hashingAkeem G. Abodunrin1-0/+181
This patch provides ability to enable or disable UDP RSS hashing. It gives users option of generating RSS hash based on the UDP source and destination ports numbers. Currently, UDP flow hash is always disabled in igb-driver. Signed-off-by: Akeem G Abodunrin <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-11-01ptp: Enable clock drivers along with associated net/PHY driversBen Hutchings1-2/+0
Where a PTP clock driver is associated with a net or PHY driver, it should be enabled automatically whenever that driver is enabled. Therefore: - Make PTP clock drivers select rather than depending on PTP_1588_CLOCK - Remove separate boolean options for PTP clock drivers that are built as part of net driver modules. (This also fixes cases where the PTP subsystem is wrongly forced to be built-in.) - Set 'default y' for PTP clock drivers that depend on specific net drivers but are built separately Signed-off-by: Ben Hutchings <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-10-19igb: Lock buffer size at 2K even on systems with larger pagesAlexander Duyck1-2/+2
This change locks us in at 2K buffers even on a system that supports larger frames. The reason for this change is to make better use of pages and to reduce the overall truesize of frames generated by igb. Signed-off-by: Alexander Duyck <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-10-19igb: Map entire page and sync half instead of mapping and unmapping half pagesAlexander Duyck1-13/+13
This change makes it so that we map the entire page and just sync half of it for the device at a time. The advantage to this approach is that we can avoid the locking on map/unmap seen in many IOMMU implementations. Signed-off-by: Alexander Duyck <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-10-19igb: Do not use header split, instead receive all frames into a single bufferAlexander Duyck1-11/+20
This change makes it so that we no longer use header split. The idea is to reduce partial cache line writes by hardware when handling frames larger then header size. We can compensate for the extra overhead of having to memcpy the header buffer by avoiding the cache misses seen by leaving an full skb allocated and sitting on the ring. Signed-off-by: Alexander Duyck <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-09-17igb: Correct PTP support query from ethtool.Matthew Vick1-24/+38
Update ethtool_get_ts_info to not report any supported functionality on 82575 and add support for V2 Sync and V2 Delay packets. In the case where CONFIG_IGB_PTP is not defined, we should be reporting default values. v2: Correct the function to return EOPNOTSUPP when there is no PTP support or the device does not support PTP. Also fix minor whitespace issue. Signed-off-by: Matthew Vick <[email protected]> Cc: Richard Cochran <[email protected]> Tested-by: Jeff Pieper <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-09-17igb: Update PTP function names/variables and locations.Matthew Vick1-17/+17
Where possible, move PTP-related functions into igb_ptp.c and update the names of functions and variables to match the established coding style in the files and specify that they are PTP-specific. Cc: Richard Cochran <[email protected]> Signed-off-by: Matthew Vick <[email protected]> Tested-by: Jeff Pieper <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-09-17igb: Tidy up wrapping for CONFIG_IGB_PTP.Matthew Vick1-2/+2
For users without CONFIG_IGB_PTP=y, we should not be compiling any PTP code into the driver. Tidy up the wrapping in igb to support this. Cc: Richard Cochran <[email protected]> Signed-off-by: Matthew Vick <[email protected]> Acked-by: Jacob Keller <[email protected]> Tested-by: Jeff Pieper <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-09-04igb: Supported and Advertised Pause FrameAkeem G. Abodunrin1-3/+18
This patch add ethtool supports for Supported and Advertised Pause Frame, based on Adapter Flow Control settings. Signed-off-by: Akeem G. Abodunrin <[email protected]> Tested-by: Jeff Pieper <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-09-04igb: Add loopback test support for i210Carolyn Wyborny1-35/+16
Early release of i210 devices had the loopback test of the ethtool self-test disabled. This patch enables the loopback test for i210 devices. Signed-off-by: Carolyn Wyborny <[email protected]> Tested-by: Jeff Pieper <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-08-22Merge branch 'master' of ↵David S. Miller1-0/+42
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next Jeff Kirsher says: ==================== This series contains updates to ethtool.h, e1000, e1000e, and igb to implement MDI/MDIx control. ==================== Signed-off-by: David S. Miller <[email protected]>
2012-08-21igb: update to allow reading/setting MDI stateJesse Brandeburg1-0/+42
This is the implementation for igb to allow forcing MDI state via ethtool, allowing users to work around some improperly behaving switches. Forcing in this driver is for now only allowed when auto-neg is enabled. Signed-off-by: Jesse Brandeburg <[email protected]> CC: Carolyn Wyborny <[email protected]> Tested-by: Aaron Brown [email protected] Signed-off-by: Jeff Kirsher <[email protected]>
2012-08-07igb: add delay to allow igb loopback test to succeed on 8086:10c9Stefan Assmann1-0/+3
Some 8086:10c9 NICs have a problem completing the ethtool loopback test. The result looks like this: ethtool -t eth1 The test result is FAIL The test extra info: Register test (offline) 0 Eeprom test (offline) 0 Interrupt test (offline) 0 Loopback test (offline) 13 Link test (on/offline) 0 A bisect clearly points to commit a95a07445ee97a2fef65befafbadcc30ca1bd145. However that seems to only trigger the bug. While adding some printk the problem disappeared, so this might be a timing issue. After some trial and error I discovered that adding a small delay just before igb_write_phy_reg() in igb_integrated_phy_loopback() allows the loopback test to succeed. I was unable to figure out the root cause so far but I expect it to be somewhere in the following executing path igb_integrated_phy_loopback ->igb_write_phy_reg_igp ->igb_write_phy_reg_mdic ->igb_acquire_phy_82575 ->igb_acquire_swfw_sync_82575 The problem could only be observed on 8086:10c9 NICs so far and not all of them show the behaviour. I did not restrict the workaround to this type of NIC as it should do no harm to other igb NICs. With the patch below the loopback test succeeded 500 times in a row using a NIC that would otherwise fail. Signed-off-by: Stefan Assmann <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Peter P Waskiewicz Jr <[email protected]>
2012-08-04igb: don't break user visible strings over multiple lines in igb_ethtool.cJesper Juhl1-12/+11
Even when they go beyond 80 characters, user visible strings should be on one line to make them easy to grep for. Signed-off-by: Jesper Juhl <[email protected]> Tested-by: Jeff Pieper <[email protected]> Signed-off-by: Peter P Waskiewicz Jr <[email protected]>
2012-08-04igb: correct hardware type (i210/i211) check in igb_loopback_test()Jesper Juhl1-1/+1
In the original code ... if ((adapter->hw.mac.type == e1000_i210) || (adapter->hw.mac.type == e1000_i210)) { ... the second check of 'adapter->hw.mac.type' is pointless since it tests for the exact same value as the first. Signed-off-by: Jesper Juhl <[email protected]> Acked-by: Carolyn Wyborny <[email protected]> Tested-by: Jeff Pieper <[email protected]> Signed-off-by: Peter P Waskiewicz Jr <[email protected]>
2012-06-20igb: Update firmware info outputCarolyn Wyborny1-10/+7
Our NVM image creation tools have evolved over the years and there are multiple versions contained in them, depending on the tool used to create them. This patch outputs the NVM versions available in ethtool -i output. rc2: (not sure why others show in log but not in the message) Added additional call to igb_set_fw_version per Community feedback. Signed-off-by: Carolyn Wyborny <[email protected]> Tested-by: Jeff Pieper <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-06-20igb: Support the get_ts_info ethtool method.Carolyn Wyborny1-0/+35
Based on original patch from Richard Cochran <[email protected]> Original patch caused build errors without CONFIG_IGB_1588_CLOCK and CONFIG_PPS enabled, since the added code was not properly wrapped. CC: Richard Cochran <[email protected]> Signed-off-by: Carolyn Wyborny <[email protected]> Tested-by: Jeff Pieper <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-05-12igb: Add Support for new i210/i211 devices.Carolyn Wyborny1-25/+78
This patch adds new initialization functions and device support for i210 and i211 devices. Signed-off-by: Carolyn Wyborny <[email protected]> Tested-by: Jeff Pieper <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-05-09igb: output register's information related to RX/TX queue[4-15]Koki Sanagi1-1/+37
Current igb outputs registers related to TX/RX queues(ex. RDT, RDH, TDT, TDH). But it thinks the number of RX/TX queues is 4. But 82576 has 16 RX/TX queues. This patch modifies igb to output the rest of the registers if the device is 82576. Signed-off-by: Koki Sanagi <[email protected]> Acked-by: Carolyn Wyborny <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2012-03-12igb: fix ethtool offline testJeff Kirsher1-0/+7
A bug was introduced with the following patch: Commmit bdbc063129e811264cd6c311d8c2d9b95de01231 Author: Eric Dumazet <[email protected]> igb: Add support for byte queue limits. The ethtool offline tests will cause a perpetual link flap, this is because the tests also need to account for byte queue limits (BQL). CC: Eric Dumazet <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]> Signed-off-by: John Fastabend <[email protected]> Tested-by: Jeff Pieper <[email protected]>
2012-01-19igb: Update Copyright on all Intel copyrighted files.Carolyn Wyborny1-1/+1
Signed-off-by: Carolyn Wyborny <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-01-05igb: add basic runtime PM supportYan, Zheng1-0/+16
Use the runtime power management framework to add basic runtime PM support to the igb driver. Namely, make the driver suspend the device when the link is off and set it up for generating a wakeup event after the link has been detected again. This feature is disabled by default. Based on e1000e's runtime PM code. Changes since v1: Don't suspend the device when shutting down the interface. Avoid race between runtime suspending and ethtool operations. Signed-off-by: Zheng Yan <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-01-02igb: Add flow control advertising to ethtool setting.Carolyn Wyborny1-2/+4
Added pause flag for bi-directional flow control advertising to ethtool settings. Signed-off-by: Carolyn Wyborny <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2011-11-14Sweep the last of the active .get_drvinfo floors under ethernet/Rick Jones1-9/+6
This round of floor sweeping converts strncpy calls in various .get_drvinfo routines to the preferred strlcpy. It also does a modicum of other cleaning in those routines. Signed-off-by: Rick Jones <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-10-11Merge git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-nextDavid S. Miller1-8/+6
2011-10-07igb: leave staterr in place and instead us a helper function to check bitsAlexander Duyck1-4/+1
Instead of doing a byte swap on the staterr bits in the Rx descriptor we can save ourselves a bit of space and some CPU time by instead just testing for the various bits out of the Rx descriptor directly. Signed-off-by: Alexander Duyck <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2011-10-07igb: Move ITR related data into work container within the q_vectorAlexander Duyck1-2/+2
This change moves information related to interrupt throttle rate configuration into a separate q_vector sub-structure called a work container. A similar change has already been made for ixgbe and this work is based off of that. Signed-off-by: Alexander Duyck <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2011-10-07igb: avoid unnecessary conversions from u16 to intAlexander Duyck1-2/+3
There are a number of places where we have values that are stored as u16 but are being converted to int unnecessarily. In order to avoid that we should convert all variables that deal with the next_to_clean, next_to_use, and count to u16 values. Signed-off-by: Alexander Duyck <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2011-10-07net: Remove unnecessary driver assignments of ethtool_ringparam fields to zeroRick Jones1-4/+0
Per comments from Ben Hutchings on a previous patch, sweep the floors a little removing unnecessary assignments of zero to fields of struct ethtool_ringparam in driver code supporting ethtool -g. Signed-off-by: Rick Jones <[email protected]> Signed-off-by: David S. Miller <[email protected]>