diff options
| -rw-r--r-- | drivers/dma/dw-edma/dw-edma-v0-core.c | 4 | ||||
| -rw-r--r-- | drivers/dma/dw-edma/dw-edma-v0-regs.h | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/dma/dw-edma/dw-edma-v0-core.c b/drivers/dma/dw-edma/dw-edma-v0-core.c index b75fdaffad9a..2fb6ba4854c1 100644 --- a/drivers/dma/dw-edma/dw-edma-v0-core.c +++ b/drivers/dma/dw-edma/dw-edma-v0-core.c @@ -414,7 +414,9 @@ static void dw_edma_v0_core_start(struct dw_edma_chunk *chunk, bool first) SET_RW_32(dw, chan->dir, int_mask, tmp); /* Linked list error */ tmp = GET_RW_32(dw, chan->dir, linked_list_err_en); - tmp |= FIELD_PREP(EDMA_V0_LINKED_LIST_ERR_MASK, BIT(chan->id)); + tmp |= FIELD_PREP(EDMA_V0_LL_LOCAL_ABORT_INT_MASK, BIT(chan->id)); + if (!(dw->chip->flags & DW_EDMA_CHIP_LOCAL)) + tmp |= FIELD_PREP(EDMA_V0_LL_REMOTE_ABORT_INT_MASK, BIT(chan->id)); SET_RW_32(dw, chan->dir, linked_list_err_en, tmp); /* Channel control */ SET_CH_32(dw, chan->dir, chan->id, ch_control1, diff --git a/drivers/dma/dw-edma/dw-edma-v0-regs.h b/drivers/dma/dw-edma/dw-edma-v0-regs.h index e175f7b20480..ffc544afc5e3 100644 --- a/drivers/dma/dw-edma/dw-edma-v0-regs.h +++ b/drivers/dma/dw-edma/dw-edma-v0-regs.h @@ -19,7 +19,8 @@ #define EDMA_V0_READ_CH_COUNT_MASK GENMASK(19, 16) #define EDMA_V0_CH_STATUS_MASK GENMASK(6, 5) #define EDMA_V0_DOORBELL_CH_MASK GENMASK(2, 0) -#define EDMA_V0_LINKED_LIST_ERR_MASK GENMASK(7, 0) +#define EDMA_V0_LL_REMOTE_ABORT_INT_MASK GENMASK(7, 0) +#define EDMA_V0_LL_LOCAL_ABORT_INT_MASK GENMASK(23, 16) #define EDMA_V0_CH_ODD_MSI_DATA_MASK GENMASK(31, 16) #define EDMA_V0_CH_EVEN_MSI_DATA_MASK GENMASK(15, 0) |
