[PATCH 05/13] PCI: brcmstb: Declare and assign quirk OB_WIN_MAXSZ_128MB

From: Jim Quinlan

Date: Fri Sep 11 2026 - 19:45:53 EST


Even though only BMIPs chips have this quirk, it is more uniform and
readable to define this specific quirk where each outbound window is must
be <= SZ_128M.

Signed-off-by: Jim Quinlan <james.quinlan@xxxxxxxxxxxx>
---
drivers/pci/controller/pcie-brcmstb.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c
index 71ddd8a760af..401898d04d52 100644
--- a/drivers/pci/controller/pcie-brcmstb.c
+++ b/drivers/pci/controller/pcie-brcmstb.c
@@ -290,6 +290,8 @@ struct inbound_win {
#define CFG_QUIRK_AVOID_BRIDGE_SHUTDOWN BIT(0)
/* The outbound windows must be within the 0-4GB region */
#define CFG_QUIRK_OB_WIN_32BIT_ADDR BIT(1)
+/* Each of the outbound windows size must be <= SZ_128M */
+#define CFG_QUIRK_OB_WIN_MAXSZ_128MB BIT(2)

/* FLAGS */
#define BFLAG(pcie, flag) ((pcie)->cfg->flags & CFG_FLG_ ## flag)
@@ -1294,11 +1296,11 @@ static int brcm_pcie_setup(struct brcm_pcie *pcie)
return -EINVAL;
}

- if (is_bmips(pcie)) {
+ if (BQUIRK(pcie, OB_WIN_MAXSZ_128MB)) {
u64 start = res->start;
unsigned int j, nwins = resource_size(res) / SZ_128M;

- /* bmips PCIe outbound windows have a 128MB max size */
+ /* PCIe outbound windows have a 128MB max size */
if (nwins > BRCM_NUM_PCIE_OUT_WINS)
nwins = BRCM_NUM_PCIE_OUT_WINS;
for (j = 0; j < nwins; j++, start += SZ_128M)
@@ -1997,7 +1999,8 @@ static const struct pcie_cfg_data bcm7425_cfg = {
.perst_set = brcm_pcie_perst_set_generic,
.bridge_sw_init_set = brcm_pcie_bridge_sw_init_set_generic,
.num_inbound_wins = 3,
- .quirks = CFG_QUIRK_OB_WIN_32BIT_ADDR,
+ .quirks = CFG_QUIRK_OB_WIN_32BIT_ADDR
+ | CFG_QUIRK_OB_WIN_MAXSZ_128MB,
};

static const struct pcie_cfg_data bcm7435_cfg = {
@@ -2006,7 +2009,8 @@ static const struct pcie_cfg_data bcm7435_cfg = {
.perst_set = brcm_pcie_perst_set_generic,
.bridge_sw_init_set = brcm_pcie_bridge_sw_init_set_generic,
.num_inbound_wins = 3,
- .quirks = CFG_QUIRK_OB_WIN_32BIT_ADDR,
+ .quirks = CFG_QUIRK_OB_WIN_32BIT_ADDR
+ | CFG_QUIRK_OB_WIN_MAXSZ_128MB,
};

static const struct pcie_cfg_data bcm7216_cfg = {
--
2.34.1