From: Andrew Morton Fix this: drivers/pci/pcie/portdrv_pci.c:66: warning: implicit declaration of function 'pcie_portdrv_save_config' drivers/pci/pcie/portdrv_pci.c: At top level: drivers/pci/pcie/portdrv_pci.c:81: error: static declaration of 'pcie_portdrv_save_config' follows non-static declaration drivers/pci/pcie/portdrv_pci.c:66: error: previous implicit declaration of 'pcie_portdrv_save_config' was here and clean a few things up. Cc: "Zhang, Yanmin" Cc: Greg KH Cc: Tom Long Nguyen Signed-off-by: Andrew Morton --- drivers/pci/pcie/portdrv_pci.c | 73 +++++++++++++++---------------- 1 file changed, 37 insertions(+), 36 deletions(-) diff -puN drivers/pci/pcie/portdrv_pci.c~fix-gregkh-pci-pci-express-aer-implemetation-pcie_portdrv-error-handler drivers/pci/pcie/portdrv_pci.c --- a/drivers/pci/pcie/portdrv_pci.c~fix-gregkh-pci-pci-express-aer-implemetation-pcie_portdrv-error-handler +++ a/drivers/pci/pcie/portdrv_pci.c @@ -32,6 +32,43 @@ MODULE_LICENSE("GPL"); /* global data */ static const char device_name[] = "pcieport-driver"; +static int pcie_portdrv_save_config(struct pci_dev *dev) +{ + return pci_save_state(dev); +} + +#ifdef CONFIG_PM +static int pcie_portdrv_restore_config(struct pci_dev *dev) +{ + int retval; + + pci_restore_state(dev); + retval = pci_enable_device(dev); + if (retval) + return retval; + pci_set_master(dev); + return 0; +} + +static int pcie_portdrv_suspend(struct pci_dev *dev, pm_message_t state) +{ + int ret = pcie_port_device_suspend(dev, state); + + if (!ret) + ret = pcie_portdrv_save_config(dev); + return ret; +} + +static int pcie_portdrv_resume(struct pci_dev *dev) +{ + pcie_portdrv_restore_config(dev); + return pcie_port_device_resume(dev); +} +#else +#define pcie_portdrv_suspend NULL +#define pcie_portdrv_resume NULL +#endif + /* * pcie_portdrv_probe - Probe PCI-Express port devices * @dev: PCI-Express port device being probed @@ -76,40 +113,6 @@ static void pcie_portdrv_remove (struct kfree(pci_get_drvdata(dev)); } -#ifdef CONFIG_PM -static int pcie_portdrv_save_config(struct pci_dev *dev) -{ - return pci_save_state(dev); -} - -static int pcie_portdrv_restore_config(struct pci_dev *dev) -{ - int retval; - - pci_restore_state(dev); - retval = pci_enable_device(dev); - if (retval) - return retval; - pci_set_master(dev); - return 0; -} - -static int pcie_portdrv_suspend (struct pci_dev *dev, pm_message_t state) -{ - int ret = pcie_port_device_suspend(dev, state); - - if (!ret) - ret = pcie_portdrv_save_config(dev); - return ret; -} - -static int pcie_portdrv_resume (struct pci_dev *dev) -{ - pcie_portdrv_restore_config(dev); - return pcie_port_device_resume(dev); -} -#endif - static int error_detected_iter(struct device *device, void *data) { struct pcie_device *pcie_device; @@ -272,10 +275,8 @@ static struct pci_driver pcie_portdrv = .probe = pcie_portdrv_probe, .remove = pcie_portdrv_remove, -#ifdef CONFIG_PM .suspend = pcie_portdrv_suspend, .resume = pcie_portdrv_resume, -#endif /* PM */ .err_handler = &pcie_portdrv_err_handler, }; _