diff -ru rockbox-19602-broken/firmware/drivers/ata.c rockbox-19602-dma/firmware/drivers/ata.c --- rockbox-19602-broken/firmware/drivers/ata.c 2008-12-28 00:52:25.908200000 -0500 +++ rockbox-19602-dma/firmware/drivers/ata.c 2008-12-28 00:44:44.904000000 -0500 @@ -254,7 +254,12 @@ { if (!wait_for_bsy()) return 0; +#ifdef HAVE_ATA_DMA + return (ATA_ALT_STATUS & (STATUS_BSY|STATUS_RDY|STATUS_DF|STATUS_DRQ|STATUS_ERR)) == STATUS_RDY; +#else + /* WARNING FIXME TODO: This is probably broken and doesn't check for errors */ return (ATA_ALT_STATUS & (STATUS_RDY|STATUS_DRQ)) == STATUS_RDY; +#endif } #if (CONFIG_LED == LED_REAL)