android_kernel_oneplus_msm8998/drivers/net/ethernet/intel/i40e
Jacob Keller fe88bda9e6 i40e: don't enable PTP support on more than one PF per port
Resolve an issue related to images with multiple PFs per physical
port. We cannot fully support 1588 PTP features, since only one port
should control (ie: write) the registers at a time. Doing so can cause
interference of functionality.

It may be possible to partially implement the API for only those
features without side effects. However, this at minimum means non
controlling PFs lose Tx timestamps, frequency atunement, and possibly
SYSTIME adjustment. There may be further impact I did not discover.
Since the API in the kernel expects these features to work, it is
simpler and less dangerous to just disable PTP features on all PFs not
identified as the controlling PF in PRTTSYN_CTL0.PF_ID.

This change also removes the warning printed when hwtstaml IOCTL is
called on the wrong PF. This is actually meaningless now, since only one
PF per port will support it. In addition, the ethtool get_ts_info IOCTL
was updated so that only the controlling port will even indicate support
(so as not to confuse users).

The overall downside is complete loss of functionality on non
controlling PF, vs the possible gain of partial support. The biggest
factor for choosing this approach is simplicity and ensuring that the
main PF will work. There could easily be other portions of the 1588
logic with side effects I am not aware, and the reduced functionality
that might be made available is significantly less useful. In addition,
the API does not allow for proper indication of why particular features
are not supported. These reasons are enough to decide for the simpler
approach to resolving this issue.

Change-ID: If4696bae686fc18aef6552b67dd417213d987c16
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Jim Young <jamesx.m.young@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2014-12-06 03:47:15 -08:00
..
i40e.h i40e: Modify Tx disable wait flow in case of DCB reconfiguration 2014-11-18 01:09:17 -08:00
i40e_adminq.c i40e: remove useless debug noise 2014-12-06 03:27:16 -08:00
i40e_adminq.h i40e: don't overload fields 2014-11-20 14:56:42 -08:00
i40e_adminq_cmd.h i40e: Add support to firmware CEE DCBX mode 2014-11-18 01:09:02 -08:00
i40e_alloc.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_common.c i40e: Add support to firmware CEE DCBX mode 2014-11-18 01:09:02 -08:00
i40e_dcb.c i40e: Check for LLDP AdminStatus before querying DCBX 2014-11-18 01:09:06 -08:00
i40e_dcb.h i40e: Add support to firmware CEE DCBX mode 2014-11-18 01:09:02 -08:00
i40e_dcb_nl.c i40e: Add support to firmware CEE DCBX mode 2014-11-18 01:09:02 -08:00
i40e_debugfs.c i40e: allow various base numbers in debugfs aq commands 2014-12-06 03:33:59 -08:00
i40e_diag.c i40e: Rework register diagnostic 2014-06-05 01:27:46 -07:00
i40e_diag.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_ethtool.c i40e: don't enable PTP support on more than one PF per port 2014-12-06 03:47:15 -08:00
i40e_fcoe.c i40e: Add support to firmware CEE DCBX mode 2014-11-18 01:09:02 -08:00
i40e_fcoe.h i40e: adds FCoE code to the i40e driver 2014-08-02 19:41:13 -07:00
i40e_hmc.c i40e/i40evf: Fix code to accommodate i40e_register.h changes 2014-06-08 02:01:23 -07:00
i40e_hmc.h i40e/i40evf: Force a shifted '1' to be unsigned 2014-07-02 19:02:19 -07:00
i40e_lan_hmc.c i40e: remove unnecessary break after goto 2014-07-13 23:45:24 -07:00
i40e_lan_hmc.h i40e/i40evf: Big endian fixes for handling HMC 2014-06-26 04:44:57 -07:00
i40e_main.c i40e: Add description to misc and fd interrupts 2014-12-06 03:40:40 -08:00
i40e_nvm.c i40e: fix sparse non static symbol warning 2014-08-12 00:34:18 -07:00
i40e_osdep.h i40e: Adds FCoE related code to i40e core driver 2014-08-02 19:41:13 -07:00
i40e_prototype.h i40e: Check for LLDP AdminStatus before querying DCBX 2014-11-18 01:09:06 -08:00
i40e_ptp.c i40e: don't enable PTP support on more than one PF per port 2014-12-06 03:47:15 -08:00
i40e_register.h i40e/i40evf: i40e_register.h update 2014-06-19 20:22:02 -07:00
i40e_status.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_txrx.c i40e: skb->xmit_more support 2014-10-08 16:03:32 -04:00
i40e_txrx.h i40e: clean up throttle rate code 2014-11-11 06:01:48 -08:00
i40e_type.h i40e: Check for LLDP AdminStatus before querying DCBX 2014-11-18 01:09:06 -08:00
i40e_virtchnl.h i40e/i40evf: Clean up a few things 2014-06-08 02:01:26 -07:00
i40e_virtchnl_pf.c i40e: re-enable VFLR interrupt sooner 2014-11-18 01:08:33 -08:00
i40e_virtchnl_pf.h i40e: Change wording to be more consistent 2014-09-04 01:38:29 -07:00
Makefile i40e: adds FCoE to build and updates its documentation 2014-08-02 19:41:13 -07:00