return;
 }
 
-#ifdef CONFIG_PM
-static int parport_serial_pci_suspend(struct pci_dev *dev, pm_message_t state)
+static int __maybe_unused parport_serial_pci_suspend(struct device *dev)
 {
-       struct parport_serial_private *priv = pci_get_drvdata(dev);
+       struct pci_dev *pdev = to_pci_dev(dev);
+       struct parport_serial_private *priv = pci_get_drvdata(pdev);
 
        if (priv->serial)
                pciserial_suspend_ports(priv->serial);
 
        /* FIXME: What about parport? */
-
-       pci_save_state(dev);
-       pci_set_power_state(dev, pci_choose_state(dev, state));
        return 0;
 }
 
-static int parport_serial_pci_resume(struct pci_dev *dev)
+static int __maybe_unused parport_serial_pci_resume(struct device *dev)
 {
-       struct parport_serial_private *priv = pci_get_drvdata(dev);
-       int err;
-
-       pci_set_power_state(dev, PCI_D0);
-       pci_restore_state(dev);
-
-       /*
-        * The device may have been disabled.  Re-enable it.
-        */
-       err = pci_enable_device(dev);
-       if (err) {
-               printk(KERN_ERR "parport_serial: %s: error enabling "
-                       "device for resume (%d)\n", pci_name(dev), err);
-               return err;
-       }
+       struct pci_dev *pdev = to_pci_dev(dev);
+       struct parport_serial_private *priv = pci_get_drvdata(pdev);
 
        if (priv->serial)
                pciserial_resume_ports(priv->serial);
 
        /* FIXME: What about parport? */
-
        return 0;
 }
-#endif
+
+static SIMPLE_DEV_PM_OPS(parport_serial_pm_ops,
+                        parport_serial_pci_suspend, parport_serial_pci_resume);
 
 static struct pci_driver parport_serial_pci_driver = {
        .name           = "parport_serial",
        .id_table       = parport_serial_pci_tbl,
        .probe          = parport_serial_pci_probe,
        .remove         = parport_serial_pci_remove,
-#ifdef CONFIG_PM
-       .suspend        = parport_serial_pci_suspend,
-       .resume         = parport_serial_pci_resume,
-#endif
+       .driver         = {
+               .pm     = &parport_serial_pm_ops,
+       },
 };