From 763c56936d92bea8f665ee0326467d2e7ea2b967 Mon Sep 17 00:00:00 2001 From: Harini Katakam Date: Thu, 19 Mar 2015 12:29:16 +0530 Subject: [PATCH] qspipsu: Use DMA DONE instead of BUSY Use DMA DONE to poll status of DMA transfer instead of BUSy as this is recommended. Signed-off-by: Harini Katakam --- XilinxProcessorIPLib/drivers/qspipsu/src/xqspipsu.c | 12 ++++++------ XilinxProcessorIPLib/drivers/qspipsu/src/xqspipsu.h | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/XilinxProcessorIPLib/drivers/qspipsu/src/xqspipsu.c b/XilinxProcessorIPLib/drivers/qspipsu/src/xqspipsu.c index 66fb9e30..4301ffd4 100644 --- a/XilinxProcessorIPLib/drivers/qspipsu/src/xqspipsu.c +++ b/XilinxProcessorIPLib/drivers/qspipsu/src/xqspipsu.c @@ -46,6 +46,7 @@ * sk 03/13/15 Added IO mode support. * hk 03/18/15 Switch to I/O mode before clearing RX FIFO. * Clear and disbale DMA interrupts/status in abort. +* Use DMA DONE bit instead of BUSY as recommended. * * * @@ -401,14 +402,13 @@ GENFIFO: /* Check if DMA RX is complete and update RxBytes */ if ((InstancePtr->ReadMode == XQSPIPSU_READMODE_DMA) && (Msg[Index].RxBfrPtr != NULL)) { - if (!(XQspiPsu_ReadReg(BaseAddress, - XQSPIPSU_QSPIDMA_DST_STS_OFFSET) & - XQSPIPSU_QSPIDMA_DST_STS_BUSY_MASK)) { + u32 DmaIntrSts; + DmaIntrSts = XQspiPsu_ReadReg(BaseAddress, + XQSPIPSU_QSPIDMA_DST_I_STS_OFFSET); + if (DmaIntrSts & XQSPIPSU_QSPIDMA_DST_I_STS_DONE_MASK) { XQspiPsu_WriteReg(BaseAddress, XQSPIPSU_QSPIDMA_DST_I_STS_OFFSET, - XQspiPsu_ReadReg(BaseAddress, - XQSPIPSU_QSPIDMA_DST_I_STS_OFFSET) | - XQSPIPSU_QSPIDMA_DST_I_STS_DONE_MASK); + DmaIntrSts); /* Read remaining bytes using IO mode */ if(InstancePtr->RxBytes % 4 != 0 ) { XQspiPsu_WriteReg(BaseAddress, diff --git a/XilinxProcessorIPLib/drivers/qspipsu/src/xqspipsu.h b/XilinxProcessorIPLib/drivers/qspipsu/src/xqspipsu.h index 3e0fd364..ac610f5c 100644 --- a/XilinxProcessorIPLib/drivers/qspipsu/src/xqspipsu.h +++ b/XilinxProcessorIPLib/drivers/qspipsu/src/xqspipsu.h @@ -88,6 +88,7 @@ * sk 03/13/15 Added IO mode support. * hk 03/18/15 Switch to I/O mode before clearing RX FIFO. * Clear and disbale DMA interrupts/status in abort. +* Use DMA DONE bit instead of BUSY as recommended. * * *