Re: ata_piix resume from S3 on T43P failed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, May 16 2006, zhao, forrest wrote:
> On Fri, 2006-05-12 at 12:17 +0200, Jens Axboe wrote:
> > The key is the 0xef timeout, then the device is offlined and you see a
> > lot of io errors due to that.
> > 
> > Try this:
> > 
> > diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
> > index bd14720..f120839 100644
> > --- a/drivers/scsi/libata-core.c
> > +++ b/drivers/scsi/libata-core.c
> > @@ -4288,6 +4288,7 @@ int ata_device_resume(struct ata_port *a
> >  {
> >  	if (ap->flags & ATA_FLAG_SUSPENDED) {
> >  		ap->flags &= ~ATA_FLAG_SUSPENDED;
> > +		mdelay(2000);
> >  		ata_set_mode(ap);
> >  	}
> >  	if (!ata_dev_present(dev))
> > 
> 
> Jens,
> 
> Yes! The patch works. But I'm wondering why ata_piix driver in kernel
> 2.6.16-rc6 works without mdelay(2000); in ata_device_resume()?

I think Hugh traced it down to a unrelated timer change. The above
really wants to wait for BUSY clear, perhaps the best solution would be
to have piix device its own ata_piix_device_resume() that first waits
for BUSY clear, then calls ata_device_resume().

-- 
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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux