mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2026-03-14 21:10:27 +01:00
mtd: nand: mxs invalidate dcache before DMA read
Follow linux dma flow: Before DMA read, be sure to invalidate the cache over the address range of DMA buffer to prevent cache coherency problems. After DMA read, invalidate dcache again. Signed-off-by: Peng Fan <Peng.Fan@freescale.com> Acked-by: Marek Vasut <marex@denx.de> Acked-by: Tim Harvey <tharvey@gateworks.com>
This commit is contained in:
parent
63b29d8082
commit
ecfb8768b1
1 changed files with 6 additions and 0 deletions
|
|
@ -462,6 +462,9 @@ static void mxs_nand_read_buf(struct mtd_info *mtd, uint8_t *buf, int length)
|
|||
|
||||
mxs_dma_desc_append(channel, d);
|
||||
|
||||
/* Invalidate caches */
|
||||
mxs_nand_inval_data_buf(nand_info);
|
||||
|
||||
/* Execute the DMA chain. */
|
||||
ret = mxs_dma_go(channel);
|
||||
if (ret) {
|
||||
|
|
@ -628,6 +631,9 @@ static int mxs_nand_ecc_read_page(struct mtd_info *mtd, struct nand_chip *nand,
|
|||
|
||||
mxs_dma_desc_append(channel, d);
|
||||
|
||||
/* Invalidate caches */
|
||||
mxs_nand_inval_data_buf(nand_info);
|
||||
|
||||
/* Execute the DMA chain. */
|
||||
ret = mxs_dma_go(channel);
|
||||
if (ret) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue