Hi, > From: Shaohua Li [mailto:shaohua.li@xxxxxxxxx] > Sent: Wednesday, May 11, 2005 6:25 PM > To: linux-pm > Subject: [linux-pm] A reference implementation of PCI suspend/resume? > > Hi, > 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? Btw: I'm suspending PCI devices not in the context of a full suspend situation, maybe that's why I'm missing your point. But your sample implementation should work in both cases. Thanks -- Fabrice