diff options
| author | Michael Chan <mchan@broadcom.com> | 2008-01-30 00:34:08 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2008-01-31 22:27:13 -0500 |
| commit | 6f743ca052575a26439d796249d9e7740b8192d7 (patch) | |
| tree | 1fb81426131ff21d4201b565e9d007c4fbc2686c /drivers | |
| parent | f3014c0cb60ec15a0a2542cbfae7e8d888aa5cf8 (diff) | |
[BNX2]: Refine tx coalescing setup.
Make the tx coalescing setup code independent of the MSIX vector.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/net/bnx2.c | 9 | ||||
| -rw-r--r-- | drivers/net/bnx2.h | 9 |
2 files changed, 15 insertions, 3 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index 353c73fa3433..8d0022d0cc45 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c | |||
| @@ -4438,18 +4438,21 @@ bnx2_init_chip(struct bnx2 *bp) | |||
| 4438 | } | 4438 | } |
| 4439 | 4439 | ||
| 4440 | if (bp->flags & BNX2_FLAG_USING_MSIX) { | 4440 | if (bp->flags & BNX2_FLAG_USING_MSIX) { |
| 4441 | u32 base = ((BNX2_TX_VEC - 1) * BNX2_HC_SB_CONFIG_SIZE) + | ||
| 4442 | BNX2_HC_SB_CONFIG_1; | ||
| 4443 | |||
| 4441 | REG_WR(bp, BNX2_HC_MSIX_BIT_VECTOR, | 4444 | REG_WR(bp, BNX2_HC_MSIX_BIT_VECTOR, |
| 4442 | BNX2_HC_MSIX_BIT_VECTOR_VAL); | 4445 | BNX2_HC_MSIX_BIT_VECTOR_VAL); |
| 4443 | 4446 | ||
| 4444 | REG_WR(bp, BNX2_HC_SB_CONFIG_1, | 4447 | REG_WR(bp, base, |
| 4445 | BNX2_HC_SB_CONFIG_1_TX_TMR_MODE | | 4448 | BNX2_HC_SB_CONFIG_1_TX_TMR_MODE | |
| 4446 | BNX2_HC_SB_CONFIG_1_ONE_SHOT); | 4449 | BNX2_HC_SB_CONFIG_1_ONE_SHOT); |
| 4447 | 4450 | ||
| 4448 | REG_WR(bp, BNX2_HC_TX_QUICK_CONS_TRIP_1, | 4451 | REG_WR(bp, base + BNX2_HC_TX_QUICK_CONS_TRIP_OFF, |
| 4449 | (bp->tx_quick_cons_trip_int << 16) | | 4452 | (bp->tx_quick_cons_trip_int << 16) | |
| 4450 | bp->tx_quick_cons_trip); | 4453 | bp->tx_quick_cons_trip); |
| 4451 | 4454 | ||
| 4452 | REG_WR(bp, BNX2_HC_TX_TICKS_1, | 4455 | REG_WR(bp, base + BNX2_HC_TX_TICKS_OFF, |
| 4453 | (bp->tx_ticks_int << 16) | bp->tx_ticks); | 4456 | (bp->tx_ticks_int << 16) | bp->tx_ticks); |
| 4454 | 4457 | ||
| 4455 | val |= BNX2_HC_CONFIG_SB_ADDR_INC_128B; | 4458 | val |= BNX2_HC_CONFIG_SB_ADDR_INC_128B; |
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h index 059e1159647f..7a1eff445052 100644 --- a/drivers/net/bnx2.h +++ b/drivers/net/bnx2.h | |||
| @@ -5510,6 +5510,15 @@ struct l2_fhdr { | |||
| 5510 | #define BNX2_HC_PERIODIC_TICKS_8_HC_PERIODIC_TICKS (0xffffL<<0) | 5510 | #define BNX2_HC_PERIODIC_TICKS_8_HC_PERIODIC_TICKS (0xffffL<<0) |
| 5511 | #define BNX2_HC_PERIODIC_TICKS_8_HC_INT_PERIODIC_TICKS (0xffffL<<16) | 5511 | #define BNX2_HC_PERIODIC_TICKS_8_HC_INT_PERIODIC_TICKS (0xffffL<<16) |
| 5512 | 5512 | ||
| 5513 | #define BNX2_HC_SB_CONFIG_SIZE (BNX2_HC_SB_CONFIG_2 - BNX2_HC_SB_CONFIG_1) | ||
| 5514 | #define BNX2_HC_COMP_PROD_TRIP_OFF (BNX2_HC_COMP_PROD_TRIP_1 - \ | ||
| 5515 | BNX2_HC_SB_CONFIG_1) | ||
| 5516 | #define BNX2_HC_COM_TICKS_OFF (BNX2_HC_COM_TICKS_1 - BNX2_HC_SB_CONFIG_1) | ||
| 5517 | #define BNX2_HC_CMD_TICKS_OFF (BNX2_HC_CMD_TICKS_1 - BNX2_HC_SB_CONFIG_1) | ||
| 5518 | #define BNX2_HC_TX_QUICK_CONS_TRIP_OFF (BNX2_HC_TX_QUICK_CONS_TRIP_1 - \ | ||
| 5519 | BNX2_HC_SB_CONFIG_1) | ||
| 5520 | #define BNX2_HC_TX_TICKS_OFF (BNX2_HC_TX_TICKS_1 - BNX2_HC_SB_CONFIG_1) | ||
| 5521 | |||
| 5513 | 5522 | ||
| 5514 | /* | 5523 | /* |
| 5515 | * txp_reg definition | 5524 | * txp_reg definition |
