27
27
#undef DWMAC_DMA_DEBUG
28
28
#ifdef DWMAC_DMA_DEBUG
29
#define DBG(fmt, args...) printk(fmt, ## args)
29
#define DWMAC_LIB_DBG(fmt, args...) printk(fmt, ## args)
31
#define DBG(fmt, args...) do { } while (0)
31
#define DWMAC_LIB_DBG(fmt, args...) do { } while (0)
34
34
/* CSR1 enables the transmit DMA to check for new descriptor */
152
152
/* read the status register (CSR5) */
153
153
u32 intr_status = readl(ioaddr + DMA_STATUS);
155
DBG(INFO, "%s: [CSR5: 0x%08x]\n", __func__, intr_status);
155
DWMAC_LIB_DBG(KERN_INFO "%s: [CSR5: 0x%08x]\n", __func__, intr_status);
156
156
#ifdef DWMAC_DMA_DEBUG
157
157
/* It displays the DMA process states (CSR5 register) */
158
158
show_tx_process_state(intr_status);
161
161
/* ABNORMAL interrupts */
162
162
if (unlikely(intr_status & DMA_STATUS_AIS)) {
163
DBG(INFO, "CSR5[15] DMA ABNORMAL IRQ: ");
163
DWMAC_LIB_DBG(KERN_INFO "CSR5[15] DMA ABNORMAL IRQ: ");
164
164
if (unlikely(intr_status & DMA_STATUS_UNF)) {
165
DBG(INFO, "transmit underflow\n");
165
DWMAC_LIB_DBG(KERN_INFO "transmit underflow\n");
166
166
ret = tx_hard_error_bump_tc;
167
167
x->tx_undeflow_irq++;
169
169
if (unlikely(intr_status & DMA_STATUS_TJT)) {
170
DBG(INFO, "transmit jabber\n");
170
DWMAC_LIB_DBG(KERN_INFO "transmit jabber\n");
171
171
x->tx_jabber_irq++;
173
173
if (unlikely(intr_status & DMA_STATUS_OVF)) {
174
DBG(INFO, "recv overflow\n");
174
DWMAC_LIB_DBG(KERN_INFO "recv overflow\n");
175
175
x->rx_overflow_irq++;
177
177
if (unlikely(intr_status & DMA_STATUS_RU)) {
178
DBG(INFO, "receive buffer unavailable\n");
178
DWMAC_LIB_DBG(KERN_INFO "receive buffer unavailable\n");
179
179
x->rx_buf_unav_irq++;
181
181
if (unlikely(intr_status & DMA_STATUS_RPS)) {
182
DBG(INFO, "receive process stopped\n");
182
DWMAC_LIB_DBG(KERN_INFO "receive process stopped\n");
183
183
x->rx_process_stopped_irq++;
185
185
if (unlikely(intr_status & DMA_STATUS_RWT)) {
186
DBG(INFO, "receive watchdog\n");
186
DWMAC_LIB_DBG(KERN_INFO "receive watchdog\n");
187
187
x->rx_watchdog_irq++;
189
189
if (unlikely(intr_status & DMA_STATUS_ETI)) {
190
DBG(INFO, "transmit early interrupt\n");
190
DWMAC_LIB_DBG(KERN_INFO "transmit early interrupt\n");
191
191
x->tx_early_irq++;
193
193
if (unlikely(intr_status & DMA_STATUS_TPS)) {
194
DBG(INFO, "transmit process stopped\n");
194
DWMAC_LIB_DBG(KERN_INFO "transmit process stopped\n");
195
195
x->tx_process_stopped_irq++;
196
196
ret = tx_hard_error;
198
198
if (unlikely(intr_status & DMA_STATUS_FBI)) {
199
DBG(INFO, "fatal bus error\n");
199
DWMAC_LIB_DBG(KERN_INFO "fatal bus error\n");
200
200
x->fatal_bus_error_irq++;
201
201
ret = tx_hard_error;