From 75fa6998148d3b33b6672946fcfa90072f33c53d Mon Sep 17 00:00:00 2001 From: Rafaël Carré Date: Sat, 11 Jul 2009 13:46:10 +0000 Subject: Sansa AMS: handle properly SD transfer errors clocks disabling and mutex unlocking were not made in case of errors git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21773 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/as3525/ata_sd_as3525.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'firmware') diff --git a/firmware/target/arm/as3525/ata_sd_as3525.c b/firmware/target/arm/as3525/ata_sd_as3525.c index 470efa56ab..ae3d466abf 100644 --- a/firmware/target/arm/as3525/ata_sd_as3525.c +++ b/firmware/target/arm/as3525/ata_sd_as3525.c @@ -753,17 +753,21 @@ static int sd_transfer_sectors(IF_MV2(int drive,) unsigned long start, } } + ret = 0; /* success */ + +sd_transfer_error: + dma_release(); #ifndef BOOTLOADER led(false); sd_enable(false); #endif - mutex_unlock(&sd_mtx); - return 0; -sd_transfer_error: - card_info[drive].initialized = 0; + if (ret) /* error */ + card_info[drive].initialized = 0; + + mutex_unlock(&sd_mtx); return ret; } -- cgit v1.2.3