Finally, after adding and removing printfs and DELAYs in different
places, I found that probably after status inquiry, one must wait just
a little moment before doing anything with IDE device.  The following
patch seems to fix the problem.

Thank you for all of you who participated in the effort with
suggestions or sympathy!

Regards,

	Antti Louko

*** dev/ata/ata-all.c.orig      Sun May 18 19:43:08 2003
--- dev/ata/ata-all.c   Tue Sep 16 08:14:56 2003
***************
*** 978,983 ****
--- 978,984 ----
      DELAY(1);
      while (timeout < 5000000) { /* timeout 5 secs */
        atadev->channel->status = ATA_IDX_INB(atadev->channel, ATA_STATUS);
+         DELAY(1);
  
        /* if drive fails status, reselect the drive just to be sure */
        if (atadev->channel->status == 0xff) {
