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.
Jeff
-
: 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