diff options
author | Srikanth Jampala <Jampala.Srikanth@cavium.com> | 2018-09-29 04:19:08 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2018-10-04 22:22:48 -0400 |
commit | 0b501e7a4fdc01b14930345b95c39b93f6472431 (patch) | |
tree | f99c695566ded633cddcee26711741fc42d3487c | |
parent | 80e73c8ad6e923a9839ba45f820b1346aafc793a (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.c | 15 |
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 | ||
220 | static int nitrox_reset_device(struct pci_dev *pdev) | 220 | static 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); |