Commit 9ad09803 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by David S. Miller

liquidio: use pcie_flr instead of duplicating it

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Tested-by: default avatarFelix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1b86f702
...@@ -879,8 +879,6 @@ liquidio_vf_probe(struct pci_dev *pdev, ...@@ -879,8 +879,6 @@ liquidio_vf_probe(struct pci_dev *pdev,
*/ */
static void octeon_pci_flr(struct octeon_device *oct) static void octeon_pci_flr(struct octeon_device *oct)
{ {
u16 status;
pci_save_state(oct->pci_dev); pci_save_state(oct->pci_dev);
pci_cfg_access_lock(oct->pci_dev); pci_cfg_access_lock(oct->pci_dev);
...@@ -889,20 +887,7 @@ static void octeon_pci_flr(struct octeon_device *oct) ...@@ -889,20 +887,7 @@ static void octeon_pci_flr(struct octeon_device *oct)
pci_write_config_word(oct->pci_dev, PCI_COMMAND, pci_write_config_word(oct->pci_dev, PCI_COMMAND,
PCI_COMMAND_INTX_DISABLE); PCI_COMMAND_INTX_DISABLE);
/* Wait for Transaction Pending bit clean */ pcie_flr(oct->pci_dev);
msleep(100);
pcie_capability_read_word(oct->pci_dev, PCI_EXP_DEVSTA, &status);
if (status & PCI_EXP_DEVSTA_TRPND) {
dev_info(&oct->pci_dev->dev, "Function reset incomplete after 100ms, sleeping for 5 seconds\n");
ssleep(5);
pcie_capability_read_word(oct->pci_dev, PCI_EXP_DEVSTA,
&status);
if (status & PCI_EXP_DEVSTA_TRPND)
dev_info(&oct->pci_dev->dev, "Function reset still incomplete after 5s, reset anyway\n");
}
pcie_capability_set_word(oct->pci_dev, PCI_EXP_DEVCTL,
PCI_EXP_DEVCTL_BCR_FLR);
mdelay(100);
pci_cfg_access_unlock(oct->pci_dev); pci_cfg_access_unlock(oct->pci_dev);
......
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