Skip to content

Commit 7934d77

Browse files
committed
drivers:soc:aspeed:lpc_pcc: DMA_DONE after copy
- Updated aspeed_pcc_dma_isr() to move DMA_DONE after data copy. - Ensure DMA_DONE interrupt status is cleared only after the DMA data has been copied to the FIFO. Previously, the status was updated before the copy, which could lead to race conditions or incomplete data handling. Tested: Verified on morocco. Signed-off-by: Anjali Gedam <anjali.gedam@amd.com>
1 parent f7276b2 commit 7934d77

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/soc/aspeed/aspeed-lpc-pcc.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,6 @@ static irqreturn_t aspeed_pcc_dma_isr(int irq, void *arg)
178178
struct aspeed_pcc *pcc = (struct aspeed_pcc*)arg;
179179
struct kfifo *fifo = &pcc->fifo;
180180

181-
regmap_write_bits(pcc->regmap, PCCR2, PCCR2_INT_STATUS_DMA_DONE, PCCR2_INT_STATUS_DMA_DONE);
182-
183181
regmap_read(pcc->regmap, PCCR6, &reg);
184182
wptr = (reg & PCCR6_DMA_CUR_ADDR) - (pcc->dma.addr & PCCR6_DMA_CUR_ADDR);
185183
rptr = pcc->dma.rptr;
@@ -195,6 +193,8 @@ static irqreturn_t aspeed_pcc_dma_isr(int irq, void *arg)
195193

196194
pcc->dma.rptr = rptr;
197195

196+
regmap_write_bits(pcc->regmap, PCCR2, PCCR2_INT_STATUS_DMA_DONE, PCCR2_INT_STATUS_DMA_DONE);
197+
198198
wake_up_interruptible(&pcc->wq);
199199

200200
return IRQ_HANDLED;

0 commit comments

Comments
 (0)