diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2010-02-17 02:00:41 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-17 22:21:31 +0100 |
commit | 26b39276ca5ff4dbf3c07704e34fd820fd97decf (patch) | |
tree | 5233028d2dda0553d9d83310b02b001a35aac098 /drivers/net/igb/igb_main.c | |
parent | ipv6.h: reassembly: replace calculated magic number with multiplication (diff) | |
download | linux-26b39276ca5ff4dbf3c07704e34fd820fd97decf.tar.xz linux-26b39276ca5ff4dbf3c07704e34fd820fd97decf.zip |
igb: remove unecessary q_vector declarations and remove itr_shift
This change removes the use of itr_shift since a mac type call can be
used just as easily to identify the only HW that needs to have the itr
shifted.
In addition it removes two unecessary declarations of a q_vector
pointer from the initialization path.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/igb/igb_main.c')
-rw-r--r-- | drivers/net/igb/igb_main.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index 4fe7b0ba6310..677b5f5ab49c 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c @@ -504,6 +504,12 @@ static void igb_assign_vector(struct igb_q_vector *q_vector, int msix_vector) BUG(); break; } + + /* add q_vector eims value to global eims_enable_mask */ + adapter->eims_enable_mask |= q_vector->eims_value; + + /* configure q_vector to set itr on first interrupt */ + q_vector->set_itr = 1; } /** @@ -561,11 +567,8 @@ static void igb_configure_msix(struct igb_adapter *adapter) adapter->eims_enable_mask |= adapter->eims_other; - for (i = 0; i < adapter->num_q_vectors; i++) { - struct igb_q_vector *q_vector = adapter->q_vector[i]; - igb_assign_vector(q_vector, vector++); - adapter->eims_enable_mask |= q_vector->eims_value; - } + for (i = 0; i < adapter->num_q_vectors; i++) + igb_assign_vector(adapter->q_vector[i], vector++); wrfl(); } @@ -756,10 +759,8 @@ static int igb_alloc_q_vectors(struct igb_adapter *adapter) if (!q_vector) goto err_out; q_vector->adapter = adapter; - q_vector->itr_shift = (hw->mac.type == e1000_82575) ? 16 : 0; q_vector->itr_register = hw->hw_addr + E1000_EITR(0); q_vector->itr_val = IGB_START_ITR; - q_vector->set_itr = 1; netif_napi_add(adapter->netdev, &q_vector->napi, igb_poll, 64); adapter->q_vector[v_idx] = q_vector; } @@ -4142,6 +4143,7 @@ static irqreturn_t igb_msix_other(int irq, void *data) static void igb_write_itr(struct igb_q_vector *q_vector) { + struct igb_adapter *adapter = q_vector->adapter; u32 itr_val = q_vector->itr_val & 0x7FFC; if (!q_vector->set_itr) @@ -4150,8 +4152,8 @@ static void igb_write_itr(struct igb_q_vector *q_vector) if (!itr_val) itr_val = 0x4; - if (q_vector->itr_shift) - itr_val |= itr_val << q_vector->itr_shift; + if (adapter->hw.mac.type == e1000_82575) + itr_val |= itr_val << 16; else itr_val |= 0x8000000; @@ -4228,9 +4230,8 @@ static void igb_setup_dca(struct igb_adapter *adapter) wr32(E1000_DCA_CTRL, E1000_DCA_CTRL_DCA_MODE_CB2); for (i = 0; i < adapter->num_q_vectors; i++) { - struct igb_q_vector *q_vector = adapter->q_vector[i]; - q_vector->cpu = -1; - igb_update_dca(q_vector); + adapter->q_vector[i]->cpu = -1; + igb_update_dca(adapter->q_vector[i]); } } |