summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sparmann <theseven@rockbox.org>2009-10-09 18:54:48 +0000
committerMichael Sparmann <theseven@rockbox.org>2009-10-09 18:54:48 +0000
commite74daf29734cfa51516c736fd5ae127b88766802 (patch)
tree08ed335d9d40e3a8cf505d4456f6215708ed0a24
parent80003bc4a4c2564c15e202a73bf2f2103e9a6407 (diff)
downloadrockbox-e74daf29734cfa51516c736fd5ae127b88766802.tar.gz
rockbox-e74daf29734cfa51516c736fd5ae127b88766802.zip
Reduce iPod Nano 2G NAND timeouts to a sane value (20ms)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23054 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c
index 91d8827b50..302ffdee21 100644
--- a/firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c
+++ b/firmware/target/arm/s5l8700/ipodnano2g/nand-nano2g.c
@@ -128,7 +128,7 @@ uint32_t nand_timeout(long timeout)
128 128
129uint32_t nand_wait_rbbdone(void) 129uint32_t nand_wait_rbbdone(void)
130{ 130{
131 long timeout = current_tick + HZ / 1; 131 long timeout = current_tick + HZ / 50;
132 while ((FMCSTAT & FMCSTAT_RBBDONE) == 0) 132 while ((FMCSTAT & FMCSTAT_RBBDONE) == 0)
133 if (nand_timeout(timeout)) return 1; 133 if (nand_timeout(timeout)) return 1;
134 FMCSTAT = FMCSTAT_RBBDONE; 134 FMCSTAT = FMCSTAT_RBBDONE;
@@ -137,7 +137,7 @@ uint32_t nand_wait_rbbdone(void)
137 137
138uint32_t nand_wait_cmddone(void) 138uint32_t nand_wait_cmddone(void)
139{ 139{
140 long timeout = current_tick + HZ / 1; 140 long timeout = current_tick + HZ / 50;
141 while ((FMCSTAT & FMCSTAT_CMDDONE) == 0) 141 while ((FMCSTAT & FMCSTAT_CMDDONE) == 0)
142 if (nand_timeout(timeout)) return 1; 142 if (nand_timeout(timeout)) return 1;
143 FMCSTAT = FMCSTAT_CMDDONE; 143 FMCSTAT = FMCSTAT_CMDDONE;
@@ -146,7 +146,7 @@ uint32_t nand_wait_cmddone(void)
146 146
147uint32_t nand_wait_addrdone(void) 147uint32_t nand_wait_addrdone(void)
148{ 148{
149 long timeout = current_tick + HZ / 1; 149 long timeout = current_tick + HZ / 50;
150 while ((FMCSTAT & FMCSTAT_ADDRDONE) == 0) 150 while ((FMCSTAT & FMCSTAT_ADDRDONE) == 0)
151 if (nand_timeout(timeout)) return 1; 151 if (nand_timeout(timeout)) return 1;
152 FMCSTAT = FMCSTAT_ADDRDONE; 152 FMCSTAT = FMCSTAT_ADDRDONE;
@@ -155,7 +155,7 @@ uint32_t nand_wait_addrdone(void)
155 155
156uint32_t nand_wait_chip_ready(uint32_t bank) 156uint32_t nand_wait_chip_ready(uint32_t bank)
157{ 157{
158 long timeout = current_tick + HZ / 1; 158 long timeout = current_tick + HZ / 50;
159 while ((FMCSTAT & (FMCSTAT_BANK0READY << bank)) == 0) 159 while ((FMCSTAT & (FMCSTAT_BANK0READY << bank)) == 0)
160 if (nand_timeout(timeout)) return 1; 160 if (nand_timeout(timeout)) return 1;
161 FMCSTAT = (FMCSTAT_BANK0READY << bank); 161 FMCSTAT = (FMCSTAT_BANK0READY << bank);
@@ -194,7 +194,7 @@ uint32_t nand_reset(uint32_t bank)
194 194
195uint32_t nand_wait_status_ready(uint32_t bank) 195uint32_t nand_wait_status_ready(uint32_t bank)
196{ 196{
197 long timeout = current_tick + HZ / 1; 197 long timeout = current_tick + HZ / 50;
198 nand_set_fmctrl0(bank, 0); 198 nand_set_fmctrl0(bank, 0);
199 if ((FMCSTAT & (FMCSTAT_BANK0READY << bank)) != 0) 199 if ((FMCSTAT & (FMCSTAT_BANK0READY << bank)) != 0)
200 FMCSTAT = (FMCSTAT_BANK0READY << bank); 200 FMCSTAT = (FMCSTAT_BANK0READY << bank);
@@ -216,7 +216,7 @@ uint32_t nand_wait_status_ready(uint32_t bank)
216uint32_t nand_transfer_data(uint32_t bank, uint32_t direction, 216uint32_t nand_transfer_data(uint32_t bank, uint32_t direction,
217 void* buffer, uint32_t size) 217 void* buffer, uint32_t size)
218{ 218{
219 long timeout = current_tick + HZ / 1; 219 long timeout = current_tick + HZ / 50;
220 nand_set_fmctrl0(bank, FMCTRL0_ENABLEDMA); 220 nand_set_fmctrl0(bank, FMCTRL0_ENABLEDMA);
221 FMDNUM = size - 1; 221 FMDNUM = size - 1;
222 FMCTRL1 = FMCTRL1_DOREADDATA << direction; 222 FMCTRL1 = FMCTRL1_DOREADDATA << direction;
@@ -239,7 +239,7 @@ uint32_t nand_transfer_data(uint32_t bank, uint32_t direction,
239uint32_t ecc_decode(uint32_t size, void* databuffer, void* sparebuffer) 239uint32_t ecc_decode(uint32_t size, void* databuffer, void* sparebuffer)
240{ 240{
241 mutex_lock(&ecc_mtx); 241 mutex_lock(&ecc_mtx);
242 long timeout = current_tick + HZ / 1; 242 long timeout = current_tick + HZ / 50;
243 ECC_INT_CLR = 1; 243 ECC_INT_CLR = 1;
244 SRCPND = INTMSK_ECC; 244 SRCPND = INTMSK_ECC;
245 ECC_UNK1 = size; 245 ECC_UNK1 = size;
@@ -256,7 +256,7 @@ uint32_t ecc_decode(uint32_t size, void* databuffer, void* sparebuffer)
256uint32_t ecc_encode(uint32_t size, void* databuffer, void* sparebuffer) 256uint32_t ecc_encode(uint32_t size, void* databuffer, void* sparebuffer)
257{ 257{
258 mutex_lock(&ecc_mtx); 258 mutex_lock(&ecc_mtx);
259 long timeout = current_tick + HZ / 1; 259 long timeout = current_tick + HZ / 50;
260 ECC_INT_CLR = 1; 260 ECC_INT_CLR = 1;
261 SRCPND = INTMSK_ECC; 261 SRCPND = INTMSK_ECC;
262 ECC_UNK1 = size; 262 ECC_UNK1 = size;