diff options
-rwxr-xr-x | firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c b/firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c index 955a33a595..38f9758c14 100755 --- a/firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c +++ b/firmware/target/arm/s5l8702/ipod6g/storage_ata-ipod6g.c | |||
@@ -131,6 +131,7 @@ static int ata_wait_for_not_bsy(long timeout) | |||
131 | uint8_t csd = ata_read_cbr(&ATA_PIO_CSD); | 131 | uint8_t csd = ata_read_cbr(&ATA_PIO_CSD); |
132 | if (!(csd & BIT(7))) return 0; | 132 | if (!(csd & BIT(7))) return 0; |
133 | if (TIMEOUT_EXPIRED(startusec, timeout)) RET_ERR(0); | 133 | if (TIMEOUT_EXPIRED(startusec, timeout)) RET_ERR(0); |
134 | yield(); | ||
134 | } | 135 | } |
135 | } | 136 | } |
136 | 137 | ||
@@ -143,6 +144,7 @@ static int ata_wait_for_rdy(long timeout) | |||
143 | uint8_t dad = ata_read_cbr(&ATA_PIO_DAD); | 144 | uint8_t dad = ata_read_cbr(&ATA_PIO_DAD); |
144 | if (dad & BIT(6)) return 0; | 145 | if (dad & BIT(6)) return 0; |
145 | if (TIMEOUT_EXPIRED(startusec, timeout)) RET_ERR(1); | 146 | if (TIMEOUT_EXPIRED(startusec, timeout)) RET_ERR(1); |
147 | yield(); | ||
146 | } | 148 | } |
147 | } | 149 | } |
148 | 150 | ||
@@ -156,6 +158,7 @@ static int ata_wait_for_start_of_transfer(long timeout) | |||
156 | if (dad & BIT(0)) RET_ERR(1); | 158 | if (dad & BIT(0)) RET_ERR(1); |
157 | if ((dad & (BIT(7) | BIT(3))) == BIT(3)) return 0; | 159 | if ((dad & (BIT(7) | BIT(3))) == BIT(3)) return 0; |
158 | if (TIMEOUT_EXPIRED(startusec, timeout)) RET_ERR(2); | 160 | if (TIMEOUT_EXPIRED(startusec, timeout)) RET_ERR(2); |
161 | yield(); | ||
159 | } | 162 | } |
160 | } | 163 | } |
161 | 164 | ||