| /* |
| * drivers/pci/pci-driver.c - default PCI driver. |
| * |
| */ |
| |
| #include <linux/pci.h> |
| |
| static int pci_device_suspend(struct device * dev, u32 stage, u32 state) |
| { |
| struct pci_dev * pci_dev = (struct pci_dev *)list_entry(dev,struct pci_dev,dev); |
| int error = 0; |
| |
| if (pci_dev->driver) { |
| if (stage == SUSPEND_SAVE_STATE && pci_dev->driver->save_state) |
| error = pci_dev->driver->save_state(pci_dev,state); |
| else if (stage == SUSPEND_POWER_DOWN && pci_dev->driver->suspend) |
| error = pci_dev->driver->suspend(pci_dev,state); |
| } |
| return error; |
| } |
| |
| static int pci_device_resume(struct device * dev, u32 stage) |
| { |
| struct pci_dev * pci_dev = (struct pci_dev *)list_entry(dev,struct pci_dev,dev); |
| |
| if (pci_dev->driver) { |
| if (stage == RESUME_POWER_ON && pci_dev->driver->resume) |
| pci_dev->driver->resume(pci_dev); |
| } |
| return 0; |
| } |
| |
| struct device_driver pci_device_driver = { |
| suspend: pci_device_suspend, |
| resume: pci_device_resume, |
| }; |