Merge tag 'irq-core-2020-12-23' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / drivers / scsi / esas2r / esas2r_init.c
index 09c5c24..c1a5ab6 100644 (file)
@@ -412,10 +412,11 @@ int esas2r_init_adapter(struct Scsi_Host *host, struct pci_dev *pcid,
        esas2r_disable_chip_interrupts(a);
        esas2r_check_adapter(a);
 
-       if (!esas2r_init_adapter_hw(a, true))
+       if (!esas2r_init_adapter_hw(a, true)) {
                esas2r_log(ESAS2R_LOG_CRIT, "failed to initialize hardware!");
-       else
+       } else {
                esas2r_debug("esas2r_init_adapter ok");
+       }
 
        esas2r_claim_interrupts(a);
 
@@ -640,53 +641,27 @@ void esas2r_kill_adapter(int i)
        }
 }
 
-int esas2r_suspend(struct pci_dev *pdev, pm_message_t state)
+static int __maybe_unused esas2r_suspend(struct device *dev)
 {
-       struct Scsi_Host *host = pci_get_drvdata(pdev);
-       u32 device_state;
+       struct Scsi_Host *host = dev_get_drvdata(dev);
        struct esas2r_adapter *a = (struct esas2r_adapter *)host->hostdata;
 
-       esas2r_log_dev(ESAS2R_LOG_INFO, &(pdev->dev), "suspending adapter()");
+       esas2r_log_dev(ESAS2R_LOG_INFO, dev, "suspending adapter()");
        if (!a)
                return -ENODEV;
 
        esas2r_adapter_power_down(a, 1);
-       device_state = pci_choose_state(pdev, state);
-       esas2r_log_dev(ESAS2R_LOG_INFO, &(pdev->dev),
-                      "pci_save_state() called");
-       pci_save_state(pdev);
-       esas2r_log_dev(ESAS2R_LOG_INFO, &(pdev->dev),
-                      "pci_disable_device() called");
-       pci_disable_device(pdev);
-       esas2r_log_dev(ESAS2R_LOG_INFO, &(pdev->dev),
-                      "pci_set_power_state() called");
-       pci_set_power_state(pdev, device_state);
-       esas2r_log_dev(ESAS2R_LOG_INFO, &(pdev->dev), "esas2r_suspend(): 0");
+       esas2r_log_dev(ESAS2R_LOG_INFO, dev, "esas2r_suspend(): 0");
        return 0;
 }
 
-int esas2r_resume(struct pci_dev *pdev)
+static int __maybe_unused esas2r_resume(struct device *dev)
 {
-       struct Scsi_Host *host = pci_get_drvdata(pdev);
+       struct Scsi_Host *host = dev_get_drvdata(dev);
        struct esas2r_adapter *a = (struct esas2r_adapter *)host->hostdata;
-       int rez;
-
-       esas2r_log_dev(ESAS2R_LOG_INFO, &(pdev->dev), "resuming adapter()");
-       esas2r_log_dev(ESAS2R_LOG_INFO, &(pdev->dev),
-                      "pci_set_power_state(PCI_D0) "
-                      "called");
-       pci_set_power_state(pdev, PCI_D0);
-       esas2r_log_dev(ESAS2R_LOG_INFO, &(pdev->dev),
-                      "pci_enable_wake(PCI_D0, 0) "
-                      "called");
-       pci_enable_wake(pdev, PCI_D0, 0);
-       esas2r_log_dev(ESAS2R_LOG_INFO, &(pdev->dev),
-                      "pci_restore_state() called");
-       pci_restore_state(pdev);
-       esas2r_log_dev(ESAS2R_LOG_INFO, &(pdev->dev),
-                      "pci_enable_device() called");
-       rez = pci_enable_device(pdev);
-       pci_set_master(pdev);
+       int rez = 0;
+
+       esas2r_log_dev(ESAS2R_LOG_INFO, dev, "resuming adapter()");
 
        if (!a) {
                rez = -ENODEV;
@@ -730,11 +705,13 @@ int esas2r_resume(struct pci_dev *pdev)
        }
 
 error_exit:
-       esas2r_log_dev(ESAS2R_LOG_CRIT, &(pdev->dev), "esas2r_resume(): %d",
+       esas2r_log_dev(ESAS2R_LOG_CRIT, dev, "esas2r_resume(): %d",
                       rez);
        return rez;
 }
 
+SIMPLE_DEV_PM_OPS(esas2r_pm_ops, esas2r_suspend, esas2r_resume);
+
 bool esas2r_set_degraded_mode(struct esas2r_adapter *a, char *error_str)
 {
        set_bit(AF_DEGRADED_MODE, &a->flags);