diff options
author | David S. Miller <davem@davemloft.net> | 2013-04-30 03:50:54 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-04-30 03:55:20 -0400 |
commit | 58717686cf7c7f5a70b3a8907ade8a3ce74306b1 (patch) | |
tree | 57f5d78524bfd5e65aa9f3943da9c1a3e6ff65b7 /drivers/net/ethernet/broadcom | |
parent | cff63a52924c6a78fa525c67d81480c85736ff3c (diff) | |
parent | 79f632c71bea0d0864d84d6a4ce78da5a9430f5b (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
drivers/net/ethernet/emulex/benet/be.h
include/net/tcp.h
net/mac802154/mac802154.h
Most conflicts were minor overlapping stuff.
The be2net driver brought in some fixes that added __vlan_put_tag
calls, which in net-next take an additional argument.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 11 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 19 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 32 |
3 files changed, 41 insertions, 21 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c index 466b512cda4f..b8fbe266ab68 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | |||
@@ -1044,6 +1044,7 @@ static irqreturn_t bnx2x_msix_fp_int(int irq, void *fp_cookie) | |||
1044 | DP(NETIF_MSG_INTR, | 1044 | DP(NETIF_MSG_INTR, |
1045 | "got an MSI-X interrupt on IDX:SB [fp %d fw_sd %d igusb %d]\n", | 1045 | "got an MSI-X interrupt on IDX:SB [fp %d fw_sd %d igusb %d]\n", |
1046 | fp->index, fp->fw_sb_id, fp->igu_sb_id); | 1046 | fp->index, fp->fw_sb_id, fp->igu_sb_id); |
1047 | |||
1047 | bnx2x_ack_sb(bp, fp->igu_sb_id, USTORM_ID, 0, IGU_INT_DISABLE, 0); | 1048 | bnx2x_ack_sb(bp, fp->igu_sb_id, USTORM_ID, 0, IGU_INT_DISABLE, 0); |
1048 | 1049 | ||
1049 | #ifdef BNX2X_STOP_ON_ERROR | 1050 | #ifdef BNX2X_STOP_ON_ERROR |
@@ -1725,7 +1726,7 @@ static int bnx2x_req_irq(struct bnx2x *bp) | |||
1725 | return request_irq(irq, bnx2x_interrupt, flags, bp->dev->name, bp->dev); | 1726 | return request_irq(irq, bnx2x_interrupt, flags, bp->dev->name, bp->dev); |
1726 | } | 1727 | } |
1727 | 1728 | ||
1728 | static int bnx2x_setup_irqs(struct bnx2x *bp) | 1729 | int bnx2x_setup_irqs(struct bnx2x *bp) |
1729 | { | 1730 | { |
1730 | int rc = 0; | 1731 | int rc = 0; |
1731 | if (bp->flags & USING_MSIX_FLAG && | 1732 | if (bp->flags & USING_MSIX_FLAG && |
@@ -2581,6 +2582,8 @@ int bnx2x_nic_load(struct bnx2x *bp, int load_mode) | |||
2581 | } | 2582 | } |
2582 | } | 2583 | } |
2583 | 2584 | ||
2585 | bnx2x_pre_irq_nic_init(bp); | ||
2586 | |||
2584 | /* Connect to IRQs */ | 2587 | /* Connect to IRQs */ |
2585 | rc = bnx2x_setup_irqs(bp); | 2588 | rc = bnx2x_setup_irqs(bp); |
2586 | if (rc) { | 2589 | if (rc) { |
@@ -2590,11 +2593,11 @@ int bnx2x_nic_load(struct bnx2x *bp, int load_mode) | |||
2590 | LOAD_ERROR_EXIT(bp, load_error2); | 2593 | LOAD_ERROR_EXIT(bp, load_error2); |
2591 | } | 2594 | } |
2592 | 2595 | ||
2593 | /* Setup NIC internals and enable interrupts */ | ||
2594 | bnx2x_nic_init(bp, load_code); | ||
2595 | |||
2596 | /* Init per-function objects */ | 2596 | /* Init per-function objects */ |
2597 | if (IS_PF(bp)) { | 2597 | if (IS_PF(bp)) { |
2598 | /* Setup NIC internals and enable interrupts */ | ||
2599 | bnx2x_post_irq_nic_init(bp, load_code); | ||
2600 | |||
2598 | bnx2x_init_bp_objs(bp); | 2601 | bnx2x_init_bp_objs(bp); |
2599 | bnx2x_iov_nic_init(bp); | 2602 | bnx2x_iov_nic_init(bp); |
2600 | 2603 | ||
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h index 54e1b149acb3..151675d66b0d 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | |||
@@ -295,16 +295,29 @@ void bnx2x_int_disable_sync(struct bnx2x *bp, int disable_hw); | |||
295 | void bnx2x_nic_init_cnic(struct bnx2x *bp); | 295 | void bnx2x_nic_init_cnic(struct bnx2x *bp); |
296 | 296 | ||
297 | /** | 297 | /** |
298 | * bnx2x_nic_init - init driver internals. | 298 | * bnx2x_preirq_nic_init - init driver internals. |
299 | * | 299 | * |
300 | * @bp: driver handle | 300 | * @bp: driver handle |
301 | * | 301 | * |
302 | * Initializes: | 302 | * Initializes: |
303 | * - rings | 303 | * - fastpath object |
304 | * - fastpath rings | ||
305 | * etc. | ||
306 | */ | ||
307 | void bnx2x_pre_irq_nic_init(struct bnx2x *bp); | ||
308 | |||
309 | /** | ||
310 | * bnx2x_postirq_nic_init - init driver internals. | ||
311 | * | ||
312 | * @bp: driver handle | ||
313 | * @load_code: COMMON, PORT or FUNCTION | ||
314 | * | ||
315 | * Initializes: | ||
304 | * - status blocks | 316 | * - status blocks |
317 | * - slowpath rings | ||
305 | * - etc. | 318 | * - etc. |
306 | */ | 319 | */ |
307 | void bnx2x_nic_init(struct bnx2x *bp, u32 load_code); | 320 | void bnx2x_post_irq_nic_init(struct bnx2x *bp, u32 load_code); |
308 | /** | 321 | /** |
309 | * bnx2x_alloc_mem_cnic - allocate driver's memory for cnic. | 322 | * bnx2x_alloc_mem_cnic - allocate driver's memory for cnic. |
310 | * | 323 | * |
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index 91a0434ce1bd..a024eec94be1 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | |||
@@ -6030,10 +6030,11 @@ void bnx2x_nic_init_cnic(struct bnx2x *bp) | |||
6030 | mmiowb(); | 6030 | mmiowb(); |
6031 | } | 6031 | } |
6032 | 6032 | ||
6033 | void bnx2x_nic_init(struct bnx2x *bp, u32 load_code) | 6033 | void bnx2x_pre_irq_nic_init(struct bnx2x *bp) |
6034 | { | 6034 | { |
6035 | int i; | 6035 | int i; |
6036 | 6036 | ||
6037 | /* Setup NIC internals and enable interrupts */ | ||
6037 | for_each_eth_queue(bp, i) | 6038 | for_each_eth_queue(bp, i) |
6038 | bnx2x_init_eth_fp(bp, i); | 6039 | bnx2x_init_eth_fp(bp, i); |
6039 | 6040 | ||
@@ -6041,19 +6042,27 @@ void bnx2x_nic_init(struct bnx2x *bp, u32 load_code) | |||
6041 | rmb(); | 6042 | rmb(); |
6042 | bnx2x_init_rx_rings(bp); | 6043 | bnx2x_init_rx_rings(bp); |
6043 | bnx2x_init_tx_rings(bp); | 6044 | bnx2x_init_tx_rings(bp); |
6045 | |||
6044 | if (IS_VF(bp)) { | 6046 | if (IS_VF(bp)) { |
6045 | bnx2x_memset_stats(bp); | 6047 | bnx2x_memset_stats(bp); |
6046 | return; | 6048 | return; |
6047 | } | 6049 | } |
6048 | 6050 | ||
6049 | /* Initialize MOD_ABS interrupts */ | 6051 | if (IS_PF(bp)) { |
6050 | bnx2x_init_mod_abs_int(bp, &bp->link_vars, bp->common.chip_id, | 6052 | /* Initialize MOD_ABS interrupts */ |
6051 | bp->common.shmem_base, bp->common.shmem2_base, | 6053 | bnx2x_init_mod_abs_int(bp, &bp->link_vars, bp->common.chip_id, |
6052 | BP_PORT(bp)); | 6054 | bp->common.shmem_base, |
6055 | bp->common.shmem2_base, BP_PORT(bp)); | ||
6056 | |||
6057 | /* initialize the default status block and sp ring */ | ||
6058 | bnx2x_init_def_sb(bp); | ||
6059 | bnx2x_update_dsb_idx(bp); | ||
6060 | bnx2x_init_sp_ring(bp); | ||
6061 | } | ||
6062 | } | ||
6053 | 6063 | ||
6054 | bnx2x_init_def_sb(bp); | 6064 | void bnx2x_post_irq_nic_init(struct bnx2x *bp, u32 load_code) |
6055 | bnx2x_update_dsb_idx(bp); | 6065 | { |
6056 | bnx2x_init_sp_ring(bp); | ||
6057 | bnx2x_init_eq_ring(bp); | 6066 | bnx2x_init_eq_ring(bp); |
6058 | bnx2x_init_internal(bp, load_code); | 6067 | bnx2x_init_internal(bp, load_code); |
6059 | bnx2x_pf_init(bp); | 6068 | bnx2x_pf_init(bp); |
@@ -6071,12 +6080,7 @@ void bnx2x_nic_init(struct bnx2x *bp, u32 load_code) | |||
6071 | AEU_INPUTS_ATTN_BITS_SPIO5); | 6080 | AEU_INPUTS_ATTN_BITS_SPIO5); |
6072 | } | 6081 | } |
6073 | 6082 | ||
6074 | /* end of nic init */ | 6083 | /* gzip service functions */ |
6075 | |||
6076 | /* | ||
6077 | * gzip service functions | ||
6078 | */ | ||
6079 | |||
6080 | static int bnx2x_gunzip_init(struct bnx2x *bp) | 6084 | static int bnx2x_gunzip_init(struct bnx2x *bp) |
6081 | { | 6085 | { |
6082 | bp->gunzip_buf = dma_alloc_coherent(&bp->pdev->dev, FW_BUF_SIZE, | 6086 | bp->gunzip_buf = dma_alloc_coherent(&bp->pdev->dev, FW_BUF_SIZE, |