diff options
author | Wolfgang Denk <wd@denx.de> | 2010-09-07 22:19:49 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2010-09-07 22:19:49 +0200 |
commit | f91506e28387fece392b5dd3bb3aa309e4ce7e4d (patch) | |
tree | 3e46227d94b7b379341fba534df5aa3dd3948f68 /drivers/dma | |
parent | 5549d22b656550d36b2cc46743c7220ab0e9dcc4 (diff) | |
parent | 2df0e6fc6b71448e1752e4ce1d5577d8977f3e5e (diff) | |
download | u-boot-imx-f91506e28387fece392b5dd3bb3aa309e4ce7e4d.zip u-boot-imx-f91506e28387fece392b5dd3bb3aa309e4ce7e4d.tar.gz u-boot-imx-f91506e28387fece392b5dd3bb3aa309e4ce7e4d.tar.bz2 |
Merge branch 'master' of /home/wd/git/u-boot/master
Diffstat (limited to 'drivers/dma')
-rw-r--r-- | drivers/dma/fsl_dma.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/dma/fsl_dma.c b/drivers/dma/fsl_dma.c index df33e7a..09c18c1 100644 --- a/drivers/dma/fsl_dma.c +++ b/drivers/dma/fsl_dma.c @@ -114,8 +114,12 @@ int dmacpy(phys_addr_t dest, phys_addr_t src, phys_size_t count) { while (count) { xfer_size = MIN(FSL_DMA_MAX_SIZE, count); - out_dma32(&dma->dar, (uint) dest); - out_dma32(&dma->sar, (uint) src); + out_dma32(&dma->dar, (u32) (dest & 0xFFFFFFFF)); + out_dma32(&dma->sar, (u32) (src & 0xFFFFFFFF)); + out_dma32(&dma->satr, + in_dma32(&dma->satr) | (u32)((u64)src >> 32)); + out_dma32(&dma->datr, + in_dma32(&dma->datr) | (u32)((u64)dest >> 32)); out_dma32(&dma->bcr, xfer_size); dma_sync(); |