summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/ata-imx31.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/firmware/target/arm/imx31/gigabeat-s/ata-imx31.c b/firmware/target/arm/imx31/gigabeat-s/ata-imx31.c
index 92cc048..9c3c72e 100644
--- a/firmware/target/arm/imx31/gigabeat-s/ata-imx31.c
+++ b/firmware/target/arm/imx31/gigabeat-s/ata-imx31.c
@@ -106,6 +106,9 @@ void ata_set_pio_timings(int mode)
void ata_reset(void)
{
+ /* Be sure we're not busy */
+ while (!(ATA_INTERRUPT_PENDING & ATA_CONTROLLER_IDLE));
+
ATA_INTF_CONTROL &= ~ATA_ATA_RST;
sleep(1);
ATA_INTF_CONTROL |= ATA_ATA_RST;