MIPS: implement architecture-specific 'pci_remap_iospace()'

To make PCI IO work we need to properly virtually map IO cpu physical address
and set this virtual address as the address of the first PCI IO port which
is set using function 'set_io_port_base()'.

Acked-by: Arnd Bergmann <[email protected]>
Acked-by: Thomas Bogendoerfer <[email protected]>
Signed-off-by: Sergio Paracuellos <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
Sergio Paracuellos authored and Greg Kroah-Hartman committed 2021-10-05 12:36:25 +02:00
1 parent 7c2584faa1
commit 9f76779f24
2 files changed
+16

No files matched your search

+2
View File
@@ -20,6 +20,8 @@
#include <linux/list.h>
#include <linux/of.h>
#define pci_remap_iospace pci_remap_iospace
#ifdef CONFIG_PCI_DRIVERS_LEGACY
/*
+14
View File
@@ -46,3 +46,17 @@ void pcibios_fixup_bus(struct pci_bus *bus)
{
pci_read_bridge_bases(bus);
}
int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr)
{
unsigned long vaddr;
if (res->start != 0) {
WARN_ONCE(1, "resource start address is not zero\n");
return -ENODEV;
}
vaddr = (unsigned long)ioremap(phys_addr, resource_size(res));
set_io_port_base(vaddr);
return 0;
}