[linux-pm] [PATCH] pata_sil680 suspend/resume

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

 



On Mon, 26 Feb 2007, Guennadi Liakhovetski wrote:

> With a post 2.6.20 kernel from powerpc.git I cannot suspend at all:
> 
> pata_sil680 0000:00:0c.0: suspend
> ata1: suspend failed, device 0 still active
> pci_device_suspend(): ata_pci_device_suspend+0x0/0x74() returns -16
> suspend_device(): pci_device_suspend+0x0/0xac() returns -16
> Could not suspend device 0000:00:0c.0: error -16

AFAICS, "still active" is printed from ata_host_suspend() if a device 
(disk) on the host to be suspended doesn't have ATA_DFLAG_SUSPENDED flag 
set. This flag is only set in ata_eh_suspend(), which is only called from 
ata_eh_recover(), like this:

generic_error_handler()
ata_bmdma_drive_eh()
ata_do_eh()
ata_eh_recover()
ata_eh_suspend()
dev->flags |= ATA_DFLAG_SUSPENDED;

but I don't understand why the error handler should be envoked? Should the 
"disk" be suspended before the host and is it when the eh should set the 
flag? If my guess is right - why doesn't the disk get suspended on my 
machine? Shall I suspend it explicitely from userspace? I do "hdparm -Y", 
and it does stop spinning", but I still get the error.

Thanks
Guennadi
---
Guennadi Liakhovetski


[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux