It turns out that a lot of newer systems have 'base peripherals' on

the PCI bus.  We presently have no drivers for these devices, so they
are powered down.  This is undesirable behavior since it breaks the
system when the base peripherals go away suddenly in the middle of
boot.

# if we ever get generic drivers for memory and/or base peripherals, then
# we can remove the tests here.
This commit is contained in:
Warner Losh 2004-12-08 04:16:18 +00:00
parent b05bb3e748
commit 6f2156545c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=138536

View file

@ -1934,7 +1934,8 @@ pci_cfg_save(device_t dev, struct pci_devinfo *dinfo, int setstate)
* implement (a) we don't power the device down on a reattach.
*/
cls = pci_get_class(dev);
if (setstate && cls != PCIC_DISPLAY && cls != PCIC_MEMORY) {
if (setstate && cls != PCIC_DISPLAY && cls != PCIC_MEMORY &&
cls != PCIC_BASEPERIPH) {
/*
* PCI spec is clear that we can only go into D3 state from
* D0 state. Transition from D[12] into D0 before going