pci_disable_device(dev);
 }
 
-#ifdef CONFIG_PM
-static int pciserial_suspend_one(struct pci_dev *dev, pm_message_t state)
+#ifdef CONFIG_PM_SLEEP
+static int pciserial_suspend_one(struct device *dev)
 {
-       struct serial_private *priv = pci_get_drvdata(dev);
+       struct pci_dev *pdev = to_pci_dev(dev);
+       struct serial_private *priv = pci_get_drvdata(pdev);
 
        if (priv)
                pciserial_suspend_ports(priv);
 
-       pci_save_state(dev);
-       pci_set_power_state(dev, pci_choose_state(dev, state));
        return 0;
 }
 
-static int pciserial_resume_one(struct pci_dev *dev)
+static int pciserial_resume_one(struct device *dev)
 {
+       struct pci_dev *pdev = to_pci_dev(dev);
+       struct serial_private *priv = pci_get_drvdata(pdev);
        int err;
-       struct serial_private *priv = pci_get_drvdata(dev);
-
-       pci_set_power_state(dev, PCI_D0);
-       pci_restore_state(dev);
 
        if (priv) {
                /*
                 * The device may have been disabled.  Re-enable it.
                 */
-               err = pci_enable_device(dev);
+               err = pci_enable_device(pdev);
                /* FIXME: We cannot simply error out here */
                if (err)
-                       dev_err(&dev->dev, "Unable to re-enable ports, trying to continue.\n");
+                       dev_err(dev, "Unable to re-enable ports, trying to continue.\n");
                pciserial_resume_ports(priv);
        }
        return 0;
 }
 #endif
 
+static SIMPLE_DEV_PM_OPS(pciserial_pm_ops, pciserial_suspend_one,
+                        pciserial_resume_one);
+
 static struct pci_device_id serial_pci_tbl[] = {
        /* Advantech use PCI_DEVICE_ID_ADVANTECH_PCI3620 (0x3620) as 'PCI_SUBVENDOR_ID' */
        {       PCI_VENDOR_ID_ADVANTECH, PCI_DEVICE_ID_ADVANTECH_PCI3620,
        .name           = "serial",
        .probe          = pciserial_init_one,
        .remove         = pciserial_remove_one,
-#ifdef CONFIG_PM
-       .suspend        = pciserial_suspend_one,
-       .resume         = pciserial_resume_one,
-#endif
+       .driver         = {
+               .pm     = &pciserial_pm_ops,
+       },
        .id_table       = serial_pci_tbl,
        .err_handler    = &serial8250_err_handler,
 };