Corrected wrong write return code.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3623 a1c6a512-1295-4272-9138-f99709370657
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c
index 92332b5..ec99bf7 100644
--- a/firmware/drivers/ata.c
+++ b/firmware/drivers/ata.c
@@ -196,7 +196,6 @@
 
     timeout = current_tick + READ_TIMEOUT;
 
- retry:
     ATA_SELECT = ata_device;
     if (!wait_for_rdy())
     {
@@ -205,6 +204,7 @@
         return -2;
     }
 
+ retry:
     buf = inbuf;
     count = incount;
     while (TIME_BEFORE(current_tick, timeout)) {
@@ -363,10 +363,9 @@
 
     for (i=0; i<count; i++) {
         int j;
-        if (!wait_for_start_of_transfer())
-        {
-            mutex_unlock(&ata_mtx);
-            return 0;
+        if (!wait_for_start_of_transfer()) {
+            ret = -3;
+            break;
         }
 
         if (spinup) {
@@ -391,8 +390,8 @@
         last_disk_activity = current_tick;
     }
 
-    if(!wait_for_end_of_transfer())
-        ret = -3;
+    if(!ret && !wait_for_end_of_transfer())
+        ret = -4;
 
     led(false);