aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorYuval Mintz <yuvalmin@broadcom.com>2012-12-01 23:05:53 -0500
committerDavid S. Miller <davem@davemloft.net>2012-12-02 20:23:00 -0500
commitb343d0025b08a1ef543e3cabf8b753d84b938d48 (patch)
tree9ba01299d1c125b81b3c98ad74557cf764a747ba /drivers/net
parent9b341bb1d8e6bc9f00044bd9d66824505b127e4a (diff)
bnx2x: mask CPL_OF interrupt
Unmasked interrupt caused "FATAL HW block attention set2 0x20" messages to erroneously appear, as the associated interrupt is fully recoverable. Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index 5ff0bcb70b08..983a0c86ee33 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -6059,6 +6059,8 @@ static int bnx2x_int_mem_test(struct bnx2x *bp)
6059 6059
6060static void bnx2x_enable_blocks_attention(struct bnx2x *bp) 6060static void bnx2x_enable_blocks_attention(struct bnx2x *bp)
6061{ 6061{
6062 u32 val;
6063
6062 REG_WR(bp, PXP_REG_PXP_INT_MASK_0, 0); 6064 REG_WR(bp, PXP_REG_PXP_INT_MASK_0, 0);
6063 if (!CHIP_IS_E1x(bp)) 6065 if (!CHIP_IS_E1x(bp))
6064 REG_WR(bp, PXP_REG_PXP_INT_MASK_1, 0x40); 6066 REG_WR(bp, PXP_REG_PXP_INT_MASK_1, 0x40);
@@ -6092,17 +6094,14 @@ static void bnx2x_enable_blocks_attention(struct bnx2x *bp)
6092/* REG_WR(bp, CSEM_REG_CSEM_INT_MASK_0, 0); */ 6094/* REG_WR(bp, CSEM_REG_CSEM_INT_MASK_0, 0); */
6093/* REG_WR(bp, CSEM_REG_CSEM_INT_MASK_1, 0); */ 6095/* REG_WR(bp, CSEM_REG_CSEM_INT_MASK_1, 0); */
6094 6096
6095 if (CHIP_REV_IS_FPGA(bp)) 6097 val = PXP2_PXP2_INT_MASK_0_REG_PGL_CPL_AFT |
6096 REG_WR(bp, PXP2_REG_PXP2_INT_MASK_0, 0x580000); 6098 PXP2_PXP2_INT_MASK_0_REG_PGL_CPL_OF |
6097 else if (!CHIP_IS_E1x(bp)) 6099 PXP2_PXP2_INT_MASK_0_REG_PGL_PCIE_ATTN;
6098 REG_WR(bp, PXP2_REG_PXP2_INT_MASK_0, 6100 if (!CHIP_IS_E1x(bp))
6099 (PXP2_PXP2_INT_MASK_0_REG_PGL_CPL_OF 6101 val |= PXP2_PXP2_INT_MASK_0_REG_PGL_READ_BLOCKED |
6100 | PXP2_PXP2_INT_MASK_0_REG_PGL_CPL_AFT 6102 PXP2_PXP2_INT_MASK_0_REG_PGL_WRITE_BLOCKED;
6101 | PXP2_PXP2_INT_MASK_0_REG_PGL_PCIE_ATTN 6103 REG_WR(bp, PXP2_REG_PXP2_INT_MASK_0, val);
6102 | PXP2_PXP2_INT_MASK_0_REG_PGL_READ_BLOCKED 6104
6103 | PXP2_PXP2_INT_MASK_0_REG_PGL_WRITE_BLOCKED));
6104 else
6105 REG_WR(bp, PXP2_REG_PXP2_INT_MASK_0, 0x480000);
6106 REG_WR(bp, TSDM_REG_TSDM_INT_MASK_0, 0); 6105 REG_WR(bp, TSDM_REG_TSDM_INT_MASK_0, 0);
6107 REG_WR(bp, TSDM_REG_TSDM_INT_MASK_1, 0); 6106 REG_WR(bp, TSDM_REG_TSDM_INT_MASK_1, 0);
6108 REG_WR(bp, TCM_REG_TCM_INT_MASK, 0); 6107 REG_WR(bp, TCM_REG_TCM_INT_MASK, 0);