On Sun, May 28 2006, Jeff Garzik wrote: > Mark Lord wrote: > >Jeff Garzik wrote: > >>Jens Axboe wrote: > >>>On Sun, May 28 2006, Mark Lord wrote: > >>>> > >.. > >>>> int ata_device_resume(struct ata_port *ap, struct ata_device *dev) > >>>> { > >>>> if (ap->flags & ATA_FLAG_SUSPENDED) { > >>>>+ ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 200000); > >>>> ap->flags &= ~ATA_FLAG_SUSPENDED; > >>>> ata_set_mode(ap); > >>> > >>>Sorry for the unresponsiveness, still away and internet connectivity > >>>spotty. Just tested the above, and it works for me! I think Marks > >>>analisys wrt DRQ is completely correct and this validates it. > >> > >>Does your box work without ATA_DRQ? > > > >Without ATA_DRQ, we're back to the original Linus one-liner, > >which Jens said did NOT work for him on Saturday. > > Indeed, but nowhere in the ATA Status printks did I ever see the DRQ bit > asserted. It was all 80/50/50. Mark is right, ATA_BUSY alone does _not_ work for me. I agree it's a little odd based on the printk output, it must be a timing thing. -- Jens Axboe - : send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html