• Jacob Keller's avatar
    ice: unify logic for programming PFINT_TSYN_MSK · 7d606a1e
    Jacob Keller authored
    Commit d938a8cc ("ice: Auxbus devices & driver for E822 TS") modified
    how Tx timestamps are handled for E822 devices. On these devices, only the
    clock owner handles reading the Tx timestamp data from firmware. To do
    this, the PFINT_TSYN_MSK register is modified from the default value to one
    which enables reacting to a Tx timestamp on all PHY ports.
    
    The driver currently programs PFINT_TSYN_MSK in different places depending
    on whether the port is the clock owner or not. For the clock owner, the
    PFINT_TSYN_MSK value is programmed during ice_ptp_init_owner just before
    calling ice_ptp_tx_ena_intr to program the PHY ports.
    
    For the non-clock owner ports, the PFINT_TSYN_MSK is programmed during
    ice_ptp_init_port.
    
    If a large enough device reset occurs, the PFINT_TSYN_MSK register will be
    reset to the default value in which only the PHY associated directly with
    the PF will cause the Tx timestamp interrupt to trigger.
    
    The driver lacks logic to reprogram the PFINT_TSYN_MSK register after a
    device reset. For the E822 device, this results in the PF no longer
    responding to interrupts for other ports. This results in failure to
    deliver Tx timestamps to user space applications.
    
    Rename ice_ptp_configure_tx_tstamp to ice_ptp_cfg_tx_interrupt, and unify
    the logic for programming PFINT_TSYN_MSK and PFINT_OICR_ENA into one place.
    This function will program both registers according to the combination of
    user configuration and device requirements.
    
    This ensures that PFINT_TSYN_MSK is always restored when we configure the
    Tx timestamp interrupt.
    
    Fixes: d938a8cc
    
     ("ice: Auxbus devices & driver for E822 TS")
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Reviewed-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
    Reviewed-by: default avatarSimon Horman <horms@kernel.org>
    Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
    7d606a1e
ice_ptp.c 83.1 KB