@@ -325,6 +325,12 @@ static int64_t phb4_pcicfg_read(struct phb4 *p, uint32_t bdfn,
return OPAL_HARDWARE;
}
+ /* Handle per-device filters */
+ rc = pci_handle_cfg_filters(&p->phb, bdfn, offset, size,
+ (uint32_t *)data, false);
+ if (rc != OPAL_PARTIAL)
+ return rc;
+
/* Handle root complex MMIO based config space */
if (bdfn == 0)
return phb4_rc_read(p, offset, size, data);
@@ -428,6 +434,12 @@ static int64_t phb4_pcicfg_write(struct phb4 *p, uint32_t bdfn,
return OPAL_HARDWARE;
}
+ /* Handle per-device filters */
+ rc = pci_handle_cfg_filters(&p->phb, bdfn, offset, size,
+ (uint32_t *)&data, true);
+ if (rc != OPAL_PARTIAL)
+ return rc;
+
/* Handle root complex MMIO based config space */
if (bdfn == 0)
return phb4_rc_write(p, offset, size, data);
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> --- hw/phb4.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)