/* pci_power_off(pdev, -1); */
 }
 
-
-#ifdef CONFIG_PM
-
-static int epic_suspend (struct pci_dev *pdev, pm_message_t state)
+static int __maybe_unused epic_suspend(struct device *dev_d)
 {
-       struct net_device *dev = pci_get_drvdata(pdev);
+       struct net_device *dev = dev_get_drvdata(dev_d);
        struct epic_private *ep = netdev_priv(dev);
        void __iomem *ioaddr = ep->ioaddr;
 
 }
 
 
-static int epic_resume (struct pci_dev *pdev)
+static int __maybe_unused epic_resume(struct device *dev_d)
 {
-       struct net_device *dev = pci_get_drvdata(pdev);
+       struct net_device *dev = dev_get_drvdata(dev_d);
 
        if (!netif_running(dev))
                return 0;
        return 0;
 }
 
-#endif /* CONFIG_PM */
-
+static SIMPLE_DEV_PM_OPS(epic_pm_ops, epic_suspend, epic_resume);
 
 static struct pci_driver epic_driver = {
        .name           = DRV_NAME,
        .id_table       = epic_pci_tbl,
        .probe          = epic_init_one,
        .remove         = epic_remove_one,
-#ifdef CONFIG_PM
-       .suspend        = epic_suspend,
-       .resume         = epic_resume,
-#endif /* CONFIG_PM */
+       .driver.pm      = &epic_pm_ops,
 };