linux/drivers/net/ethernet/intel/i40e
Jacob Keller cafa1fca9d i40e: fix Timesync Tx interrupt handler code
This patch fixes the PTP Tx timestamp interrupt handler. The original
code misinterpreted the interrupt handler design. We were clearing the
ena_mask bit for the Timesync interrupts. This is done to indicate that
the interrupt will be handled in a scheduled work item (instead of
immediately) and that work item is responsible for re-enabling the
interrupts. However, the Tx timestamp was being handled immediately and
nothing was ever re-enabling it. This resulted in a single interrupt
working for the life of the driver.

This patch fixes the issue by instead clearing the bit from icr0 which
is used to indicate that the interrupt was immediately handled and can
be re-enabled right away. This patch also clears up a related issue due
to writing the PRTTSYN_STAT_0 register, which was unintentionally
clearing the cause bits for Timesync interrupts.

Change-ID: I057bd70d53c302f60fab78246989cbdfa469d83b
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Acked-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Acked-by: Shannon Nelson <shannon.nelson@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-04-26 12:55:39 -04:00
..
Makefile i40e: add DCB option to Kconfig 2014-01-17 19:13:04 -08:00
i40e.h i40e: eeprom integrity check on load and empr 2014-03-28 06:53:59 -07:00
i40e_adminq.c i40evf: clean up memsets 2014-02-13 17:27:28 -05:00
i40e_adminq.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_adminq_cmd.h i40e: updates to AdminQ interface 2014-01-16 17:20:51 -08:00
i40e_alloc.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_common.c i40e/i40evf: Remove addressof casts to same type 2014-03-31 15:48:02 -07:00
i40e_dcb.c i40e: Fix static checker warning 2014-03-06 18:41:50 -08:00
i40e_dcb.h i40e: implement DCB support infastructure 2014-01-17 19:13:04 -08:00
i40e_dcb_nl.c i40e: add DCB and DCBNL support 2014-01-17 19:13:04 -08:00
i40e_debugfs.c i40e: check for netdev before debugfs use 2014-03-28 06:54:00 -07:00
i40e_diag.c i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_diag.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_ethtool.c i40e: Remove casts of pointer to same type 2014-03-31 15:48:02 -07:00
i40e_hmc.c i40e: use assignment instead of memcpy 2014-01-10 16:30:31 -08:00
i40e_hmc.h i40e: Cleanup Doxygen warnings 2014-01-10 16:30:33 -08:00
i40e_lan_hmc.c i40e: trivial cleanup 2014-01-14 18:56:00 -08:00
i40e_lan_hmc.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_main.c i40e: fix Timesync Tx interrupt handler code 2014-04-26 12:55:39 -04:00
i40e_nvm.c e1000e/igb/ixgbe/i40e: fix message terminations 2014-04-18 18:41:24 -07:00
i40e_osdep.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_prototype.h i40e/i40evf: i40e implementation for skb_set_hash 2014-03-06 18:41:31 -08:00
i40e_ptp.c e1000e/igb/ixgbe/i40e: fix message terminations 2014-04-18 18:41:24 -07:00
i40e_register.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_status.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_txrx.c e1000e/igb/ixgbe/i40e: fix message terminations 2014-04-18 18:41:24 -07:00
i40e_txrx.h i40e: enable PTP 2014-01-10 16:33:39 -08:00
i40e_type.h i40e/i40evf: Add an FD message level 2014-03-28 06:54:00 -07:00
i40e_virtchnl.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_virtchnl_pf.c i40e: potential array underflow in i40e_vc_process_vf_msg() 2014-03-19 17:17:22 -07:00
i40e_virtchnl_pf.h i40e: support VF link state ndo 2014-03-19 13:46:39 -07:00