aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/ice/ice.h
diff options
context:
space:
mode:
authorBrett Creeley <brett.creeley@intel.com>2018-09-19 20:23:19 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2018-10-02 10:19:30 -0400
commit9e4ab4c29a62d2ccbf4be42707669be2f42d391c (patch)
tree54327122a0cddba67d650678f355f808e4966844 /drivers/net/ethernet/intel/ice/ice.h
parentca4929b6df7c729c375c486c0ca53decb0eae9f5 (diff)
ice: Add support for dynamic interrupt moderation
Currently there is no support for dynamic interrupt moderation. This patch adds some initial code to support this. The following changes were made: 1. Currently we are using multiple members to store the interrupt granularity (itr_gran_25/50/100/200). This is not necessary because we can query the device to determine what the interrupt granularity should be set to, done by a new function ice_get_itr_intrl_gran. 2. Added intrl to ice_q_vector structure to support interrupt rate limiting. 3. Added the function ice_intrl_usecs_to_reg for converting to a value in usecs that the device understands. 4. Added call to write to the GLINT_RATE register. Disable intrl by default for now. 5. Changed rx/tx_itr_setting to itr_setting because having both seems redundant because a ring is either Tx or Rx. 6. Initialize itr_setting for both Tx/Rx rings in ice_vsi_alloc_rings() Signed-off-by: Brett Creeley <brett.creeley@intel.com> Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice.h')
-rw-r--r--drivers/net/ethernet/intel/ice/ice.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice.h b/drivers/net/ethernet/intel/ice/ice.h
index fc6bc1233f10..0b269c470343 100644
--- a/drivers/net/ethernet/intel/ice/ice.h
+++ b/drivers/net/ethernet/intel/ice/ice.h
@@ -230,6 +230,10 @@ struct ice_q_vector {
230 u8 num_ring_tx; /* total number of tx rings in vector */ 230 u8 num_ring_tx; /* total number of tx rings in vector */
231 u8 num_ring_rx; /* total number of rx rings in vector */ 231 u8 num_ring_rx; /* total number of rx rings in vector */
232 char name[ICE_INT_NAME_STR_LEN]; 232 char name[ICE_INT_NAME_STR_LEN];
233 /* in usecs, need to use ice_intrl_to_usecs_reg() before writing this
234 * value to the device
235 */
236 u8 intrl;
233} ____cacheline_internodealigned_in_smp; 237} ____cacheline_internodealigned_in_smp;
234 238
235enum ice_pf_flags { 239enum ice_pf_flags {