diff options
author | Ganesh Venkatesan <ganesh.venkatesan@intel.com> | 2005-01-08 02:27:45 -0500 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-01-08 02:27:45 -0500 |
commit | b6243c8d98ec7e56ce50f9ed0449961bfeb2072e (patch) | |
tree | ff96a3b4cedb360514b2469f31ecc71f5ea3a00b /drivers | |
parent | 2688a0d5d1abd8c17fab648488f4d0776c0e64d2 (diff) | |
download | history-b6243c8d98ec7e56ce50f9ed0449961bfeb2072e.tar.gz |
[PATCH] ixgb: Remove support for RAIDC interrupt mitigation
Signed-off-by: Ganesh Venkatesan <ganesh.venkatesan@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ixgb/ixgb.h | 1 | ||||
-rw-r--r-- | drivers/net/ixgb/ixgb_main.c | 58 | ||||
-rw-r--r-- | drivers/net/ixgb/ixgb_param.c | 21 |
3 files changed, 4 insertions, 76 deletions
diff --git a/drivers/net/ixgb/ixgb.h b/drivers/net/ixgb/ixgb.h index 37f023415b5af2..2d689b97532c3e 100644 --- a/drivers/net/ixgb/ixgb.h +++ b/drivers/net/ixgb/ixgb.h @@ -177,7 +177,6 @@ struct ixgb_adapter { uint64_t hw_csum_rx_error; uint64_t hw_csum_rx_good; uint32_t rx_int_delay; - boolean_t raidc; boolean_t rx_csum; /* OS defined structs */ diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c index ce92ec4a1b9b91..7e8b0a5ee4c3dc 100644 --- a/drivers/net/ixgb/ixgb_main.c +++ b/drivers/net/ixgb/ixgb_main.c @@ -828,43 +828,6 @@ static void ixgb_configure_rx(struct ixgb_adapter *adapter) | RXDCTL_PTHRESH_DEFAULT << IXGB_RXDCTL_PTHRESH_SHIFT; IXGB_WRITE_REG(hw, RXDCTL, rxdctl); - if (adapter->raidc) { - uint32_t raidc; - uint8_t poll_threshold; - - /* Poll every rx_int_delay period, if RBD exists - * Receive Backlog Detection is set to <threshold> - * Rx Descriptors - * max is 0x3F == set to poll when 504 RxDesc left - * min is 0 */ - - /* polling times are 1 == 0.8192us - 2 == 1.6384us - 3 == 3.2768us etc - ... - 511 == 418 us - */ -#define IXGB_RAIDC_POLL_DEFAULT 122 /* set to poll every ~100 us under load - also known as 10000 interrupts / sec */ - - /* divide this by 2^3 (8) to get a register size count */ - poll_threshold = ((adapter->rx_ring.count - 1) >> 3); - /* poll at half of that size */ - poll_threshold >>= 1; - /* make sure its not bigger than our max */ - poll_threshold &= 0x3F; - - raidc = IXGB_RAIDC_EN | /* turn on raidc style moderation */ - IXGB_RAIDC_RXT_GATE | /* don't interrupt with rxt0 while - in RBD mode (polling) */ - (IXGB_RAIDC_POLL_DEFAULT << IXGB_RAIDC_POLL_SHIFT) | - /* this sets the regular "min interrupt delay" */ - (adapter->rx_int_delay << IXGB_RAIDC_DELAY_SHIFT) | - poll_threshold; - - IXGB_WRITE_REG(hw, RAIDC, raidc); - } - /* Enable Receive Checksum Offload for TCP and UDP */ if (adapter->rx_csum == TRUE) { rxcsum = IXGB_READ_REG(hw, RXCSUM); @@ -1613,7 +1576,7 @@ static irqreturn_t ixgb_intr(int irq, void *data, struct pt_regs *regs) struct net_device *netdev = data; struct ixgb_adapter *adapter = netdev->priv; struct ixgb_hw *hw = &adapter->hw; - uint32_t icr = IXGB_READ_REG(&adapter->hw, ICR); + uint32_t icr = IXGB_READ_REG(hw, ICR); #ifndef CONFIG_IXGB_NAPI unsigned int i; #endif @@ -1632,7 +1595,7 @@ static irqreturn_t ixgb_intr(int irq, void *data, struct pt_regs *regs) */ atomic_inc(&adapter->irq_sem); - IXGB_WRITE_REG(hw, IMC, ~0); + IXGB_WRITE_REG(&adapter->hw, IMC, ~0); __netif_rx_schedule(netdev); } #else @@ -1644,16 +1607,7 @@ static irqreturn_t ixgb_intr(int irq, void *data, struct pt_regs *regs) if(!ixgb_clean_rx_irq(adapter) & !ixgb_clean_tx_irq(adapter)) break; - /* if RAIDC:EN == 1 and ICR:RXDMT0 == 1, we need to - * set IMS:RXDMT0 to 1 to restart the RBD timer (POLL) - */ - if ((icr & IXGB_INT_RXDMT0) && adapter->raidc) { - /* ready the timer by writing the clear reg */ - IXGB_WRITE_REG(hw, IMC, IXGB_INT_RXDMT0); - /* now restart it, h/w will decide if its necessary */ - IXGB_WRITE_REG(hw, IMS, IXGB_INT_RXDMT0); - } -#endif +#endif return IRQ_HANDLED; } @@ -1949,11 +1903,7 @@ static void ixgb_alloc_rx_buffers(struct ixgb_adapter *adapter) buffer_info = &rx_ring->buffer_info[i]; cleancount = IXGB_DESC_UNUSED(rx_ring); - /* lessen this to 4 if we're - * in the midst of raidc and rbd is occuring - * because we don't want to delay returning buffers when low - */ - num_group_tail_writes = adapter->raidc ? 4 : IXGB_RX_BUFFER_WRITE; + num_group_tail_writes = IXGB_RX_BUFFER_WRITE; /* leave one descriptor unused */ while (--cleancount > 0) { diff --git a/drivers/net/ixgb/ixgb_param.c b/drivers/net/ixgb/ixgb_param.c index 5ed8967a8aaeed..0391b25f21808c 100644 --- a/drivers/net/ixgb/ixgb_param.c +++ b/drivers/net/ixgb/ixgb_param.c @@ -121,15 +121,6 @@ IXGB_PARAM(TxIntDelay, "Transmit Interrupt Delay"); IXGB_PARAM(RxIntDelay, "Receive Interrupt Delay"); -/* Receive Interrupt Moderation enable (uses RxIntDelay too) - * - * Valid Range: 0,1 - * - * Default Value: 1 - */ - -IXGB_PARAM(RAIDC, "Disable or enable Receive Interrupt Moderation"); - /* Receive Flow control high threshold (when we send a pause frame) * (FCRTH) * @@ -437,18 +428,6 @@ void __devinit ixgb_check_options(struct ixgb_adapter *adapter) adapter->rx_int_delay = RxIntDelay[bd]; ixgb_validate_option(&adapter->rx_int_delay, &opt); } - { /* Receive Interrupt Moderation */ - struct ixgb_option opt = { - .type = enable_option, - .name = "Advanced Receive Interrupt Moderation", - .err = "defaulting to Enabled", - .def = OPTION_ENABLED - }; - int raidc = RAIDC[bd]; - - ixgb_validate_option(&raidc, &opt); - adapter->raidc = raidc; - } { /* Transmit Interrupt Delay */ struct ixgb_option opt = { .type = range_option, |