cxgb4: Ignore MPS_TX_INT_CAUSE[Bubble] for T6
authorGanesh Goudar <ganeshgr@chelsio.com>
Mon, 4 Sep 2017 05:55:34 +0000 (11:25 +0530)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 Sep 2017 21:27:50 +0000 (14:27 -0700)
MPS_TX_INT_CAUSE[Bubble] is a normal condition for T6, hence
ignore this interrupt for T6.

Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
Signed-off-by: Casey Leedom <leedom@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c

index 42df1d8c7674302873be7af64efb6d3aa2888a0e..b65ce26ff72f821d20f243c9f0eec06be54521b8 100644 (file)
@@ -4548,6 +4548,18 @@ static void mps_intr_handler(struct adapter *adapter)
                { FRMERR_F, "MPS Tx framing error", -1, 1 },
                { 0 }
        };
+       static const struct intr_info t6_mps_tx_intr_info[] = {
+               { TPFIFO_V(TPFIFO_M), "MPS Tx TP FIFO parity error", -1, 1 },
+               { NCSIFIFO_F, "MPS Tx NC-SI FIFO parity error", -1, 1 },
+               { TXDATAFIFO_V(TXDATAFIFO_M), "MPS Tx data FIFO parity error",
+                 -1, 1 },
+               { TXDESCFIFO_V(TXDESCFIFO_M), "MPS Tx desc FIFO parity error",
+                 -1, 1 },
+               /* MPS Tx Bubble is normal for T6 */
+               { SECNTERR_F, "MPS Tx SOP/EOP error", -1, 1 },
+               { FRMERR_F, "MPS Tx framing error", -1, 1 },
+               { 0 }
+       };
        static const struct intr_info mps_trc_intr_info[] = {
                { FILTMEM_V(FILTMEM_M), "MPS TRC filter parity error", -1, 1 },
                { PKTFIFO_V(PKTFIFO_M), "MPS TRC packet FIFO parity error",
@@ -4579,7 +4591,9 @@ static void mps_intr_handler(struct adapter *adapter)
        fat = t4_handle_intr_status(adapter, MPS_RX_PERR_INT_CAUSE_A,
                                    mps_rx_intr_info) +
              t4_handle_intr_status(adapter, MPS_TX_INT_CAUSE_A,
-                                   mps_tx_intr_info) +
+                                   is_t6(adapter->params.chip)
+                                   ? t6_mps_tx_intr_info
+                                   : mps_tx_intr_info) +
              t4_handle_intr_status(adapter, MPS_TRC_INT_CAUSE_A,
                                    mps_trc_intr_info) +
              t4_handle_intr_status(adapter, MPS_STAT_PERR_INT_CAUSE_SRAM_A,