perf cpumap: Add new map type for aggregation
[linux-2.6-microblaze.git] / drivers / scsi / pmcraid.c
index cbe5fab..834556e 100644 (file)
@@ -5234,54 +5234,37 @@ static void pmcraid_remove(struct pci_dev *pdev)
        return;
 }
 
-#ifdef CONFIG_PM
 /**
  * pmcraid_suspend - driver suspend entry point for power management
- * @pdev:   PCI device structure
- * @state:  PCI power state to suspend routine
+ * @dev:   Device structure
  *
  * Return Value - 0 always
  */
-static int pmcraid_suspend(struct pci_dev *pdev, pm_message_t state)
+static int __maybe_unused pmcraid_suspend(struct device *dev)
 {
+       struct pci_dev *pdev = to_pci_dev(dev);
        struct pmcraid_instance *pinstance = pci_get_drvdata(pdev);
 
        pmcraid_shutdown(pdev);
        pmcraid_disable_interrupts(pinstance, ~0);
        pmcraid_kill_tasklets(pinstance);
-       pci_set_drvdata(pinstance->pdev, pinstance);
        pmcraid_unregister_interrupt_handler(pinstance);
-       pci_save_state(pdev);
-       pci_disable_device(pdev);
-       pci_set_power_state(pdev, pci_choose_state(pdev, state));
 
        return 0;
 }
 
 /**
  * pmcraid_resume - driver resume entry point PCI power management
- * @pdev: PCI device structure
+ * @dev: Device structure
  *
  * Return Value - 0 in case of success. Error code in case of any failure
  */
-static int pmcraid_resume(struct pci_dev *pdev)
+static int __maybe_unused pmcraid_resume(struct device *dev)
 {
+       struct pci_dev *pdev = to_pci_dev(dev);
        struct pmcraid_instance *pinstance = pci_get_drvdata(pdev);
        struct Scsi_Host *host = pinstance->host;
-       int rc;
-
-       pci_set_power_state(pdev, PCI_D0);
-       pci_enable_wake(pdev, PCI_D0, 0);
-       pci_restore_state(pdev);
-
-       rc = pci_enable_device(pdev);
-
-       if (rc) {
-               dev_err(&pdev->dev, "resume: Enable device failed\n");
-               return rc;
-       }
-
-       pci_set_master(pdev);
+       int rc = 0;
 
        if (sizeof(dma_addr_t) == 4 ||
            dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)))
@@ -5334,18 +5317,10 @@ release_host:
        scsi_host_put(host);
 
 disable_device:
-       pci_disable_device(pdev);
 
        return rc;
 }
 
-#else
-
-#define pmcraid_suspend NULL
-#define pmcraid_resume  NULL
-
-#endif /* CONFIG_PM */
-
 /**
  * pmcraid_complete_ioa_reset - Called by either timer or tasklet during
  *                             completion of the ioa reset
@@ -5833,6 +5808,8 @@ out_disable_device:
        return -ENODEV;
 }
 
+static SIMPLE_DEV_PM_OPS(pmcraid_pm_ops, pmcraid_suspend, pmcraid_resume);
+
 /*
  * PCI driver structure of pmcraid driver
  */
@@ -5841,8 +5818,7 @@ static struct pci_driver pmcraid_driver = {
        .id_table = pmcraid_pci_table,
        .probe = pmcraid_probe,
        .remove = pmcraid_remove,
-       .suspend = pmcraid_suspend,
-       .resume = pmcraid_resume,
+       .driver.pm = &pmcraid_pm_ops,
        .shutdown = pmcraid_shutdown
 };