diff options
author | jhb <jhb@FreeBSD.org> | 2012-03-01 20:20:55 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2012-03-01 20:20:55 +0000 |
commit | 87af6ebd2e92f46676ab96bbb6db52e01b9a85ce (patch) | |
tree | 58f45f74c955b124a7f04c4b6c9387dc9a70b6bc /sys/dev/pci/pci.c | |
parent | 0b4e8b5716a2cec48f18114a48d0ac11a0865ea0 (diff) | |
download | FreeBSD-src-87af6ebd2e92f46676ab96bbb6db52e01b9a85ce.zip FreeBSD-src-87af6ebd2e92f46676ab96bbb6db52e01b9a85ce.tar.gz |
Add pci_save_state() and pci_restore_state() wrappers around
pci_cfg_save() and pci_cfg_restore() for device drivers to use when
saving and restoring state (e.g. to handle device-specific resets).
Reviewed by: imp
MFC after: 2 weeks
Diffstat (limited to 'sys/dev/pci/pci.c')
-rw-r--r-- | sys/dev/pci/pci.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index 584c9c3..e62babb 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -4426,3 +4426,22 @@ pci_cfg_save(device_t dev, struct pci_devinfo *dinfo, int setstate) if (pci_get_powerstate(dev) != PCI_POWERSTATE_D3) pci_set_powerstate(dev, PCI_POWERSTATE_D3); } + +/* Wrapper APIs suitable for device driver use. */ +void +pci_save_state(device_t dev) +{ + struct pci_devinfo *dinfo; + + dinfo = device_get_ivars(dev); + pci_cfg_save(dev, dinfo, 0); +} + +void +pci_restore_state(device_t dev) +{ + struct pci_devinfo *dinfo; + + dinfo = device_get_ivars(dev); + pci_cfg_restore(dev, dinfo); +} |