[Skiboot] [PATCH 04/28] pci: When restoring bus numbers after a reset, also restore device cache
Benjamin Herrenschmidt
benh at kernel.crashing.org
Thu Jul 7 11:49:55 AEST 2016
PCIe devices cache the bus number on the first config write, make sure
we restore them when at the same time
Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
Acked-by: Michael Neuling <mikey at neuling.org>
---
core/pci.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/core/pci.c b/core/pci.c
index 9b65a49..7ba5169 100644
--- a/core/pci.c
+++ b/core/pci.c
@@ -1605,8 +1605,14 @@ static int __pci_restore_bridge_buses(struct phb *phb,
struct pci_device *pd,
void *data __unused)
{
- if (!pd->is_bridge)
+ if (!pd->is_bridge) {
+ uint32_t vdid;
+
+ /* Make all devices below a bridge "re-capture" the bdfn */
+ if (pci_cfg_read32(phb, pd->bdfn, 0, &vdid) == 0)
+ pci_cfg_write32(phb, pd->bdfn, 0, vdid);
return 0;
+ }
pci_cfg_write8(phb, pd->bdfn, PCI_CFG_PRIMARY_BUS,
pd->primary_bus);
--
2.7.4
More information about the Skiboot
mailing list