[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <44ad79081412af289c68e74cdecb6a2baa2e873c.camel@kernel.org>
Date: Mon, 30 Aug 2021 10:36:43 +0200
From: nicolas saenz julienne <nsaenz@...nel.org>
To: Jeremy Linton <jeremy.linton@....com>, linux-pci@...r.kernel.org
Cc: lorenzo.pieralisi@....com, bhelgaas@...gle.com, rjw@...ysocki.net,
lenb@...nel.org, robh@...nel.org, kw@...ux.com,
f.fainelli@...il.com, bcm-kernel-feedback-list@...adcom.com,
linux-acpi@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-rpi-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 2/4] PCI: brcmstb: Add ACPI config space quirk
Hi Jeremy,
sorry for the late reply, I've been on vacation.
On Thu, 2021-08-26 at 02:15 -0500, Jeremy Linton wrote:
[...]
> +static void __iomem *brcm_pcie_map_conf2(struct pci_bus *bus,
> + unsigned int devfn, int where)
> +{
> + struct pci_config_window *cfg = bus->sysdata;
> + void __iomem *base = cfg->win;
> + int idx;
> + u32 up;
> +
> + /* Accesses to the RC go right to the RC registers if slot==0 */
> + if (pci_is_root_bus(bus))
> + return PCI_SLOT(devfn) ? NULL : base + where;
> +
> + /*
> + * Assure the link is up before sending requests downstream. This is done
> + * to avoid sending transactions to EPs that don't exist. Link flap
> + * conditions/etc make this race more probable. The resulting unrecoverable
> + * SERRORs will result in the machine crashing.
> + */
> + up = readl(base + PCIE_MISC_PCIE_STATUS);
> + if (!(up & PCIE_MISC_PCIE_STATUS_PCIE_DL_ACTIVE_MASK))
> + return NULL;
> +
> + if (!(up & PCIE_MISC_PCIE_STATUS_PCIE_PHYLINKUP_MASK))
> + return NULL;
Couldn't this be integrated in the original brcm_pcie_map_conf()? IIUC there is
nothing ACPI specific about it. It'd also make for less code duplication.
Regards,
Nicolas
Powered by blists - more mailing lists