summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/ata_sd_as3525.c
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2008-12-04 22:54:06 +0000
committerRafaël Carré <rafael.carre@gmail.com>2008-12-04 22:54:06 +0000
commite97191faa7d685637c987dc91fc70a2cd64df57b (patch)
treef94f694a466ba9e859dbe1fe5564238a7f3d7216 /firmware/target/arm/as3525/ata_sd_as3525.c
parent3e4f3fe70e8ed404ea07c12e4fe9f5a25e55b16d (diff)
downloadrockbox-e97191faa7d685637c987dc91fc70a2cd64df57b.tar.gz
rockbox-e97191faa7d685637c987dc91fc70a2cd64df57b.zip
Sansa AMS: Disable DMA clocks when not in use
Add dma_retain() and dma_release() to reference count the users git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19344 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/as3525/ata_sd_as3525.c')
-rw-r--r--firmware/target/arm/as3525/ata_sd_as3525.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/firmware/target/arm/as3525/ata_sd_as3525.c b/firmware/target/arm/as3525/ata_sd_as3525.c
index b71941adad..edde02b593 100644
--- a/firmware/target/arm/as3525/ata_sd_as3525.c
+++ b/firmware/target/arm/as3525/ata_sd_as3525.c
@@ -568,6 +568,8 @@ static int sd_transfer_sectors(IF_MV2(int drive,) unsigned long start,
568 goto sd_transfer_error; 568 goto sd_transfer_error;
569 } 569 }
570 570
571 dma_retain();
572
571 while(count) 573 while(count)
572 { 574 {
573 /* 128 * 512 = 2^16, and doesn't fit in the 16 bits of DATA_LENGTH 575 /* 128 * 512 = 2^16, and doesn't fit in the 16 bits of DATA_LENGTH
@@ -628,6 +630,8 @@ static int sd_transfer_sectors(IF_MV2(int drive,) unsigned long start,
628 630
629 while (1) 631 while (1)
630 { 632 {
633 dma_release();
634
631#ifndef BOOTLOADER 635#ifndef BOOTLOADER
632 sd_enable(false); 636 sd_enable(false);
633#endif 637#endif