Commit 4fd46dd3 authored by Federico Vaga's avatar Federico Vaga

drv: gennum status register has debug information about errors

Signed-off-by: Federico Vaga's avatarFederico Vaga <federico.vaga@cern.ch>
parent dc969cf9
......@@ -357,11 +357,12 @@ static inline enum gncore_dma_status gn4124_dma_wait_done(struct fmctdc_dev *ft,
unsigned long timeout = jiffies + msecs_to_jiffies(timeout_ms);
while (1) {
tmp = dma_readl(ft, GENNUM_DMA_STA) & GENUM_DMA_STA_MASK;
switch (tmp) {
case GENNUM_DMA_STA_DONE:
tmp = dma_readl(ft, GENNUM_DMA_STA);
switch (tmp & GENUM_DMA_STA_MASK) {
case GENNUM_DMA_STA_ERROR:
case GENNUM_DMA_STA_ABORT:
dev_err(&ft->fmc->dev, "DMA problem: 0x%x", tmp);
case GENNUM_DMA_STA_DONE:
return tmp;
default:
if (time_after(jiffies, timeout))
......
......@@ -26,6 +26,7 @@ struct gncore_dma_item {
};
#define GENUM_DMA_STA_MASK 0x7
#define GENUM_DMA_STA_SHIFT 0
enum gncore_dma_status {
GENNUM_DMA_STA_IDLE = 0,
GENNUM_DMA_STA_DONE,
......@@ -34,6 +35,22 @@ enum gncore_dma_status {
GENNUM_DMA_STA_ABORT,
};
#define GENNUM_DMA_STA_ERR_P2L_MASK 0x78
#define GENNUM_DMA_STA_ERR_P2L_SHIFT 3
enum gncore_dma_status_p2l {
GENNUM_DMA_STA_ERROR_P2L_COMP = 3,
GENNUM_DMA_STA_ERROR_P2L_BUSY,
};
#define GENNUM_DMA_STA_ERR_L2P_MASK 0x780
#define GENNUM_DMA_STA_ERR_L2P_SHIFT 7
enum gncore_dma_status_l2p {
GENNUM_DMA_STA_ERROR_L2P_TX = 7,
GENNUM_DMA_STA_ERROR_L2P_TIMEOUT,
GENNUM_DMA_STA_ERROR_L2P_ABORT,
};
#define GENNUM_DMA_CTL 0x00
#define GENNUM_DMA_STA 0x04
#define GENNUM_DMA_ADDR 0x08
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment