[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200413053222.3976680-1-jiaxun.yang@flygoat.com>
Date: Mon, 13 Apr 2020 13:32:09 +0800
From: Jiaxun Yang <jiaxun.yang@...goat.com>
To: linux-mips@...r.kernel.org
Cc: Jiaxun Yang <jiaxun.yang@...goat.com>,
Bjorn Helgaas <bhelgaas@...gle.com>,
Rob Herring <robh+dt@...nel.org>,
Thomas Bogendoerfer <tsbogend@...ha.franken.de>,
Huacai Chen <chenhc@...ote.com>,
Lorenzo Pieralisi <lorenzo.pieralisi@....com>,
Andrew Murray <amurray@...goodpenguin.co.uk>,
Paul Burton <paulburton@...nel.org>, linux-pci@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH v3 1/5] PCI: OF: Don't remap iospace on unsupported platform
There are some platforms doesn't support iospace remapping
like MIPS. However, our PCI code will try to remap iospace
unconditionally and reject io resources on these platforms.
So we should remove iospace remapping check and use a range
check instead on these platforms.
Signed-off-by: Jiaxun Yang <jiaxun.yang@...goat.com>
---
drivers/pci/of.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/pci/of.c b/drivers/pci/of.c
index 81ceeaa6f1d5..36e8761b66c6 100644
--- a/drivers/pci/of.c
+++ b/drivers/pci/of.c
@@ -547,12 +547,21 @@ int pci_parse_request_of_pci_ranges(struct device *dev,
switch (resource_type(res)) {
case IORESOURCE_IO:
+#if defined(PCI_IOBASE) && defined(CONFIG_MMU)
err = devm_pci_remap_iospace(dev, res, iobase);
if (err) {
dev_warn(dev, "error %d: failed to map resource %pR\n",
err, res);
resource_list_destroy_entry(win);
}
+#else
+ /* Simply check if IO is inside the range */
+ if (res->end > IO_SPACE_LIMIT) {
+ dev_warn(dev, "resource %pR out of the IO range\n",
+ res);
+ resource_list_destroy_entry(win);
+ }
+#endif
break;
case IORESOURCE_MEM:
res_valid |= !(res->flags & IORESOURCE_PREFETCH);
--
2.26.0.rc2
Powered by blists - more mailing lists