From c88da197b0cef203060ea2d43afe0fbf2d4a042d Mon Sep 17 00:00:00 2001 From: Shmulik Ravid Date: Thu, 3 Dec 2009 22:27:51 +0200 Subject: [PATCH] --- yaml --- r: 174823 b: refs/heads/master c: 04b55c4732780381410e52db0e9bfb7661f2b4b3 h: refs/heads/master i: 174821: 5a6c6e02e77cd86d7fd8b38238f11bc3fb3c02d5 174819: e08a311b4d0d14af2ea67afaec02bfd382e20e92 174815: b4c75814974b1ff7127469ed7e4a115645e2c8af v: v3 --- [refs] | 2 +- trunk/drivers/pci/pci.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 4aeff3d968b6..bd143aae4bc4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bb965401fd2afa26629b244e7bb2e48a117dc238 +refs/heads/master: 04b55c4732780381410e52db0e9bfb7661f2b4b3 diff --git a/trunk/drivers/pci/pci.c b/trunk/drivers/pci/pci.c index be91a09c74a5..6af212c509c5 100644 --- a/trunk/drivers/pci/pci.c +++ b/trunk/drivers/pci/pci.c @@ -2140,7 +2140,7 @@ static int pcie_flr(struct pci_dev *dev, int probe) int i; int pos; u32 cap; - u16 status; + u16 status, control; pos = pci_pcie_cap(dev); if (!pos) @@ -2167,8 +2167,10 @@ static int pcie_flr(struct pci_dev *dev, int probe) "proceeding with reset anyway\n"); clear: - pci_write_config_word(dev, pos + PCI_EXP_DEVCTL, - PCI_EXP_DEVCTL_BCR_FLR); + pci_read_config_word(dev, pos + PCI_EXP_DEVCTL, &control); + control |= PCI_EXP_DEVCTL_BCR_FLR; + pci_write_config_word(dev, pos + PCI_EXP_DEVCTL, control); + msleep(100); return 0;