Commit ef02af8c authored by Michael Chan's avatar Michael Chan Committed by Jakub Kicinski

bnxt_en: Disable/enable Bus master during suspend/resume.

Disable Bus master during suspend to prevent DMAs after the device
goes into D3hot state.  The new 57500 devices may continue to DMA
from context memory after the system goes into D3hot state.  This
may cause some PCIe errors on some system.  Re-enable it during resume.
Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
parent fb4cd81e
......@@ -11921,6 +11921,7 @@ static int bnxt_suspend(struct device *device)
rc = bnxt_close(dev);
}
bnxt_hwrm_func_drv_unrgtr(bp);
pci_disable_device(bp->pdev);
rtnl_unlock();
return rc;
}
......@@ -11932,6 +11933,13 @@ static int bnxt_resume(struct device *device)
int rc = 0;
rtnl_lock();
rc = pci_enable_device(bp->pdev);
if (rc) {
netdev_err(dev, "Cannot re-enable PCI device during resume, err = %d\n",
rc);
goto resume_exit;
}
pci_set_master(bp->pdev);
if (bnxt_hwrm_ver_get(bp) || bnxt_hwrm_func_drv_rgtr(bp)) {
rc = -ENODEV;
goto resume_exit;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment