aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSrikanth Jampala <Jampala.Srikanth@cavium.com>2018-09-29 04:19:08 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2018-10-04 22:22:48 -0400
commit0b501e7a4fdc01b14930345b95c39b93f6472431 (patch)
treef99c695566ded633cddcee26711741fc42d3487c
parent80e73c8ad6e923a9839ba45f820b1346aafc793a (diff)
crypto: cavium/nitrox - use pcie_flr instead of duplicating it
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>
-rw-r--r--drivers/crypto/cavium/nitrox/nitrox_main.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/crypto/cavium/nitrox/nitrox_main.c b/drivers/crypto/cavium/nitrox/nitrox_main.c
index 5bd97cff1405..13436ca98cb5 100644
--- a/drivers/crypto/cavium/nitrox/nitrox_main.c
+++ b/drivers/crypto/cavium/nitrox/nitrox_main.c
@@ -217,7 +217,7 @@ void nitrox_put_device(struct nitrox_device *ndev)
217 smp_mb__after_atomic(); 217 smp_mb__after_atomic();
218} 218}
219 219
220static int nitrox_reset_device(struct pci_dev *pdev) 220static int nitrox_device_flr(struct pci_dev *pdev)
221{ 221{
222 int pos = 0; 222 int pos = 0;
223 223
@@ -227,15 +227,10 @@ static int nitrox_reset_device(struct pci_dev *pdev)
227 return -ENOMEM; 227 return -ENOMEM;
228 } 228 }
229 229
230 pos = pci_pcie_cap(pdev); 230 /* check flr support */
231 if (!pos) 231 if (pcie_has_flr(pdev))
232 return -ENOTTY; 232 pcie_flr(pdev);
233 233
234 if (!pci_wait_for_pending_transaction(pdev))
235 dev_err(&pdev->dev, "waiting for pending transaction\n");
236
237 pcie_capability_set_word(pdev, PCI_EXP_DEVCTL, PCI_EXP_DEVCTL_BCR_FLR);
238 msleep(100);
239 pci_restore_state(pdev); 234 pci_restore_state(pdev);
240 235
241 return 0; 236 return 0;
@@ -345,7 +340,7 @@ static int nitrox_probe(struct pci_dev *pdev,
345 return err; 340 return err;
346 341
347 /* do FLR */ 342 /* do FLR */
348 err = nitrox_reset_device(pdev); 343 err = nitrox_device_flr(pdev);
349 if (err) { 344 if (err) {
350 dev_err(&pdev->dev, "FLR failed\n"); 345 dev_err(&pdev->dev, "FLR failed\n");
351 pci_disable_device(pdev); 346 pci_disable_device(pdev);