net: ll_temac: Improve error message on error IRQ
authorEsben Haabendal <esben@geanix.com>
Tue, 7 May 2019 06:42:57 +0000 (08:42 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 7 May 2019 19:24:45 +0000 (12:24 -0700)
The channel status register value can be very helpful when debugging
SDMA problems.

Signed-off-by: Esben Haabendal <esben@geanix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/xilinx/ll_temac_main.c

index f389a81..997475c 100644 (file)
@@ -886,8 +886,10 @@ static irqreturn_t ll_temac_tx_irq(int irq, void *_ndev)
 
        if (status & (IRQ_COAL | IRQ_DLY))
                temac_start_xmit_done(lp->ndev);
-       if (status & 0x080)
-               dev_err(&ndev->dev, "DMA error 0x%x\n", status);
+       if (status & (IRQ_ERR | IRQ_DMAERR))
+               dev_err_ratelimited(&ndev->dev,
+                                   "TX error 0x%x TX_CHNL_STS=0x%08x\n",
+                                   status, lp->dma_in(lp, TX_CHNL_STS));
 
        return IRQ_HANDLED;
 }
@@ -904,6 +906,10 @@ static irqreturn_t ll_temac_rx_irq(int irq, void *_ndev)
 
        if (status & (IRQ_COAL | IRQ_DLY))
                ll_temac_recv(lp->ndev);
+       if (status & (IRQ_ERR | IRQ_DMAERR))
+               dev_err_ratelimited(&ndev->dev,
+                                   "RX error 0x%x RX_CHNL_STS=0x%08x\n",
+                                   status, lp->dma_in(lp, RX_CHNL_STS));
 
        return IRQ_HANDLED;
 }