summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTang Yuantian <Yuantian.Tang@nxp.com>2016-04-14 16:21:00 +0800
committerTom Rini <trini@konsulko.com>2016-04-18 17:11:48 -0400
commit75e14b1ac87564f1f2f7401828c3fefd316e818f (patch)
tree28f4799f0680472a2b13d7b830e0d5d8c5a559df
parente3a46e3ee22876606254560ec4c10903074475c2 (diff)
downloadu-boot-75e14b1ac87564f1f2f7401828c3fefd316e818f.tar.gz
u-boot-75e14b1ac87564f1f2f7401828c3fefd316e818f.tar.bz2
u-boot-75e14b1ac87564f1f2f7401828c3fefd316e818f.zip
ahci: flush dcache before issuing command
Ensure data the following sata command used is flushed out of dcache and written to physical memory or timeout error may happen. Signed-off-by: Tang Yuantian <yuantian.tang@nxp.com>
-rw-r--r--drivers/block/ahci.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c
index d29642be77..e3e783a74c 100644
--- a/drivers/block/ahci.c
+++ b/drivers/block/ahci.c
@@ -1061,6 +1061,7 @@ static int ata_io_flush(u8 port)
memcpy((unsigned char *)pp->cmd_tbl, fis, 20);
ahci_fill_cmd_slot(pp, cmd_fis_len);
+ ahci_dcache_flush_sata_cmd(pp);
writel_with_flush(1, port_mmio + PORT_CMD_ISSUE);
if (waiting_for_cmd_completed(port_mmio + PORT_CMD_ISSUE,