diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2022-12-12 09:37:09 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2022-12-12 09:37:09 -0800 |
commit | 164f59000c19fa1ee5d09327a8055ec9f9b9905a (patch) | |
tree | c613bd29f5489ebbd85a767fe789332983976d66 /arch/microblaze/pci/iomap.c | |
parent | 7d62159919c90fbcd9ee808e9f1b776eae990d53 (diff) | |
parent | 5cfe469c2654c3a4dda8504b1209abdd8b379e95 (diff) |
Merge tag 'microblaze-v6.2' of git://git.monstr.eu/linux-2.6-microblaze
Pull microblaze updates from Michal Simek:
"Clean up PCI support which was pretty much copied and pasted from
PowerPC long time ago for one custom platform which is not available
for years.
Also, the Xilinx/AMD PCIe team tested Microblaze with IP cores also
used on ARM SOCs and clean up Microblaze code"
* tag 'microblaze-v6.2' of git://git.monstr.eu/linux-2.6-microblaze:
microblaze/PCI: Moving PCI iounmap and dependent code
microblaze/PCI: Remove support for Xilinx PCI host bridge
microblaze/PCI: Remove unused pci_iobar_pfn() and et al declarations
microblaze/PCI: Remove unused sys_pciconfig_iobase() and et al declaration
microblaze/PCI: Remove unused pci_address_to_pio() conversion of CPU address to I/O port
microblaze/PCI: Remove unused PCI Indirect ops
microblaze/PCI: Remove unused PCI BIOS resource allocation
microblaze/PCI: Remove unused allocation & free of PCI host bridge structure
microblaze/PCI: Remove unused device tree parsing for a host bridge resources
microblaze/PCI: Remove unused PCI legacy IO's access on a bus
microblaze/PCI: Remove unused PCI bus scan if configured as a host
microblaze/PCI: Remove Null PCI config access unused functions
microblaze/PCI: Remove unused early_read_config_byte() et al declarations
Diffstat (limited to 'arch/microblaze/pci/iomap.c')
-rw-r--r-- | arch/microblaze/pci/iomap.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/arch/microblaze/pci/iomap.c b/arch/microblaze/pci/iomap.c index bde74af4c1cd..b2ee8ace9b6e 100644 --- a/arch/microblaze/pci/iomap.c +++ b/arch/microblaze/pci/iomap.c @@ -11,6 +11,42 @@ #include <linux/io.h> #include <asm/pci-bridge.h> +static DEFINE_SPINLOCK(hose_spinlock); +LIST_HEAD(hose_list); + +unsigned long isa_io_base; +EXPORT_SYMBOL(isa_io_base); + +static resource_size_t pcibios_io_size(const struct pci_controller *hose) +{ + return resource_size(&hose->io_resource); +} + +int pcibios_vaddr_is_ioport(void __iomem *address) +{ + int ret = 0; + struct pci_controller *hose; + resource_size_t size; + + spin_lock(&hose_spinlock); + list_for_each_entry(hose, &hose_list, list_node) { + size = pcibios_io_size(hose); + if (address >= hose->io_base_virt && + address < (hose->io_base_virt + size)) { + ret = 1; + break; + } + } + spin_unlock(&hose_spinlock); + return ret; +} + +/* Display the domain number in /proc */ +int pci_proc_domain(struct pci_bus *bus) +{ + return pci_domain_nr(bus); +} + void pci_iounmap(struct pci_dev *dev, void __iomem *addr) { if (isa_vaddr_is_ioport(addr)) |