[linux-pm] A reference implementation of PCI suspend/resume?

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

 



On Fri, 2005-05-13 at 22:06 -0700, Fabrice Gautier wrote:
> > There are still many PCI drivers don't implement their 
> > .suspend/.resume
> > methods correctly. I felt it would be quite helpful there is 
> > a reference
> > implementation. Here is my thought:
> > 
> > [...snip...]
> > 
> > Currently many drivers don't call
> > free_irq/request_irq/pci_disable_device, which makes unexpected
> > interrupt occur and even break suspend/resume in some systems. 
> 
> I don't understand why not calling free_irq would cause unexpected
> interrupts.
> 
> The way I understand the PCI spec is: if you suspend a PCI device, its IRQ
> should be disabled. If an IRQ come from this device anyway (in violation of
> the spec) then the driver for this device should handle it so you should NOT
> unregister its irq_handler.
> (How does such a device would handle such a irq is another matter - a device
> specific one I guess)
> 
> I'm not understanding where your unexpected interrupt is coming from.
> 
> Care to elaborate?
I actually don't know the exact reason but we did notice disabling a
device isn't sufficient (an 'irq nobody card' is reported after a device
is disabled). I think we should not trust device.
Another point is resume is just like boot. At boot time, PIC/IOAPIC/irq
router are disabled by default. They are enabled only when a device
really starts using them. suspend/resume should be the same manner.

Thanks,
Shaohua


[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