summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2004-12-08 04:16:18 +0000
committerimp <imp@FreeBSD.org>2004-12-08 04:16:18 +0000
commit0a1dc5194778ecbf6efaa48bd0b5654e693ab6bd (patch)
tree3032358ca0a59c7bbc158a57e07e8b287e3179ec /sys/dev
parentd7a4686564574749b04556e01f20869f4426f31b (diff)
downloadFreeBSD-src-0a1dc5194778ecbf6efaa48bd0b5654e693ab6bd.zip
FreeBSD-src-0a1dc5194778ecbf6efaa48bd0b5654e693ab6bd.tar.gz
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.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/pci/pci.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c
index 7a326b6..fd33394 100644
--- a/sys/dev/pci/pci.c
+++ b/sys/dev/pci/pci.c
@@ -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
OpenPOWER on IntegriCloud