bnx2x: Change coalescing granularity to 4us
authorEilon Greenstein <eilong@broadcom.com>
Mon, 9 Nov 2009 06:09:35 +0000 (06:09 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 11 Nov 2009 04:54:36 +0000 (20:54 -0800)
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bnx2x.h
drivers/net/bnx2x_main.c

index c3b32f71e02490b53960afc99964cf4057e96b36..928942b74ce67bfe2a7c8cb4110074e3bd57a3da 100644 (file)
@@ -1191,7 +1191,7 @@ static inline u32 reg_poll(struct bnx2x *bp, u32 reg, u32 expected, int ms,
 #define MAX_SP_DESC_CNT                        (SP_DESC_CNT - 1)
 
 
-#define BNX2X_BTR                      3
+#define BNX2X_BTR                      1
 #define MAX_SPQ_PENDING                        8
 
 
index ed56973794e8e0b0c9221a26b3f352d6df69cfe6..08e6a35cfc207f722ced8d85e842865b1f21854a 100644 (file)
@@ -4928,21 +4928,21 @@ static void bnx2x_update_coalesce(struct bnx2x *bp)
                REG_WR8(bp, BAR_CSTRORM_INTMEM +
                        CSTORM_SB_HC_TIMEOUT_U_OFFSET(port, sb_id,
                                                      U_SB_ETH_RX_CQ_INDEX),
-                       bp->rx_ticks/12);
+                       bp->rx_ticks/(4 * BNX2X_BTR));
                REG_WR16(bp, BAR_CSTRORM_INTMEM +
                         CSTORM_SB_HC_DISABLE_U_OFFSET(port, sb_id,
                                                       U_SB_ETH_RX_CQ_INDEX),
-                        (bp->rx_ticks/12) ? 0 : 1);
+                        (bp->rx_ticks/(4 * BNX2X_BTR)) ? 0 : 1);
 
                /* HC_INDEX_C_ETH_TX_CQ_CONS */
                REG_WR8(bp, BAR_CSTRORM_INTMEM +
                        CSTORM_SB_HC_TIMEOUT_C_OFFSET(port, sb_id,
                                                      C_SB_ETH_TX_CQ_INDEX),
-                       bp->tx_ticks/12);
+                       bp->tx_ticks/(4 * BNX2X_BTR));
                REG_WR16(bp, BAR_CSTRORM_INTMEM +
                         CSTORM_SB_HC_DISABLE_C_OFFSET(port, sb_id,
                                                       C_SB_ETH_TX_CQ_INDEX),
-                        (bp->tx_ticks/12) ? 0 : 1);
+                        (bp->tx_ticks/(4 * BNX2X_BTR)) ? 0 : 1);
        }
 }
 
@@ -9016,8 +9016,9 @@ static int __devinit bnx2x_init_bp(struct bnx2x *bp)
 
        bp->rx_csum = 1;
 
-       bp->tx_ticks = 50;
-       bp->rx_ticks = 25;
+       /* make sure that the numbers are in the right granularity */
+       bp->tx_ticks = (50 / (4 * BNX2X_BTR)) * (4 * BNX2X_BTR);
+       bp->rx_ticks = (25 / (4 * BNX2X_BTR)) * (4 * BNX2X_BTR);
 
        timer_interval = (CHIP_REV_IS_SLOW(bp) ? 5*HZ : HZ);
        bp->current_interval = (poll ? poll : timer_interval);