SDC. Added F4x-specyfic DMA transaction end code.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4123 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
df9fd22f53
commit
bb2388a241
|
@ -176,6 +176,22 @@ static bool_t sdc_lld_wait_transaction_end(SDCDriver *sdcp, uint32_t n,
|
||||||
return CH_FAILED;
|
return CH_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (defined(STM32F4XX) || defined(STM32F2XX))
|
||||||
|
/* Wait until DMA channel enabled to be sure that all data transferred.*/
|
||||||
|
while (sdcp->dma->stream->CR & STM32_DMA_CR_EN)
|
||||||
|
;
|
||||||
|
|
||||||
|
/* DMA event flags must be manually cleared.*/
|
||||||
|
dmaStreamClearInterrupt(sdcp->dma);
|
||||||
|
|
||||||
|
SDIO->ICR = STM32_SDIO_ICR_ALL_FLAGS;
|
||||||
|
SDIO->DCTRL = 0;
|
||||||
|
chSysUnlock();
|
||||||
|
|
||||||
|
/* Wait until interrupt flags to be cleared.*/
|
||||||
|
/*while (((DMA2->LISR) >> (sdcp->dma->ishift)) & STM32_DMA_ISR_TCIF)
|
||||||
|
dmaStreamClearInterrupt(sdcp->dma);*/
|
||||||
|
#else
|
||||||
/* Waits for transfer completion at DMA level, the the stream is
|
/* Waits for transfer completion at DMA level, the the stream is
|
||||||
disabled and cleared.*/
|
disabled and cleared.*/
|
||||||
dmaWaitCompletion(sdcp->dma);
|
dmaWaitCompletion(sdcp->dma);
|
||||||
|
@ -183,10 +199,7 @@ static bool_t sdc_lld_wait_transaction_end(SDCDriver *sdcp, uint32_t n,
|
||||||
SDIO->ICR = STM32_SDIO_ICR_ALL_FLAGS;
|
SDIO->ICR = STM32_SDIO_ICR_ALL_FLAGS;
|
||||||
SDIO->DCTRL = 0;
|
SDIO->DCTRL = 0;
|
||||||
chSysUnlock();
|
chSysUnlock();
|
||||||
|
#endif
|
||||||
/* Wait until interrupt flags to be cleared.*/
|
|
||||||
/* while (((DMA2->LISR) >> (sdcp->dma->ishift)) & STM32_DMA_ISR_TCIF)
|
|
||||||
dmaStreamClearInterrupt(sdcp->dma);*/
|
|
||||||
|
|
||||||
/* Finalize transaction.*/
|
/* Finalize transaction.*/
|
||||||
if (n > 1)
|
if (n > 1)
|
||||||
|
|
Loading…
Reference in New Issue