Message ID | 20200420071220.155357-1-jiaxun.yang@flygoat.com (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Lorenzo Pieralisi |
Headers | show |
Series | [v4,1/5] PCI: OF: Don't remap iospace on unsupported platform | expand |
Hello! On 20.04.2020 10:12, Jiaxun Yang wrote: > There are some platforms don't support iospace remapping ^ that ^^^^^^^ I/O space? > 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 I/O space, maybe? > check instead on these platforms. > > Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> > -- > v4: Fix a typo in commit message. [...] MBR, Sergei
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);
There are some platforms don'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@flygoat.com> -- v4: Fix a typo in commit message. --- drivers/pci/of.c | 9 +++++++++ 1 file changed, 9 insertions(+)