diff options
author | Björn Stenberg <bjorn@haxx.se> | 2002-05-24 11:25:24 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2002-05-24 11:25:24 +0000 |
commit | a97c4419edc8c93bb6839bc6c31d8e45dbd241c4 (patch) | |
tree | 13ef19f006c50c00f43fa733e9c8613ad531157f /firmware/drivers/ata.c | |
parent | 44d76bc1ae086a89dedcf5e6ed430c713f2b9cf6 (diff) | |
download | rockbox-a97c4419edc8c93bb6839bc6c31d8e45dbd241c4.tar.gz rockbox-a97c4419edc8c93bb6839bc6c31d8e45dbd241c4.zip |
Fixed wrong reset pin. Removed unnecessary reset from init.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@691 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers/ata.c')
-rw-r--r-- | firmware/drivers/ata.c | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c index 95711c60ea..c632402483 100644 --- a/firmware/drivers/ata.c +++ b/firmware/drivers/ata.c | |||
@@ -197,15 +197,8 @@ int ata_write_sectors(unsigned long start, | |||
197 | 197 | ||
198 | static int check_registers(void) | 198 | static int check_registers(void) |
199 | { | 199 | { |
200 | int ret = 0; | ||
201 | |||
202 | mutex_lock(&ata_mtx); | ||
203 | |||
204 | if ( ATA_STATUS & STATUS_BSY ) | 200 | if ( ATA_STATUS & STATUS_BSY ) |
205 | { | 201 | return -1; |
206 | mutex_unlock(&ata_mtx); | ||
207 | return 0; | ||
208 | } | ||
209 | 202 | ||
210 | ATA_NSECTOR = 0xa5; | 203 | ATA_NSECTOR = 0xa5; |
211 | ATA_SECTOR = 0x5a; | 204 | ATA_SECTOR = 0x5a; |
@@ -216,10 +209,9 @@ static int check_registers(void) | |||
216 | (ATA_SECTOR == 0x5a) && | 209 | (ATA_SECTOR == 0x5a) && |
217 | (ATA_LCYL == 0xaa) && | 210 | (ATA_LCYL == 0xaa) && |
218 | (ATA_HCYL == 0x55)) | 211 | (ATA_HCYL == 0x55)) |
219 | ret = 1; | 212 | return 0; |
220 | 213 | ||
221 | mutex_unlock(&ata_mtx); | 214 | return -2; |
222 | return ret; | ||
223 | } | 215 | } |
224 | 216 | ||
225 | static int freeze_lock(void) | 217 | static int freeze_lock(void) |
@@ -273,11 +265,11 @@ int ata_hard_reset(void) | |||
273 | 265 | ||
274 | mutex_lock(&ata_mtx); | 266 | mutex_lock(&ata_mtx); |
275 | 267 | ||
276 | PADR &= ~0x0002; | 268 | PADR &= ~0x0200; |
277 | 269 | ||
278 | sleep(2); | 270 | sleep(2); |
279 | 271 | ||
280 | PADR |= 0x0002; | 272 | PADR |= 0x0200; |
281 | 273 | ||
282 | ret = wait_for_rdy(); | 274 | ret = wait_for_rdy(); |
283 | 275 | ||
@@ -337,16 +329,13 @@ int ata_init(void) | |||
337 | if (master_slave()) | 329 | if (master_slave()) |
338 | return -1; | 330 | return -1; |
339 | 331 | ||
340 | if (!ata_hard_reset()) | 332 | if (check_registers()) |
341 | return -2; | ||
342 | |||
343 | if (!check_registers()) | ||
344 | return -3; | 333 | return -3; |
345 | 334 | ||
346 | if (freeze_lock() < 0) | 335 | if (freeze_lock()) |
347 | return -4; | 336 | return -4; |
348 | 337 | ||
349 | if (ata_spindown(1) < 0) | 338 | if (ata_spindown(1)) |
350 | return -5; | 339 | return -5; |
351 | 340 | ||
352 | ATA_SELECT = SELECT_LBA; | 341 | ATA_SELECT = SELECT_LBA; |