Messages in this thread | | | Date | Wed, 14 Sep 2005 12:47:44 -0400 | From | "John W. Linville" <> | Subject | Re: [patch 2.6.14-rc1] pci: only call pci_restore_bars at boot |
| |
On Wed, Sep 14, 2005 at 09:26:50AM -0700, David S. Miller wrote: > From: Jeff Garzik <jgarzik@pobox.com> > Date: Wed, 14 Sep 2005 11:08:12 -0400 > > > This seems like it will break a lot of stuff that -does- need the BARs > > restored when resuming from D3. > > I wasn't going to say anything about this ia64 workaround, > but yes I have to agree with Jeff, this change starts to > lose the whole point of the original change.
Those cases are handled by the driver calling pci_restore_state after calling pci_set_power_state(..., PCI_D0).
The only time need_restore is actually needed is when the device is first accessed after boot (signified by PCI_UNKNOWN). When PCI drivers load, they typically call pci_enable_device before doing anything else. pci_enable_device calls pci_set_power_state(..., PCI_D0), which exposes the device to potentially become uninitialized if it had previously been left in PCI_D3hot. Any other time pci_set_power_state(..., PCI_D0) is called, drivers know to call (and can call) pci_restore_state afterwards.
If not calling pci_restore_bars from pci_set_power_state during normal transitions from PCI_D3hot was a problem, it would have been a problem long before the pci_restore_bars patch came along in 2.6.14-rc1. :-)
John -- John W. Linville linville@tuxdriver.com - 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/
| |