summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-07-19 16:08:57 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-07-19 16:08:57 +0000
commit08c600ca07503d6f4f34db9eae2ffbe0230c4fd7 (patch)
tree50498be644d2266c68dd6739621aaa0165f763f1 /firmware/target/arm
parentb221d6d4d4d0ade805d249fdd69a8b8b92769268 (diff)
downloadrockbox-08c600ca07503d6f4f34db9eae2ffbe0230c4fd7.tar.gz
rockbox-08c600ca07503d6f4f34db9eae2ffbe0230c4fd7.zip
sd-as3525.c: disable widebus again, it causes read corruptions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27495 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm')
-rw-r--r--firmware/target/arm/as3525/sd-as3525.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/firmware/target/arm/as3525/sd-as3525.c b/firmware/target/arm/as3525/sd-as3525.c
index 35cb997629..d77c7133b6 100644
--- a/firmware/target/arm/as3525/sd-as3525.c
+++ b/firmware/target/arm/as3525/sd-as3525.c
@@ -52,7 +52,7 @@
52#include "disk.h" 52#include "disk.h"
53#endif 53#endif
54 54
55#define VERIFY_WRITE 1 55//#define VERIFY_WRITE 1
56 56
57/* command flags */ 57/* command flags */
58#define MCI_NO_RESP (0<<0) 58#define MCI_NO_RESP (0<<0)
@@ -382,6 +382,7 @@ static int sd_init_card(const int drive)
382 if(!send_cmd(drive, SD_SELECT_CARD, card_info[drive].rca, MCI_RESP, &response)) 382 if(!send_cmd(drive, SD_SELECT_CARD, card_info[drive].rca, MCI_RESP, &response))
383 return -10; 383 return -10;
384 384
385#if 0 /* FIXME : it seems that reading fails on some models */
385 /* Switch to to 4 bit widebus mode */ 386 /* Switch to to 4 bit widebus mode */
386 if(sd_wait_for_tran_state(drive) < 0) 387 if(sd_wait_for_tran_state(drive) < 0)
387 return -11; 388 return -11;
@@ -393,6 +394,7 @@ static int sd_init_card(const int drive)
393 return -13; 394 return -13;
394 /* Now that card is widebus make controller aware */ 395 /* Now that card is widebus make controller aware */
395 MCI_CLOCK(drive) |= MCI_CLOCK_WIDEBUS; 396 MCI_CLOCK(drive) |= MCI_CLOCK_WIDEBUS;
397#endif
396 398
397 /* 399 /*
398 * enable bank switching 400 * enable bank switching
@@ -913,8 +915,11 @@ int sd_write_sectors(IF_MD2(int drive,) unsigned long start, int count,
913 ret = sd_transfer_sectors(IF_MD2(drive,) start, count, (void*)buf, true); 915 ret = sd_transfer_sectors(IF_MD2(drive,) start, count, (void*)buf, true);
914 916
915#ifdef VERIFY_WRITE 917#ifdef VERIFY_WRITE
916 if (ret) /* write failed, no point in verifying */ 918 if (ret) {
917 goto write_error; 919 /* write failed, no point in verifying */
920 mutex_unlock(&sd_mtx);
921 return ret;
922 }
918 923
919 count = saved_count; 924 count = saved_count;
920 buf = saved_buf; 925 buf = saved_buf;
@@ -937,7 +942,6 @@ int sd_write_sectors(IF_MD2(int drive,) unsigned long start, int count,
937 } 942 }
938#endif 943#endif
939 944
940write_error:
941 mutex_unlock(&sd_mtx); 945 mutex_unlock(&sd_mtx);
942 946
943 return ret; 947 return ret;