crypto: cavium/nitrox - use pcie_flr instead of duplicating it
authorSrikanth Jampala <Jampala.Srikanth@cavium.com>
Sat, 29 Sep 2018 08:19:08 +0000 (13:49 +0530)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 5 Oct 2018 02:22:48 +0000 (10:22 +0800)
check the flr capability using pcie_has_flr() and do the flr.

Signed-off-by: Srikanth Jampala <Jampala.Srikanth@cavium.com>
Reviewed-by: Gadam Sreerama <sgadam@cavium.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/cavium/nitrox/nitrox_main.c

index 5bd97cf..13436ca 100644 (file)
@@ -217,7 +217,7 @@ void nitrox_put_device(struct nitrox_device *ndev)
        smp_mb__after_atomic();
 }
 
-static int nitrox_reset_device(struct pci_dev *pdev)
+static int nitrox_device_flr(struct pci_dev *pdev)
 {
        int pos = 0;
 
@@ -227,15 +227,10 @@ static int nitrox_reset_device(struct pci_dev *pdev)
                return -ENOMEM;
        }
 
-       pos = pci_pcie_cap(pdev);
-       if (!pos)
-               return -ENOTTY;
+       /* check flr support */
+       if (pcie_has_flr(pdev))
+               pcie_flr(pdev);
 
-       if (!pci_wait_for_pending_transaction(pdev))
-               dev_err(&pdev->dev, "waiting for pending transaction\n");
-
-       pcie_capability_set_word(pdev, PCI_EXP_DEVCTL, PCI_EXP_DEVCTL_BCR_FLR);
-       msleep(100);
        pci_restore_state(pdev);
 
        return 0;
@@ -345,7 +340,7 @@ static int nitrox_probe(struct pci_dev *pdev,
                return err;
 
        /* do FLR */
-       err = nitrox_reset_device(pdev);
+       err = nitrox_device_flr(pdev);
        if (err) {
                dev_err(&pdev->dev, "FLR failed\n");
                pci_disable_device(pdev);