Messages in this thread | | | Date | Tue, 26 Oct 2004 07:11:00 +0200 | From | Andi Kleen <> | Subject | Re: [ACPI] [Proposal]Another way to save/restore PCI config space for suspend/resume |
| |
On Tue, Oct 26, 2004 at 12:50:57PM +0800, Li Shaohua wrote: > Hi, > We suffer from PCI config space issue for a long time, which causes many > system can't correctly resume. Current Linux mechanism isn't sufficient. > Here is a another idea: > Record all PCI writes in Linux kernel, and redo all the write after > resume in order. The idea assumes Firmware will restore all PCI config
This won't work very well for some cases. e.g. on AMD x86-64 the IOMMU is flushed by setting/clearing a bit in PCI config space. AGP implementations work similar. You really don't want to track all these flushes, it would be far too costly.
> space to the boot time state, which is true at least for IA32. > > Reason: > 1. Current PCI save/restore routines only cover first 64 bytes
The driver could set a flag if it wants more.
> 2. No PCI bridge driver currently.
That could be fixed I guess?
> 3. Some special devices can't or are difficult to save/restore config > space with current model. Such as PCI link device, it's a sysdev, but > its resume code can't be invoked with irq disabled.
In this case it would be IMHO better to have specialized suspend/resume functions in the drivers for these oddball devices.
Most likely they will require some special handling anyways (like special delays etc.) that can't be done by the generic code
> 4. ACPI possibly changes special devices' config space, such as host > bridge or LPC bridge. The special devices generally are vender specific, > and possibly will not have a driver forever.
I didn't get that one.
-Andi - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |