Re: [PATCH] Re: 2.6.17-rc5-git1: regression: resume from suspend(RAM) fails: libata issue

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

 



On Sat, May 27 2006, Jeff Garzik wrote:
> Jens Axboe wrote:
> >Definitely, and we need to cover a lot more controllers than just piix
> >and ahci. Being the selfish bastard that I am, I didn't care much about
> >other devices...
> 
> For 2.6.17 that's practical in any case:  ata_piix is the only upstream 
> driver with a suspend method.
> 
> 
> >diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
> >index fa476e7..28878f4 100644
> >--- a/drivers/scsi/libata-core.c
> >+++ b/drivers/scsi/libata-core.c
> >@@ -4297,6 +4297,7 @@ static int ata_start_drive(struct ata_po
> > int ata_device_resume(struct ata_port *ap, struct ata_device *dev)
> > {
> > 	if (ap->flags & ATA_FLAG_SUSPENDED) {
> >+		ata_busy_wait(ap, ATA_BUSY, 200000);
> > 		ap->flags &= ~ATA_FLAG_SUSPENDED;
> > 		ata_set_mode(ap);
> > 	}
> >@@ -4846,6 +4847,7 @@ int ata_pci_device_suspend(struct pci_de
> > 
> > int ata_pci_device_resume(struct pci_dev *pdev)
> > {
> >+	msleep(500);
> > 	pci_set_power_state(pdev, PCI_D0);
> > 	pci_restore_state(pdev);
> > 	pci_enable_device(pdev);
> 
> Does it work if you move msleep() below pci_restore_state()?
> "	" 	"	"	  below pci_enable_device()?
> 
> I think the delay makes more sense after you wake up the controller...

I'd be surprised if it didn't, let me do a reboot with it moved at the
bottom of ata_pci_device_resume(). brb...

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