• J
    i40e: don't enable PTP support on more than one PF per port · fe88bda9
    Jacob Keller 提交于
    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: NJacob Keller <jacob.e.keller@intel.com>
    Tested-by: NJim Young <jamesx.m.young@intel.com>
    Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
    fe88bda9
i40e_ethtool.c 65.9 KB